跳过主要内容

多连接示例和文档

DA14585和DA14586

3个月前

发布的MelkumovArthur173点 8回答说
1 upvote

你好,

在SDK6中是否有DA14586的官方示例,我可以用于BLE多连接模式(几个中心设备到一个外围设备,基于DA14586)?
或者,我可以使用标准的'ble_app_peripheral ',并更改#define CFG_MAX_CONNECTIONS to(8)的定义,这是否足以支持中心设备的多连接?

2个月前

PM_Dialog

嗨MelkumovArthur,

谢谢你的在线问题。请查看以下GIT回购的SW示例:

https://github.com/dialog-semiconductor/BLE_SDK6_examples/tree/main/connectivity/multi_con_periph

这个示例演示了如何将一个外围设备连接到多个中心设备。

这里有各种各样的小SW例子,所以请查看他们:

https://github.com/dialog-semiconductor/BLE_SDK6_examples

谢谢,PM_Dialog

2个月前

MelkumovArthur 173点

谢谢你的回答!

我如何更改中心连接的最大数目(从8个最大数目改为4个)?我需要更改哪个定义(CFG_MAX_CONNECTIONS或CFG_CON) ?

2个月前

PM_Dialog

嗨MelkumovArthur,

您应该更改CFG_MAX_CONNECTIONS。请记住,DA14586最多支持8个并发连接。

谢谢,PM_Dialog

2个月前

MelkumovArthur 173点

谢谢你的回答!

但是如果我只将CFG_MAX_CONNECTIONS更改为<4>—芯片在第4个连接后不会停止广告。它一直在宣传,但第五中心设备无法成功连接到它(在连接到芯片之后- DA14586开始断开连接)。
因此,这种行为与我将CFG_MAX_CONNECTIONS设置为最大值(8)时不同。当我将CFG_MAX_CONNECTIONS设置为8时,DA14586在第8个连接之后立即停止发布,因此没有任何中心设备甚至不能发起连接。

如果我两者都更改,CFG_CON和CFG_MAX_CONNECTIONS为4 -我在arch_rom_init()函数的arch_rom.c文件中有一个带有断点的ASSERT_ERROR。

2个月前

PM_Dialog

嗨MelkumovArthur,

您是否按照Readme文件中的描述应用了SDK修改?

请检查“SDK更改”部分。

谢谢,PM_Dialog

2个月前

MelkumovArthur 173点

是的。我应用了这一页所描述的变化:https://github.com/dialog-semiconductor/BLE_SDK6_examples/tree/main/con..。

2个月前

MelkumovArthur 173点

在4个MAX连接的情况下实现广告/连接流,就像8个MAX连接一样-我在user_multi_peripheral.c文件中写了下一个额外的代码:

Uint8_t get_num_of_active_conn(void) {Uint8_t num=0;(uint8_t idx = 0;idx < APP_IDX_MAX;idx + +){如果(user_app_env [idx]。= GAP_INVALID_CONIDX) && (user_app_env[idx]. conf);Connection_active == true)) num++;}返回num;} void user_on_connection(uint8_t connection_idx, struct gapc_connection_req_ind const *param) {add_to_user_peer_log(connection_idx);print_out_connected_dev ();default_app_on_connection (connection_idx参数);如果(get_num_of_active_conn() < CFG_MAX_CONNECTIONS) //只在连接设备数量小于最大可能连接数的情况下打开广告{user_app_adv_start(); } }

这个功能是否根据SDK正确编写?也许有一些关于使用API功能的文档?

2个月前

PM_Dialog

嗨MelkumovArthur,

这似乎是正确的,但它也应该在你的身边测试。通常,更改CFG_MAX_CONNECTIONS应该最多支持4个连接。

谢谢,PM_Dialog