DA14585同时主/奴隶

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
6个帖子/ 0新
最后一篇
moiify.
离线
最后一次露面:1个月3周前
加入:2020-03-12 07:26
DA14585同时主/奴隶

可以在不断开连接的情况下扫描或广播蓝牙信息(移动电话的主动连接)。如果有参考例程或相关文档或接口检查它?谢谢!Addtion:为什么DA14580无法实现此功能,这是协议栈版本的原因吗?

设备:
PM_DIALOG.
离线
最后一次露面:1天16小时前
职员
加入:2018-02-08 11:03
嗨moiify,

嗨moiify,

根据您的描述,我假设DA14585充当外围设备,因为它与移动电话(中央)连接。请记住,根据Bluetooth LE规格,设备不能同时充当外围设备和作为中央的。如果我的理解是正确的,并且DA14585配置为外设,则可以在连接状态时进行通告。我不确定您使用的是哪个SDK示例或者如果您有自定义代码,但是当使用对等设备(壳体中的移动电话)建立连接时,触发User_App_Connection()回调。为此,当触发此回调时,应通过调用User_App_Adv_Start()重新启动广告。

谢谢,PM_DIALOG.

moiify.
离线
最后一次露面:1个月3周前
加入:2020-03-12 07:26
我非常欣赏

我非常感谢你的答案!我正在使用14858 sdk 6.0.10.i查找呼叫和结构:cmd = app_gapm_configure_msg_create();cmd->角色= gap_role_all;我不知道这是什么作用...添加,我可以在扫描时使用14585来广告吗?我正在寻找问题的答案,谢谢!

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

嗨moiify,

根据Bluetooth Le规范,系统不允许同时作为中央和外围设备。由于您使用的是DA14585,您应该执行从外设切换到中央间隙配置的角色,反之亦然。通过将角色设置为GAP_ROLE_ALL,这意味着您可以广告(外设角色)或扫描(核心角色)。不可能同时发生

请让我分享一个建议的实施。您可以启动广告并设置计时器。在计时器的到期时,您应该停止广告,一旦停止您可以开始扫描,等待扫描完成(如果您在GAP_GEN_DISCOVERY中扫描或设置额外的计时器并取消扫描过程)。扫描完成后,再次启动广告。请检查下面的步骤以执行角色切换。SDK的BLE_APP_PERIALAL示例在我的侧面使用。

- 更改user_config.h文件。将user_gapm_conf的。role成员到gap_role_all。

- 创建user_scan_start()函数,以便启动扫描:

void user_scan_start(void){struct gapm_start_scan_cmd * cmd = ke_msg_alloc(gapm_start_scan_cmd,task_gapm,task_app,gapm_start_scan_cmd);cmd-> op.code = gapm_scan_active;cmd-> op.addr_src = gapm_static_addr;cmd->间隔= 16384;cmd->窗口= 16384;cmd-> mode = gap_gen_discovery;cmd-> filt_policy = scan_allow_adv_all;cmd-> filter_duplic = scan_filt_duplic_en;//发送消息ke_msg_send(cmd);//我们现在是可连接的ke_state_set(task_app,app_connectable); }

- 在user_app_adv_start()函数中,有一个定时器启动,以便在大约30秒后停止广告,因此我们将使用它以停止广告。

- 因此在Timer Adv_Data_update_Timer_CB()的回调中而不是更新广告字符串,请调用app_easy_gap_advertise_stop()函数。

- 在user_app_add_undirect_complete()函数调用user_scan_start()函数,以便在设备停止广告以开始扫描。

- 为了停止扫描,我不会使用额外的计时器来取消命令,但我将使用扫描本身的超时。

- 一旦扫描结束创建函数user_on_scanning_Completed(),并且从该函数启动广告,调用user_app_adv_start();

谢谢,PM_DIALOG.

moiify.
离线
最后一次露面:1个月3周前
加入:2020-03-12 07:26
谢谢你的答案!它

谢谢你的答案!它真的帮助了我。再次感谢你。

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

嗨moiify,

很高兴我的回答很有帮助,谢谢接受它。如果您有任何后续问题,请创建一个新的论坛线程。

谢谢,PM_DIALOG.