Отправка AT-команды через скрипт bash - PullRequest
0 голосов
/ 29 марта 2019

Я тестирую спутниковый модем с преобразователем USB-to-serial (RS232).Я уже проверил «соединение», и оно работает.Я использую Minicom и могу перехватывать данные, отправленные с одного терминала (с помощью одного сценария bash, который отображает случайные числа) на другой.

Чтобы заставить этот модем отправлять данные, я должен отправить ему AT-команды.Каков наилучший способ сделать это?Должен ли я просто повторить команду AT из моего скрипта bash?Или есть способ получше?

#!/bin/bash
while true;
  do 
    number=$RANDOM
    echo $number >/dev/ttyUSB0
    sleep 4     
  done

Спасибо за потраченное время!

1 Ответ

0 голосов
/ 01 апреля 2019

Поскольку вы разговариваете с модемом, общий способ общения с модемом заключается в использовании ModemManager , приложения, которое обрабатывает связь с модемом для вас.

Если вы не можете использовать ModemManager или по какой-то причине вам необходимо использовать bash, имейте в виду, что для использования модемом команды должны заканчиваться \r\n. Лучший способ сделать это - использовать /bin/echo следующим образом:

/bin/echo -n -e "AT\r\n" > /dev/ttyUSB0

Это гарантирует, что echo преобразует escape-символы в возврат каретки и перевод строки соответственно.

...