具有主机DA14580的多个从站(DA14580)连接

5个帖子/ 0新
最后一篇
兰迪宇
离线
最后一次露面:2年10个月前
加入:2015-01-28 08:49
具有主机DA14580的多个从站(DA14580)连接

嗨对话框

我修改最新的DSP(主机)项目,我正在使用“da1458x_config_basic.h”,我将cfg_max_connections参数更改为6以允许多个从站连接。
但是,一旦第一个从站(DA14580)建立连接,另一个从站(DA14580)就无法连接到主机(DA14580).Next,我没有如何修改项目。您可以
帮助我?请给我一些建议或介绍这个职能的文件。

谢谢!

设备:
mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨兰迪宇,

嗨兰迪宇,

请检查以下帖子http://support.dialog-semicondiondiondum/dsps-connect-few-peripheral -.1.

谢谢mt_dialog.

MSUN
离线
最后一次露面:8个月3周前
加入:2015-11-30 22:40
可以修改DSP

可以修改DSP以支持多个外围设备。

但是您必须深入了解DSPS代码架构,并进行大量广泛的修改。

我们成功完成了,但你必须仔细踩踏。

一些笔记:

您需要决定如何处理UART端口。您是否会在所有外围设备中共享一个UART端口?
- 当然,在我们的情况下,我们在一个共享UART端口上添加了一个“多路复用”数据协议。
- DA14580上有一个第二UART,因此您还可以选择致力于第二UART端口...但这只允许支持2个外围设备
- RTS / CTS流控制......您需要弄清楚如何在支持多个外设时处理此功能。
- 您需要决定您想要在此处完成的内容

修改连接策略
- 目前DSP连接到它发现的第一个DSP外围设备
- 您需要确定自己的策略,并适当修改代码。

修改DPSP代码以支持多个实例
- 当引用KE_TASK_ID_T结构时,很多DSPS代码都只是使用“task_sps_client”
- 这是一点短切代码...它有效地表示连接索引0上的Task_sps_client的实例(conidx = 0)
- 您需要修改所有这些调用以在始终使用“Task_sps_client”的“正确”实例全部适当的代码

- 例如...原始的DSPS代码可能有这样的东西......

struct sps_client_data_tx_req * req = ke_msg_alloc_dyn(sps_client_data_tx_req,task_sps_client,task_app,sps_client_data_tx_req,msg->长度);

- 您需要将其更改为类似于此操作以正确参考Task_sps_client的正确实例

ke_task_id_t task_sps_client_instance_id = ke_build_id(task_sps_client,conidx);
struct sps_client_data_tx_req * req = ke_msg_alloc_dyn(sps_client_data_tx_req,task_sps_client_instance_id,task_app,sps_client_data_tx_req,msg->长度);

但正如所提到的那样,为了使它工作,您真的必须非常深入了解DSP的所有操作。
谢谢,马丁

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨msun,

嗨msun,

感谢您分享您的实现。

最好的问候mt_dialog.

prasanth.velliy ...
离线
最后一次露面:10个月前1年
加入:2016-02-18 12:18
嗨对话框

嗨对话框

正如上面提到的米苏先生一样,
void user_sps_enable(uint16_t conhdl)
{
ke_task_id_t task_sps_client_instance_id = ke_build_id(task_sps_client,app_env_vp.devices [conhdl] .conidx);
struct sps_client_enable_req * req = ke_msg_alloc(sps_client_enable_req,task_sps_client_instance_id,task_app,
sps_client_enable_req);

//填写参数结构
req-> conhdl = app_env_vp.devices [conhdl] .conhdl;// req-> conhdl = conhdl;
req-> con_type = prf_con_discovery;
}
就像这样我必须改变所有其他功能?=> void user_send_ble_data(const uint8_t * data,uint16_t长度)
=> void user_send_ble_flow_ctrl(uint8_t flow_ctrl)
为此,我必须通过以下所有调节来传递Param - > Conhdl?
=> user_sps_client_enable_cfm_handler.
=> user_sps_client_data_tx_cfm_handler.
=> user_sps_client_data_rx_ind_handler.
=> user_sps_client_tx_flow_ctrl_ind_handler,
谢谢对话框