如何从广告包中移除旗帜

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
5个职位/ 0个新
最后发表
anushiya
离线
最后看到:7个月2周以前
加入:2017-12-20 02:30
如何从广告包中移除旗帜

你好,

如何从广告包中移除旗帜?我处于不可连接模式,持续传输。

默认情况下,有效载荷的标志部分有:020106(大小2字节,类型- 01标志,标志值- 06)

相反,我希望广告网数据包为1FFF.......(size 1F = 31十进制,输入FF -制造商数据)

谢谢你!

Anushiya

设备:
PM_Dialog
离线
最后看到:2小时30分钟前
工作人员
加入:2018-02-08 11:03
嗨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

anushiya
离线
最后看到:7个月2周以前
加入:2017-12-20 02:30
在广告包里,

在广告包里,我不想发送旗子。我想使用所有31个字节的制造商数据。您上面提到的上述设置并不控制这些标志。

我处于不可连接模式,持续传输。

在user_config.h中有一个注释" Flags数据类型可能被省略"。我的问题是如何做到这一点。

* - ADV_NONCONN_IND:不可连接的无向广告事件。

* -用户定义的广告数据的最大长度为31字节。

* - Flags数据类型可以省略,因此用户可以使用所有的31个字节

*数据。

* -扫描响应数据为空。

anushiya
离线
最后看到:7个月2周以前
加入:2017-12-20 02:30
好的。在建议的答案中

好的。我已经找到了解决办法。在将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 . /

}

PM_Dialog
离线
最后看到:2小时30分钟前
工作人员
加入:2018-02-08 11:03
嗨anushiya,

嗨anushiya,

很高兴您讨论了您的问题,并感谢您对App_add_ad_struct()的指示。

谢谢,PM_Dialog