我有一个关于Rs232软件流控制(又名XOn / XOff)的一般性问题
.Net实现(以及nativ win32 api)定义一个名为WriteTimeout / ReadTimeout的属性,该属性是以ms为单位的时间,之后通信被认为是过期的。
我的问题不是这样的:如果我发送,让我们说设备的5字节字符串,我没有看到任何WriteTimeout,如预期的那样。这是如何实现的?我发现软件流控制的一切都是当收到缓冲区已满时要设置XOFF; XOn准备再次接收时。
但是从我看到的行为来看,我怀疑,设备在处理了我发送的5字节信息之后发送了XON,从而为windows创建信息以生成相应的事件。
那么何时在只有两线的RS232实现上发送XON?仅当缓冲区已满并重新开始接收时;或者发出信号,我们在处理完每个块后仍“准备好”接收?
如何实施?
干杯&提前thx!
Corelgott
答案 0 :(得分:0)
在您准备好接收数据时发送XON
(您的接收缓冲区为空或几乎为空)。每当您无法接受更多传入数据时(您的接收缓冲区已满或接近),发送XOFF
。该过程记录在Wikipedia software flow control页面上。