除了显示驱动,其余全部测试通过
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
#ifndef WIFI_MANAGER_H
|
||||
#define WIFI_MANAGER_H
|
||||
|
||||
#include "system/includes.h"
|
||||
|
||||
/*
|
||||
* wifi_manager
|
||||
*
|
||||
* 职责:
|
||||
* 1. 注册并直接处理 AC79NN SDK Wi-Fi 事件
|
||||
* 2. 维护 Wi-Fi 业务状态
|
||||
* 3. 管理 Wi-Fi 模块启动时机
|
||||
* 4. 启动阶段配置目标 STA 默认模式
|
||||
* 5. Wi-Fi 已启动后调用 wifi_sta 切换/连接指定 STA
|
||||
*
|
||||
* 当前不负责:
|
||||
* - SSID / password 持久化
|
||||
* - 自动重连
|
||||
* - BLE 配网
|
||||
* - MQTT
|
||||
* - 雷达业务
|
||||
*/
|
||||
|
||||
struct wifi_manager_status {
|
||||
u8 initialized; //管理层:清零WiFi状态值、ssid和password
|
||||
// 并注册回调函数
|
||||
u8 module_initialized; //驱动层
|
||||
u8 module_started;
|
||||
|
||||
u8 sta_started;
|
||||
u8 connecting;
|
||||
u8 sta_associated;
|
||||
u8 network_ready;
|
||||
};
|
||||
|
||||
/*
|
||||
* 初始化 manager 本身:
|
||||
* - 检查 Wi-Fi 尚未被其他代码启动
|
||||
* - 注册 SDK Wi-Fi callback
|
||||
* - 初始化 manager 软件状态
|
||||
*
|
||||
* 注意:
|
||||
* 本函数不调用 wifi_on()。
|
||||
* 第一次实际启动 Wi-Fi 由 wifi_manager_connect() 完成,
|
||||
* 这样 manager 可以在 WIFI_EVENT_MODULE_INIT 阶段
|
||||
* 先把本次目标 SSID/password 配成启动默认 STA。
|
||||
*/
|
||||
int wifi_manager_init(void);
|
||||
|
||||
/*
|
||||
* 请求连接指定 STA 网络。
|
||||
*
|
||||
* 第一次调用且 Wi-Fi 还未启动:
|
||||
* 保存目标凭据 -> wifi_on()
|
||||
* -> MODULE_INIT 中配置强制 STA 默认模式
|
||||
* -> SDK 自动进入 STA 并连接目标网络
|
||||
*
|
||||
* Wi-Fi 已经启动后再次调用:
|
||||
* 通过 wifi_sta_connect() 发起运行期 STA 连接/切换。
|
||||
*
|
||||
* return == 0 只表示请求已接受,
|
||||
* 真正可联网必须以 network_ready == 1 为准。
|
||||
*/
|
||||
int wifi_manager_connect(
|
||||
const char *ssid,
|
||||
const char *password
|
||||
);
|
||||
|
||||
/* 获取当前 Wi-Fi 状态快照。 */
|
||||
int wifi_manager_get_status(
|
||||
struct wifi_manager_status *out
|
||||
);
|
||||
|
||||
/* 只表示 802.11 已完成 STA -> AP 关联。 */
|
||||
int wifi_manager_is_sta_associated(void);
|
||||
|
||||
/* DHCP 成功后才返回 1;MQTT/TCP 应以此为准。 */
|
||||
int wifi_manager_is_network_ready(void);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user