嗨对话框
我修改最新的DSPS(主机)项目,我使用“da1458x_config_basic.h”,我改变CFG_MAX_CONNECTIONS参数为6,以允许多个从连接。
但是,一旦第一个从机(DA14580)建立了连接,另一个从机(DA14580)就无法连接到主机(DA14580)。接下来我就不怎么修改项目了。你能
帮我个忙吗?请给我一些建议或介绍这个功能的文档。
谢谢!
关键词:
设备:
嗨RandyYu,
请查看下面的帖子http://support.dialog-semiconductor.com/dsps-connect-few-peripheral-one-..。.
由于MT_dialog
可以修改DSPS以支持多个外设。
但是您必须深入理解DSPS代码体系结构,并进行大量的修改。
我们已经成功地做了这件事,但你必须小心行事。
一些笔记:
您需要决定如何处理UART端口。你打算在所有外设之间共享一个UART端口吗?
-这当然很奇怪…在我们的例子中,我们在一个共享UART端口上添加了一个“多路复用”数据协议。
DA14580上有第二个UART,所以你也可以选择专用第二个UART端口…但这将只允许支持2个外设
- RTS/CTS流量控制…你需要弄清楚当支持多个外设时如何处理这个问题。
-你需要决定你想在这里完成什么
修改连接策略
-目前DSPS连接到第一个DSPS外设,它发现
-你需要确定自己的策略,并适当地修改代码。
修改DPSP代码以支持多个实例
很多DSPS代码在引用ke_task_id_t结构时简单地使用"TASK_SPS_CLIENT"
-这是一个简短的代码…它实际上是指在连接索引0 (conidx = 0)上TASK_SPS_CLIENT的实例。
-你需要修改所有这些调用来使用“正确的”实例“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->length);
-你需要将它更改为这样的东西来正确地引用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->length);
但正如前面提到的,要让它工作,你真的必须非常深入地理解DSPS的所有操作。
谢谢你,马丁
嗨MSun,
感谢分享您的实现。
MT_dialog问好
嗨对话框
正如孙先生在上面的帖子中提到的,
空白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);
//填充参数结构
申请- > conhdl = app_env_vp.devices [conhdl] .conhdl;/ /请求- > conhdl = conhdl;
申请- > con_type = PRF_CON_DISCOVERY;
}
像这样,我需要改变所有其他函数吗?=> void user_send_ble_data(const uint8_t *data, uint16_t length)
=> 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,
谢谢你的对话框