繁体   English   中英

Python监控串口(RS-232)握手信号

[英]Python monitor serial port (RS-232) handshake signals

我需要监控串口信号(RI,DSR,CD,CTS)的状态。 使用'serial'库进行循环和轮询(例如,使用函数getRI)过于密集且响应时间不可接受。

有没有python的解决方案?

在Linux上可以通过阻塞系统调用TIOCMIWAIT使用基于中断的通知来监视RS-232端口的信号引脚的状态变化:

from serial import Serial
from fcntl import  ioctl
from termios import (
    TIOCMIWAIT,
    TIOCM_RNG,
    TIOCM_DSR,
    TIOCM_CD,
    TIOCM_CTS
)

ser = Serial('/dev/ttyUSB0')

wait_signals = (TIOCM_RNG |
                TIOCM_DSR |
                TIOCM_CD  |
                TIOCM_CTS)

if __name__ == '__main__':
    while True:
        ioctl(ser.fd, TIOCMIWAIT, wait_signals)
        print 'RI=%-5s - DSR=%-5s - CD=%-5s - CTS=%-5s' % (
            ser.getRI(),
            ser.getDSR(),
            ser.getCD(),
            ser.getCTS(),
        )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM