Как обработать отчет о доставке в GSM модеме?

Я хочу использовать GSM-модем в приложении для каких-то целей.

то, что я хочу, обрабатывает отчет о доставке SMS для списка отправленных смс.

Входящие и исходящие GSM модемы ограничены 15 пунктами. каждый раз, когда я читаю входящие, модем gsm возвращает список и очищает список.

Как проверить статус доставки смс, которые были удалены из входящих сообщений модема GSM?

Мне нужно что-то уникальное, что позволяет мне идентифицировать каждое сообщение.

1 ответ

Решение

каждый раз, когда я читаю входящие, модем gsm возвращает список и очищает список.

Сообщения, хранящиеся в памяти модема, не будут удалены после прочтения. Вы только что прочитали сообщение с at+cmgl={message id in storage} команда, а затем удалите его, используя at+cmgd={message id in storage} (или нет, как вы хотите. Вы можете очистить все хранилища модема, используя at+cmgd=1,4 команда).

Вернемся к вопросу: после отправки SMS вы получите ответ от модема, что-то вроде этого: +cmgs: {sms id, 0 to 255} OK, В случае, если Сервисный центр успешно доставил SMS, модем вернет этот ответ: +cds: {some id which does not matter} {PDU status report}, Вам нужно просто декодировать этот PDU, чтобы получить отчет о состоянии, идентификатор оригинального SMS и другие полезные данные. Если ID отправленного смс и идентификатор из отчета о состоянии совпадают, у вас есть отчет о состоянии именно для вашего сообщения. Обратите внимание: если вы удалите сообщение из хранилища модема до получения отчета о доставке, вы получите отчет, который будет содержать всю обычную информацию, но статус доставки будет, скорее всего, 71 вместо 0.

Другие вопросы по тегам