发送缓冲区清除

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

嗨MT_dialog团队,

我的应用程序需要在服务器和客户端(或设备和主机)之间瞬时传输数据,有时由于噪声或其他原因,数据积累在缓冲区(数据将不那么有用,因为不是那么新鲜),旧的数据将阻碍新数据的传输。

我想知道有多少数据没有传输在缓冲区,以及如何清除(取消传输)未传输的数据。

非常感谢

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

嗨BenjaminDu,

我假设你提到的缓冲区是低水平堆栈缓冲区,恐怕你问什么是不可能的(并在某种程度上违反了规范),从你已经发送数据堆栈,你不能收回,他们发送到堆栈和BLE协议将其余的照顾,我也认为你在谈论通知,其中没有协议的高级别确认设备已经成功传输数据,这是基于数据包的序列号的BLE的低级别协议照顾的。也许你应该考虑使用适应症代替通知,因为在这种情况下,中央设备是有义务向外围数据发送一个确认发送确实收到,所以你可以等确认从中央放置应发送新数据之前,但是一旦你将数据发送到堆栈,就没有办法收回它们。另外有一个合理的方式做同样的通知和检查数据是否发送另一方面,你可以检查缓冲区使用l2cm_get_nb_buffer_available()之前和之后BLE_END_EVENT和注意有多少数据已经通过特定连接的时间间隔发送,但是这只是一个想法。

由于MT_dialog

BenjaminDu
离线
最后看到:3个月3天前
加入:2016-03-14 02:38
嗨MT_dialog团队,

嗨MT_dialog团队,

谢谢,是的,我的意思是缓冲区是低层堆栈缓冲区,如果没有高级调用(或函数)可用来收回数据,那么我会找到其他方法来解决问题。

我想收回数据的另一个原因如下:
有时,当主人和奴隶得到断开连接由于长途,但是在我把然后在一起,很难再次获得连接,我怀疑这是由于缓冲区满时断开连接,所以如果可能的话,我想尝试如果我trtract数据,也许他们可以轻松地连接。
由于无法收回数据,我无法尝试是否能把它们连接起来。
所以我想知道,是什么原因导致在传输数据的时候断开连接,然后分开,当他们在一起的时候很难再连接。

我认为l2cm_get_nb_buffer_available()将是有用的,我将尝试这个函数。

再次感谢。

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

嗨BenjaminDu,

从设备在重新连接时遇到麻烦的事实来看,你不能假设缓冲区被数据填满了,我怀疑这是因为缓冲区被数据填满了,因为当设备断开连接时,缓冲区被堆栈刷新。我也不能假设一个原因,一个嗅探日志可能在这种情况下是有用的(检查是否有一个连接,但设备由于故障断开)。最有可能的原因是你的超时是非常大的,所以这两个设备,如果没有活动从另一侧之前需要时间考虑自己断开连接,这样你就可以解决,使用较小的超时时间,所以他们都是断开连接的速度更快,外围可以开始宣传。

由于MT_dialog