Чтение с последовательного интерфейса

Чтение с последовательного интерфейса

У меня есть работающее последовательное устройство, с которого мне нужно считывать данные (я не имею абсолютно никакого контроля над самим устройством), за исключением чтения его вывода; используя Hyper Terminal в Windows, я могу обнаружить значимый трафик, и вчера, когда я использовал cat (или мою собственную небольшую программу на C для считывания данных и вывода их в stdout), все работало нормально.

Сегодня, когда я использую cat/мою программу, все, что я получаю, — это поврежденные данные, хотя Hyper Terminal все еще отображает данные.

Что может быть не так? Как это могло работать вчера, но не работать сегодня?

Файл, который я читаю, это/dev/ttyUSB1

*Обратите внимание, что я никогда не запускаю ОБЕ программы и cat одновременно, только одну из них.

решение1

Кто-то на SO намекнул в правильном направлении: проблема была в скорости передачи данных, она была установлена ​​на значение, отличное от того, которое мне нужно.

Чтобы проверить скорость передачи данных: stty -F /dev/ttyUSB1
Чтобы установить скорость передачи данных: stty -F /dev/ttyUSB1 57600(в моем случае 57600 — это скорость передачи данных, необходимая моему устройству)

Теперь все работает как часы.

решение2

Последовательные порты — особенно странные звери. Вам нужно будет использовать программу эмуляции терминала старой школы. Я раньше думал, tipчто это лучшее, но, похоже, ни у кого больше нет исходников для него. cuпоставляется с UUCP, и это полная морока в установке и настройке, даже не беспокойтесь.

Быстрый поиск в Google подсказывает мне, что люди склонны использоватьминикомв эти дни.Вот вопрос на Stack Overflowпохоже, это имеет какое-то значение, по крайней мере при использовании minicomдля связи с последовательным USB-устройством.

Дайте нам знать, как это получится. Обновите свой вопрос или оставьте комментарий или что-нибудь еще.

Связанный контент