【发布时间】:2014-10-08 15:43:55
【问题描述】:
我目前正在用 python 编写一个小实用程序来监控串行线路上的通信。这用于调试通过 rs232 连接的一些硬件,因此能够准确地看到线路上发生的事情非常重要。如何使用 pyserial 检查奇偶校验错误?
具体来说,我想知道是否有一种独立于平台的方法来使用 pyserial.xml 查找奇偶校验位的值。我强烈希望不需要termios 来执行此操作,因为它在某些 Windows 机器上使用。
【问题讨论】:
-
您如何定义“奇偶校验错误”?到目前为止,您尝试过什么?
-
@DanLenski,具体我想看看串行帧中奇偶校验位的值是多少。
-
我不确定您的硬件设置到底是什么样的,但我相信在标准 PC 串行端口中,奇偶校验检查发生在硬件级别,因此软件不会看到它。如果您希望实现一个“bit-banging”串行端口,它可以让您检查线路上的各个位,那么您可能必须使用不同的硬件......制作某种 GPIO 接口?
-
我可以设置一个微控制器来接收串行,然后通过为接收到的每个字节发送 2 个字节,将其连同奇偶校验位和任何帧错误信息一起发送到计算机。然后该输出将由脚本解析。然而,这正是我想通过使用几个 USB 到串行转换器以及 pyserial 来避免的工作。我想如果不可能的话,我会再次研究基于微控制器的方法。
-
我发现了一些其他可能对您有所帮助的主题。这些讨论了从串行端口读取原始数据的各种复杂性:stackoverflow.com/questions/12437593、stackoverflow.com/questions/8606291
标签: python serial-port pyserial