2012-01-28 3 views
3

У меня есть небольшой скрипт, который я запускаю в оболочке adb телефона Android (/ system/etc), который позволяет общаться с модемом, отправив/получая один AT команда. Сам сценарий, если он запущен в оболочке adb, работает нормально. Вот как это выглядит:Отправка команд AT из сценария Powershell на Android-телефон через adb

cat /dev/pts/7 & 
echo -e $1\\r > /dev/pts/7 

Вот выход в ADB оболочки:

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

OK 
/dev/pts/7: invalid length 
(need to press ENTER to return control to adb shell) 

# 

Теперь я хочу, чтобы вызвать этот скрипт из PowerShell скрипт работает на моем компьютере, таким образом, в конечном счете контролировать модем AT команд через , но ничего не происходит. Например, приведенный ниже сценарий powershell отправит команду в + копы? для проверки оператора, к которому мобильный зарегистрирован:

$adb = [IO.Path]::Combine([IO.Path]::Combine($Env:ANDROID, "platform-tools"), "adb.exe") 
& $adb remount 

$atCommand = "at+cops?" 
& $adb shell /system/etc/sendATCommand $atCommand 

Выход может выглядит иногда как + ATCMD (любой остаточный [патентованный] AT команды, сидя в буфере устройства после загрузки), или на + гаишников (эхо) , или ничего вообще, но never + COPS: 0,0, "AT & T", 6 которое я ожидаю. Не могли бы вы помочь мне выяснить, что происходит и как это можно исправить? В идеале Я хочу, чтобы иметь возможность выполнять команду, возвращать управление в powershell и иметь выход для дальнейшей обработки. Я также открыт для других решений для реализации того же самого. Буду признателен за вашу помощь. Благодаря!

+0

Работает ли то же самое с cmd.exe? Пахнет проблемой передачи аргументов. Попробуйте процитировать, чтобы передать кавычки в adb.exe, как этот '& $ adb shell/system/etc/sendATCommand" "" $ atCommand "" "'. –

+0

Спасибо за подсказку Энди, у меня не было возможности попробовать это; сделают это завтра. –

ответ

0

Не уверен ответить на ваш вопрос, мой телефон не является Android, но когда я подключаю его через Bluetooth или USB к моему компьютеру, создается COM-порт. Поэтому я создаю инструмент сборки в верхней части .NET SerialPort class, который позволяет, например, отправлять SMS с помощью модем телефона.

Думаю, это удобно в вашем случае.

+0

Спасибо за предложение. Я уже реализовал этот способ (т. Е. Модем связывается с ПК через последовательный порт), но мне действительно нужна способность осуществлять связь AT между AP и модемом из оболочки adb. –

 Смежные вопросы

  • Нет связанных вопросов^_^