更改user_advertise_data发送制造数据

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
4个帖子/ 0新
最后一篇
Tmiranda.
离线
最后一次露面:2年9个月前
加入: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”\
ADV_TYPE_MANUFACTURER_SPECIFIC_DATA \

问题是我在蓝色壁虎应用程序上的输出不是我期待的。它归还给我一个
0xffff.
服务未知

代替
0x1234
制造商数据

但蓝色壁虎应用程序不会将其识别为制造数据。我已经上传了附件会话上的蓝色壁虎输出,这样你就可以看到发生了什么。

编辑:

如果我尝试将user_advertise_data更改为
#define user_advertise_data“\ xff”\
avd_type_manufacture _specific_data.

我收到错误,我的代码没有运行。

我目前的制造商特定数据如下所示:
#define app_ad_msd_亚博全网company_id(0x1111)
#define app_ad_msd_亚博全网company_id_len(2)
#define app_ad_msd_data_len(sizeof(uint16_t))

所以我试图用标签制造商数据在广告内容上显示0x1111。

附件:
设备:
PM_DIALOG.
离线
最后一次露面:2周2天前
职员
加入: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.
ADV_TYPE_MANUFACTURER_SPECIFIC_DATA \
MANUFACTURER_SPECIFIC_DATA

如果你想删除设备信息服务,我建议你使用以下代码块:
#define user_advertise_data adv_type_manufacture _specific_data_length.
ADV_TYPE_MANUFACTURER_SPECIFIC_DATA \
MANUFACTURER_SPECIFIC_DATA

在您发布的代码块中,0xFFFF是一个预期的结果,因为在User_Advertise_Data中,您已包含0xFF Double。ADV_TYPE_MANUFAFTURER_SPECIFID_DATA标志由APP_ADC_DATA.H中定义默认定义,其值为0xFF。

由于PM_dialog

Tmiranda.
离线
最后一次露面:2年9个月前
加入:2017-11-16 18:00
谢谢您的回复。

谢谢您的回复。

我目前无法使用任何代码块,因为它们返回给我错误。实际上,整个项目中没有“ADV_TYPE_MANUFACTURER_SPECIFIC_DATA_LENGTH”和“MANUFACTURER_SPECIFIC_DATA”。

我试图以这种方式改变它们:
Adv_type_manufactuRer_specific_data_length =我的制造商数据包含的字节数(例如,2个字节的“\ x02”)
制造商_specific_data = app_ad_msd_company_i亚博全网d.

但我仍然收到错误。另外,由于我在我的项目上显著地改变company_id(通亚博全网过改变mnf_data.company_id结构),我应该如何在USER_ADVERTISE_DATA定义中指出它?

另一个例子:
我正在尝试发送一个硬编码的制造商数据,但我无法在移动应用程序上收到它。这是代码:

#define user_advertise_data“\ x03”\(长度)
avd_type_manufacture _specific_data.
"\x07\x13"(硬编码的制造数据)

谢谢。

PM_DIALOG.
离线
最后一次露面:2周2天前
职员
加入: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结构的亚博全网正确成员中。

由于PM_dialog