用途:让 ESP-IDF 项目的 WiFi STA 配置对齐单仓统一模式,或在不改动任何文件的前提下审计偏差。
调用方式:audit <project-path> 执行只读偏差报告;apply <project-path> 迁移源码与 sdkconfig 到规范配置。<project-path> 相对仓库根目录,通常形如 packages/<domain>/<project-name>。规范基准为 packages/robocar/unified/main/wifi_manager.c。
主要能力:规范 STA 初始化代码(事件处理、重试上限 WIFI_MAXIMUM_RETRY=5、断连原因码日志)、规范 sdkconfig.defaults WiFi 配置块、CMakeLists.txt 的 REQUIRES(esp_wifi nvs_flash esp_netif esp_event)、凭据约定 credentials.h。采用 esp_wifi_set_country 设置 FI/1/13/POLICY_AUTO、WIFI_PS_NONE、threshold.authmode 为 WIFI_AUTH_WPA_WPA2_PSK、pmf_cfg {capable=true, required=false}、WIFI_FAST_SCAN、按信号排序连接。
审计流程:读取 main/main.c、main/wifi_manager.c、sdkconfig.defaults、credentials.h.example,与规范对比生成带 file:line 的偏差表并输出收敛所需片段,不修改文件。
应用流程:判断 WiFi 代码是否已自包含于 main.c,决定就地修改还是抽出 wifi_manager.{c,h};进行针对性编辑,更新 sdkconfig.defaults,确保 REQUIRES 四项,删除生成的 sdkconfig(ESP-IDF 会保留旧值并忽略新默认值),逐文件报告前后差异。
限制与例外:隐藏 SSID 用 WIFI_ALL_CHANNEL_SCAN 且 bssid_set=0;ESP32-S3 上运行 WIFI_MODE_AP 时保持 AMPDU 关闭。CONFIG_ESP_PHY_MAX_WIFI_TX_POWER 低于默认值属反模式,仅在 brownout 启用且有实测时才保留。