LINUX.ORG.RU

Работа с COM портом: прочитать данные и присвоить значение переменной

 ,


1

1

Не могу найти решение для казалось бы простой задачи... Нужно средствами shell скрипта (без С++ и прочих монстров) реализовать задачу: посылаем в порт данные, читаем ответ и пишем его в переменную для дальнейшей обработки. Если открыть 2 терминала, в первом запустить cat /dev/ttyS0 а во втором echo L > /dev/ttyS0 (где L - то, что хотим послать в порт) то в первом терминале, естественно, все отображается. Если в одном терминале написать echo L > /dev/ttyS0 | cat /dev/ttyS0 то на экран этого же терминала выдает то что нужно, но команда не завершает работу, а ждет нажатия Ctrl+C Скрипт в виде R=`echo L > /dev/ttyS0 | set /P «R=» < /dev/ttyS0 echo $R не выдает ничего. Подскажите, как можно решить эту проблемку? Два дня гугления результатов не дают :(

while read data; do
  echo "$data" > /dev/ttyS0
  read ans < /dev/ttyS0
  ...
done

может и заработает. Но я не уверен полностью. Никогда так не извращался.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от marvitalik

man chat

Она умеет довольно много чего.

Есть еще expect, но не пробовал ее с com-портом.

anto215 ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.