中心设备服务发现问题

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
4个职位/ 0个新职位
最后发表
祖马
离线
最后看到:4个月5天前
加入:2016-01-13 09:35
中心设备服务发现问题

嗨,对话框中,
我们想用自定义配置文件实现一个中心设备。我参照DSPS Client项目创建了我的项目,在发现服务的过程中遇到了一些问题。
1.第一次连接时,中心设备能成功发现业务。连接后,中心设备可以将数据写入外设的特性,并接收外设的通知指示消息。一切都是好的。
2.那么中心设备在重新连接时无法发现服务,配置文件启用请求消息发送后GATTC_DISC_SVC_IND消息没有收到,并且总是得到PRF_ERR_REQ_DISALLOWED状态。这种联系已经建立并保持。操作顺序:断开->启动扫描->停止扫描->连接。

关于这个问题你能给我一些建议吗?非常感谢。

设备:
MT_dialog
离线
最后看到:5个月2个星期前
工作人员
加入:2015-06-08 34
嗨,祖马,

嗨,祖马,

您必须检查返回PRF_ERR_REQ_DISALLOWED的请求是什么,状态返回这种状态的函数是什么?我怀疑下一个连接无法执行发现的原因是由于缺少内存资源(我假设返回错误状态的函数是宏PRF_CLIENT_ENABLE)。设备断开连接时gapc_disconnect_ind_handler()分配给需求方概要文件应该调用和PRF_CLIENT_DISABLE_IND_SEND宏在该函数应该被称为为了自由分配的内存空间,从之前的连接(不是gapc_disconnect_ind_handler TASK_APP分配but the one that is located in the sps_client_task), if that is not get invoked, you wont have enough memory to allocate for the next enviroment that should be allocated for sub-sequent enviroments due to the new connections and the discovery procedures.

由于MT_dialog

祖马
离线
最后看到:4个月5天前
加入:2016-01-13 09:35
嗨,MT_dialog

嗨,MT_dialog
谢谢你的快速回复。你的假设是正确的,自定义客户端概要文件(custc_task.c)中的gapc_disconnect_ind_handler()没有被调用,内存空间不够。断开连接后,自定义概要文件(ke_state_get(TASK_CUSTC))的状态仍然是连接的。现在我已经将PRF_CLIENT_DISABLE_IND_SEND宏移动到app回调函数user_on_disconnect,基本上解决了问题,但是我仍然有疑问为什么GAPC_DISCONNECT_IND消息没有传递到custc_task。

1.我已经实现了gapc_disconnect_ind_handler手GAPC_DISCONNECT_IND消息引用SPS客户端项目。
2.中央设备只需调用app_easy_gap_disconnect()来与Periphral设备断开连接。

MT_dialog
离线
最后看到:5个月2个星期前
工作人员
加入:2015-06-08 34
嗨,祖马,

嗨,祖马,

至少在DSPS主机项目上,函数prf_cleanup_func()正在被堆栈调用,根据启用的配置文件,相应的断开指示被发送到相应的任务,因此,gapc_send_disconnect_ind()的函数是向概要任务本身发送一条消息,以便执行任何清理功能。

由于MT_dialog