中心设备的服务发现问题

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

嗨,对话框中,
我们想用自定义配置文件实现一个中心设备。我创建我的项目参考DSPS客户端项目,遇到一些问题发现服务。
1.中心设备第一次连接时可以成功发现服务。中心设备连接后,可以将数据写入外围设备的特性,并接收来自外围设备的通知指示消息。一切都是好的。
2.然后中央设备在重新连接时无法发现服务,配置文件启用请求消息发送后未收到GATTC_DISC_SVC_IND消息,我总是得到PRF_ERR_REQ_DISALLOWED状态。连接已经建立并保持。操作顺序:disconnect-> start scan-> stop scan->connect。

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

设备:
MT_dialog
离线
最后看到:4个月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

祖马
离线
最后看到:3个月1天前
加入: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宏移动到应用回调函数user_on_disconnect,基本上解决了这个问题,但是我仍然怀疑为什么GAPC_DISCONNECT_IND消息没有传递给custc_task。

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

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

嗨,祖马,

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

由于MT_dialog