feat(desktop): taskbar wifi quick card - scan list / password / connect via net api

- taskbar.c: wifi popup card anchored above tray net icon; net api slots read
  via kernel_api+0x48 hard offsets (UTSM net.h layout, connect@0x48)
- flow: icon click -> scan_start -> per-frame scan_count/result pull -> SSID
  list (security tag + rssi bars) -> open net direct connect / secured net
  password textbox (scan set 1 -> ascii, enter=connect) -> net_api.connect
- no wireless device in QEMU: graceful "not detected" status, no panic (by
  design: wireless dev absence is attest-exempt, not a stub)
- shell.c: handle_key routes to wifi_key when card open (modal)
- sdk kernel_api.h: mirror UTSM dkm_net_api layout (append connect/disconnect
  before device_stats, fixes slot offset mismatch)
- QEMU verified: card opens, renders, graceful no-device path (serial
  "[wifi] no wireless device")
This commit is contained in:
Linehu
2026-10-06 13:51:00 +08:00
parent bd098f51ec
commit b780a6b868
4 changed files with 360 additions and 3 deletions
+5 -1
View File
@@ -509,7 +509,11 @@ void draw_ctx_menu(void);
void taskbar_draw(void);
int taskbar_click(int mx, int my);
int taskbar_init(int (*read_to)(const char *, unsigned char *,
unsigned int, unsigned int *)); /* M2: logo 纹理 */
unsigned int, unsigned int *));
/* ---- taskbar.c WiFi 快捷卡片 ---- */
extern int g_wifi_open; /* 卡片是否展开 */
int wifi_key(u8 sc, int shift); /* shell.c handle_key 路由;1=已消费 */
/* M2: logo 纹理 */
extern int g_tb2_start_rect[4];
extern int g_tb2_tv_rect[4];
extern int g_tb2_app_rect[MAX_WINDOWS][4];