Какие символы отправляются в Windows HyperTerminal, когда вы нажимаете кнопку & quot; Enter & quot; ключ

В настоящее время я реализую терминал последовательного соединения в приложении C ++ под Windows.
Я общался с моим оборудованием с помощью Windows HyperTerminal через последовательное соединение.

Например, с HyperTerminal:

> C (then hit Enter)
> Bla bla bla... Answer from the equipment

С моим последовательным соединением на C ++:

send("C\n\r");

ничего не случилось. Просто дождитесь символа «Конец команды».

После небольшого прочтения о LF / CR в блоге Джеффа Этвуда я попробовал любые возможные комбинации CR + LF. Никто из них не делает работу.

Поэтому мой вопрос в том, какую последовательность символов HyperTerminal интерпретирует как «ввод введен, давайте обработаем».

PS: Мое последовательное соединение работает отлично, я использую его обоими способами уже несколько раз, с этой стороны проблем нет.

0

Решение

По умолчанию он эмулирует телетайп, поэтому отправляет возврат каретки (код ASCII 0x0d или ‘\ r’) при нажатии клавиши Enter. На клавиатурах больше нет клавиши перевода строки, как это было раньше у телетипов, поэтому вы должны нажать Ctrl + J, чтобы сгенерировать перевод строки (код ASCII 0x0a или ‘\ n’).

Имейте в виду нормальную последовательность, возврат каретки будет первым, «\ r \ n». Возможно, вы захотите настроить свой код, если вы сейчас используете send («C \ n \ r»).

Прошло слишком много времени с тех пор, как я возился с ним, но в iirc была конфигурация, позволяющая ему отправлять перевод строки или cr + lf, когда вы нажимаете Enter.

3

Другие решения

Других решений пока нет …