Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Работа с GSM телефоном

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12

Открыть новую тему     Написать ответ в эту тему

Ontarion



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Качайте исходники проекта FMA на fma.sourceforge.net. Сорцы на Делфи. Эо лучшая на данный момент программа своего класса, притом что opensource.

Всего записей: 65 | Зарегистр. 02-03-2005 | Отправлено: 13:16 26-08-2005
Dzar

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
где находится бит PDU-type?
незабывай что мы работаем в тектовом режиме

Всего записей: 17 | Зарегистр. 22-06-2005 | Отправлено: 07:32 01-09-2005 | Исправлено: Dzar, 08:38 01-09-2005
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
Dzar

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FireZone
 
Спасибо за объяснение... все понятно..

Всего записей: 17 | Зарегистр. 22-06-2005 | Отправлено: 05:16 08-09-2005
FireZone

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Спасибо за объяснение... все понятно..

Получилось? Работает? Если нужно что-то осветить подробнее, или есть еще вопросы, или нужны еще примеры - спрашивай.

Всего записей: 293 | Зарегистр. 28-01-2004 | Отправлено: 17:03 09-09-2005
Dzar

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пока не пробывал... некогда....
А с английскими длинными СМСками ты разбирался ?
Там заголовок другой

Всего записей: 17 | Зарегистр. 22-06-2005 | Отправлено: 05:03 14-09-2005
GreyGendalf

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
всем привет.
 
не могу разобрать PDU пришедшего SMS.
 
читаю командой at+cmgl+4 пришедшие SMS, получаю PDU = '07913700390003F002E40B913700176547F0500191907191425001912195334200', начинаю разбирать,
 
вот здесь  и вот здесь описание формата пришедшего SMS.
действую согласно его, итак.
 
07 - длина адреса СМС центра
913700390003F0 - адрес СМС центра
02 - First octet of this SMS-DELIVER message. (тип сообщения: TP-MTI, TP-MMS, TP-SRI, TP-UDHI, TPRP)
E4 - непонятная хрень
0B - длина адреса отправителя
913733440401 - адрес отправителя
и т.д.
 
так вот, что такое E4? самое главное в стадарте его нет. сразу после октета с TP-MTI, TP-MMS, TP-SRI, TP-UDHI, TPRP идет адрес отправителя.
 
у кого какие мысли будут?
может найденный мной стандарт устарел?

Всего записей: 272 | Зарегистр. 06-01-2003 | Отправлено: 16:36 19-10-2005
GreyGendalf

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
поднимаю тему

----------
hi

Всего записей: 272 | Зарегистр. 06-01-2003 | Отправлено: 10:51 11-02-2006
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
GreyGendalf
вот полная расшифровка твоего сообщения

Цитата:
 
PDU LENGTH IS 33 BYTES
ADDRESS OF DELIVERING SMSC
    NUMBER IS :    +73009300300
    TYPE OF NR. :    International
    NPI :    ISDN/Telephone (E.164/163)
 
MESSAGE HEADER FLAGS
    MESSAGE TYPE :    SMS STATUS REPORT
    MSGS WAITING IN SC :    YES
    RESULT OF A :    SMS SUBMIT
    MSG REFERENCE NR. :    228 (0xE4)
 
RECIPIENTS ADDRESS
    NUMBER IS :    +73007156740
    TYPE OF NR. :    International
    NPI :    ISDN/Telephone (E.164/163)
 
SMSC TIMESTAMP :    19.10.05 9:17 GMT+6,00
 
DISCHARGE TIMESTAMP :    19.10.05 12:59 GMT+6,00
 
STATUS OF MESSAGE :    (0) TRANSACTION COMPLETED
    THIS MEANS :    SM received by SME
 

По поводу E4 - это ссылка на сообщение. Когда ты отправляеш сообщение, то смс центр присваивает ему номер(вроде он, хотя по другим сведеньям - телефон, и мне кажеться это так). Телефон использует эту ссылку, чтобы определить на какое сообщение пришёл отчёт

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 13:24 01-03-2006
FireZone

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OdesitVadim
Подскажи какую тулзу заюзал для расшифровки.

Всего записей: 293 | Зарегистр. 28-01-2004 | Отправлено: 14:30 01-03-2006
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
pduspy
Где качал - не помню, если что - залью на почту (меньше пол метра)

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 17:10 01-03-2006
FireZone

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нашел я этот самый PDUspy (478кБ), если кому еще надо. Полезная штучка для разработчика. Сайт программы здесь . Правда, немецкий. Там есть еще другие интересные программки.

Всего записей: 293 | Зарегистр. 28-01-2004 | Отправлено: 18:04 01-03-2006
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Попутно вопрос в тему. Отправляю две смс подрят. Вторая не доходит. Причина оказалась банальна - тока телефон не получит ответ от смс центра, он не будет отправлять другие смс. На этот ответ нужно от 2-5 сек обычно. В случае плохой связи - больше. Так вот интересно, что в тот момент, когда ожидается отправка смс он свободно принимает AT команды и справно отвечает на них. А вот команды отправики смс он почему то "глотает" тоесть он мне говорит "OK", но смс утеряна. Может кто знает, есть ли команда проверки какая-либо?

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 18:11 01-03-2006
FireZone

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OdesitVadim
А что надо проверять? Когда смс уйдет, телефон ответит +СMGS: nn, после чего можно слать следующее сообщение. nn - Message Reference. Т.е., та самая ссылка, которая позже придет в уведомлении о доставке (если оно было заказано соответствующим флажком при отправке).

Всего записей: 293 | Зарегистр. 28-01-2004 | Отправлено: 10:39 02-03-2006
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
FireZone
Он просто пришлёт? Тоесть мне необходимо просто чуточку подождать и опрашивать порт? Это многое меняет.
А если не ушла - Error?


----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 11:45 02-03-2006
FireZone

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OdesitVadim

Цитата:
Он просто пришлёт? Тоесть мне необходимо просто чуточку подождать и опрашивать порт?

Я для этих целей завожу отдельный поток и в нем жду данные с порта. Как только сообщение отправится, телефон выдаст в порт +CMGS: nn. Если ошибка, то выдаст +CMS ERROR mm (код ошибки; его расшифровку можно узнать в документации)

Всего записей: 293 | Зарегистр. 28-01-2004 | Отправлено: 12:05 02-03-2006
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
FireZone
Большое спасибо. На данный момент я решал всё с помощью таймаутов. Но они не решали всех проблем. А поток... Да с этого я и начинал писать.
У меня есть книга по стандарту смс емс и ммс. Но AT команды там описаны в пару страниц. Скоро буду сканить, так что обращаётесь, если кому надо.
 
Есть ещё одна интересная проблема. В параметрах смс выставляю получения отчёта. На телефоне, подключённому к компьютеру работает правильно. Тестировал на GSM шлюзе(марка по документации - "eccom basis gsm900/1800", на AT команды о запросе производителя и марки отвечает "wavecom modem multiband 900 E 1800"). Он ответы (отчёты о доставке) не отображает. Приходящие смс - без проблем. Как решать - не знаю

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 13:21 02-03-2006 | Исправлено: OdesitVadim, 13:47 02-03-2006
FireZone

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OdesitVadim

Цитата:
Скоро буду сканить

В инете хватает инфы по смс и ат-командам. Вот для примера.
GSM 07.07   - детальная дока по ат-командам
GSM 03.40 - детальная дока по SMS
GSM 03.38 - дока по схемам кодирования
И немного про EMS

Цитата:
Он ответы (отчёты о доставке) не отображает.

В каком смысле "не отображает": не пишутся на сим-карту? Я так понимаю, дисплея у него нет.

Всего записей: 293 | Зарегистр. 28-01-2004 | Отправлено: 15:25 02-03-2006
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Я ожидаю, что они прийдут и запишуться на сим карту
А их нет.

Цитата:
В инете хватает инфы по смс и ат-командам. Вот для примера

Не для всех английский второй родной.....

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 16:25 02-03-2006
FireZone

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OdesitVadim

Цитата:
Я ожидаю, что они прийдут и запишуться на сим карту  
А их нет.

Попробуй поиграться с командой AT+CNMI, возможно по дефолту установлено высыпать уведомления в порт, а ты их не читаешь.

Цитата:
Не для всех английский второй родной.....

чо верно то верно...

Всего записей: 293 | Зарегистр. 28-01-2004 | Отправлено: 18:31 02-03-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Работа с GSM телефоном


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru