feat(launcher, NETMGR_DESIGN §12): 设置页 WiFi/蓝牙子页迁 netmgr IPC + WiFi 新网络录入 UI
- wifi_page/bt_page 查询/操作改走 netmgrd IPC(netmgr_ipc.c 客户端: socket /usr/data/meow_net.sock,HELLO 鉴权 → WIFI_CTL/BT_CTL → RESULT)。 - WiFi 新网络录入:扫描结果点选 →(加密网络)SDK IME 输密码 → connect → 结果反馈 → 刷新已存网络;开放网络直连;当前连接详情含断开。 - 双轨过渡:netmgrd 不可达(NETMGR_UNREACH)回退 net.c 直连 wpa_cli/hciconfig (保功能),页面显示「网络管理服务未运行(直连模式)」降级占位(不崩)。 - BT 仅迁 on/off/status/paired(netmgrd BT_CTL 无连接/配对子命令,其余直连)。 - net.c net_wifi_scan 补 sec 字段(wifi_page.c 补 meow_net_t.sec)。 - 测试:+test_netmgr_ipc.c(假 socket 帧:扫描渲染/连接成功失败两态/降级占位)。
This commit is contained in:
1 parent
cd4e2c247f
commit
3b6a73ac10
8 files changed
+922
-54
No files matched your search
@@ -444,8 +444,10 @@ typedef struct {
|
||||
|
||||
|
||||
/* 已保存网络 / 扫描结果 / 蓝牙设备名称列表(用于下拉展示与连接动作)。
|
||||
* M2.76:追加 mac[24](AP BSSID / 蓝牙设备 MAC),供连接/配对/详情展示;无则空串。 */
|
||||
typedef struct { int id; char name[48]; char mac[24]; } meow_net_t;
|
||||
* M2.76:追加 mac[24](AP BSSID / 蓝牙设备 MAC),供连接/配对/详情展示;无则空串。
|
||||
* M6.0:追加 sec[16](WiFi 扫描结果安全类型:Open/WPA-PSK/...;无则空=未知),
|
||||
* 供「WiFi 新网络录入」判断是否需要弹 IME 输密码。 */
|
||||
typedef struct { int id; char name[48]; char mac[24]; char sec[16]; } meow_net_t;
|
||||
|
||||
|
||||
/* ================================================================== */
|
||||
@@ -781,6 +783,33 @@ void s_net_refresh(void);
|
||||
void s_net_sync_from_sys(void);
|
||||
void s_net_toggle_bt(int on);
|
||||
void s_net_toggle_wifi(int on);
|
||||
|
||||
/* ================= meow_netmgrd IPC 客户端(netmgr_ipc.c)=================
|
||||
* M6.0 设置页迁移(NETMGR_DESIGN §12):wifi_page/bt_page 的查询/操作统一走 netmgrd
|
||||
* IPC(socket /usr/data/meow_net.sock,env MEOW_NET_SOCK 覆盖)。netmgrd 是 WiFi/BT
|
||||
* 操作权威;其不可达(NETMGR_UNREACH)时回退 net.c 直连 wpa_cli/hciconfig(双轨保功能)。
|
||||
* 迁移注释:此封装是「设置页客户端→权威 IPC」的唯一入口,netmgrd 不可达才走直连回退。 */
|
||||
#define NETMGR_UNREACH (-1000) /* 传输/握手不可达(区别于 netmgrd MEOW_ERR_* 业务码) */
|
||||
int netmgr_ok(void); /* 1=netmgrd 可达(结果约 1s 缓存,节流) */
|
||||
int netmgr_wifi(const char *cmd, const char *arg, char *text, int tlen); /* 返回 code / NETMGR_UNREACH */
|
||||
int netmgr_bt(const char *cmd, const char *arg, char *text, int tlen);
|
||||
|
||||
/* WiFi(IPC 优先;网卡链路态 wlan_connected()/hci_powered() 仍读内核,属只读观测) */
|
||||
int nm_wifi_connected(void);
|
||||
void nm_wifi_ssid(char *buf, int len);
|
||||
int nm_wifi_info(char (*info)[48], int max);
|
||||
int nm_wifi_saved(meow_net_t *out, int max);
|
||||
int nm_wifi_scan(meow_net_t *out, int max);
|
||||
void nm_wifi_scan_trigger(void);
|
||||
int nm_wifi_connect(const char *ssid, const char *psk, char *err, int elen); /* MEOW_OK=成功 */
|
||||
int nm_wifi_disconnect(char *err, int elen);
|
||||
int nm_wifi_toggle(int on);
|
||||
|
||||
/* BT(IPC 优先:on/off/status/paired;连接/断开/配对/附近扫描 netmgrd 无子命令,仍直连) */
|
||||
int nm_bt_powered(void);
|
||||
int nm_bt_onoff(int on);
|
||||
int nm_bt_status(int *powered, int *paired_n, char *addr, int alen);
|
||||
int nm_bt_paired(meow_net_t *out, int max);
|
||||
const meow_ui_theme_t *s_ui_theme(void);
|
||||
void sb_blit_icon(int icon_idx, int x, uint32_t fg, int ink_h);
|
||||
int scan_apps(struct app apps[MAX_APPS]);
|
||||
|
||||
Reference in new issue
Block a user