Member 12050240 Ответов: 1

Как разобрать сообщение с модуля GSM ?


+CMGL: 0,"REC READ","+84963225103",,"16/01/25,15:05:19+28"
003A00290020006D1EDB0069002000681ED300690020007300E1006E0067002001110061006E00670020007400ED006E00680020006800F90020007400721EC50020006D1EA500790020006E006700E000790020003A002900290020006D00E0002000731EE300200061006E00680020006C006F0020003A00330020006E00EA006E00200074


Как разобрать
003A00290020006D1EDB0069002000681ED300690020007300E1006E0067002001110061006E00670020007400ED006E00680020006800F90020007400721EC50020006D1EA500790020006E006700E000790020003A002900290020006D00E0002000731EE300200061006E00680020006C006F0020003A00330020006E00EA006E00200074
чтобы написать ?

Что я уже пробовал:

Как разобрать сообщение с модуля GSM ?

Mehdi Gholam

Выглядит как 4-символьные/2-байтовые значения Юникода.

Member 12050240

К черту тебя экзамен для меня

Patrice T

Шестнадцатеричная кодировка utf16 ?

Richard MacCutchan

Проверьте документацию для модуля, генерирующего информацию.

1 Ответов

Рейтинг:
2

Jochen Arndt

Поищите в сети "AT+CMGL". Вы найдете описания для команды list SMS messages.

Следует также отметить, что существует два режима для формата вывода сообщений: текстовый режим и режим PDU, который можно выбрать с помощью AT+CMGF.

Таким образом, вы можете переключиться в текстовый режим, чтобы получить читаемый вывод.

В противном случае вам придется преобразовать шестнадцатеричную строку данных. Как это сделать, зависит от формата PDU, используемого вашим модемом (проверьте документацию), и от того, какой язык программирования вы хотите использовать.

Ваши данные, очевидно, являются 16-битными шестнадцатеричными значениями. Итак, получите подстроки из 4 символов, преобразуйте их в двоичные (например, с помощью strtol() с помощью C/C++) и запишите эти значения в буфер. Если декодирование UCS2, преобразование просто, потому что это UTF-16 BE, но преобразование строки поменяет местами байты так, что результатом будет файл UTF-16, используемый Windows внутренне, а также поддерживаемый Linux. Если это что-то другое, возможно, потребуется получить декодер (например, используя библиотеку GSM, которая поддерживает используемую кодировку).

Соответствующие ссылки:
Короткое сообщение Peer-to-Peer-Википедия[^]
SMS алфавиты · bitcoder/ruby_ucp Wiki · GitHub[^]


CPallini

5