Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Формат SMS, "выделение" текста
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Anthoni
Столкнулся с проблемой выделить текст из SMS, изначально программа выделяля команду между CR LF, но выделить текст из SMS понятное дело не смогла. По прочтению документации я понял что СМС читается так:
CR LF номер, дата, время и т.д. CR LF ТЕКСТ CR LF OK CR LF... У меня SIM300D выдает СМСки в виде:
CR LF номер, дата, время и т.д.CR LF ТЕКСТ CR LF CR LF OK CR LF
Как более профессиональнее выделить ТЕКСТ? Какой алгоритм действий? У вас для команд и чтения СМС, функции разные? Это пол беды, как быть если в ТЕКСТЕ СМС попадется - CR LF? В нокиях вроде есть такой символ... Хотелось бы сделать чтение СМС без дыр
ant333
из PDU выделяй
там никаких двусмысленностей нет
Anthoni
А если в самом тексте попадется CR LF?
Возможно ли запросить одну "шапку" СМС, без текста?
ant333
в смысле в pdu mode переключи (at+cmgf=0), никаких cr lf лишних не будет
правда придется pdu парсить
Палыч
Цитата(Anthoni @ Feb 13 2008, 18:07) *
У меня SIM300D выдает СМСки в виде:
CR LF номер, дата, время и т.д.CR LF ТЕКСТ CR LF CR LF OK CR LF
Как более профессиональнее выделить ТЕКСТ?
Смотрим документацию на SIM300 вместе
Цитата
+CMGL: < index > , < stat >,< oa/da > ,[< alpha > ],[< scts > ][,< tooa/toda > , < length > ]<CR><LF><data>[<CR><LF>]
В том месте, что Вы обозначили как "и т.д." есть параметр < lengt > , который и обозначает длину того, что Вы обозначили как "ТЕКСТ". Нужно просто отсчитать нужное количество байт. Есть одно "но"! В документации парамет < length > обозначен как необязательный (заключен в скобки [ ] ), при этом не понятно: будет ли он в ответе от GSM и при каких условиях. Нужно подключить SIM300 к компьютеру, и в терминалке проверить его наличие. Если SIM300 его не выдает, или Вы не уверены в том, что он не "исчезнет" вдруг, то лучше использовать PDU mode (как Вам тут уже советовали). В PDU mode параметр < length > присутствует всегда
Цитата
+CMGL:<index>,<stat>,[<alpha>],<length><CR><LF><pdu><CR><LF>
Anthoni
Спасибо за ответ, завтра посмотрю ещё разок, но вроде нету в текстовом режиме - length. В принципе в задаче устроит и текстовый режим без length. Но и с ПДУ хочется разобраться, прочитал я СМС в ПДУ smile.gif - length имеется, но какие то там непонятные цифры и буквы :D , как хоть оно шифруетсо это ПДУ? Как его парсить?
Палыч
Цитата(Anthoni @ Feb 21 2008, 00:28) *
Но и с ПДУ хочется разобраться, прочитал я СМС в ПДУ smile.gif - length имеется, но какие то там непонятные цифры и буквы :D , как хоть оно шифруетсо это ПДУ? Как его парсить?
Вам поможет вот эта информацияНажмите для просмотра прикрепленного файла
Если останутся вопросы, то можно поиграться с этой программой Нажмите для просмотра прикрепленного файла
ant333
Вот тут еще поподробнее есть
http://rpu6.nm.ru/doc/appnote_construction_of_sms_pdus.pdf
Alechek
Цитата(Палыч @ Feb 15 2008, 11:20) *
Есть одно "но"! В документации парамет < length > обозначен как необязательный (заключен в скобки [ ] ), при этом не понятно: будет ли он в ответе от GSM и при каких условиях.

Проверил. Этот и другие некоторые параметры присутcвуют в Text mode если установить
+CSDH=1
Правда в текстовом режиме другой косяк вылазит: +CMGL не выдает весь список. sad.gif
Всего 3 сообщения, в ячейках 1,3,4. В текстовом режиме листаются только 1 и 3. В PDU показывает все.
HARMHARM
Цитата(Alechek @ Mar 12 2008, 09:32) *
Правда в текстовом режиме другой косяк вылазит: +CMGL не выдает весь список. sad.gif
Всего 3 сообщения, в ячейках 1,3,4. В текстовом режиме листаются только 1 и 3. В PDU показывает все.

Уже говорили об этом, в режиме PDU показывает все SMS, в текстовом режиме длинные SMS склеивает.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.