MCPcopy Create free account
hub / github.com/UtilitechAS/amsreader-firmware / wifiScan

Method wifiScan

lib/SvelteUi/src/AmsWebServer.cpp:2865–2917  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2863}
2864
2865void AmsWebServer::wifiScan() {
2866 if(!checkSecurity(1))
2867 return;
2868
2869 int16_t count = WiFi.scanNetworks();
2870 int pos = snprintf_P(buf, BufferSize, PSTR("{\"c\":%d,\"n\":["), count);
2871 count = min(count, (int16_t) 25); // Max 25 so that we don't overflow the buffer size
2872 for (int16_t i = 0; i < count; i++) {
2873 uint8_t* bssid = WiFi.BSSID(i);
2874 String ssid = WiFi.SSID(i);
2875 int32_t rssi = WiFi.RSSI(i);
2876 int32_t chan = WiFi.channel(i);
2877 #if defined(ESP32)
2878 wifi_auth_mode_t enc = WiFi.encryptionType(i);
2879 String encStr;
2880 switch (enc) {
2881 case WIFI_AUTH_OPEN: encStr = "open"; break;
2882 case WIFI_AUTH_WEP: encStr = "WEP"; break;
2883 case WIFI_AUTH_WPA_PSK: encStr = "WPA"; break;
2884 case WIFI_AUTH_WPA2_PSK: encStr = "WPA2"; break;
2885 case WIFI_AUTH_WPA_WPA2_PSK: encStr = "WPA+WPA2"; break;
2886 case WIFI_AUTH_WPA2_ENTERPRISE: encStr = "WPA2-EAP"; break;
2887 case WIFI_AUTH_WPA3_PSK: encStr = "WPA3"; break;
2888 case WIFI_AUTH_WPA2_WPA3_PSK: encStr = "WPA2+WPA3"; break;
2889 case WIFI_AUTH_WAPI_PSK: encStr = "WAPI"; break;
2890 default: encStr = "unknown";
2891 }
2892 #else
2893 uint8_t enc = WiFi.encryptionType(i);
2894 String encStr;
2895 switch (enc) {
2896 case ENC_TYPE_WEP: encStr = "WEP"; break;
2897 case ENC_TYPE_TKIP: encStr = "WPA"; break;
2898 case ENC_TYPE_CCMP: encStr = "WPA2"; break;
2899 case ENC_TYPE_NONE: encStr = "open"; break;
2900 default: encStr = "unknown";
2901 }
2902 #endif
2903
2904 char bssidStr[18] = { 0 };
2905 sprintf(bssidStr, "%02X:%02X:%02X:%02X:%02X:%02X", bssid[0], bssid[1], bssid[2], bssid[3], bssid[4], bssid[5]);
2906 pos += snprintf_P(buf+pos, BufferSize-pos, PSTR("{\"b\":\"%s\",\"s\":\"%s\",\"r\":%d,\"c\":%d,\"e\":\"%s\"}%s"), bssidStr, ssid.c_str(), rssi, chan, encStr, i == count-1 ? "" : ",");
2907 }
2908 pos += snprintf_P(buf+pos, BufferSize-pos, PSTR("]}"));
2909 WiFi.scanDelete();
2910
2911 server.sendHeader(HEADER_CACHE_CONTROL, CACHE_CONTROL_NO_CACHE);
2912 server.sendHeader(HEADER_PRAGMA, PRAGMA_NO_CACHE);
2913 server.sendHeader(HEADER_EXPIRES, EXPIRES_OFF);
2914
2915 server.setContentLength(strlen(buf));
2916 server.send(200, MIME_JSON, buf);
2917}
2918
2919void AmsWebServer::wifiTestStart() {
2920 if(!checkSecurity(1))

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected