为什么DA1453传感器软件狗广告UUID和服务UUID不一样

了解更多常见问题教程

6个岗位/ 0个新岗位
最后发表
vishnuatdialog
离线
最后看到:4个月2周前
加入:2017-07-25 07:44
为什么DA1453传感器软件狗广告UUID和服务UUID不一样

亲爱的对话框
我已经将DA14583传感器软件狗连接到nrfconnect,我发现它有广告16位UUID和服务128位服务UUID,为什么会这样?
当我试图将DA14583传感器软件狗模块连接到ESP32模块时,由于UUID不同,我无法连接。我总是导致ESP_GATT_ERROR和状态133。ESP32输出控制台连接失败。
你能建议其他解决这个问题的方法吗?
我如何不同地配置此服务uuid到ESP32模块,然后能够连接我们的传感器加密狗?

谢谢你!
D.Vishnu

设备:
MT_dialog
离线
最后看到:1个月2个星期前
工作人员
加入:2015-06-08 34
嗨vishnuatdialog,

嗨vishnuatdialog,

你说为什么是什么意思?可穿戴服务是一个128位服务,因为它是自定义服务而不是SIG定义的服务,因此广告字符串适合28字节的数据。因为我们还想发布一些额外的数据,比如设备的名称和一些额外的制造商数据,所以我们只将设备实现的实际自定义服务的前两个字节作为服务发布。

关于你正在使用的ESP32模块,我不认为因为设备发布了不同的UUID,而实际的服务是128位,你会得到断开连接的问题,显然你正在使用的模块中有其他问题。无论如何,如果你认为广告数据导致了你所经历的问题,你可以通过user_config.h文件中的USER_ADVERTISE_DATA宏轻松更改物联网参考设计的广告字符串。关于你正在使用的模块,我不能给你任何建议。

由于MT_dialog

vishnuatdialog
离线
最后看到:4个月2周前
加入:2017-07-25 07:44
你好,对话框中,

你好,对话框中,
正如我所看到的user_config.h文件在USER_ADVERTISE_DATA它被定义为
#定义DEFAULT_USER_ADVERTISE_DATA ("\x03"\
ADV_TYPE_COMPLETE_LIST_16BIT_SERVICE_IDS \
ADV_UUID_DEVICE_INFORMATION_SERVICE \
\ \ x11
ADV_TYPE_COMPLETE_LIST_128BIT_SERVICE_IDS \
“\ x2F \ x2A \ x93 \ xA6 \ xBD \ xD8 \ x41 \ x52 \ xAC \ x0B以\ \ . xC6 \表示就是x10 \ x99 \ x2E xFE \ xED”)
#定义USER_ADVERTISE_DATA "\x03\x02\xA7\x2E"

如果我想使用广告128位服务UUID,我可以像这样做更改吗?
#定义USER_ADVERTISE_DATA "\x2F\x2A\x93\xA6\xBD\xD8\x41\x52\xAC\x0B\x10\x99\x2E\xC6\xFE\xED\x02\xA7\x2E"

MT_dialog
离线
最后看到:1个月2个星期前
工作人员
加入:2015-06-08 34
嗨vishuatdialog,

嗨vishuatdialog,

的定义DEFAULT_USER_ADVERTISE_DATA你提到的是没有被演示使用,设备使用的数据和放置在广告字符串是USER_ADVERTISE_DATA。在该定义中放置消息将迫使设备使用该定义,yes将改变其广告内容,但请注意,为了使消息有效并放置在广告字符串中,您必须遵循BLE规范定义的规则,以便正确地宣传支持的128位UUID。所以你必须在USER_ADVERTISE_DATA定义中放置的是:

("\x11"\ //广告字符串的长度。

完整列表服务的ADV_TYPE_COMPLETE_LIST_128BIT_SERVICE_IDS\ //标记或不完整标记取决于应用程序。

"\x2F\x2A\x93\xA6\xBD\xD8\x41\x52\xAC\x0B\x10\x99\x2E\xC6\xFE\xED") //实际的UUID广告字符串

由于MT_dialog

SeunDae金
离线
最后看到:11个月前2周
加入:2016-05-27 06:13
MT_dialog先生;

MT_dialog先生;

如何更改DSPS用户广告数据包?

正如dsps_device和dsps_host..
#定义USER_ADVERTISE_DATA "\x11\x07\xb7\x5c\x49\xd2\x04\xa3\x40\x71\xa0\xb5\x35\x85\x3e\xb0\x83\x07"

结果是
我想改变dsps_device和dsps_host..像这样
#define USER_ADVERTISE_DATA "\xFF\x07\xb7\x5c\x49\xd2\x04\xa3\x40\x71\xa0\xb5\x35\x85\x3e\xb0\x83\x07"

如果我们对其进行闭式ble扫描,则主机扫描并相互连接。

请告诉我。

MT_dialog
离线
最后看到:1个月2个星期前
工作人员
加入:2015-06-08 34
嗨,SeunDae Kim,

嗨,SeunDae Kim,

我不太明白这个问题,DSPS检查正在发布广告的外围设备的广告字符串,并在开始连接过程之前验证外围设备在其广告DSPS配置文件的UUID,如果你改变DSPS外围设备的广告字符串,你也必须改变主机发出连接请求的user_on_adv_report_ind()中的条件。如果你想改变你提到的DSPS设备的广告字符串,你可以复制和粘贴你提到的字符串,但在0xFF(制造商数据)之前,你还必须放置这些数据的长度,因此字符串应该是:

#定义USER_ADVERTISE_DATA "\x12\xFF\x07\xb7\x5c\x49\xd2\x04\xa3\x40\x71\xa0\xb5\x35\x85\x3e\xb0\x83\x07"

但是你必须删除设备的名称,因为SDK会把数据放在广告字符串中,然后开始放置设备的名称,所以它也会放置0xFF标签,你不能在广告字符串上有两个制造商数据标签。

由于MT_dialog