Я пишу программу на Python с использованием пакетов Cmd и pySerial.
Программа запускает оболочку cmd, в которой пользователь пишет команду, команда переводится в формат сообщения, сообщение отправляетсячерез последовательный порт программа прослушивает последовательный порт для ответа, программа печатает ответ.
пример:
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()
Устройство, подключенное к последовательному порту, также может инициировать сообщения,без предварительного получения сообщения от программы (игнорируйте возможные проблемы с последовательным портом).
Можно ли заставить программу прослушивать последовательный порт каждые несколько секунд для сообщений во время простоя программы (в ожидании команд от пользователя) и выводить их на экран?
Спасибо!