如何解决在C#上读取COM端口
| 请告诉我如何在C#中从com端口读取数据,如果以字节为单位接收数据,但是长度可变,则答案可能是字节数组20和50,这是主要问题是,该怎么办您知道设备停止响应了吗?解决方法
最重要的部分是定义所使用的协议位。您应该同时具有开始和停止位,这些位将告诉您的SerialPort对象何时停止读取。通常,您不必担心此事,因为您的回调函数会将数据包含在数组中。
http://msmvps.com/blogs/coad/archive/2005/03/23/SerialPort-_2800_RS_2D00_232-Serial-COM-Port_2900_-in-C_2300_-.NET.aspx
, 你不知道COM端口有点像TCP-它们是流服务-一次只能传输7或8位(取决于设置端口的方式,通常为8位)。
如果要发送比字节更复杂的内容,则需要在顶部构建协议。如果您的数据是文本,则通常会在末尾添加CR或null。如果它是整个字节0-255中的值,则您需要更复杂的协议以确保正确接收数据单元的帧。 Maybee可以通过简单的超时来满足您的要求,例如“如果在500毫秒内未收到任何字符,则表示数据单元已结束”,但是这种超时协议显然性能低下并且容易失败:(
Rgds,
马丁
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。