如何在用户应用级别断开连接

5个职位/ 0个新
最后发表
caiziee
离线
最后看到:2年6个月前
加入:2016-07-29远
如何在用户应用级别断开连接

嗨,对话框

我使用DA14583, sdk 5.0.3。我想断开用户应用程序级别的链接,当一个'断开'按钮或用户输入发生。

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

嗨caiziee,

您可以使用app_easy_gap_disconnect()函数来指示外设断开与中心的连接。

由于MT_dialog

caiziee
离线
最后看到:2年6个月前
加入:2016-07-29远
嗨,对话框

嗨,对话框

谢谢你的回答。它的工作原理。还有一件事,如果应用程序调用这个函数,那么由内核管理的BLE堆将被清空,我的意思是清除所有当前堆消息?

我想调用这个函数的原因是,我想在CUSTS1_VAL_NTF_CFM未返回时主动断开连接,以避免堆崩溃。所以我想确保这个断开操作可以清除累积的堆。

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

嗨caiziee,

如果答案是有用的,请接受答案,以便验证。

发送到内核的每条消息,内核本身都会释放它(如果它得到服务),如果消息指向TASK_APP,任务应该通过返回KE_MSG_CONSUMED来释放消息。关于您希望在没有得到CUSTS1_VAL_NTF_CFM时断开连接的事实,您提到的消息将在通知离开内存空间并进入缓冲区后立即发送回来,以便通过空中发送。如果您开始在堆中积累消息,这意味着您没有遵循您应该首先从通知获得确认,然后发送附加消息的约定。处理这个的建议方法是获得通知的确认,然后发送额外的通知。

现在如果你达到一个点,你在堆开始积累消息一旦断档缓冲区将被刷新和仍然存在的堆的消息会消耗,丢弃实际上因为没有有效的连接来发送存储的通知。

由于MT_dialog

caiziee
离线
最后看到:2年6个月前
加入:2016-07-29远
谢谢,对话框,真的

谢谢,Dialog,它真的帮了我很多。