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.
О заголовке и схеме кодирования я писал выше.