【发布时间】:2022-10-07 00:12:58
【问题描述】:
我有一个我正在玩的 gui,它使用 pyserial。在其中,我使用 pyserial 的 ReaderThread 来监视我的串行设备的串行输出并将其打印在控制台窗口上。
我还使用 pyserial 的 Serial() 实现向串行设备发送命令。
通常我不需要获取对 ser.write() 的响应,只需让 ReaderThread 处理它。
但是,现在有些情况下,我希望暂停 ReaderThread 对变量执行 ser.read(),对变量执行操作,然后取消暂停 ReaderThread 以使其继续执行此操作。
尝试了 ReaderThread.stop(),但它似乎正在断开连接。
还尝试创建我自己的具有互斥锁的 readerThread.run() 函数并用它替换 run 方法,但这有点松鼠。
我错过了一个简单的方法吗?
-
我会创建一个
LineReader(或类似的)来处理传入的流,并在handle_line方法内,检查是否将行发送到默认路径或您的自定义处理程序的标志,即:handle_line(self, data): if flag: do_something(data); else: some_signal.emit(data)