CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
Loading...
Searching...
No Matches
WifiMenuUi.cpp File Reference

Wi-Fi UI flows for scanning, setup wizard, connection, and diagnostics. More...

#include "AppUiInternal.h"
#include "cdc_os_ui/WifiHandlers.h"
#include "cdc_hal/IWifiController.h"
#include "cdc_views/SliderView.h"
#include "cdc_views/RenderHelpers.h"
#include <cstdio>
#include <cstring>
#include <ctime>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_timer.h"
#include "esp_attr.h"

Go to the source code of this file.

Classes

struct  cdc::ui::WifiItem
 One scanned Wi-Fi network entry displayed in the scan list. More...

Namespaces

namespace  cdc
namespace  cdc::ui
 Centralized key-code constants for cdc_views.

Enumerations

enum  cdc::ui::WifiMainMenuIdx {
  cdc::ui::WIFI_IDX_CONNECT = 0 , cdc::ui::WIFI_IDX_SETUP , cdc::ui::WIFI_IDX_DETAILS , cdc::ui::WIFI_IDX_NTP_SYNC ,
  cdc::ui::WIFI_IDX_COUNT
}
 Fixed Wi-Fi menu and wizard index enums. More...
enum  cdc::ui::WifiAuthIdx {
  cdc::ui::WIFI_AUTH_WPA2 = 0 , cdc::ui::WIFI_AUTH_WPA_WPA2 , cdc::ui::WIFI_AUTH_WPA3 , cdc::ui::WIFI_AUTH_WPA ,
  cdc::ui::WIFI_AUTH_OPEN , cdc::ui::WIFI_AUTH_WEP , cdc::ui::WIFI_AUTH_COUNT
}
enum  cdc::ui::WifiIpModeIdx { cdc::ui::WIFI_IP_DHCP = 0 , cdc::ui::WIFI_IP_STATIC , cdc::ui::WIFI_IP_COUNT }

Functions

static void cdc::ui::onWifiMainSelect (uint16_t index, void *userData)
 Handles top-level Wi-Fi menu selection.
static void cdc::ui::wifiConnect ()
 Connects using saved Wi-Fi configuration.
static void cdc::ui::wifiSetup ()
 Starts Wi-Fi setup wizard flow.
static void cdc::ui::wifiShowDetails ()
 Shows Wi-Fi details/info screen.
static void cdc::ui::wifiDisconnect ()
 Disconnects active Wi-Fi session.
static void cdc::ui::wifiNtpSync ()
 Runs NTP synchronization via Wi-Fi.
static void cdc::ui::wifiStartScan ()
 Starts network scan and opens scan result list.
static void cdc::ui::onWifiScanSelect (uint16_t index, void *userData)
 Handles scan result selection.
static void cdc::ui::sortWifiScanResults ()
 Sorts scan results by RSSI descending.
static void cdc::ui::wifiShowAuthMenu ()
 Opens security/authentication selection menu.
static void cdc::ui::onWifiAuthSelect (uint16_t index, void *userData)
 Handles authentication mode selection.
static void cdc::ui::wifiShowPasswordInput ()
 Opens password input for selected network.
static void cdc::ui::onWifiPasswordEntered (const char *password)
 Stores entered password and continues wizard.
static void cdc::ui::wifiShowIpModeMenu ()
 Opens IP mode selection menu (DHCP/static).
static void cdc::ui::onWifiIpModeSelect (uint16_t index, void *userData)
 Handles IP mode selection.
static void cdc::ui::wifiShowIpInputField (const char *title, char *target, size_t targetSize, T9InputView::SaveCallback onComplete)
 Opens generic IP-related text input step.
static void cdc::ui::onWifiStaticIpEntered (const char *ip)
 Validates and stores static IP input.
static void cdc::ui::onWifiGatewayEntered (const char *gateway)
 Validates and stores gateway input.
static void cdc::ui::onWifiNetmaskEntered (const char *netmask)
 Validates and stores netmask input.
static void cdc::ui::wifiFinishSetup ()
 Persists wizard config and attempts connection.
static void cdc::ui::drawWifiLockIcon (Gdey029T94 *gfx, int x, int y, bool inverted)
 Draws padlock icon for secured Wi-Fi networks.
static bool cdc::ui::renderWifiRow (Gdey029T94 *gfx, const ListItem &item, uint16_t index, int x, int y, int w, int h, bool selected, void *userCtx)
 Custom list-row renderer for Wi-Fi scan entries.
void cdc::ui::rebuildWifiMainMenu ()
 Rebuilds top-level Wi-Fi menu items and dynamic module extensions.
void cdc::ui::showWifiMainMenu ()
 Shows top-level Wi-Fi menu and reloads stored configuration.

Variables

static constexpr uint8_t cdc::ui::WIFI_MAX_NETWORKS = hal::IWifiController::MAX_SCAN_RESULTS
 Wi-Fi menu size limits.
static constexpr uint8_t cdc::ui::WIFI_MENU_MAX_ITEMS = 16
static constexpr uint8_t cdc::ui::WIFI_MENU_FIXED_COUNT = WIFI_IDX_COUNT
 Static view pointers and wizard/scan state.
static ListViewcdc::ui::s_wifiMainMenu = nullptr
static ListViewcdc::ui::s_wifiScanView = nullptr
static ListViewcdc::ui::s_wifiAuthMenu = nullptr
static ListViewcdc::ui::s_wifiIpMenu = nullptr
static ListItem cdc::ui::s_wifiMainItems [WIFI_MENU_MAX_ITEMS]
static core::ModuleMenuItem cdc::ui::s_wifiModuleItems [12]
static uint8_t cdc::ui::s_wifiModuleCount = 0
static ListItem cdc::ui::s_wifiAuthItems [WIFI_AUTH_COUNT]
static ListItem cdc::ui::s_wifiIpItems [WIFI_IP_COUNT]
static ListItem cdc::ui::s_wifiScanItems [WIFI_MAX_NETWORKS+1]
static char cdc::ui::s_wifiManualLabel [48]
static WifiItem cdc::ui::s_wifiScanResults [WIFI_MAX_NETWORKS]
static uint8_t cdc::ui::s_wifiScanCount = 0
static const char * cdc::ui::s_wifiAuthLabels [WIFI_AUTH_COUNT]
static constexpr size_t cdc::ui::WIFI_DETAILS_BUF_SIZE = 512
 PSRAM-backed text buffer used for Wi-Fi details view.
static char cdc::ui::s_wifiDetailsBuf [WIFI_DETAILS_BUF_SIZE]

Detailed Description

Wi-Fi UI flows for scanning, setup wizard, connection, and diagnostics.

Definition in file WifiMenuUi.cpp.