Скрипт оболочки ADB для отправки AT-команд модему - невозможно вернуть управление оболочке и перехватить выводAndroid

Форум для тех, кто программирует под Android
Anonymous
Скрипт оболочки ADB для отправки AT-команд модему - невозможно вернуть управление оболочке и перехватить вывод

Сообщение Anonymous »

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

По сути, я нахожусь в оболочке adb телефона Android и общаюсь с модемом GPRS, отправляя AT-команды.
Я могу сделать это, перенаправив команду на файл устройства, представляющий модем; и я могу прочитать
ответ с помощью утилиты cat, работающей в фоновом режиме (запущенной ранее). Я реализовал это в сценарии,
который может отправлять одну AT-команду и читать ответ. Например, вот скрипт для
отправки по адресу +cops? чтобы узнать имя оператора мобильного телефона:

Код: Выделить всё

#SendATCommand script
cat /dev/pts/7 &
echo -e at+cops?\\r > /dev/pts/7
Вывод выглядит следующим образом:

Код: Выделить всё

# ./sendATCommand
./sendATCommand
#
+COPS: 0,0,"AT&T",6

OK
/dev/pts/7: invalid length
Теперь есть две проблемы, которые я не могу решить:
  • Мне все еще нужно вручную нажать кнопку ВВОД, чтобы вернуть приглашение оболочки adb «#». Есть ли способ вернуться
    к приглашению «#» программно? Опять же, я нахожусь в оболочке adb.
  • Отображаемый ответ невозможно записать ни в переменную, ни в файл (например, (#./sendATCommand > output.txt). Файл Output.txt будет пустым. Я пробовал различные перенаправления, но все равно не получилось.
Может ли кто-нибудь помочь мне решить эти две проблемы (если это вообще возможно)? В конечном итоге я хочу эту маленькую скрипт, который будет
вызван из «супер» скрипта (например, Perl или Powershell), работающего на ПК, к которому
подключено мое Android-устройство, но сделать это невозможно, пока эти две проблемы не будут решены. Заранее большое спасибо!

Вернуться в «Android»