Com端口队列延迟计量

时间:2013-11-24 04:26:39

标签: algorithm queue computer-science metering

我有两个程序(主机和从机)通过COM端口进行通信。在最简单的情况下,主机向从站发送命令并等待响应,然后再次执行。但这意味着每一方都必须等待另一方进行每笔交易。所以我使用一个队列,这样第二个命令就可以在第一个响应返回之前发送。这可以让事情更快地流动。

但是我需要一种计量队列使用的方法,这样在任何时候路由中都不会有超过N个命令/响应对。因此,例如,如果N是3,我将等待发送第四个命令,直到我得到第一个响应,等等。并且它必须跟踪哪个响应与哪个命令一致。

我有一个想法是使用整数模数计数器标记每个命令,该计数器也随响应一起返回。这将确保命令和响应始终正确配对,并且我可以进行模数比较,以便能够在响应之前始终计算命令。

我想知道,有更好的方法吗?这不是一件普通的事吗?

(我使用的是Python,但这并不重要。)

1 个答案:

答案 0 :(得分:1)

使用序列号和模运算实际上是确认收到的消息并告诉发送者何时可以发送更多消息的常用方法 - 参见例如http://en.wikipedia.org/wiki/Sliding_window_protocol。对你来说不幸的是,显而易见的例子TCP是不寻常的,因为它使用基于字节计数的序列号,而不是消息计数,但原理大致相同 - TCP只是具有额外的灵活性。