Вопрос

Я подключил свой телефон Samsung (GT-S3350) к компьютеру через USB-кабель и установил для него USB-драйвер.Я могу отправлять SMS на любой номер телефона через свой компьютер с помощью AT-команд.Я пробовал использовать Hyperterminal и через Java.

Чтобы настроить мобильный телефон в текстовом режиме и получать сложные ошибки, я отправляю следующие команды в Гипертерминал.

АТ+CMGF=1
ХОРОШО
АТ+СМЕЕ=2
ХОРОШО

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

AT+CMGL="ВСЕ"
ХОРОШО

ХОРОШО

ХОРОШО


ХОРОШО


ХОРОШО


ХОРОШО


ХОРОШО


ХОРОШО
.
.
.
ОШИБКА

ХОРОШО

То же самое происходит, когда я даю «REC READ», «REC UNREAD» и т. д.вместо «ВСЕ».
Кроме того, когда я использую команду CNMI для прослушивания уведомлений о новых сообщениях, я сразу получаю ОК.Ожидается, что он покажет индекс вновь полученных SMS, но у меня он остается пустым.

АТ+CNMI=1,1,0,0,0
ХОРОШО

Я пробовал получать SMS с другого телефона.Сообщение получено, но я не вижу индекса памяти на своем терминале.

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

Я полностью открыт для альтернатив получения SMS на ПК.Пожалуйста, предложите.

Это было полезно?

Решение

Ой, это выглядит не очень хорошо.AT-команды никогда не должны1 доставьте более одного итогового кода результата, поэтому получите массу OKза которым следует ERROR это определенно не правильно.

Некоторые вопросы и предложения по дальнейшему тестированию/отладке:

  • Применимо ли это и в режиме PDU?

  • Применимо ли это ко всем различным хранилищам сообщений (проверьте AT+CPMS)?

  • Пока вы не выполняете вызов данных, начатый с помощью ATD, имеет ли значение установка <mode> до 2 за AT+CNMI?

  • А <bfr> Аргумент гласит, что нежелательные коды результатов будут промыты при введении режимов с 1 по 3.Сразу после получения сообщения (во время тестирования), имеет ли это какое -либо значение, чтобы кратко установить режим в 0, а затем вернуться к 1 (или 2), тем самым вынуждая ввод в режим, который должен выводить все буферные показания?

  • Пробовали ли вы использовать разные операционные системы?Разные терминальные программы?(На самом деле это не должно иметь никакого значения, но кто знает)

1Ну, кроме одной ошибки в спецификации (см. примечание 1).


Общий совет о том, как узнать больше о AT-командах, можно найти по ссылкам на Информационная страница тега at-command, в частности 27.005 для команд обмена сообщениями (но если вы раньше не читали V.250, начните с него).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top