реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
Ruslan-maniak
сообщение Aug 2 2013, 09:38
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 92
Регистрация: 27-12-12
Из: Томск
Пользователь №: 74 999



Здравствуйте. У меня проблема следующего характера: Я могу совершать звонки, принимать их и отправлять СМС в PDU формате. Однако приём СМС во включенном PDU режиме происходит странно. Если СМС на модем отправленно в 16-битном юникоде (то есть с использованием кирилицы) то с модема я получаю данные как положено по 4 символа на букву. Что соответствует 16-битному юникоду. И всё прекрасно декодируется в ASCII. Но если на модем приходит СМС в обычном тектовом формате (то есть латински буквы, цифры и разные знаки), то с модема я получаю следующий код этого СМС. Все служебные данные (номер отправителя, время, кол-во символов) приходят как надо. А вот сами символы в виде ASCII кода не приходят. То есть нормально приходит только первый символ, а за ним приходит мусор нужного размера. Например код входящего сообщения ("1234") запрошенного с модема АТ командой:
07919732520180F1040B91************00003180206170048204 31D98C06.
Отделённые пробелом данные и есть текст. Как видим первый символ соответствует истине (0x31 = '1'), а дальше три символа с мусором. Кто с этим сталкивался? В чём может быть косяк?
Если выключить режим PDU, то смс в любой кодировке принимается как надо. Так что вынужден сейчас сначала читать смс в режиме PDU (так как только так мы можем узнать кодировку пришедшего СМС), выключать этот режим, и снова читать пришедшее сообщение. Но это какой-то изврат и хочется разобраться в чём дело.
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Aug 2 2013, 09:49
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988



Семибитное кодирование ? wink.gif

http://smsinside.blogspot.com/2007/07/blog-post_09.html

апнот по PDU на русском

http://microchip.ua/simcom/SIM900x/AppNote...0Pdu%20mode.pdf


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
molecul
сообщение Aug 2 2013, 10:05
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 567
Регистрация: 19-01-11
Из: СПб
Пользователь №: 62 326



Цитата(Ruslan-maniak @ Aug 2 2013, 13:38) *
Здравствуйте. У меня проблема следующего характера: Я могу совершать звонки, принимать их и отправлять СМС в PDU формате. Однако приём СМС во включенном PDU режиме происходит странно. Если СМС на модем отправленно в 16-битном юникоде (то есть с использованием кирилицы) то с модема я получаю данные как положено по 4 символа на букву. Что соответствует 16-битному юникоду. И всё прекрасно декодируется в ASCII. Но если на модем приходит СМС в обычном тектовом формате (то есть латински буквы, цифры и разные знаки), то с модема я получаю следующий код этого СМС. Все служебные данные (номер отправителя, время, кол-во символов) приходят как надо. А вот сами символы в виде ASCII кода не приходят. То есть нормально приходит только первый символ, а за ним приходит мусор нужного размера. Например код входящего сообщения ("1234") запрошенного с модема АТ командой:
07919732520180F1040B91************00003180206170048204 31D98C06.
Отделённые пробелом данные и есть текст. Как видим первый символ соответствует истине (0x31 = '1'), а дальше три символа с мусором. Кто с этим сталкивался? В чём может быть косяк?
Если выключить режим PDU, то смс в любой кодировке принимается как надо. Так что вынужден сейчас сначала читать смс в режиме PDU (так как только так мы можем узнать кодировку пришедшего СМС), выключать этот режим, и снова читать пришедшее сообщение. Но это какой-то изврат и хочется разобраться в чём дело.

Вот, навскидку проверил, все корректно:
Цитата
at+gmm

GL868-DUAL

OK
at+cgmr

10.00.184

OK
at+cmgf=1

OK
at+cscs="UCS2"

OK
at+cmgl="ALL"

+CMGL: 1,"REC UNREAD","002B00370039003100310039003500390039003500300039","","13/08/02,18:00:20+32"
00310032003300340430

at+cmgf=0

OK
at+cmgl=1

+CMGL: 1,1,"",29
07919720990000F3040B919711599905F90008318020810002230A00310032003300340430

OK
at+cmgr=2                                                                      
                                                                               
+CMGR: 0,"",27                                                                 
07919720990000F3040B919711599905F9000831802081315423080031003200330034         
                                                                               
OK                                                                             

Пришлите полный лог, включая версию прошивки.
Go to the top of the page
 
+Quote Post
Ruslan-maniak
сообщение Aug 2 2013, 10:12
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 92
Регистрация: 27-12-12
Из: Томск
Пользователь №: 74 999



Про семибитную кодировку щас поизучаю, теоретически должна быть семибитная (не знал этого), но на практике даже по ней получается мусор.

Сообщение отредактировал Ruslan-maniak - Aug 2 2013, 10:40
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Aug 2 2013, 10:16
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988



Бывает что операторы чудят с кодировками - сталкивались уже......

Я в STK c таким столкнулся - служебные сообщения приходят в IRA, а строки меню в UCS-2


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
Ruslan-maniak
сообщение Aug 2 2013, 10:39
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 92
Регистрация: 27-12-12
Из: Томск
Пользователь №: 74 999



Вот как это проиходит:
Код
AT+CMGF=0
OK

AT+CNMI=2,1,0,0,0\r
OK

AT+CMGD=1,4
OK

+CMTI: "SM",1

AT+CMGR=1
+CMGR: 0,"",23
07919732520180F1040B91************0000318020717262820431D98C06
OK

AT+CMGF=0
OK

AT+CMGR=1
+CMGR: "REC READ","************","","13/08/02,17:37:06+28"

1234

OK


Модем: GL868-DUAL
Прошивка: 10.00.186

Сообщение отредактировал Ruslan-maniak - Aug 2 2013, 10:47
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Aug 2 2013, 11:20
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988



Ну декодировал я нормально сообщение - как и говорил семибитная кодировка.

Вместо звездочек подставил 050000000000 - увидите в поле "number is"

Смотрите что у вас в "датакодингсхеме" стоит - в данном сообщении 00

Из документа который я давал выше следует - :
Когда все биты DCS равны 0, то есть DCS = 00h говорит о применении Default GSM Alphabet (алфавита GSM по умолчанию)


PDUSPY вам в помощь


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
Ruslan-maniak
сообщение Aug 5 2013, 06:30
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 92
Регистрация: 27-12-12
Из: Томск
Пользователь №: 74 999



Ага, разобрался. Огромное спасибо за подсказку.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 6th July 2025 - 23:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01413 секунд с 7
ELECTRONIX ©2004-2016