- Gate capture on SD_IsReady() after successful SD_Init; avoid false 'insert SD' when SD.cardType() lies after WiFi on shared SPI with LCD - SD_Init: LCD CS high, SD.end() on empty card; HandshakeCapture save path retries SD_Init before discard - FAT filename sanitize, discard deadlocks, WPA3 scan labels, docs (README, PRODUCTION, IMPROVEMENTS), firmware version 1.0.1 Made-with: Cursor
44 lines
1013 B
C++
44 lines
1013 B
C++
#include "WiFi_Scanner.h"
|
|
#include <WiFi.h>
|
|
#include "LVGL_Driver.h"
|
|
#include "HandshakeCapture.h"
|
|
|
|
void WiFiScanner_Refresh(void) {
|
|
Ui_SetWifiStatus("Scanning...");
|
|
Ui_ClearNetworkList();
|
|
|
|
scanNetworksSortedByRSSI();
|
|
|
|
int count = 0;
|
|
for (int i = 0; i < MAX_NETWORKS; i++) {
|
|
if (networks[i].ssid.isEmpty()) break;
|
|
count++;
|
|
}
|
|
|
|
if (count <= 0) {
|
|
Ui_SetWifiStatus("No networks");
|
|
WiFi.scanDelete();
|
|
return;
|
|
}
|
|
|
|
static char status_text[64];
|
|
snprintf(status_text, sizeof(status_text), "%d networks", count);
|
|
Ui_SetWifiStatus(status_text);
|
|
|
|
for (int i = 0; i < count; i++) {
|
|
char line[48];
|
|
snprintf(line, sizeof(line), "%02d. %s ch%d",
|
|
i + 1,
|
|
networks[i].ssid.c_str(),
|
|
networks[i].ch);
|
|
Ui_AddNetwork(line, i);
|
|
if (networks[i].handshake_captured) {
|
|
Ui_SetNetworkColor(i, lv_palette_main(LV_PALETTE_RED));
|
|
} else {
|
|
Ui_SetNetworkColor(i, lv_palette_main(LV_PALETTE_GREEN));
|
|
}
|
|
}
|
|
|
|
WiFi.scanDelete();
|
|
}
|