При удалении СМС они не удаляются - PullRequest
1 голос
/ 30 июня 2009

Я подключил GSM / GPRS-модем к своему микроконтроллеру, и все работает нормально. Когда я хочу удалить все сообщения в хранилище ME, я должен использовать эту команду:

AT+CMGD=1,4

->OK

Флаг удаления «4» означает, что я хочу удалить все сообщения, а флаг «1» отменен. Однако, когда я проверяю, является ли хранилище пустым, я получаю:

AT+CPMS?
+CPMS: 8,100,8,100,8,100

Указывает, что память все еще занята, и сообщение не было удалено.

Кто-нибудь знает, что я делаю не так?

Заранее спасибо!

1 Ответ

2 голосов
/ 30 июня 2009

Я использую команду CMGD для удаления сообщений.

Насколько я вижу, CMGR команда используется для чтения сообщений, а не для их удаления.

Изменить (так как вы использовали команду CMGD)

Возможно, ваш модем не поддерживает несколько параметров для команды CMGD - мой модем Siemens этого не делает (или, если он это делает, его нет в документе набора команд AT). Вместо того чтобы удалять все сообщения в одной команде, я делаю CMGL, чтобы получить прочитанные сообщения, анализирую результаты, чтобы получить индекс, и они удаляют их по одному, используя CMGD. Если вы найдете другой способ, мне было бы интересно.

Использовать AT + CMGD =? Команда для поиска допустимых значений параметров.

Редактировать (поскольку вы убедились, что модем поддерживает CMGD с двумя параметрами

Я не знаю, в чем проблема. Я заметил, что ваша команда CPMS дает разные результаты для моего, пример моего:

AT+CPMS?
+CPMS: "SM",10,10,"MT",12,35,"MT",12,35

У вас нет строки памяти. Я предполагаю, что команда, которую вы фактически сделали, была:

AT+CPMS="ME"

Когда вы переключаетесь на хранилище ME и выполняете команду CMGL, выводится ли в ней список неотвеченных сообщений?

...