更改user_advertise_data发送制造数据

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
4个帖子/ 0新
最后一篇
Tmiranda.
离线
最后一次露面:2 years 6 months ago
加入:2017-11-16 18:00
更改user_advertise_data发送制造数据

嗨,大家好。
目前我正在使用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。

附件:
设备:
PM_DIALOG.
离线
最后一次露面:3天21小时前
职员
加入:2018-02-08 11:03
嗨tmiranda,

嗨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

Tmiranda.
离线
最后一次露面:2 years 6 months ago
加入:2017-11-16 18:00
Thanks for the reply.

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.

PM_DIALOG.
离线
最后一次露面:3天21小时前
职员
加入:2018-02-08 11:03
嗨tmiranda,

嗨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