LINUX.ORG.RU

Отправить символы по COM-порту и получить ответ в Bash

 , ,


2

1

К COM-порту /dev/ttyS0 подключен мобильник Siemens-M50.

Параметры порта: 9600 8N1, Апп. упр. потоком: Да

Мне нужно отправить на него команду «AT» через BASH и увидеть ответ «OK». Команда «AT» нормально срабатывает в minicom, но мне нужно отправлять ее не интерактивно, а скриптом.

Я заранее в соседней консоли запускаю команду:

cat /dev/ttyS0

Затем в основной консоли даю команды:

stty 9600 cs8 -parenb crtscts -echo -F /dev/ttyS0
echo "AT" > /dev/ttyS0

Но в логе в соседней консоли ответа «OK» не видно. А спустя несколько секунд в логе появляется «ERROR».

Я проверил в minicom, при каких условиях появляется «ERROR» в ответ на команду «AT». Оказалось, что если набрать «AT», но потом не нажимать Enter, а просто ждать, то через некоторое время появится «ERROR».

Я подумал, что может быть до модема не доходит символ переноса строки при выполнении echo «AT» > /dev/ttyS0.

Поэтому я выполнил подряд две команды:

echo "AT" > /dev/ttyS0.
echo "ATZ" > /dev/ttyS0.

Если бы перевод строки не отправлялся, в логе бы было видно:

ATATZ

Однако, в логе я вижу

AT
ATZ

То есть, перевод строки таки отправляется.

Тогда вопрос: почему модем не отвечает «OK», а отвечает спустя некоторое время строкой «ERROR»?

★★★★★

Ага, нащупал.

Таки нужно вручную указывать символ перевода строки ODh в одной посылке к COM-порту. Вот так:

echo -e 'atdt+79181234567;\x0D' > /dev/ttyS0

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Во - первых, можно expect'om контролить minicom.

Во - вторых, вместо echo, для таких дел лучше подходит printf. echo, как минимум \n пишет по умолчанию.

pon4ik ★★★★★
()

\r\n же :-)

мопед ожидает ДВА символа разделитя, которые minicom норамльно транслирует, а простое echo нет.

MKuznetsov ★★★★★
()

Если у нас есть сотовый телефон Siemens C35...M65
17.05.2015 0:33:15

что-то тут не так..

JK
()
Ответ на: комментарий от Xintrea

Красавчик. А чего не на лоровской Wiki? Мне кажется оно будет ближе в выдаче чем тот сайтец.

pon4ik ★★★★★
()
Ответ на: комментарий от Xintrea

Но зачем такие извращения? Есть же старый добрый chat(8), входящий в ppp.

lizard ★★★
()
Ответ на: комментарий от Xintrea

От настроек порта зависит что он будет как конец строки воспринимать \r\n или только \n.

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