Как прочитать последовательный ввод из tty и записать его в файл в Linux? - PullRequest
0 голосов
/ 24 ноября 2018

Я читаю напряжение батареи с Arduino и вывожу на выход отладки.Я подаю выходной сигнал отладки через USB на мой ПК.

Теперь я хочу разрядить аккумулятор и прочитать значения через небольшой промежуток времени.Эти значения я хочу записать в файл.Таким образом, я могу построить индикатор состояния заряда батареи.

Я должен начать с малого, потому что я хочу чему-то научиться.Во-первых, я просто хочу увидеть, что что-то приходит, поэтому я не настолько далёк от написания скрипта для фактического вычисления правильного напряжения на основе полученных битов.Я попытался

cat -v /dev/ttyUSB0

, чтобы напечатать последовательный ввод на консоль.К сожалению, ничего не приходит или я получаю

^@^@

в качестве вывода.Что я делаю не так?

Ответы [ 3 ]

0 голосов
/ 25 ноября 2018

Вы можете использовать несколько утилит, как указано ниже, чтобы узнать выход последовательного устройства.

stty
socat
od
screen

Вывод, который вы видите, является информацией о трафике последовательного устройства, и вы можете использовать hexdump для просмотра данных или лучшего подключения.устройство использует экран, чтобы знать, какая информация передается и принимается.

Вы можете просто подключить устройство с помощью экрана, sudo screen /dev/ttyUSB0, если необходимо, вы можете добавить скорость передачи в конце команды экрана, это выдаст последовательное устройствоинформация.

Если вы просто хотите прочитать вход последовательного устройства, просто используйте что-то вроде этого

read -N1 < /dev/ttyUSB0
printf '%#x\n' "$rtn"
0 голосов
/ 25 ноября 2018

Может быть одна из двух ошибок: 1. Последовательная скорость передачи или ошибка другого параметра.2. Значение последовательного ввода - ^ @ ^ @, это символ ascii, но последовательный ввод в байтах без знака, cat строго относится к ascii.

0 голосов
/ 25 ноября 2018

вы можете записать результат чтения в файл, но вам нужно написать скрипт для этого.Вы можете использовать Python "Pyserial" или Java JSSC, или библиотеку JSerial.

...