同问,也是很多redefinition报错。Halfsweet建议我升级sdk重试,我正在下载。如果你解决了这个问题,也请告诉我
这是环境变量PATH内容太长导致,可以看下build目录下生成的cconfig.h是不是下面这样的,如果不是就是因为PATH导致这个头文件没有生成对了。新版本做了些修改能缩短PATH,并且当gcc执行出错时会报错。
#ifdef BSP_BT_CONNECTION_MANAGER
bt_cm_set_profile_target(BT_CM_HID, BT_LINK_PHONE, 1);
#endif // BSP_BT_CONNECTION_MANAGER
我这是 2.4.0 的版本,编译时就报错,找不到 BT_LINK_PHONE
定义
在SiFli-SDK\middleware\bluetooth\include\bt_connection_manager.h里,这样是没配置好吧
主分支的源码也一样没有定义,而且这里还有个子仓库,是不是没有及时同步?
具体是哪个commit的报错呢,建议升级到release/v2.4最新节点再试试,之前的可能存在bluetooth还没更新的情况
切换之后重新 install ,再回到 bt/pan 的示例,就没有编译出错了。但是示例的 main
并没有 引入 wheather.c
,以至于readme
的效果不一致。所以我连接设备之后,输入 weather 命令 并没有效果。
最后我是继续扩展它的 pan_cmd
方法,才看到日志输出,整个 PAN 协议才算验证完成,建议补上:
else if (strcmp(argv[1], "weather") == 0)
{
extern char *get_weather(void); // 声明 get_weather,如果已在头文件中引入可以省略
char *data = get_weather();
if (data)
{
rt_kprintf("[PAN] Weather data: %s\n", data);
rt_free(data); // 如果 get_weather() 是 malloc 出来的
}
else
{
rt_kprintf("[PAN] Failed to get weather.\n");
}
}
可以详细说说解决方法吗
不太可能吧
src目录下的SConscript是glob所有文件的,weather.c会加入编译的,我们发布也是测试过天气功能的
SiFli-SDK/example/bt/pan/src/SConscript at v2.4.1 · OpenSiFli/SiFli-SDK
import os
from building import *
# Add source code
src = Glob('*.c')
group = DefineGroup('Applications', src, depend = [''])
Return('group')
当然是加入编译了,我说的是并没有执行入口,还有 doubao.c 也是一样没有触发,作为 PAN 的示例没有联网就没有意义
__ROM_USED void doubao(int argc, char **argv)
{
webclient_post_request();
}
MSH_CMD_EXPORT(doubao, doubao AI application)
请参考doubao.c里面的扩展呢
MSH_CMD_EXPORT 是扩展的fish命令
”doubao“ 是关键字,注意编译的时候确认doubao.c 编译成功呢