您好,对话开销。
我有对话的可穿戴套件,我有很少的问题。
我想在广告数据包中宣传传感器数据。但是,正如我所知,广告数据包最多可达31个字节。
在可穿戴套件的当前固件中,广告它的名称和支持的服务。如果我将通过禁用服务并添加一些新数据来更改例如每100毫秒的广告adv_data - 它仍然使用adnfroid和iOS应用程序吗?我的意思是下一个
现在我们有:
static const uint8_t adv_data [] = {
0x0c,gap_data_type_local_name,'d','我','a','l','o','g','','w','r','b','l','l','l','l'
0x01
#if dws_ble_service.
+ 0x02
#endif / * dws_ble_service * /
#if hcs_ble_service.
+ 0x02
#endif / * hcs_ble_service * /
#if bas_ble_service.
+ 0x02
#endif / * bas_ble_service * /
#if hrs_ble_service.
+ 0x02
#endif / * hrs_ble_service * /
#if suota_ble_service.
+ 0x02
#endif / * suota_ble_service * /
那
gap_data_type_uuid16_list_inc,
#if dws_ble_service.
0xA7,0x2e,// = 0x2ea7(DWS UUID)
#endif / * dws_ble_service * /
#if bas_ble_service.
0x0f,0x18,// = 0x180f(BAS UUID)
#endif / * bas_ble_service * /
#if hcs_ble_service.
0xC5,0xC8,// = 0xC8C5(HCS UUID)
#endif / * hcs_ble_service * /
#if hrs_ble_service.
0x0d,0x18,// = 0x180d(HRS UUID)
#endif / * hrs_ble_service * /
#if suota_ble_service.
0xF5,0xFE,// = 0xFEF5(对话框uuid)
#endif / * suota_ble_service * /
};
100毫秒后,我想改变它:
static const uint8_t adv_data [] = {
0x0c,gap_data_type_local_name,'d','我','a','l','o','g','','w','r','b','l','l','l','l'
0x08,gap_data_type_manufacturer_spec,0xd2,0x00,ID_Sensor_1,Data1,Data2,Data3,Data4,
};
100毫秒后,我想改变它:
static const uint8_t adv_data [] = {
0x0c,gap_data_type_local_name,'d','我','a','l','o','g','','w','r','b','l','l','l','l'
0x08,gap_data_type_manufactureer_spec,0xd2,0x00,ID_Sensor_2,Data1,Data2,Data3,Data4,
};
依此类推,何时将在循环中宣传所有传感器值。
它会以这种方式工作吗?
嗨斯巴达,
广告PDU包含31个字节,但用户可以将最多28bytes追加到广告字符串中。根据蓝牙LE规范,最大广告数据长度为28个字节(31.保留31.保留31减3,以设置广告数据类型标志 - 不得在使用此功能的广告数据中设置。如果制造商特定数据无法拟合到广告数据包中,则可以使用扫描响应数据。主动扫描仪(通过扫描请求)可以从广告商请求高达31个字节的附加信息。为此,您可以将传感器数据升级到Scan_rsp_data []阵列中。应该使用API来修改广告数据,并且扫描响应数据是被调用为WRBL_TASK的BLE_GAP_ADV_DATA_SET()。在您的情况下,您可以将传感器数据附加到扫描响应数据中,或者在100ms时(我在计时器到期时假设)停止广告并更新广告数据。
还请阅读广告概念教程来自我们的支持网站。
谢谢,PM_DIALOG.
非常感谢快速回复。会尝试。
嗨斯巴达,
如果您需要进一步澄清,请告诉我,或者您是否有其他任何后续问题。
谢谢,PM_DIALOG.
所以我有麻烦,因为我有没有发送扫描请求的被动扫描仪。所以我的问题仍然是最新的