Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PDU SMS в SIM900D
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
maxgrind
При отправке СМС в PDU формате, после того как уже получил приглашение ">" и кидаю данные в УАРТ, вылезает ошибка "+CMS ERROR: operation not allowed". Пробовал то же самое на SIM300 - там ошибка называлась "Incorrect PDU length"
Порядок действий:
AT+CMGF=0
AT+CSCS=\"GSM\"
AT+CMGS=17
жду ">"
0011030B919711213355F40000FF0331D90C
1A

Также пробовал с UCS2 и IRA, естественно меняя UDL и само сообщение в соответствие с PDU форматом, пробовал задавать SCA вручную, вместо первого ноля, пробовал задействовать команды относящиеся к СМС такие как AT+CCODE, AT+CSMS - ничего не дало. Само PDU сообщение сначала вручную составлял, потом примеры переделывал, а в этом примере PDU вообще сгенерировано стопудово работающей прогой.
В отладчике вижу что эхом приходит назад всесь буфер, именно то что нужно послать, ничего лишнего не прихватил и не забыл докинуть.
Пробовал также 0x1a кидать отдельно через пару секунд - не помогло.

В текстовом режиме все хорошо работает.
Палыч
Цитата(maxgrind @ Sep 11 2012, 14:40) *
1A

"1А" - это что? Два символа "1" и "А" ?
maxgrind
Цитата(Палыч @ Sep 11 2012, 17:20) *
"1А" - это что? Два символа "1" и "А" ?

Нет. Это CTRL+Z (EOF) 0x1a
maxgrind
Цитата(Палыч @ Sep 11 2012, 17:20) *
"1А" - это что? Два символа "1" и "А" ?

Нет. Это CTRL+Z (EOF) - 0x1a
Палыч
Цитата(maxgrind @ Sep 11 2012, 15:25) *
Нет. Это CTRL+Z (EOF) - 0x1a

Надеюсь, что между 0011030B919711213355F40000FF0331D90C и Ctrl-Z других символов (например, перевод строки) - нет...
maxgrind
Нет.
zebrox
Вопрос немного не по теме.

А зачем нужен режим пду в мк?
Что он дает кроме отправки "склеенных" смсов?

Просто с этими склеенными смсами есть одна особенность, если одну часть не отослать, то все остальные не доходят до аддресата.
Но и генерация немного сложная, декодирование еще более-менее.
А кирилицу можно и в текстовом режиме слать вполне успешно.

Не видел еще устройства отсылающего склеенные смс.
_Артём_
Цитата(zebrox @ Sep 11 2012, 15:33) *
А зачем нужен режим пду в мк?

Есть возможность применять любую кодировку, можно даже бинарные данные отправлять.
Нет проблем со служебными символами (CR, LF и тп).

Цитата(zebrox @ Sep 11 2012, 15:33) *
Не видел еще устройства отсылающего склеенные смс.

Мобильный телефон называется.
maxgrind
Цитата
Вопрос немного не по теме.

А зачем нужен режим пду в мк?
Что он дает кроме отправки "склеенных" смсов?


Вот как раз и нужно слать "длинные СМСки"
maxgrind
А может кто нибудь проверить приведенное в начале PDU сообщение на своем SIM900?
zebrox
А какой текст пытаетесь отослать? напишите тут. Попробую сгенерировать пду и сравним Ваш и мой результат.
megajohn
Цитата(zebrox @ Sep 12 2012, 16:20) *
А какой текст пытаетесь отослать? напишите тут

если не ошибаюсь автор пытается на номер +79111233554 отправить 123
zebrox
AT+CMGS=24
0051000b919711213355f40000FF0b060804a858010131d90c

а так, тут с хедером?
maxgrind
Выдает ту же ошибку. А что за хедер перед данными?
0051000b919711213355f4 00 00 FF 0b 060804a8580101 31d90c
zebrox
это UDH для склееных смсов, хотя смс один.
Моя нокия этот смс успешно передала, на симе нет возможности попробовать, странно почему сим ругается.

Я перед оправкой меняю кодировку на на UCS2.
maxgrind
Может нужно выполнить еще какую-нибудь AT-команду или модем должен быть в определенном состоянии? Типа как при установлении GPRS сессии проверяем состояние командой AT+CIPSTATUS или для выполнения. Правда ни в описании команд для СМС ни в аппноте про СМС ничего такого нету. Эта тройка команд и так работает.
_Артём_
Цитата(maxgrind @ Sep 13 2012, 16:16) *
Может нужно выполнить еще какую-нибудь AT-команду

Например это может быть такая команда:
Цитата
AT+CMGF=0

У вас какой режим смс выбран?
zebrox
Оба варианта передались.

AT+CMGS=17
> 0011030B919711213355F40000FF0331D90C
+CMGS: 190
OK

AT+CMGS=24
> 0051000b919711213355f40000FF0b060804a858010131d90c
+CMGS: 191
OK

at+gsv
SIMCOM_Ltd
SIMCOM_SIM900
Revision:1137B08SIM900M64_ST_DTMF_JD_MMS
OK
maxgrind
Цитата(_Артём_ @ Sep 13 2012, 21:39) *
У вас какой режим смс выбран?


Вот в первом сообщений указывал.
Цитата
Порядок действий:
AT+CMGF=0
AT+CSCS=\"GSM\"
AT+CMGS=17
жду ">"
0011030B919711213355F40000FF0331D90C
1A

На команды как и положено ОК отвечает.



Цитата(zebrox @ Sep 13 2012, 22:33) *
Оба варианта передались.

AT+CMGS=17
> 0011030B919711213355F40000FF0331D90C
+CMGS: 190
OK

AT+CMGS=24
> 0051000b919711213355f40000FF0b060804a858010131d90c
+CMGS: 191
OK

at+gsv
SIMCOM_Ltd
SIMCOM_SIM900
Revision:1137B08SIM900M64_ST_DTMF_JD_MMS
OK


Спасибо. Значит косяк точно не в PDU формате.
У меня прошивка кстати 1137B10SIM900M64_ST

А где можно надыбать 8, 9 или 11 прошивки?

Так же хотелось бы к ним errata почитать
CADiLO
1137B10SIM900M64_ST - это предпоследняя версия европрошивки
Текущая для нас - 1137B09SIM900M64_ST_DTMF_JD_MMS

Пишите запрос тому дистрибьютору у которого покупали модуль
maxgrind
Всем спасибо за помощь. Была очень глупая ошибка - массив PDU был не в текстовом формате а в хексе wacko.gif
Павел_Б
Здравствуйте.
Извиняюсь что не совсем в тему, но где то видел преобразование текстовой строки в UCS2.
То есть на входе печатаем текст "Привет", а на выходе имеем строку 04..04..04...........
Может кто поделится ссылочкой на конвертер или подскажет как преобразовать текст в строку ucs2 стандартными средствами Windows.
Спасибо. rolleyes.gif
Alechek
PDUspy все прекрасно показывает
Нажмите для просмотра прикрепленного файла
Павел_Б
Цитата(Alechek @ Oct 19 2012, 09:22) *

Да, спасибо, она у меня есть.
Как в ней не крутил, при выставлении формата UCS2 максимальное число символов (текстовых) - 21. Вместо положенных 70. Может не туда "давлю"?
Вот и решил СМС-ку по частям "собирать". Отдельно "служебную информацию" и отдельно саму "текстовую" часть.
21 символ мало очень... нужна СМС под 70 символов и при чём много их. Каждый символ искать через таблицу долго.
И чтоб глаза не "сломать" решил спросить конвертер символов... Чтобы текст вписал какой нужно и быстро получалась строка в кодировке UCS2.
Я где-то такой видел. А где - склероз.
Alechek
Да, вижу косяк в PDUspy....
Попробуй это Нажмите для просмотра прикрепленного файла
Павел_Б
Цитата(Alechek @ Oct 19 2012, 15:49) *
Да, вижу косяк в PDUspy....
Попробуй это Нажмите для просмотра прикрепленного файла

О! Спасибо большое! rolleyes.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.