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
+3
View File
@@ -478,6 +478,9 @@ int handle_key(u8 sc) {
if (sc == 0xB8) { g_alt = 0; return 0; }
if (sc & 0x80) { g_e0 = 0; return 0; } /* 其他释放码忽略 */
/* WiFi 快捷卡片(模态:Esc 收起 / 密码模式接管输入) */
if (g_wifi_open) return wifi_key(sc, g_shift);
/* Esc:关闭 overlay */
if (sc == 0x01) {
if (g_taskview) { g_taskview = 0; return 1; }