[BLUFI] Fix SSID return (#2108)

The filter on NTWK_CONNECTED was too restrictive when asking for WiFi status.
Get the WiFi name and BSSID from the WiFi object

Co-authored-by: Florian <1technophile@users.noreply.github.com>
This commit is contained in:
FlorianandFlorian authored and GitHub committed 2024-11-12 08:50:24 -06:00
1 parent 379312a127
commit 3bcfdee712
1 file changed
+18 -7
+18 -7
View File
@@ -235,10 +235,14 @@ static void example_event_callback(esp_blufi_cb_event_t event, esp_blufi_cb_para
break;
case ESP_BLUFI_EVENT_GET_WIFI_STATUS: {
esp_blufi_extra_info_t info;
if (gatewayState == GatewayState::NTWK_CONNECTED) {
Log.trace(F("BLUFI get wifi status" CR));
if (gl_sta_ssid_len > 0 && gl_sta_ssid[0] != '\0') {
Log.trace(F("SSID exists" CR));
memset(&info, 0, sizeof(esp_blufi_extra_info_t));
memcpy(info.sta_bssid, gl_sta_bssid, 6);
info.sta_bssid_set = true;
if (memcmp(gl_sta_bssid, "\0\0\0\0\0\0", 6) != 0) {
memcpy(info.sta_bssid, gl_sta_bssid, 6);
info.sta_bssid_set = true;
}
info.sta_ssid = gl_sta_ssid;
info.sta_ssid_len = gl_sta_ssid_len;
esp_blufi_send_wifi_conn_report(WIFI_MODE_STA, ESP_BLUFI_STA_CONN_SUCCESS, 0, &info);
@@ -301,16 +305,23 @@ void wifi_event_handler(arduino_event_id_t event) {
wifiManager.stopConfigPortal();
# endif
gl_sta_is_connecting = false;
esp_blufi_extra_info_t info;
memset(&info, 0, sizeof(esp_blufi_extra_info_t));
memcpy(info.sta_bssid, gl_sta_bssid, 6);
esp_blufi_extra_info_t info = {};
const String current_ssid = WiFi.SSID();
gl_sta_ssid_len = std::min(current_ssid.length(), sizeof(gl_sta_ssid) - 1);
std::copy_n(current_ssid.c_str(), gl_sta_ssid_len, gl_sta_ssid);
gl_sta_ssid[gl_sta_ssid_len] = '\0';
uint8_t* bssid = WiFi.BSSID();
if (bssid) {
std::copy_n(bssid, 6, gl_sta_bssid);
}
info.sta_bssid_set = true;
info.sta_ssid = gl_sta_ssid;
info.sta_ssid_len = gl_sta_ssid_len;
std::copy_n(gl_sta_bssid, 6, info.sta_bssid);
if (omg_blufi_ble_connected == true) {
esp_blufi_send_wifi_conn_report(WIFI_MODE_STA, ESP_BLUFI_STA_CONN_SUCCESS, 0, &info);
}
Log.notice(F("Connected to SSID: %s" CR), gl_sta_ssid);
break;
}
case ARDUINO_EVENT_WIFI_SCAN_DONE: {