处理pyserial串行对象的模块连接和断开
watchedserial的Python项目详细描述
安装
$ pip install watchedserial
说明
WatchedReaderThread是pyserial的一个子类 serial.threaded.ReaderThread。类似于ReaderThread, WatchedReaderThread在自己的线程中实现串行端口读取循环,但是 它不是在串行断开连接时终止线程,而是调用回调和 等待端口再次可用,然后再尝试重新连接。打开 重新连接它调用重新连接回调。这将使编写应用程序需要 更无缝地处理不可靠的串行连接,使其更易于编写 允许用户安全断开和重新连接串行设备的应用程序。
用法
子类watchedserial.WatchedReaderThread实现 handle_reconnect()和handle_disconnect()回调。这两个 功能应该是非阻塞的(类似于ISR)。
importtimeimportserialfromwatchedserialimportWatchedReaderThreadPORT="COM3"classMyPacket(serial.threaded.FramedPacket):defhandle_packet(self,packet):print(packet)classMyWatchedReaderThread(WatchedReaderThread):defhandle_reconnect(self):print("Reconnected")defhandle_disconnect(self,error):print("Disconnected")ser=serial.Serial(PORT,baudrate=115200)withMyWatchedReaderThread(ser,MyPacket)asprotocol:whileTrue:time.sleep(1)