你好,
我正在尝试在广告有效载荷中包含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
};
提前致谢。
设备:
嗨普拉斯坦娜
请阅读ble_gap_addata_set()上方的评论:
“......无要连接的可连接广告的最大广告数据长度为BLE_ADV_DATA_LEN_MAX字节(31减号3,保留为设置广告数据类型标志 - 这不得在使用此功能的广告数据中设置)... *
在您的情况下,广告数据超出了最大值,因此您也应该使用扫描响应数据。
您可以根据您的要求使用不同的UUID和制造商数据。
谢谢,PM_DIALOG.
亲爱的pm_dialog,
根据您所说的最大数据(31字节-3),我们仍有28个字节。在我的情况下,我使用了4字节的本地名称,3为制造商数据,2对于TX功率,17用于UUID,导致比允许的最大字节低26个字节。我不明白我如何超过最大有效载荷。
问候,
普拉斯坦娜
亲爱的pm_dialog,
我明白了什么是错的。计数有效载荷的字节数的一些混淆。现在很清楚。再次感谢 :)
问候,普拉萨纳
嗨普拉斯坦尼亚,
感谢您接受我的答案,很高兴您使其工作。如果您有任何其他后续问题,请培养一个新的论坛线程。
谢谢,PM_DIALOG.