17个职位/0个新职位
最后一篇文章
兰迪尤
离线
最后一次见到:2年7个月前
已加入:2015-01-28 08:49
DA14580型多个从机和DA14580型主机通信

您好,我修改数字信号处理器5.150.2版本,知道最大连接数最多能同时连接6个从机,如何才能实现呢?假设连接好了1个,从机向主机发送数据,主机处理数据,在处理数据过程中,打开另外一个从机,如何实现连接并处理新的从机发送的数据呢?请帮助回答上面两个问题,谢谢!

关键词:
设备:
兰迪尤
离线
最后一次见到:2年7个月前
已加入:2015-01-28 08:49
没有人回答吗?我设置#定义CFG\u MAX

没有人回答吗?我设置#定义CFG\u MAX_CONNECTIONS 6,然后我在void user_on_connection(uint8_t connection_idx, struct gapc_connection_req_ind const *param)函数里末行添加user_scan_start();host能同时连接两个slave,并且能接受到数据,但是接受的时间很短,host就死掉,然后就断开连接了,有没有什么方法能同时连接slave,数据传输稳定?

工友对话
离线
最后一次见到:1周6天前
已加入:2016-04-27 07:07
因为580设计的限制,一般都是先扫完设备

因为580设计的限制,一般都是先扫完设备,然后再用直接连接模式去直连设备,这样的方法去保证连多个。
可以参照SDK5里的host_apps\windows\proximity\monitor\src\app.c 下的app_connect函数。

兰迪尤
离线
最后一次见到:2年7个月前
已加入:2015-01-28 08:49
我在用户在高级报告索引上

我在用户\u on \u adv \u report \u ind(struct gapm \u adv \u report \u ind const*param)函数体里面,注释掉应用程序\u容易\u差距\u开始\u连接\u到\u集和用户\u gapm \u取消函数,把需要扫描到的奴隶全部保存在一个链表里,我想知道如何把这些链表里的奴隶全部连接主人我需要如何
修改主人里面的连接上的用户回调函数,我把连接上的用户和应用程序\u容易\u差距\u开始\u连接\u到\u集添加一个参数(链表中奴隶
的下标),接下来我还需要修改什么地方呢,请多多指教!谢谢!

工友对话
离线
最后一次见到:1周6天前
已加入:2016-04-27 07:07
做了一个测试版本,你可以参考。我这里挂了2个设备没什么问题

做了一个测试版本,你可以参考。我这里挂了2个设备没什么问题。之前有一点讲错了,是可以连上设备再扫描的。
以地址uint8\u t peer\u addr[6]={0xff,0xff,0x00,0xca,0xea,0x80}作为过滤,其中前两个0xff型里可以填任何数。

奥利弗∙零
离线
最后一次见到:2年7个月前
已加入:2017-04-05 07:00
你好,我在使用这个工程时,调用 用户\u gapm

你好,我在使用这个工程时,调用user_gapm_cancel()这个函数时也会出现等待十几秒之后跳到 wrap_platform_reset() 函数中的情况,板子是用的是自己的,上面有 32k 晶振,不知道导致的个问题出现的原因是什么,期待解答。

兰迪尤
离线
最后一次见到:2年7个月前
已加入:2015-01-28 08:49
你好,非常感谢帮助!

你好,非常感谢帮助!
在你提供的例程中,两个同时连接之后,大约1分钟后,中心的进入void wrap\u platform\u reset(uint32\u t error),错误=0xf2f2;然后
程序死掉,无法运行。请问是咋回事?

工友对话
离线
最后一次见到:1周6天前
已加入:2016-04-27 07:07
现在在出差,手边暂时没环境再确认....

现在在出差,手边暂时没环境再确认.....这个错一般是记忆分配溢出。应该进硬件故障处理程序了,你看看保存的
*(volatile unsigned long*)(STATUS_BASE+0x14)=硬故障_args[5];//左后
*(volatile unsigned long*)(STATUS_BASE+0x18)=硬故障_args[6];//个人计算机

然后再对应的汇编里面找找是在哪里停住的

工友对话
离线
最后一次见到:1周6天前
已加入:2016-04-27 07:07
你确定吗?我这里重新又跑了一下,没问题啊

你确定吗?我这里重新又跑了一下,没问题啊。你是拿的演示板跑的吗?如果不是,请确认外接有32千时钟。

附上嗅探器捕获数据的文件,大概7-8分钟

附件:
兰迪尤
离线
最后一次见到:2年7个月前
已加入:2015-01-28 08:49
非常感谢,我把你的项目移植到官网提供的DSPS_V5

非常感谢,我把你的项目移植到官网提供的数字信号处理器5.150.2版同时连接两个成功了,疑问是否需要把你项目中应用程序\u mid.h中229号线,KE\ u MSG\ u ALLOC\ n申请内存参数sizeof(结构间隙\u bdaddr)改为CFG\u MAX\u CONNECTIONS*sizeof(结构间隙\u bdaddr)
参考你的工程,我修改是数字信号处理器示例项目,同时连接两个奴隶,分别给中心的发送数据,中心的能同时正确接收两个奴隶的数据,现在我在收到数据需要给奴隶返回一个应答包,现在只有一个奴隶能收到应答包,另外一个奴隶只能发送数据而接收不到中心的应答包,请问我如何能够区分给不同奴隶回指定的应答包,如何修改?谢谢!!

蓝宝莹
离线
最后一次见到:2天9小时前
已加入:2020-06-11 15:18
[DSPS\U 5.150.2版]598770358@qq

[DSPS\U 5.150.2版]598770358@qq.com]谢谢

蓝宝莹
离线
最后一次见到:2天9小时前
已加入:2020-06-11 15:18

你知道吗可以把移植好的数字信号处理器5.150.2版发我一份吗

你知道吗可以把移植好的数字信号处理器5.150.2版发我一份吗?邮箱:598770358">mailto:598770358@qq.com">598770358@qq.com|谢谢

工友对话
离线
最后一次见到:1周6天前
已加入:2016-04-27 07:07
1这个看你怎么用,如果你需要只发送一次连接命令

1这个看你怎么用,如果你需要只发送一次连接命令,连多个地址,就改成CFG\u MAX\u CONNECTIONS*sizeof(结构间隙\u bdaddr)但是演示里面还是一个地址一个地址依次连接,所以sizeof(结构间隙\u bdaddr)就够了。

2不同的奴隶会有不同的把手连接的时候会获得。我想可以修改一下用户发送数据函数

void user\u send \u ble\u data(const uint8\u t*data,uint16\u t length,uint16\u t conidx)//添加句柄参数吧
{
结构sps\u client\u data\u tx\u req*req=KE\u MSG\u ALLOC\u DYN(sps\u client\u data\u tx\u req,
KE_BUILD_ID(TASK_SPS_CLIENT,conidx),TASK_APP,SPS_CLIENT_data_tx_req,length)//加一个句柄参数吧

需求->长度=长度;
memcpy(&req->data[0],data,length);

发送消息(请求);
}

兰迪尤
离线
最后一次见到:2年7个月前
已加入:2015-01-28 08:49
非常感谢帮助!

非常感谢帮助!
我需要在用户\u sps \u客户端\u数据\u rx \u ind \u处理程序(ke \u msg \u id \u t const msgid,struct sps \u客户端\u数据\u rx \u ind const*param,ke \u任务\u id \u t const dest \u id,
Keu任务\u id \u t const src \u id)调用void user\u send \u ble\u data(const uint8\u t*data,uint16\u t length,uint16\u t conidx)请问单位16为spsc公司_envs.con_info.conidx的值吗?我调用该如何设置单位16参数?不好意思,需求有点紧急,只好多问你了。

工友对话
离线
最后一次见到:1周6天前
已加入:2016-04-27 07:07
这个康尼克斯就是你在用户打开

这个康尼克斯就是你在连接上的用户函数里面拿到的连接\u idx每个连接都会有一个分配的值。
然后在连接上的默认应用程序函数里面调用应用程序启动去使能之前已经分配好内存的数据库

兰迪尤
离线
最后一次见到:2年7个月前
已加入:2015-01-28 08:49
非常感谢帮助,中心的同时连接两个奴隶后

非常感谢帮助,中心的同时连接两个奴隶后,中心的继续一直扫描,这都没问题,问题1:请问断开一个后为啥不执行断开连接时的用户函数?且两个断开都不执行该函数,
void user\u on \u disconnect(struct gapc \u disconnect \u ind const*param)
{
断开连接时的默认应用程序(param);
//重新开始扫描
user_scan_start();
arch_printf(“设备已断开连接\r\n”);
}
问题2:断开一个奴隶后,中心的能接收另一个连接状态奴隶的数据,但是中心的不能给该奴隶回应答数据,只有把断开的一个 连接中心的后奴隶才
能接收应答数据,请问是否和修改后用户发送数据函数中 生成ID(任务SPS客户端,conidx),有关?请问该如何解决?
给奴隶回应答数据在int user\u sps\u client\u data\u rx\u ind\u handler(ke\u msg\u id\u t const msgid,struct sps\u client\u data\u rx\u ind const*param,
keu task\u id\u t const dest\u id,keu task\u id\u t const src\u id)调用用户发送数据(ask buf,7,param->conhdl);

void user\u send \u ble\u data(const uint8\u t*data,uint16\u t length,uint16\u t conidx)//添加句柄参数吧
{
结构sps\u client\u data\u tx\u req*req=KE\u MSG\u ALLOC\u DYN(sps\u client\u data\u tx\u req,
KE_BUILD_ID(TASK_SPS_CLIENT,conidx),TASK_APP,SPS_CLIENT_data_tx_req,length)//加一个句柄参数吧

需求->长度=长度;
memcpy(&req->data[0],data,length);

发送消息(请求);
}
谢谢帮助!

侯军
离线
最后一次见到:8个月3周前
已加入:2019-03-04 06:32
你好 当时的数字信号处理器的演示还在吗?

你好 当时的数字信号处理器的演示还在吗?