?

Log in

No account? Create an account
Я торможу - Журнал Витуса. — LiveJournal
[Друзья] [Свежие записи] [Dreamwidth] [Фото] [Тексты] [Друзья Ирины] [Матерные писатели] [Сообщества] [3 круг]
May 5th, 2010
09:55 pm
[User Picture]

[Link]

Previous Entry Share Next Entry
Я торможу
И не могу понять, как из того, что написано в
GSM TS 03.38 (по ссылке zip с вордовым файлом) следует, что 72 это UCS2-BE в виде 16-ричных цифр.


А также то, что в AT+CUSD нужно последним параметром указывать 15.

Tags:

(19 comments | Leave a comment)

Comments
 
From:karpion
Date:May 5th, 2010 06:00 pm (UTC)
(Link)
Вы ждёте внятного изложения от человека, который выложил .doc.zip вместо .html?
From:silly_sad
Date:May 6th, 2010 06:31 am (UTC)
(Link)
ну он мог бы выложить .doc.html :-)
From:shadowfoto
Date:May 5th, 2010 06:01 pm (UTC)
(Link)
читая недавние новости от людей, занимающихся опенсорс-GSM проектом, складывается мнение, что все эти стандарты сделаны и соблюдаются примерно так же, как микрософтом - свои.

примерно, "вот вам стандарт - как должно быть, а если подпишете NDA - покажем, как оно на самом деле".
From:edo_rus
Date:May 5th, 2010 07:36 pm (UTC)
(Link)
мда, задачка...
а может быть оно специфично для модема? завтра проверю на sim300d и нокии.
From:vsu_alt
Date:May 5th, 2010 08:23 pm (UTC)
(Link)
То, что UCS2-BE в виде 16-ричных цифр - это написано в TS 27.007 в описании команды AT+CUSD, и специфично именно для работы через модем. А 72 = 0x48 вполне понятно декодируется по таблице CBS Data Coding Scheme (под ней написано, что она же используется и для USSD, а вот для SMS таблица отдельная).

15 = 0x0f - это GSM default alphabet, Language unspecified (и там, кстати, написано, что 00001111 - значение, которое должно использоваться, если прислали что-то неизвестное).
[User Picture]
From:shaplov
Date:May 6th, 2010 05:36 am (UTC)
(Link)
Я не вполне понимаю какую именно задачу решает витус, но у меня есть нерешенная задача по извлечению многостраничных SMS'ок с мотороллы... Загугление нужной спецификации я в свое всемя не осилил. То есть может я ее и загуглил, но не понял что это она...

Может вы знаете откуда начать?
[User Picture]
From:vitus_wagner
Date:May 6th, 2010 06:21 am (UTC)
(Link)
Задачу простую - запрос баланса. Но чтобы работало на максимально возможном наборе абонентских устройств без напильника.
From:rainbow_beast
Date:May 6th, 2010 12:14 am (UTC)
(Link)
Лично у меня из общения с GSM-устройствами сложилось впечатление, что без большой необходимости там в деталях разбираться не стоит. Не потому что сложно или логики нет - а потому что все совершенно дико переусложнено на мой непросвещенный программерский взгляд. Причем все это регламентируется большой кучей документов (часть которых, AFAIC, еще и под NDA), и понять/запомнить все это весьма проблематично, если постоянно в этой сфере не работать. А на стандарт еще которые накладывается специфика конкретной железяки, которая СИЛЬНО отличается в разных устройствах и вдобавок зависит от версии прошивки, лока оператора и фазы Луны. В общем, если что-то разовое надо - легче взять готовый рецепт.
[User Picture]
From:tzirechnoy
Date:May 6th, 2010 04:04 am (UTC)
(Link)
Из TS 03.38 -- не следует. Поскольку он устарел. В частности, 72 -- это 01001000, т.е. биты 7-4 = 0100, в GSM 03.38 прямо указано, что 0100..1011 -- reserver. Современных потомков можно посмотреть здесь (где написано, что 01xx -- это тожэ, что 00xx, но предназначено к удалению?? А 001000 -- это неупаковано, стандартный класс, Unicode UCS-16. А по поводу BE и цыфр тебе ужэ ответили.
From:edo_rus
Date:May 6th, 2010 11:08 am (UTC)
(Link)
проверил, грустно.

1. и нокия, и sim300d не принимают запрос
AT+CUSD=1,AA180C3602,15
зато принимают
at+cusd=1,"*101#",15 (который требуется для huawei)
2. ответ в pdu они тоже раскодируют, например
+CUSD: 0,"Vash balans 2552.73 rub. ",15
3. юникодный ответ nokia отдаёт в том же виде, что и huawei:
+CUSD: 0,"002D003100330031003000340033002E003800340020044004430431002E000A041B0438043C04380442003A003400320038002E003100330020007004430431002E000A",72
кроме этого отображает его на экране телефона ;)
4. sim300d юникодный ответ похоже просто портит:
+CUSD: 0,"728=8B5, A5@28A 2@5<5==> =54>ABC?5=.",72

ps: at+cusd=1,"002A0031003000300023",72 нигде не заработало
[User Picture]
From:vitus_wagner
Date:May 6th, 2010 11:12 am (UTC)
(Link)
У меня есть подозрение, что это может зависеть от того, что рассказывает
AT+CSCS?
From:edo_rus
Date:May 6th, 2010 11:23 am (UTC)
(Link)
проверил AT+CSCS? и AT+CSCS=?

sim300d говорит
+CSCS: "IRA"
+CSCS: ("GSM","HEX","IRA","PCCP","PCDN","UCS2","8859-1")

e1750
+CSCS: "IRA"
+CSCS: ("IRA","GSM","UCS2")

nokia
+CSCS: "PCCP437"
[User Picture]
From:vitus_wagner
Date:May 6th, 2010 11:36 am (UTC)
(Link)
А вот если sim300d и Nokia сказать AT+CSCS=HEX не начнут ли они понимать тот же вид команды AT+CUSD, что и E1750?

Гипотеза что у модема стоит CSCS=HEX и поэтому он требует закодированного USSD-номера, не подтвердилась. Он вообще таких словей не знает.
From:edo_rus
Date:May 6th, 2010 11:40 am (UTC)
(Link)
> А вот если sim300d и Nokia сказать AT+CSCS=HEX не начнут ли они понимать тот же вид команды AT+CUSD, что и E1750?

sim300d не начал
[User Picture]
From:fk0
Date:May 6th, 2010 07:33 pm (UTC)
(Link)
Ему надо at+cscs="ucs2" -- работает.
From:edo_rus
Date:May 6th, 2010 11:12 am (UTC)
(Link)
с комментарием про huawei промахнулся, должно было быть так:

1. и нокия, и sim300d не принимают запрос
AT+CUSD=1,AA180C3602,15 (который требуется для huawei)
зато принимают
at+cusd=1,"*101#",15
[User Picture]
From:vitus_wagner
Date:May 6th, 2010 11:37 am (UTC)
(Link)
Ну на самый худой конец можно поступить так:

Посылаем AT+CUSD=1,"*100#",15. Если говорит ERROR, пытаемся номер закодировать и повторить команду.
From:rainbow_beast
Date:May 7th, 2010 09:31 am (UTC)
(Link)
sim300d понимает так:
at+cscs="UCS2"
at+cusd=1,"AA180C3602",15

т.е. надо брать в кавычки значение и выставлять UCS-2
From:edo_rus
Date:May 6th, 2010 11:26 am (UTC)
(Link)
если интересно - могу попробовать найти и другие модемы/модули и проверить на них
My Website Powered by LiveJournal.com