6 posts / 0 new
Last post
Lane
Offline
Last seen:1 week 10 hours ago
加入:2015-07-14 14:21
关于APP_DFLT_ADV_DATA和广播名称的问题

Hi Dialog:
DSPS 3.15上修改广播名称,但名称长度无法超过8个字节,便按照这个方式修改
https://support.dialog-semiconductor.com/increase-length-name-during-adv...
将app_sps_device_project.h中的
#define APP_DFLT_ADV_DATA "\x11\x07\xb7\x5c\x49\xd2\x04\xa3\x40\x71\xa0\xb5\x35\x85\x3e\xb0\x83\x07"
#define APP_DFLT_ADV_DATA_LEN (18)
变成
#define APP_DFLT_ADV_DATA "\x04\xFFHi!"
#define APP_DFLT_ADV_DATA_LEN (5)

但在例程上修改,如果APP_DFLT_ADV_DATA的字节数量APP_DFLT_ADV_DATA_LEN超过10byte,整个程序便无法运行,现在我需要广播名字:ABCDEFGHIJK,显示出来的共11byte,且 APP_DFLT_ADV_DATA保持原来的
#define APP_DFLT_ADV_DATA "\x11\x07\xb7\x5c\x49\xd2\x04\xa3\x40\x71\xa0\xb5\x35\x85\x3e\xb0\x83\x07"
#define APP_DFLT_ADV_DATA_LEN (18)
能否实现?

Device:
Qinjiny_Dialog
Offline
Last seen:3 months 1 week ago
Staff
加入:2016-11-01 05:47
你好

你好

只需要修改nvds.c中

.NVDS_TAG_DEVICE_NAME = "ABCDEFGHIJK",

以及

.DEVICE_NAME_TAG_LEN = 11,

就可以了,其他地方不需要修改

Lane
Offline
Last seen:1 week 10 hours ago
加入:2015-07-14 14:21
Hi Dialog

Hi Dialog
我尝试过,只修改这个只能显示出“ABCDEFGH”共8byte

Qinjiny_Dialog
Offline
Last seen:3 months 1 week ago
Staff
加入:2016-11-01 05:47
广播数据长度的限制确实会导致名称无法完整放进广播信息

广播数据长度的限制确实会导致名称无法完整放进广播信息,但是连接过一次以后就能够正确显示完整的名称了。

如果一定要确保广播数据里也显示完整的设备名,那么必须如你链接的帖子里所说的一样,缩短原有的广播数据或者缩短你的设备名字。

我这边不管是只修改NVDS里的设备名+长度还是同时修改nvds里的设备名以及广播信息都是可以正常广播的,修改缩短了广播信息后设备名在广播里也能完整显示了。

以下是我基于DSPSv3做的所有修改,实测是可以正常广播的:

// .NVDS_TAG_DEVICE_NAME = "DA1458x",
.NVDS_TAG_DEVICE_NAME = "ABCDEFGHIJK", //modified

// .DEVICE_NAME_TAG_LEN = 7,
.DEVICE_NAME_TAG_LEN = 11, //modified

/ / # define APP_DFLT_ADV_DATA \ x11 \ x07 \ xb7 \”x5c\x49\xd2\x04\xa3\x40\x71\xa0\xb5\x35\x85\x3e\xb0\x83\x07"
//#define APP_DFLT_ADV_DATA_LEN (18)
#define APP_DFLT_ADV_DATA "\x04\xFFHi!" //modified
#define APP_DFLT_ADV_DATA_LEN (5) //modified

如果你无法正常广播,还请检查一下做了哪些其他修改。另外使用Keil编译并下载程序,点击运行后可以退出debug模式,这样广播会正常一些

Lane
Offline
Last seen:1 week 10 hours ago
加入:2015-07-14 14:21
Hi Dialog

Hi Dialog
好的,明白了,我这边要做的工程要求有设备名字有11byte,但同时在广播数据包中包含完整的UUID,以便扫描时使用,如果必须要缩短一个那我再调整下,谢谢

Qinjiny_Dialog
Offline
Last seen:3 months 1 week ago
Staff
加入:2016-11-01 05:47
使用DSPSv5.15的话

使用DSPSv5.15的话,如果名字长度放不进广播数据里那么会加到scan response里面,应该可以满足你的需要,但是这个方式也有缺点,就是只有active scan才能读到scan response, passive scan是没有办法读到的,也就是说拿不到设备名。不管使用什么方式,连接一次以后都会更新到完整正确的设备名