你好,
如何从广告包中移除旗帜?我处于不可连接模式,持续传输。
默认情况下,有效载荷的标志部分有:020106(大小2字节,类型- 01标志,标志值- 06)
相反,我希望广告网数据包为1FFF.......(size 1F = 31十进制,输入FF -制造商数据)
谢谢你!
Anushiya
嗨anushiya,
你能把你的问题说清楚吗?请查看SDK的ble_app_noncon示例,它位于6.0.10.511\projects\target_apps\misc路径下。app_easy_gap_non_connectable_advertise_get_active() API为不可连接的广告提供了正确的命令。请检查user_app_adv_start()回调函数。app_easy_gap_non_connectable_advertise_start_create_msg()创建的适当消息。广告数据将被分类为info.host。gapm_start_advertise_cmd结构的Adv_data成员。设备名称也将存储在广告字符串中。我建议您查看一下app_easy_gap_non_connectable_advertise_start_create_msg()的源代码。
您可以修改user_config.h头文件中的USER_ADVERTISE_DATA宏,以便存储广告数据中的信息。例如,如果你想把屋宇署的地址储存在广告资料中,你可以执行以下步骤:
广告字符串应该有特定的格式。您可以使用ADV_TYPE_MANUFACTURER_SPECIFIC_DATA标志并将MAC地址附加到广告字符串的制造商数据中。例如,假设您的BD地址是:x00 x01 x02 x03 x04 x05,那么您的广告数据将如下所示
#定义BLE_MAC_ADDR " \ x00 \ x01 \ x02 \ x03 \ x04 \ x05”
#定义BLE_MAC_ADDR_LEN " \ x07 "
#定义USER_ADVERTISE_DATA BLE_MAC_ADDR_LEN \
ADV_TYPE_MANUFACTURER_SPECIFIC_DATA \
BLE_MAC_ADDR
但是,您能否指出您想要填充到广告数据中?
谢谢,PM_Dialog
在广告包里,我不想发送旗子。我想使用所有31个字节的制造商数据。您上面提到的上述设置并不控制这些标志。
我处于不可连接模式,持续传输。
在user_config.h中有一个注释" Flags数据类型可能被省略"。我的问题是如何做到这一点。
* - ADV_NONCONN_IND:不可连接的无向广告事件。
* -用户定义的广告数据的最大长度为31字节。
* - Flags数据类型可以省略,因此用户可以使用所有的31个字节
*数据。
* -扫描响应数据为空。
好的。我已经找到了解决办法。在将ble_app_sleepmode设置为不可连接(连续传输)的建议答案中,
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-hardware-device-reference-designs/mnfdata-update#comment-24179
最后一个参数需要更改为零as
// adv_connectable是否可连接发布事件参数设置为0。
App_add_ad_struct (cmd, &mnf_data, sizeof(struct mnf_specific_data_ad_structure), 0);
空白user_app_adv_start(空白)
{
//安排下一次广告数据更新
app_adv_data_update_timer_used = app_easy_timer(app_adv_data_update_update to, adv_data_update_timer_cb);
struct gapm_start_advertise_cmd * cmd;
cmd = app_easy_gap_non_connectable_advertise_get_active ();// undirected -> non_connectable . /
//在初始广告或扫描响应数据中添加厂商数据,如果有足够的空间
//在广告期间设置延长睡眠和OTP副本
arch_set_extended_sleep(真正的);
app_easy_gap_non_connectable_advertise_start ();// undirected -> non_connectable . /
}
很高兴您讨论了您的问题,并感谢您对App_add_ad_struct()的指示。
嗨anushiya,
你能把你的问题说清楚吗?请查看SDK的ble_app_noncon示例,它位于6.0.10.511\projects\target_apps\misc路径下。app_easy_gap_non_connectable_advertise_get_active() API为不可连接的广告提供了正确的命令。请检查user_app_adv_start()回调函数。app_easy_gap_non_connectable_advertise_start_create_msg()创建的适当消息。广告数据将被分类为info.host。gapm_start_advertise_cmd结构的Adv_data成员。设备名称也将存储在广告字符串中。我建议您查看一下app_easy_gap_non_connectable_advertise_start_create_msg()的源代码。
您可以修改user_config.h头文件中的USER_ADVERTISE_DATA宏,以便存储广告数据中的信息。例如,如果你想把屋宇署的地址储存在广告资料中,你可以执行以下步骤:
广告字符串应该有特定的格式。您可以使用ADV_TYPE_MANUFACTURER_SPECIFIC_DATA标志并将MAC地址附加到广告字符串的制造商数据中。例如,假设您的BD地址是:x00 x01 x02 x03 x04 x05,那么您的广告数据将如下所示
#定义BLE_MAC_ADDR " \ x00 \ x01 \ x02 \ x03 \ x04 \ x05”
#定义BLE_MAC_ADDR_LEN " \ x07 "
#定义USER_ADVERTISE_DATA BLE_MAC_ADDR_LEN \
ADV_TYPE_MANUFACTURER_SPECIFIC_DATA \
BLE_MAC_ADDR
但是,您能否指出您想要填充到广告数据中?
谢谢,PM_Dialog
在广告包里,我不想发送旗子。我想使用所有31个字节的制造商数据。您上面提到的上述设置并不控制这些标志。
我处于不可连接模式,持续传输。
在user_config.h中有一个注释" Flags数据类型可能被省略"。我的问题是如何做到这一点。
* - ADV_NONCONN_IND:不可连接的无向广告事件。
* -用户定义的广告数据的最大长度为31字节。
* - Flags数据类型可以省略,因此用户可以使用所有的31个字节
*数据。
* -扫描响应数据为空。
好的。我已经找到了解决办法。在将ble_app_sleepmode设置为不可连接(连续传输)的建议答案中,
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-hardware-device-reference-designs/mnfdata-update#comment-24179
最后一个参数需要更改为零as
// adv_connectable是否可连接发布事件参数设置为0。
App_add_ad_struct (cmd, &mnf_data, sizeof(struct mnf_specific_data_ad_structure), 0);
空白user_app_adv_start(空白)
{
//安排下一次广告数据更新
app_adv_data_update_timer_used = app_easy_timer(app_adv_data_update_update to, adv_data_update_timer_cb);
struct gapm_start_advertise_cmd * cmd;
cmd = app_easy_gap_non_connectable_advertise_get_active ();// undirected -> non_connectable . /
//在初始广告或扫描响应数据中添加厂商数据,如果有足够的空间
// adv_connectable是否可连接发布事件参数设置为0。
App_add_ad_struct (cmd, &mnf_data, sizeof(struct mnf_specific_data_ad_structure), 0);
//在广告期间设置延长睡眠和OTP副本
arch_set_extended_sleep(真正的);
app_easy_gap_non_connectable_advertise_start ();// undirected -> non_connectable . /
}
嗨anushiya,
很高兴您讨论了您的问题,并感谢您对App_add_ad_struct()的指示。
谢谢,PM_Dialog