Я пытаюсь записать команды на устройство и прочитать выходное сообщение, используя последовательный порт RS232.Когда я пытаюсь написать команду, она работает изначально.Иногда он посылает неправильные команды.Например, если я отправляю "PC:EXEC:MY_CMD"
, он записывает на устройство что-то вроде "PCPC:EXEC:MY_CMD"
или "PC:EXEPC:EXEC:MY_CMD"
.Вот код:
import serial
import time
ser = serial.Serial()
ser.port = 'COM11'
ser.baudrate = 115200
ser.bytesize = serial.EIGHTBITS
ser.parity = serial.PARITY_NONE
ser.stopbits = serial.STOPBITS_ONE
ser.timeout = 1
time.sleep(1)
ser.open()
if ser.is_open:
cmd = 'PC:EXEC:MY_CMD' + '\r\n'
if ser.in_waiting == 0:
time.sleep(5)
ser.write(cmd.encode())
if ser.in_waiting > 0:
msg = ser.read(ser.in_waiting)
print (msg.decode())
ser.flush()
ser.close()
У меня нет проблем с чтением последовательного выхода.
Когда я пытался отправлять команды с использованием последовательных терминалов, таких как терма или замазка, все работало нормально.Пожалуйста, помогите мне решить проблему.