У меня есть небольшой скрипт, который я запускаю в оболочке adb телефона Android (каталог / system / etc), который позволяет общаться с модемом путем отправки / получения одной AT-команды.Сам скрипт, если он запускается в оболочке 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 отправит команду на + cops?чтобы проверить оператора, для которого зарегистрирован мобильный телефон:
$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, сидящая в буфере устройства после загрузки), или at + cops? (эхо), или вообще ничего, но никогда + COPS: 0,0, "AT & T", 6, что я ожидаю.Не могли бы вы помочь мне выяснить, что происходит и как это исправить?В идеале я хочу иметь возможность выполнять по команде, вернуть управление в powershell и иметь выходные данные для дальнейшей обработки.Я также открыт для других решений, чтобы реализовать то же самое.Буду очень признателен за вашу помощь.Спасибо!