Записать один байт в последовательный порт с помощью Bash - PullRequest
2 голосов
/ 19 ноября 2011

У меня есть Arduino, который я кодировал для чтения с последовательного порта USB и питания светодиода. Я знаю, что он работает, потому что он работает на встроенном последовательном мониторе. Теперь я хочу написать скрипт Bash, который записывает в последовательный порт.

Вот команда:

 echo 121 > /dev/cu.usbmodem411

Выводит строку «123». Как я могу вместо этого написать один байт со значением 121?

1 Ответ

11 голосов
/ 19 ноября 2011
echo 121 > /dev/cu.usbmodem411

запишет четыре байта: 0x31 (означает «1»), 0x32 (означает «2»), снова 0x31, 0x0A (означает новую строку).

Если ваша цель - записать один байт со значением 121, вы должны написать:

echo -n $'\171' > /dev/cu.usbmodem411

, где 171 - это 121, выраженное в base-8, а -n говорит echo не печатать символ новой строки.

Если это не ваша цель, то, пожалуйста, уточните.

...