AI语音智能体开发日记(二)解决 Wi-Fi 配网小程序的兼容性问题

📅 2026/8/5 11:07:19
AI语音智能体开发日记(二)解决 Wi-Fi 配网小程序的兼容性问题
相关链接AI语音智能体开发日记一如何为“小智”服务器启用并调试 License 功能-CSDN博客AI语音智能体开发日记二解决 Wi-Fi 配网小程序的兼容性问题-CSDN博客AI语音智能体开发日记三解决小程序配网中的蓝牙命名与MAC地址获取问题-CSDN博客AI语音智能体开发日记四在FreeRTOS中构建线程安全的UART2通信模块-CSDN博客AI语音智能体开发日记五为智能设备注入“灵魂”——详解MCP工具的注册与使用-CSDN博客AI语音智能体开发日记六为智能体注入旋律——七牛云音乐服务的接入与避坑指南-CSDN博客AI语音智能体开发日记七搞定功放控制——详解GX8006平台Mute电平配置-CSDN博客AI语音智能体开发日记八LVGL 8.4.0 移植实战——从零构建嵌入式GUI-CSDN博客AI语音智能体开发日记九LVGL 8.4.0 中文字体配置全攻略-CSDN博客AI语音智能体开发日记十LVGL 图标字体实战——从 FontAwesome 到屏幕显示-CSDN博客AI语音智能体开发日记十一为智能设备“声”临其境——详解音频资源自动化生成流程-CSDN博客AI语音智能体开发日记十二GX8006 固件定制指南——从双唤醒词到 UART 音频传输-CSDN博客AI语音智能体开发日记十三一次由寄存器溢出引发的串口波特率“玄学”问题排查-CSDN博客推荐链接AI语音智能体架构解析一系统架构全景图-CSDN博客AI语音智能体架构解析二大模型AI 的大脑-CSDN博客AI语音智能体架构解析三智控台指挥中心-CSDN博客AI语音智能体架构解析四AI 语音终端执行器官-CSDN博客AI语音智能体架构解析五小程序/APP遥控器-CSDN博客推荐链接AI 应用 图文 解说 (一) -- 百度智能云 实现 语音 聊天-CSDN博客AI 应用 图文 解说 (二) -- 百度智能云 ASR LIM TTS 语音AI助手程序 -CSDN博客开发手记解决 Wi-Fi 配网小程序的兼容性问题最近在折腾 项目时遇到了一个关于 Wi-Fi 配网小程序的兼容性问题记录一下排查和解决的过程。问题背景在使用最新拉取的lightning项目源码进行开发时发现默认的配网逻辑与预期不符。我们的目标是使用“小智云”服务并配合七牛的小程序进行 Wi-Fi 配网。但在默认配置下这一流程无法正常工作。问题定位经过对源码的分析问题出在project/ln_model_public/CMakeLists.txt这个文件的配置上。核心问题在于USE_BLUFI_CONFIG这个宏定义。在原始代码中它可能被默认开启导致编译时链接了 BLUFI (Bluetooth Wi-Fi Provisioning) 相关的配网模块而不是我们期望的、基于小程序的配网方案。解决方案解决这个问题的方法非常直接就是修改CMakeLists.txt文件显式地关闭 BLUFI 配网功能。定位文件打开项目中的project/ln_model_public/CMakeLists.txt文件。修改配置找到USE_BLUFI_CONFIG的定义并将其值设置为OFF。修改后的代码片段如下1# 关键修改将 USE_BLUFI_CONFIG 设置为 OFF 2set(USE_BLUFI_CONFIG OFF) 3 4if(USE_BLUFI_CONFIG) 5 # 如果开启会使用 BLUFI 相关的源文件进行配网 6 set(NET_CFG_SRC 7 app/blufi_netmgr.c 8 app/blufi_port.c 9 app/blufi.c 10 ) 11else() 12 # 如果关闭则会使用其他的配网方案例如我们需要的 usr_ble_app 13 set(NET_CFG_SRC 14 app/usr_ble_app.c 15 app/network/network_manager.c 16 ) 17endif()原理分析这个CMakeLists.txt文件通过一个if-else条件判断来控制编译哪些源文件当USE_BLUFI_CONFIG为ON时编译器会包含blufi_netmgr.c、blufi_port.c等文件启用的是蓝牙配网BLUFI模式。当USE_BLUFI_CONFIG为OFF时编译器会转而包含usr_ble_app.c和network_manager.c等文件。这正是我们使用“小智云”和七牛小程序进行配网所需要的模块。因此通过简单地修改这一个配置项我们就成功地将配网方案从 BLUFI 切换到了我们项目所需的、基于小程序的方案从而解决了配网失败的问题。这个小问题虽然解决起来很快但也提醒我们在集成不同 SDK 或方案时一定要仔细检查项目的编译配置确保启用了正确的功能模块。