Примечание по текстовому режиму и кодировкеОт текстового режима (PDU или текстовый) и кодировки модуля зависит формат ввода номеров, USSD запросов, входящих и
исходящих СМС.Самый геморройный и универсальный вариант – это
PDU режим, т.к. в нём можно без проблем отправлять и принимать любые текстовые
данные, но из-за его «геморойности» рассматривать его не буду.Самый простой вариант –
GSM кодировка. В нём номера вводятся привычным цифровым методом, исходящие и исходящие сообщения,
как СМС, так и USSD в латинице отображаются, как им и полагается. С
кириллицей дела обстоят посложнее, модуль входящие сообщения с ней
отображает в UNICOD, точнее в HEX значениях UNICOD. С исходящими
сообщениями дела обстоят сложнее!Второй вариант, посложнее –
UCS2 кодировка. Входящие и исходящие сообщения, USSD запросы, номера телефонов в запросах – всё
пишется в UNICOD. Упрощенные USSD запросы не работают.Другие варианты мной плохо опробованы, но у них тоже всё идёт в своей кодировке.Пример (номер телефона заменён на +79012345678, добавлены переносы):Кодировка
и
режимЗапросОтвет
PDUAT+CMGR=2+CMGR: 1,"",38
07919720780110F0000B919710325476F800003190121
175644215D4F29C0E9AB7E72E50985DC6B7CAF8B24B5E07
OKAT+CMGR=3+CMGR: 1,"",59
07919720780110F0000B919710325476F800083190122
185134228005400650073007400200073006D00730020
0032002E0020042204350441044200200441043C0441
OK
GSMAT+CMGR=2+CMGR: "REC READ","+79012345678","","13/09/21,11:57:46+24"
Test sms text
OKAT+CMGR=3AT+CMGR=3
+CMGR: "REC READ","+79012345678","","13/09/21,12:58:31+24"
005400650073007400200073006D007300200032
002E0020042204350441044200200441043C0441
OKAT+CUSD=1,"#100#"OK
+CUSD: 0,"Balance:240,68r ",
UCS2AT+CMGR=2+CMGR: "REC READ","002B0037003900300031
0032003300340035003600370038","","13/09/21,11:57:46+24"
005400650073007400200073006D0073002E0020
0061006C00650078002D006500780065002E00720075
OKAT+CMGR=3+CMGR: "REC READ","002B00370039003000310032
003300340035003600370038","","13/09/21,12:58:31+24"
005400650073007400200073006D007300200032
002E0020042204350441044200200441043C0441
OKAT+CUSD=1,"00230031
003000300023"OK
+CUSD: 0,"00420061006C0061006E00630065003A0032
00340030002C0036003800720020",64Текст сообщений выданного на запрос «AT+CMGR=3» — «Test sms 2. Тест смс»Кратко о UNICODEВ юникоде символы кодируются в шестнадцатиричке записанной в текстовом виде, при этом
первые 127 символов просто переводятся в HEX, а вот к кириллице
добавляется 350h.Пример: 1 – 0031, G – 0047, z — 007A, Ы — 042B, я — 044FПрограммка для кодировки и раскодировки UNICODE –
скачать.