Запускать AT-команды из оболочки adb на Redmi 7 - PullRequest
1 голос
/ 16 июня 2020

Я пробовал это:

echo -e "ATD123456789;\r" > /dev/smd0

, а затем, когда я запустил:

cat /dev/smd0

, я получил следующий результат:

ATD123456789;

Это то, что я ' м должен видеть? Телефон не ответил на команду.

Обновление: телефон звонил, когда я использовал smd7 или smd11. Проблема в том, что я пытаюсь отправлять SMS-сообщения с помощью AT + CMGS, но это не работает.

Update2: Я запускаю эту команду: cat /dev/smd7 & echo -e "AT+CMGS=24;\r" > /dev/smd7. Затем я ввожу сообщение PDU и получаю следующее: /system/bin/sh: 079...771B: not found

1 Ответ

1 голос
/ 17 июня 2020

Как вы, наверное, знаете, команда

ATD<number>;\r

выполняет голосовой вызов на номер назначения <number> (без точки с запятой ; тип вызова будет зависеть от текущие настройки команды AT+FCLASS).

По умолчанию код результата OK будет получен, как только он начнет удаленно звонить, то есть через несколько секунд. Но потребуется еще больше, если есть проблемы с сетью или удаленный номер недоступен / не существует.

Тайм-аут команды ATD по умолчанию во время голосового вызова составляет 30 секунд, и его можно изменить, выполнив ATS7 команда. Например, чтобы установить тайм-аут в 1 минуту:

ATS7=60

Вы получите ответ command echo : на самом деле модем по умолчанию повторяет каждый символ, отправленный на его AT-порт (эхо можно отключить с помощью команды ATE0 и снова включить с помощью ATE1). Его получение ** является доказательством того, что модем правильно включен и правильно обменивается данными.

Итак, хотя я знаю, что это не единственное, что вы ожидаете увидеть (вы хотели бы увидеть ответ!) вы на самом деле должны его увидеть.


Некоторые советы, чтобы получить ваш ответ:

  1. Начните предоставлять более простые команды с более короткими таймаутами. Например, самый базовый c AT.
  2. Убедитесь, что вы подождите не менее максимального времени ожидания команды
  3. Установите команду cat в фоновом режиме и перед началом предоставления команд:
    cat /dev/smd0 &

    echo -e "AT\r" > /dev/smd0
    OK

Примечание: мне не известно о тайм-ауте в команде cat .

...