传输缓冲区清除

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
4个帖子/ 0新
最后一篇
本杰德杜
离线
最后一次露面:1个月3周前
加入:2016-03-14 02:38
传输缓冲区清除

嗨mt_dialog团队,

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

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

非常感谢

设备:
mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨Benjamindu,

嗨Benjamindu,

我想你提到的缓冲区是低级堆栈缓冲区,我担心你要问的是不可能的(并且在某种程度上是违反规范),从你将数据发送到堆栈的时间,您不能撤消它们,他们发送到堆栈,BLE协议将照顾其余的,我也想谈论通知,那里通过设备的协议没有高级确认成功传输数据,这是根据数据包的序列号来处理BLE的低级协议。也许您应该考虑使用指示而不是通知,因为在这种情况下,中央设备有义务向外设发送确认数据发送确实收到的外围设备,因此您可以在放置新数据之前等待中央的确认应该发送,但是一旦你向堆栈发送数据,就无法缩回它们。此外,还有一种合理的方法来与通知执行相同的方法,并检查数据是否在另一侧发送数据,可以使用BLE_END_EVENT之前和之后使用L2CM_GET_NB_BUFFER_AVAILABLE()检查缓冲区,并注意已发送多少数据通过特定的连接间隔,但这只是一个想法。

谢谢mt_dialog.

本杰德杜
离线
最后一次露面:1个月3周前
加入:2016-03-14 02:38
嗨mt_dialog团队,

嗨mt_dialog团队,

谢谢,是,缓冲器我的意思是低级别堆栈缓冲区,如果没有高级呼叫(或功能)可用于缩回数据,那么我会找到解决问题的其他方法。

我要缩回数据的另一个原因如下:
有时,当主速度和奴隶由于长距离而断开连接时,但在我置于一起后,他们很难再次连接,我怀疑这是因为当缓冲区完全饱满时,如果可能的话,如果可能,那么想要尝试,如果我提供数据,也许他们可以轻松连接。
由于无法缩回数据,如果Tetraction可以连接它们,我无法尝试。
所以我想知道,在分流数据时断开连接后的原因是什么,它在聚在一起时会再次连接。

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

再次感谢。

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨Benjamindu,

嗨Benjamindu,

从内部重新连接时遇到问题的事实来看,您无法假设缓冲区填充了数据,我怀疑这是因为这是因为当设备断开时,缓冲区被堆栈刷新缓冲区。我也不能承担一个原因,在这种情况下,嗅探器日志可能是有用的(检查是否有连接,但由于故障,设备是否已断开连接)。最重要的是,这就是你的超时非常大,所以两个设备,如果没有来自另一方的活动它需要时间在他们认为自己断开之前,所以你可以使用较小的超时时间来解决它均比已断开连接速度更快,外围可以启动广告。

谢谢mt_dialog.