我有一个关于Rs232软件流程控制(又名XOn/XOff)的一般性问题。
.Net实现(和nativ win32 api)都定义了一个名为WriteTimeout / ReadTimeout的属性,这是一个以毫秒为单位的时间,在该时间之后,通信被认为是过期的。
不,我的问题是这样的:如果我发送一个5字节的字符串给设备,我看不到任何WriteTimeout,正如预期的那样。这是如何实现的?我发现的关于软件流控制的所有东西都是,当接收缓冲区已满时,设置XOFF;当准备好再次接收时,设置XOn。
但从我看到的行为来看,我怀疑设备在处理了我发送的5字节信息后发送了XON,从而为windows创建了生成相应事件的信息。
那么什么时候在只有两条线的RS232实现上发送XON呢?是否仅当缓冲区已满并重新开始接收;或者发出信号,表明我们“仍然准备好”在处理完每个块之后进行接收?
如何实现?
提前干杯&谢谢!
科瑞戈特
发布于 2012-04-04 16:59:01
准备好接收数据时(您的接收缓冲区为空或几乎为空),随时发送XON。当您无法接受更多传入数据时(您的接收缓冲区已满或接近已满),随时发送XOFF。这个过程记录在维基百科的software flow control页面上。
https://stackoverflow.com/questions/10007880
复制相似问题