Files
drjones 7e93324288 handshake-capture-c6: SPI bus lock, SD v1.0.2 diagnostics, MUST_DO review
- SPI_Bus_Lock: serialize LCD + SD on shared SPI; pause display during SD
- SD_Init after WiFi scan; SD_IsReady gating; serial [SD]/[CAP] diagnostics
- MUST_DO_IMPROVEMENTS.md full firmware review backlog; README link
- Bump HANDSHAKE_FIRMWARE_VERSION to 1.0.2 (header)

Made-with: Cursor
2026-03-21 17:59:45 -07:00

65 lines
1.7 KiB
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;
int captureable = 0;
int offband_secure = 0;
for (int i = 0; i < MAX_NETWORKS; i++) {
if (networks[i].ssid.isEmpty()) break;
count++;
if (isCaptureable(i)) {
captureable++;
} else if (isSupportedCaptureAuth(networks[i].encryption) &&
!isSupportedCaptureChannel(networks[i].ch)) {
offband_secure++;
}
}
if (count <= 0) {
Ui_SetWifiStatus("No networks");
WiFi.scanDelete();
return;
}
static char status_text[64];
if (offband_secure > 0) {
snprintf(status_text, sizeof(status_text), "%d nets, %d tgt, %d off-band",
count, captureable, offband_secure);
} else {
snprintf(status_text, sizeof(status_text), "%d nets, %d tgt", count, captureable);
}
Ui_SetWifiStatus(status_text);
for (int i = 0; i < count; i++) {
char line[48];
const char* suffix = "";
if (isSupportedCaptureAuth(networks[i].encryption) &&
!isSupportedCaptureChannel(networks[i].ch)) {
suffix = " 5G+";
}
snprintf(line, sizeof(line), "%02d. %s ch%d%s",
i + 1,
networks[i].ssid.c_str(),
networks[i].ch,
suffix);
Ui_AddNetwork(line, i);
if (networks[i].handshake_captured) {
Ui_SetNetworkColor(i, lv_palette_main(LV_PALETTE_RED));
} else if (isCaptureable(i)) {
Ui_SetNetworkColor(i, lv_palette_main(LV_PALETTE_GREEN));
} else {
Ui_SetNetworkColor(i, lv_palette_main(LV_PALETTE_GREY));
}
}
WiFi.scanDelete();
}