在发布有效负载时增加128位服务uuid

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
5个职位/ 0个新
最后发表
prasanna
离线
最后看到:4个月4天前
加入:2020-09-29 56
在发布有效负载时增加128位服务uuid

你好,

我试图在广告有效负载中包括128位服务UUID。我尝试在adv_data中包括像我对其他广告元素(如local)所做的那样。代码见附件。如果我试着运行这个,我根本无法检测到外围设备。首先,我想知道这是在广告有效负载中包含128位UUID的正确方法,还是需要使用ble_UUID.h中定义的函数。如果是这样,你能解释一下如何做到这一点(如果可能的话,用一个例子)。

代码

Static const uint8_t adv_data[] = {
0 x04 GAP_DATA_TYPE_SHORT_LOCAL_NAME
' P ', ' ', ' C ',
0x03, gap_data_type_manufacer_spec, 0,210,
0 x02 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
离线
最后看到:5天12小时前
工作人员
加入:2018-02-08 11:03
嗨prasanna

嗨prasanna

请阅读ble_gap_adv_data_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_MANUFACTURER_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_adv_data_set(sizeof(adv_data), adv_data, sizeof(scan_resp), scan_resp);

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

谢谢,PM_Dialog

prasanna
离线
最后看到:4个月4天前
加入:2020-09-29 56
亲爱的PM_Dialog,

亲爱的PM_Dialog,

根据你说的最大数据(31字节-3),我们仍然保留28字节。在我的情况下,我使用4Bytes用于本地名称,3用于制造商数据,2用于tx功率,17用于UUID,这导致比允许的最大字节低26字节。我不明白我怎么会超过最大有效载荷。

问候,

Prasanna

prasanna
离线
最后看到:4个月4天前
加入:2020-09-29 56
亲爱的PM_Dialog,

亲爱的PM_Dialog,

我知道什么地方不对。在计算有效负载的字节数时有一些混淆。现在它的清晰了。再次感谢

问候,Prasanna

PM_Dialog
离线
最后看到:5天12小时前
工作人员
加入:2018-02-08 11:03
嗨prasanna,

嗨prasanna,

谢谢你接受我的回答,很高兴你能做到。如果您有任何后续问题,请在论坛上提出新的话题。

谢谢,PM_Dialog