2026-04-27 00:42:26 +08:00
|
|
|
/*
|
|
|
|
|
* wifi_ota.h - WiFi OTA 服务器
|
|
|
|
|
* T4.1 - T4.5
|
|
|
|
|
*/
|
|
|
|
|
#ifndef WIFI_OTA_H
|
|
|
|
|
#define WIFI_OTA_H
|
|
|
|
|
|
|
|
|
|
#include "ota_relay.h"
|
|
|
|
|
|
|
|
|
|
// WiFi 模式: AP 或 STA
|
|
|
|
|
typedef enum {
|
|
|
|
|
OTA_WIFI_MODE_AP, // AP 模式(ESP32 作为热点)
|
|
|
|
|
OTA_WIFI_MODE_STA // STA 模式(连接路由器)
|
|
|
|
|
} ota_wifi_mode_t;
|
|
|
|
|
|
2026-05-05 04:48:31 +08:00
|
|
|
/**
|
|
|
|
|
* @brief WiFi OTA 任务入口,负责 HTTP 服务、上传处理和 OTA 触发流程。
|
|
|
|
|
* @param pvParameters FreeRTOS 任务参数,未使用。
|
|
|
|
|
*/
|
2026-04-27 00:42:26 +08:00
|
|
|
void wifi_ota_task(void *pvParameters);
|
|
|
|
|
|
2026-05-05 04:48:31 +08:00
|
|
|
// 在 app_main 早期执行 WiFi 初始化并尝试以 STA 模式联网。
|
|
|
|
|
/**
|
|
|
|
|
* @brief 返回 true 表示 STA 初始化已开始,false 表示后续应回退到 AP 模式。
|
|
|
|
|
* @return true STA 初始化中,false 需回退 AP。
|
|
|
|
|
*/
|
2026-05-05 03:28:44 +08:00
|
|
|
bool wifi_early_init(void);
|
|
|
|
|
|
2026-05-05 04:48:31 +08:00
|
|
|
/**
|
|
|
|
|
* @brief 在固件存储完成后通知 OTA 中继开始向 GD32 转发。
|
|
|
|
|
*/
|
2026-04-27 00:42:26 +08:00
|
|
|
void wifi_ota_signal_relay(void);
|
|
|
|
|
|
2026-05-05 04:48:31 +08:00
|
|
|
/**
|
|
|
|
|
* @brief 获取当前 WiFi 工作模式(AP 或 STA)。
|
|
|
|
|
* @return 当前 WiFi 模式枚举值。
|
|
|
|
|
*/
|
2026-04-27 00:42:26 +08:00
|
|
|
ota_wifi_mode_t wifi_get_mode(void);
|
|
|
|
|
|
2026-05-05 04:48:31 +08:00
|
|
|
/**
|
|
|
|
|
* @brief 获取当前 WiFi RSSI,未连接时通常返回无效/默认值。
|
|
|
|
|
* @return 信号强度(dBm),未连接时返回无效值。
|
|
|
|
|
*/
|
2026-04-27 00:42:26 +08:00
|
|
|
int8_t wifi_get_rssi(void);
|
|
|
|
|
|
2026-05-05 04:48:31 +08:00
|
|
|
/**
|
|
|
|
|
* @brief 判断当前 STA 模式下是否已经连接到上级 WiFi。
|
|
|
|
|
* @return true 已连接,false 未连接。
|
|
|
|
|
*/
|
2026-04-27 00:42:26 +08:00
|
|
|
bool wifi_is_connected(void);
|
|
|
|
|
|
|
|
|
|
#endif // WIFI_OTA_H
|