FireZone
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Dzar Цитата: где находится бит PDU-type? незабывай что мы работаем в тектовом режиме | Сначала приведу пример, потом объясню. Итак, пример. Сначала даем команду AT+CSMP=81,167,0,8 Потом командой AT+CMGS отправляем в текстовом режиме первую часть сообщения: AT+CMGS="+79*********",<CR>050003010201041A0430043A002004430442043E043C043 804420435043B044C043D043E0020043F0440043804340443043C044B043204300442044C002 004420435043A0441044200200434043B044F0020043F04400438043C04350440043000200434 043B0438043D043D043E0433043E00200441043A043B04350435043D043D043E0433043E002 00441<ctrl+z> Теперь даем команду AT+CSMP=81,167,0,8 и затем отправляем вторую часть: AT+CMGS="+79*********",<CR>050003010202043E043E043104490435043D0438044F0020003A0029<ctrl+z> В результате этих манипуляций получателю придет обычная склеенная СМС с текстом "Как утомительно придумывать текст для примера длинного склеенного сообщения :)" Теперь пояснения. Разберем команду AT+CSMP. Первый параметр этой команды как раз и есть тот самый PDU-Type (в документации обозначается как <fo>), второй параметр - период действия сообщения (<vp>), третий параметр так называемый PID (<pid>), четвертый - схема кодирования (<dcs>). Перед отправкой первой части мы поставили параметры 81,167,0,8. Разберем PDU-Type по битам: 81 (51h): 0 - RP (Reply Path, не используем, ставим ноль) 1 - UDHI (означает, что тело сообщения содержит заголовок) 0 - SRR (Status report request, не запрашиваем отчет о доставке) 10 - VPF (Validity Period Format, ставим всегда эти два бита в состояние 10) 0 - RD (Reject Duplicates, много писать, читаем доку :). Ставим ноль и не напрягаемся) 01 - MTI (Message Type Indicator, 01 - это SMS-SUBMIT, т.е., исходящее сообщение) Собственно всё. Перед отправкой второй части ставим флаг SRR. О заголовке и схеме кодирования я писал выше. | Всего записей: 293 | Зарегистр. 28-01-2004 | Отправлено: 19:56 01-09-2005 | Исправлено: FireZone, 17:09 09-09-2005 |
|