在飞行中更改广告数据

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在进入我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-semicondiondiondumon.com/support.。我们将在未来几天修复错误/优化搜索和标记。
6个帖子/ 0新
最后一篇文章
ANT777222
离线
最后一次露面:8个月2周前
加入:2019-07-11 17:03
在飞行中更改广告数据

我正在使用无附带的榜样进行开发。我在user_cmd_interpreter中有一个函数,解析为'sn'的UART,并将将本地名称更改为SN123456中的内容。我所拥有的问题是我必须连接,断开和重新连接要更新的名称。我尝试过calling user_advertise(),但这不起作用。我已阅读App_easy_gap_update_add_data()需要调用。我已经搜索了该函数,我找不到ble_app_barebone文件。我的两个问题都会调用app_easy_gap_update_add_data()解决我拥有的问题,以及app_easy_gap_update_add_data()的代码是什么。

设备:
PM_DIALOG.
离线
最后一次露面:2周20小时前
职员
加入:2018-02-08 11:03
嗨Ant777222,

嗨Ant777222,

谢谢你在线问题。只是为了确保无附加版本:DA14580是DA14580所用版本的无附件_v_5.380.5.4.0

>>>“将当地名称更改为SN123456的形式”

你的意思是ble设备名称吗?如果是,则设备名称被定义为user_device_name宏(ser_config_580.h标题文件),然后将存储到nvds_data_storage结构的nvds_tag_device_name项中。

因此,设备的名称是通过NVDS_TAG_DEVICE_NAME提供的,这是输入广告字符串中的内容。为了改变它,您将必须自定义广告功能。undowed_advertise_start_create_msg()是填充消息参数的函数,默认从nvds_tag_device_name中的名称占用。您可以在SDK中保留该值空白使用App_easy_gap_undirected_advertise_get_active()以包含所有相应的值,然后针对保存广告字符串的成员来分配消息,并应用您想要的名称。此外,您必须使用0x09闪存标记名称,以便其他设备知道这是设备的名称。

如果您正在开始新的设计/项目,我们将强烈建议从DA14531或DA14585 / 586产品和我们最新的SDK6.0.14开始,因为它更加提高。亚博电竞菠菜我们有很多代码示例和改进的文档,还有软件路线图支持。DA14580产品系列和SDK5没有软件路线图支持。

请查看DA14531:

https://www.dialog-seminile.com/produ亚博电竞菠菜cts/connectivity/bluetooth-low-energy/products/da14531.

有更多完成的教程来开发自定义配置文件 - 在DA14531和DA14585 / DA14586设备上创建自定义GATT配置文件特性。

我们还有一个DA14531模块,即DA14531 SmartBond Tiny™模块!它的尺寸非常小,功率非常低。按照下面的链接查找模块的数据表,文档和HW抵押品:

https://www.dialog-seminile.com/produ亚博电竞菠菜cts/bluetooth-module-da14531-smartbond-tiny.

还有参考设计,您将帮助您减少开发阶段,因为您不需要花这么多时间开发应用程序代码。

无代表

无附带允许您快速使用具有一组命令的无线物联网应用程序。亚博国际官网平台网址Dodeless在命令平台上允许通过BLE控制本地UART连接的设备以​​及远程设备。您可以创建简单的演示/应用程序/应用程序/概念证明,而无需任亚博国际官网平台网址何代码开发或构建您在顶部的应用程序!

https://www.dialog-seminile.com/produ亚博电竞菠菜cts/smartbond-ododely-commands.

对话框串行端口服务(DSP)

DSP模拟串行电缆通信。它为RS-232连接提供了简单的替代品,包括通过蓝牙低能量的熟悉的软件流控制逻辑。SPS软件分发包括应用程序和配置文件源代码,并支持间隙中央/外设角色。

https://www.dialog-seminile.com/produ亚博电竞菠菜cts/dialog-serial-port-service-dsps.

谢谢,PM_DIALOG.

ANT777222
离线
最后一次露面:8个月2周前
加入:2019-07-11 17:03
我正在改变gap_ad_type

这是我正在使用的版本。我正在更改GAP_AD_TYPE_COMPLETE_NAME和GAP_AD_TYPE_MANU_SPECIFIC_DATA,我在USR_CMD_INTERPRER中拥有以下代码

否则if((input_cmd_type == at_cmd_sn)&&(cmd_source == cmd_src_local)){

for(Uint8_t i = 0; i <= 40; i ++){

if((cmd_rx_buffer [i] =='s')&&(cmd_rx_buffer [i + 1] =='n')){

UINT8_T Advertisement_Data []
= {
17,GAP_AD_TYPE_MANU_SPECIFIC_DATA,0x07,0x4D,0xE4,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//蓝牙设备名称
9,gap_ad_type_complete_name,cmd_rx_buffer [i],cmd_rx_buffer [i + 1],cmd_rx_buffer [i + 2],cmd_rx_buffer [i + 3],
cmd_rx_buffer [i + 4],cmd_rx_buffer [i + 5],cmd_rx_buffer [i + 6],cmd_rx_buffer [i + 7]};


for(Uint8_t a = 3; <8; a ++){
广告_data [2 + a] = 0x00;
}
for(Uint8_t a = 8; a <16; a ++){
广告_data [2 + a] = cmd_rx_buffer [a + i-8];
}


Memcpy(&Dodeless_env.service_uuuid,&广告_data [2],16);
Memcpy(&Dodeless_env.addata,&Advertisement_Data,Sizeof(Advertisement_Data));
Codeless_env.addata_len = sizeof(广告_data);
//没有扫描响应数据
Dodeless_env.resp_data_len = 0;
//将无附件设置为可连接。
Dodeless_env.is_connectable = true;
//初始化输入命令索引到零。
console_env.input_cmd_char_index = 0;
//初始化Parser标志
console_env.parser_flag = char_parser_not_active;


user_advertise();
send_to_local(cmd_arguments.cmd_buffer);

休息;
}
}
}

这是有效的,但我需要连接一个并断开这个名称更改的连接。我需要名称要更改,而无需连接。

PM_DIALOG.
离线
最后一次露面:2周20小时前
职员
加入:2018-02-08 11:03
嗨Ant777222,

嗨Ant777222,

是否有可能澄清以下声明?

>>>“这是有效的,但我需要连接一个并断开这个名称更改的连接。我需要名称无需连接而更改。“

谢谢,PM_DIALOG.

ANT777222
离线
最后一次露面:8个月2周前
加入:2019-07-11 17:03
该命令提出来

该命令进入该更改Gap_ad_type_complete_name和Gap_ad_type_manu_specific_data。我使用LightBlue与手机连接到BLE设备。这些字段不变。我断开与BLE设备的连接,然后重新连接并将字段更改为指定的命令。我需要立即更改字段而无需连接,断开和重新连接。

PM_DIALOG.
离线
最后一次露面:2周20小时前
职员
加入:2018-02-08 11:03
嗨Ant777222,

嗨Ant777222,

您应该设置计时器以更新广告数据。请查看SDK的BLE_APP_SLEEPMODE示例并检查app_add_data_update_timer_ed timer。到期后,adv_data_update_timer_cb()正在触发并更新广告数据。

谢谢,PM_DIALOG.