2024-05-18 10:17:44 发布
网友
我需要监视串行端口信号(RI、DSR、CD、CTS)的状态。 使用“串行”库进行循环和轮询(例如,使用函数getRI)占用的cpu太多,响应时间不可接受。在
python有解决方案吗?在
在Linux上,可以通过阻塞syscall TIOCMIWAIT使用基于中断的通知来监视RS-232端口信号管脚的che状态变化:
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(), )
在Linux上,可以通过阻塞syscall TIOCMIWAIT使用基于中断的通知来监视RS-232端口信号管脚的che状态变化:
相关问题 更多 >
编程相关推荐