使用提供的DSPS设备演示,我试图添加SUOTA。
我跟随training_06_suota_example_v1.1_0.pdf,也是https://support.dialog-semiconductor.com/guide/faq-da1458x-software-peri..。
我已经编译了所有的东西,我还检查了prox报告程序的源代码进行比较。
但是,在所有内容编译和加载到测试之后,我不再看到对话框DSP应用程序中发布的DSP或在Suota应用程序中看到它。
该代码似乎在运行,因为我可以看到我写的正交编码器,因为我可以在不同的BLE扫描应用程序上看到它,并且可以连接并查看其广告数据。
我认为问题在于
#定义USER_ADVERTISE_DATA " \ x11 \ x07 \ xb7 \ x5c \ x49 \ xd2 \ x71 \ \ x04 \ xa3 \ x40 xa0 \ xb5 \ x35 \ x85 \ x3e \ xb0 \ x83 \ x07 " \
ADV_UUID_SUOTAR_SERVICE
我不认为我理解如何正确格式化USER_ADVERTISE_DATA。“\x11\x07\xb7\x5c\x49\xd2\x04\xa3\x40\x71\xa0\xb5\x35\x85\x3e\xb0\x83\x07”这是默认的DSPS字符串。
谢谢你的帮助!
设备:
我想我开始得到它,我编辑添加ADV_UUID_SUOTAR_SERVICE ("\xF5\xFE" /* SUOTAR Service */)在定义的末尾,并将大小从0x11更改为0x13
#定义USER_ADVERTISE_DATA “\ X13 \ X07 \ XB7 \ x5c \ X49 \ XD2 \ X04 \ XA3 \ X40 \ X71 \ XA0 \ XB5 \ X35 \ X85 \ x3e \ XB0 \ X83 \ X07 \ XF5 \ xFE如果”
我还添加了:
#define SPS_SERVICE_UUID {0xb7, 0x5c, 0x49, 0xd2, 0x04, 0xa3, 0x40, 0x71, 0xa0, 0xb5, 0x35, 0x85, 0x3e, 0xb0, 0x83, 0x07, 0xF5, 0xFE}
#define SPS_SERVER_TX_UUID {0xb8, 0x5c, 0x49, 0xd2, 0x04, 0xa3, 0x40, 0x71, 0xa0, 0xb5, 0x35, 0x85, 0x3e, 0xb0, 0x83, 0x07, 0xF5, 0xFE}
#define SPS_SERVER_RX_UUID {0xba, 0x5c, 0x49, 0xd2, 0x04, 0xa3, 0x40, 0x71, 0xa0, 0xb5, 0x35, 0x85, 0x3e, 0xb0, 0x83, 0x07, 0xF5, 0xFE}
#define SPS_FLOW_CTRL_UUID {0xb9, 0x5c, 0x49, 0xd2, 0x04, 0xa3, 0x40, 0x71, 0xa0, 0xb5, 0x35, 0x85, 0x3e, 0xb0, 0x83, 0x07, 0xF5, 0xFE}
但是,当我尝试编译时,我得到这些错误:
common\src\profiles\spss\user_sps_config.h(94):错误:#146:太多初始化值
static const struct att_uuid_128 sps_service = {
PS_SERVICE_UUID};
搜索进一步,我看到了ATT.H(ATT_UUID_128_LEN)的定义我向IT添加了2个字节并编译和工作。我可以在DSPS应用程序中看到设备。虽然没有关于Suota应用程序。
编辑:
这个应用看起来不稳定,它曾经在广告中出现过,但现在它只是在arch_system.c中的system_init()之后崩溃
更改ATT_UUID_128_LEN回到0x0010修复了崩溃问题。需要弄清楚如何添加Suota Adv String而不是现在崩溃......
...
嗨dlo,
SUOTA是一个配置文件,而DSPS是一个演示项目,所以为了将SUOTA功能添加到DSPS演示中,你需要做什么,除了OTA项目,在软件实现部分(如何将SUOTA配置文件添加到我的SDK应用程序)的FAQ中也有一些指南,用于5.0.3 SDK,这与5.0.4 SDK完全相同。你可以在支持网站的顶层菜单上找到FAQ部分,请检查下面的链接:
https://support.dialog-semiconductor.com/guide/frequently-asked-questions
从您在文章中提到的内容来看,在开始本教程中描述的过程之前,我认为您已经将SUOTA配置文件添加到DSPS项目中。你能分享一下你定义的广告数据吗?另外,如果你能说明一下你的问题是什么,那也会很有帮助。你可以有SUOTA,但你不知道如何添加到广告字符串?
谢谢,PM_Dialog
你好,
在启动SUOTA之前,我尝试过FAQ,但它似乎不适用于DA14586,因为它使用SUOTAR而不是SPOTAR,我没有在DSPS项目的SDK文件夹中找到SPOTAR文件。我在user config module.h文件中找到了#define,它已经包含在内了。因此,我在KEIL中将suotar文件添加到项目中,并在SDK示例中的代理报告程序中查看了suotar示例,以确保事情尽可能接近。
我认为SUOTAR是在代码中正确实现的,但不是广告的SUOTA应用程序看到。上面我试图解释的是我是如何投放广告的:
这是原始的DSPS广告字符串:
#define user_advertise_data“\ x11 \ x07 \ xb7 \ x5c \ x49 \ xd2 \ x04 \ xa3 \ x40 \ x71 \ xa0 \ xb5 \ x35 \ x85 \ x3e \ xb0 \ x83 \ x07”
这是修改后的,添加了ADV_UUID_SUOTAR_SERVICE
#定义USER_ADVERTISE_DATA “\ X13 \ X07 \ XB7 \ x5c \ X49 \ XD2 \ X04 \ XA3 \ X40 \ X71 \ XA0 \ XB5 \ X35 \ X85 \ x3e \ XB0 \ X83 \ X07 \ XF5 \ xFE如果”
编译此工作,但在应用程序中没有显示任何内容。
然后我也将它添加到:
#define SPS_SERVICE_UUID {0xb7, 0x5c, 0x49, 0xd2, 0x04, 0xa3, 0x40, 0x71, 0xa0, 0xb5, 0x35, 0x85, 0x3e, 0xb0, 0x83, 0x07, 0xF5, 0xFE}
#define SPS_SERVER_TX_UUID {0xb8, 0x5c, 0x49, 0xd2, 0x04, 0xa3, 0x40, 0x71, 0xa0, 0xb5, 0x35, 0x85, 0x3e, 0xb0, 0x83, 0x07, 0xF5, 0xFE}
#define SPS_SERVER_RX_UUID {0xba, 0x5c, 0x49, 0xd2, 0x04, 0xa3, 0x40, 0x71, 0xa0, 0xb5, 0x35, 0x85, 0x3e, 0xb0, 0x83, 0x07, 0xF5, 0xFE}
#define SPS_FLOW_CTRL_UUID {0xb9, 0x5c, 0x49, 0xd2, 0x04, 0xa3, 0x40, 0x71, 0xa0, 0xb5, 0x35, 0x85, 0x3e, 0xb0, 0x83, 0x07, 0xF5, 0xFE}
但是,当我尝试编译时,我得到这些错误:
common\src\profiles\spss\user_sps_config.h(94):错误:#146:太多初始化值
static const struct att_uuid_128 sps_service = {
PS_SERVICE_UUID};
进一步搜索,我看到在att.h (ATT_UUID_128_LEN)中有一个定义,我添加了2个字节到它,它编译。然而,在这之后,它崩溃时,我试图运行。调试器显示它在一个错误处理程序中。
附加是我的项目文件,而不包括SDK文件。
感谢您的支持!
嗨dlo,
Suota应用程序的关键信息是检查16bits服务UUID的完整列表,以查看它是0xFEF5,否则将筛选设备。
所以,请更新以下广告数据:
#定义USER_ADVERTISE_DATA”\ x11 \ x07 \ xb7 \ x5c \ x49 \ xd2 \ x71 \ \ x04 \ xa3 \ x40 xa0 \ xb5 \ x35 \ x85 \ x3e \ xb0 \ x83 \ x07 \x03 \ x03 \ xf5 \ xfe"
在发布数据中添加完整的16位服务UUID列表:“0x03, 0x03, 0xF5, 0xFE”。
谢谢,PM_Dialog
谢谢!这是非常丰富的。