Доброго дня, Столкнулся вот с такой проблемой. Есть linux, к нему по USB подключено устройство, определяется системой как /dev/ttyACM0. Управлятся это чудо с помощью передачи на него определенных строк, например. Вначале готовлю устройство к приему:
stty -F /dev/ttyACM0 raw -echo
Теперь на него можна слать данные, мне к примеру нужно послать пять значений в шестнадцатиричном коде, к примеру вот таких: 55 90 0F 01 25
Для этого я выполняю элементарную команду в консоле:
echo -en '\x55\x90\x0F\x01\x25' > /dev/ttyACM0
Все работает просто замечательно, устройство принимает команду и выполняет без проблем. Это все предисловие, а теперь о том что доставило мне реальную боль в последние два дня. Возникла необходимость отправить другие данные, а именно которые включают в себя значение 0A в шестнадциричном коде. конечно я выполнил такую команду:
echo -en '\x55\x90\x0A\x01\x25' > /dev/ttyACM0
но чуда не произошло, устройство не выполнило команду. После нескольких тщетных попыток принял решение посмотреть а что же linux шлет на устройство с помощью USBMon. И все встало на свои места, вскрытие показало что при посылке данных которые включают 0XA с места где есть этот код есть переходит на новую строку. Устройство получает эту одну строку как две строки:
\x55\x90\0xA
\x01\x25
Итак простой вопрос, как передать на устройство данные которые включают в себя 0xA, чтобы это 0xA не разделило строку надвое а все было доставлено к адресату одной строкой.
Сделал нескольку топиков на зарубежных гуру форумах, но вразумительного ответа с рабочим примером не получил. Надеюсь что на этом форума люди обладают более высокой квалификацией :).