嗨,大家好。
目前我正在使用DA14585芯片进行原型。我正在尝试做一份灯架类型的原型,因此我现在只需要使用广告数据。
我的目标是通过这种方式在广告内容上发送制造数据,因此我可以使用另一个设备访问它。
目前,这就是我的user_advertise_data定义的样子:
#define user_advertise_data“\ x03”\
adv_type_complete_list_16bit_service_ids \
avad_uuid_device_information_service.
我想也要发送制造商数据,所以我改变了它
#define user_advertise_data“\ x03”\
adv_type_complete_list_16bit_service_ids \
“\ xff”\
avd_type_manufacture _specific_data.\
问题是我在蓝色壁虎应用程序上的输出不是我期待的。它归还给我一个
0xffff.
服务未知
代替
0x1234
制造商数据
但蓝色壁虎应用程序不会将其识别为制造数据。我已经上传了附件会话上的蓝色壁虎输出,这样你就可以看到发生了什么。
编辑:
如果我尝试将user_advertise_data更改为
#define user_advertise_data“\ xff”\
avd_type_manufacture _specific_data.
我收到错误,我的代码没有运行。
我目前的制造商特定数据如下所示:
#define app_ad_msd_雷电竞下载appcompany_id(0x1111)
#define app_ad_msd_雷电竞下载appcompany_id_len(2)
#define app_ad_msd_data_len(sizeof(uint16_t))
所以我试图用标签制造商数据在广告内容上显示0x1111。
嗨tmiranda,
广告字符串应具有特定格式,如。制造商特定数据是您可以包含广告数据的标志,但它应该具有此特定格式。因此,如果要包含设备信息服务和制造商数据,我建议您使用以下代码块:
#define user_advertise_data“\ x03”\
adv_type_complete_list_16bit_service_ids \
avd_uuid_device_information_service \
adv_type_manufactureer_specific_data_length.
avd_type_manufacture _specific_data.\
MANUFACTURER_SPECIFIC_DATA
如果你想要删除设备信息Service, I would suggest you to use the following block of code:
#define user_advertise_data adv_type_manufacture _specific_data_length.
avd_type_manufacture _specific_data.\
MANUFACTURER_SPECIFIC_DATA
在您发布的代码块中,0xFFFF是一个预期的结果,因为在User_Advertise_Data中,您已包含0xFF Double。ADV_TYPE_MANUFAFTURER_SPECIFID_DATA标志由APP_ADC_DATA.H中定义默认定义,其值为0xFF。
Thanks PM_dialog
Thanks for the reply.
I'm currently unable to use any of the blocks of codes because they're returning me errors. Actually, there's no "ADV_TYPE_MANUFACTURER_SPECIFIC_DATA_LENGTH" and "MANUFACTURER_SPECIFIC_DATA" in the whole project.
我试图以这种方式改变它们:
Adv_type_manufactuRer_specific_data_length =我的制造商数据包含的字节数(例如,2个字节的“\ x02”)
制造商_specific_data = app_ad_msd_company_i雷电竞下载appd.
But I'm still receiving errors. Also, since I'm changing the company_id dinamically on my project (by changing the mnf_data.company_id structure), how should I point this on the USER_ADVERTISE_DATA definition?
另一个例子:
我正在尝试发送一个硬编码的制造商数据,但我无法在移动应用程序上收到它。这是代码:
#define user_advertise_data“\ x03”\(长度)
avd_type_manufacture _specific_data.
"\x07\x13" (hardcoded manufacture data)
Thanks.
嗨tmiranda,
您能否在您在哪个项目上进行分类?这些代码块作为示例,以便向您解释您如何将制造商数据包含到广告字符串中。它们中的两个都在SDK的BLE_APP_BAREBONE项目中实现。预计无法使用任何一个,因为您没有正确的定义。
如果要将硬编码的制造商数据发送为第二块代码块,则应注释出在User_Barebone.c文件的User_App_Adv_start()函数中的app_add_ad_struct()。此结构将额外的0xFF附加到广告字符串中,因此您可以获得无效数据。在您的代码块中,您已忘记填写ADV_TYPE_MANUFAFTURER_SPECIFIC_DATA之后的“\”
BLE_APP_BAREBONE项目动态更改广告数据。广告消息是在App_easy_gap_undirected_advertise_start_create_msg()函数中创建的,然后在调用app_easy_gap_undirected_advertise_get_active()函数时保存在CMD stract中。此函数返回app_easy_gap_undirected_advertise_start_create_msg()。因此,如果要动态地更改Company_id,则应将其附加在CMD结构的雷电竞下载app正确成员中。
Thanks PM_dialog