6个员额/ 0个新员额
最后发表
车道
离线
最后看到:1周21小时前
加入:2015-07-14 14:21
关于APP_DFLT_ADV_DATA和广播名称的问题

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

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

设备:
Qinjiny_Dialog
离线
最后看到:3个月1个星期前
工作人员
加入:2016-11-01 05:47
你好

你好

只需要修改nvds.c中

.NVDS_TAG_DEVICE_NAME = " ABCDEFGHIJK ",

以及

.DEVICE_NAME_TAG_LEN = 11,

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

车道
离线
最后看到:1周21小时前
加入:2015-07-14 14:21
嗨对话框

嗨对话框
我尝试过,只修改这个只能显示出“ABCDEFGH”共8字节

Qinjiny_Dialog
离线
最后看到:3个月1个星期前
工作人员
加入:2016-11-01 05:47
广播数据长度的限制确实会导致名称无法完整放进广播信息

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

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

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

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

// .NVDS_TAG_DEVICE_NAME = "DA1458x",
.NVDS_TAG_DEVICE_NAME = "ABCDEFGHIJK", //修改

// device_name_tag_len = 7,
.DEVICE_NAME_TAG_LEN = 11, //修改

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

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

车道
离线
最后看到:1周21小时前
加入:2015-07-14 14:21
嗨对话框

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

Qinjiny_Dialog
离线
最后看到:3个月1个星期前
工作人员
加入:2016-11-01 05:47
使用DSPSv5.15的话

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