嗨对话框
我修改最新的DSP(主机)项目,我正在使用“da1458x_config_basic.h”,我将cfg_max_connections参数更改为6以允许多个从站连接。
但是,一旦第一个从站(DA14580)建立连接,另一个从站(DA14580)就无法连接到主机(DA14580).Next,我没有如何修改项目。您可以
帮助我?请给我一些建议或介绍这个职能的文件。
谢谢!
关键词:
设备:
嗨兰迪宇,
请检查以下帖子http://support.dialog-semicondiondiondum/dsps-connect-few-peripheral -.1.。
谢谢mt_dialog.
可以修改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的所有操作。
谢谢,马丁
嗨msun,
感谢您分享您的实现。
最好的问候mt_dialog.
嗨对话框
正如上面提到的米苏先生一样,
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,
谢谢对话框