我正在使用Cmd和pySerial包编写Python程序。
程序运行一个cmd shell,用户在其中编写命令,将命令翻译为消息格式,通过串行端口发送消息,程序嗅探串行端口以获取答案,程序打印答案。
示例:
ser = serial.Serial(COM1, 115200)
class cmdClass(Cmd):
def do_read_register(self, args):
msg_tx = ...
ser.write(msg_tx)
time.sleep(1)
while ser.inWaiting() > 0:
msg_rx += ser.read()
print(">> " + msg_rx)
if __name__=='__main__':
cmdMain = cmdClass()
cmdMain.cmdloop()
连接到串行端口的设备也可以启动消息,而无需先从程序接收消息(忽略串行端口上可能出现的问题)。
我可以让程序在程序空闲(等待用户命令)的过程中每隔几秒钟嗅一次串行端口的消息,并将其打印到屏幕上吗?
谢谢!