你好,
如何从广告数据包中删除标志?我处于不可连接的模式,不断传输。
默认情况下,有效负载的标志部分具有:020106(大小2字节,类型 - 01标志,标志值 - 06)
相反,我希望广告消息包是1FFF .......(大小1F = 31以十进制,键入FF - 制造商数据)
谢谢,
Anushiya.
嗨Anushiya,
你能澄清你的问题吗?请检查位于6.0.10.511 \ projects \ target_apps \ misc路径下的SDK的BLE_APP_NONCON示例。app_easy_gap_non_connectable_advertise_get_active()API对不可连接的广告进行了正确的命令。请检查user_app_adv_start()回调函数。由app_easy_gap_non_connectable_advertise_start_create_msg()创建的相应邮件。广告数据将被排序到GapM_Start_Advertise_cmd结构的info.host.adv_data成员。设备名称也将存储在广告字符串中。我会建议你看看app_easy_gap_non_connectable_advertise_start_create_msg()的源代码。
您可以在user_config.h标题文件中修改user_advertise_data宏,以便将信息存储在广告数据中。例如,如果您想将BD地址存储到广告数据中,您可以执行以下操作:
广告字符串应具有特定格式。您可以使用ADV_TYPE_MANUFAFTURER_SPECIFIC_DATA标志并将MAC地址附加到广告字符串的制造商数据中。例如让我们说你的bd地址是:x00 x01 x02 x03 x04 x05所以你的广告数据将如下
#define ble_mac_addr“\ x00 \ x01 \ x02 \ x03 \ x04 \ x05”
#define ble_mac_addr_len“\ x07”
#define user_advertise_data ble_mac_addr_len \
adv_type_manufacturer_specific_data \
ble_mac_addr.
但是,请您能说明您想要填充广告数据的内容吗?
谢谢,PM_DIALOG.
在广告数据包中,我不想发送标志。我想使用所有31个字节的制造商数据。上面提到的上面的设置不控制标志。
我处于不可连接的模式,不断传输。
user_config.h具有注释“可以省略标志数据类型”。我该怎么做是我的问题。
* - ADV_NONCONN_IND:不可连接的无向广告活动。
* - 用户定义的广告数据的最大长度应为31个字节。
* - 可以省略标志数据类型,因此用户可以使用所有31个字节
* 数据。
* - 扫描响应数据应为空。
好的。我找到了解决方案。在饱受BLE_APP_SLEEPMODE到不可连接的答案(持续发送),
https://support.dialog-seminile.com/forums/post/dialog-smartbond-bluetooth-low-energy-%2%80%93-hardware-device-reference-designs/mnfdata-update#Comment-24179
最后一个参数需要更改为零
// ADV_CONNECTABLE可连接广告活动或不参数设置为0。
app_add_ad_struct(cmd,&mnf_data,sizeof(struct mnf_specific_data_ad_structure),0);
void user_app_adv_start(void)
{
//安排下一个广告数据更新
app_add_data_update_timer_used = app_easy_timer(app_add_data_update_to,avd_data_update_timer_cb);
struct gapm_start_advertise_cmd * cmd;
cmd = app_easy_gap_non_connectable_advertise_get_active();//无向 - > non_connectable
//如果有足够的空间,将制造商数据添加到初始广告或扫描响应数据
//在广告期间使用OTP副本设置延长睡眠
ARCH_SET_EXTENDED_SLEEP(TRUE);
app_easy_gap_non_connectable_advertise_start();//无向 - > non_connectable
}
很高兴您解决了问题,并感谢您关于app_add_ad_struct()的提示。
嗨Anushiya,
你能澄清你的问题吗?请检查位于6.0.10.511 \ projects \ target_apps \ misc路径下的SDK的BLE_APP_NONCON示例。app_easy_gap_non_connectable_advertise_get_active()API对不可连接的广告进行了正确的命令。请检查user_app_adv_start()回调函数。由app_easy_gap_non_connectable_advertise_start_create_msg()创建的相应邮件。广告数据将被排序到GapM_Start_Advertise_cmd结构的info.host.adv_data成员。设备名称也将存储在广告字符串中。我会建议你看看app_easy_gap_non_connectable_advertise_start_create_msg()的源代码。
您可以在user_config.h标题文件中修改user_advertise_data宏,以便将信息存储在广告数据中。例如,如果您想将BD地址存储到广告数据中,您可以执行以下操作:
广告字符串应具有特定格式。您可以使用ADV_TYPE_MANUFAFTURER_SPECIFIC_DATA标志并将MAC地址附加到广告字符串的制造商数据中。例如让我们说你的bd地址是:x00 x01 x02 x03 x04 x05所以你的广告数据将如下
#define ble_mac_addr“\ x00 \ x01 \ x02 \ x03 \ x04 \ x05”
#define ble_mac_addr_len“\ x07”
#define user_advertise_data ble_mac_addr_len \
adv_type_manufacturer_specific_data \
ble_mac_addr.
但是,请您能说明您想要填充广告数据的内容吗?
谢谢,PM_DIALOG.
在广告数据包中,我不想发送标志。我想使用所有31个字节的制造商数据。上面提到的上面的设置不控制标志。
我处于不可连接的模式,不断传输。
user_config.h具有注释“可以省略标志数据类型”。我该怎么做是我的问题。
* - ADV_NONCONN_IND:不可连接的无向广告活动。
* - 用户定义的广告数据的最大长度应为31个字节。
* - 可以省略标志数据类型,因此用户可以使用所有31个字节
* 数据。
* - 扫描响应数据应为空。
好的。我找到了解决方案。在饱受BLE_APP_SLEEPMODE到不可连接的答案(持续发送),
https://support.dialog-seminile.com/forums/post/dialog-smartbond-bluetooth-low-energy-%2%80%93-hardware-device-reference-designs/mnfdata-update#Comment-24179
最后一个参数需要更改为零
// ADV_CONNECTABLE可连接广告活动或不参数设置为0。
app_add_ad_struct(cmd,&mnf_data,sizeof(struct mnf_specific_data_ad_structure),0);
void user_app_adv_start(void)
{
//安排下一个广告数据更新
app_add_data_update_timer_used = app_easy_timer(app_add_data_update_to,avd_data_update_timer_cb);
struct gapm_start_advertise_cmd * cmd;
cmd = app_easy_gap_non_connectable_advertise_get_active();//无向 - > 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(TRUE);
app_easy_gap_non_connectable_advertise_start();//无向 - > non_connectable
}
嗨Anushiya,
很高兴您解决了问题,并感谢您关于app_add_ad_struct()的提示。
谢谢,PM_DIALOG.