在广告有效载荷中添加128位服务UUID

了解更多常见问题解答教程

5个帖子/ 0新
最后一篇
普拉斯坦娜
离线
最后一次露面:5天21小时前
加入:2020-09-29 11:56
在广告有效载荷中添加128位服务UUID

你好,

我正在尝试在广告有效载荷中包含128位服务UUID。我试图在adv_data中包含我为当地的其他广告元素所做的。请找到下面附带的代码。如果我尝试运行这个问题,我根本无法检测到外围设备。首先,我想知道这是在广告有效载荷中包含128位UUID的正确方法,还是我需要使用BLE_UUID.H中定义的函数。如果是这样,你能解释如何做到这一点(如果可能的话)。

代码

static const uint8_t adv_data [] = {
0x04,gap_data_type_short_local_name,
'p','a','c',
0x03,GAP_DATA_TYPE_MANUFAFFERR_SPEC,0,210,
0x02,GAP_DATA_TYPE_TX_POWER_LEVEL,3,
0x11,GAP_DATA_TYPE_UUID128_LIST,38,174,43,4,28,220,124,186,74,74,2,
189,7,77,231,35
};

提前致谢。

设备:
PM_DIALOG.
在线的
最后一次露面:13分50秒前
职员
加入:2018-02-08 11:03
嗨普拉斯坦娜

嗨普拉斯坦娜

请阅读ble_gap_addata_set()上方的评论:

“......无要连接的可连接广告的最大广告数据长度为BLE_ADV_DATA_LEN_MAX字节(31减号3,保留为设置广告数据类型标志 - 这不得在使用此功能的广告数据中设置)... *

在您的情况下,广告数据超出了最大值,因此您也应该使用扫描响应数据。

static const uint8_t adv_data [] = {0x04,gap_data_type_local_name,'p','a','c',0x03,gap_data_type_manufacture_spec,0x00,0x01,0x02,gap_data_type_tx_power_level,0x03,};static const uint8_t scan_resp [] = {0x11,GAP_DATA_TYPE_UUID128_LIST,0x11,0x22,0x33,0x44,0x00,0x08,0x54,0x8f,0x53,0x41,0x47,0x45,0x60,0xC6,0x56,0xAA,};/ *设置广告数据* / ble_gap_add_data_set(sizeof(adv_data),adv_data,sizeof(scan_resp),scan_rep);

您可以根据您的要求使用不同的UUID和制造商数据。

谢谢,PM_DIALOG.

普拉斯坦娜
离线
最后一次露面:5天21小时前
加入:2020-09-29 11:56
亲爱的pm_dialog,

亲爱的pm_dialog,

根据您所说的最大数据(31字节-3),我们仍有28个字节。在我的情况下,我使用了4字节的本地名称,3为制造商数据,2对于TX功率,17用于UUID,导致比允许的最大字节低26个字节。我不明白我如何超过最大有效载荷。

问候,

普拉斯坦娜

普拉斯坦娜
离线
最后一次露面:5天21小时前
加入:2020-09-29 11:56
亲爱的pm_dialog,

亲爱的pm_dialog,

我明白了什么是错的。计数有效载荷的字节数的一些混淆。现在很清楚。再次感谢 :)

问候,普拉萨纳

PM_DIALOG.
在线的
最后一次露面:13分50秒前
职员
加入:2018-02-08 11:03
嗨普拉斯坦尼亚,

嗨普拉斯坦尼亚,

感谢您接受我的答案,很高兴您使其工作。如果您有任何其他后续问题,请培养一个新的论坛线程。

谢谢,PM_DIALOG.