Не удалось отправить команду Enter на pyserial - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь отправить команду на последовательный порт аппаратному обеспечению gps из окон с приведенным ниже сценарием python, используя pyserial.Сценарий работает нормально и выполняет то, что ожидается от команды. За исключением того, что я должен нажать «Enter», только тогда команда выполняет ожидаемый результат.Я пробовал много способов отправить ввод, но не смог выполнить команду.Как я могу предотвратить нажатие клавиши ввода с помощью команды ниже, чтобы выполнить задачу.Пожалуйста, помогите.Это кажется очень простым, но я не могу пройти через это за последнюю неделю.

import serial

port = "COM103"
baud = 115200

ser = serial.Serial(port, baud, timeout=1)
if ser.isOpen():
     print(ser.name + ' is open...')

while True:
    if cmd == 'exit':
        ser.close()
        exit()
    else:
        print('Sending..')
        ser.write("run MODE-55")
        ser.write("\r")

1 Ответ

0 голосов
/ 30 сентября 2018

Вам необходимо проверить, какую команду поддерживает ваше устройство, это может быть \r, \n, \r\n.Поскольку вы используете Windows, похоже, что используется последний, потому что \r\n - это последовательность для Enter в Windows.Или это может быть \n, поскольку \r уже отправлено.

Кроме того, вам не нужно использовать две команды, когда это может быть выполнено одной:

    ser.write("run MODE-55\r\n")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...