|
|
  |
SIM900 & SMS в 16-битной кодировке |
|
|
|
Aug 17 2010, 08:06
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(av-master @ Aug 17 2010, 09:24)  rx3apf тебе его Юзеру на эран выводить ? ИМХО контроллеру пофик что там ASCII или HEX . Какому "контроллеру" ? Если я по AT+CMGR получаю дамп, мне по-любому его надо конвертировать. Цитата(CADiLO @ Aug 17 2010, 10:11)  А можно подробнее, потому как команда AT+CMGF работает. Пример приведите как Вы передаете. Я уже в ветке "А SIM900 вообще работает ?" приводил пример, все осталось так же: --- вне зависимости от установки AT+CMGR тело сообщения идет дампом: at+cmgf=0: +CMGR: 1,"",146 07919761980622F04006D04DEA100008018010411...... at+cmgf=1: +CMGR: "REC READ","MTC","","10/08/01,14:01:58+16" 0414043B044F0020043A043E044004400435043A...... --- SIM300D в этом случае отдавал вполне осмысленный текст собственно сообщения. Но, на самом деле, мне это уже неактуально, поскольку декодер сделал и работать на уровне сырого дампа оказалось ничуть не сложнее...
|
|
|
|
|
Aug 19 2010, 07:28
|
Частый гость
 
Группа: Участник
Сообщений: 142
Регистрация: 20-08-07
Из: Тула
Пользователь №: 29 919

|
Цитата(rx3apf @ Aug 17 2010, 12:06)  at+cmgf=1:
+CMGR: "REC READ","MTC","","10/08/01,14:01:58+16" 0414043B044F0020043A043E044004400435043A...... --- SIM300D в этом случае отдавал вполне осмысленный текст собственно сообщения. О какой осмысленности текста можно говорить, если процитированный дамп описывает сообщение в unicode-формате? То, что SIM300 выдавал в этом случае какую-то текстовую кашу из символом с кодом 0x04 и псевдографики (при этом символы с кодом 0x00 тихо обрезал) - я бы назвал багом, который наконец-то исправили.
|
|
|
|
|
Aug 19 2010, 15:45
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(CADiLO @ Aug 17 2010, 12:32)  А посмотрите пожалуйста что установлено по AT+CSDH в SIM300 и SIM900 ? Одинаковые настройки ? В SIM900 там 0, макета с SIM300 под рукой нет, но я его точно не менял, значит, тоже должен быть 0. Смена на 1 дает только более детальную шапку, само тело без изменений. Цитата(stream @ Aug 19 2010, 11:28)  О какой осмысленности текста можно говорить, если процитированный дамп описывает сообщение в unicode-формате? То, что SIM300 выдавал в этом случае какую-то текстовую кашу из символом с кодом 0x04 и псевдографики (при этом символы с кодом 0x00 тихо обрезал) - я бы назвал багом, который наконец-то исправили. Если бы при этом хотя бы текст из семибитного ASCII с нулевым байтом впереди нормально выводился бы - я бы согласился. Однако же нет (по крайней мере, в тех случаях, когда где-то там в конце сообщения присутствует что-то 0x04xx). Т.е., если я отправляю сообщение через бесплатный сервис на www.mts.ru, то SIM900 его принимает только как hex-дамп, даже если _я_ ничего кроме ASCII не использовал (хвостик дописал сам сервис)..
|
|
|
|
|
Aug 24 2010, 07:21
|
Частый гость
 
Группа: Участник
Сообщений: 142
Регистрация: 20-08-07
Из: Тула
Пользователь №: 29 919

|
Цитата(rx3apf @ Aug 19 2010, 19:45)  Если бы при этом хотя бы текст из семибитного ASCII с нулевым байтом впереди нормально выводился бы - я бы согласился. Однако же нет (по крайней мере, в тех случаях, когда где-то там в конце сообщения присутствует что-то 0x04xx). Ты сам себе противоречишь - если "где-то там в конце сообщения присутствует что-то 0x04xx", то это уже не 7-битный ASCII, и модуль не волнует, кто дописал этот хвостик. Главное, что он не знает, как отобразить такой символ в текстовом виде (вариант SIM300 - неформализуемая каша из 7-битного текста и старшего-и-младшего-unicode-байт-как-есть, вариант SIM900 - принудительно сваливаемся в hex формат). Чтобы правильно напечатать юникодный символ, модуль должен знать про кодировку CP1251, CP866, CP878 или какая-тем тебе нужна... Отправь SMS с телефона или даже лучше другого SIM300, тогда точно останется будет 7-битный ASCII без всяких хвостиков.
|
|
|
|
|
Aug 24 2010, 16:53
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(stream @ Aug 24 2010, 11:21)  Ты сам себе противоречишь - если "где-то там в конце сообщения присутствует что-то 0x04xx", то это уже не 7-битный ASCII, и модуль не волнует, кто дописал этот хвостик. Главное, что он не знает, как отобразить такой символ в текстовом виде (вариант SIM300 - неформализуемая каша из 7-битного текста и старшего-и-младшего-unicode-байт-как-есть, вариант SIM900 - принудительно сваливаемся в hex формат). Чтобы правильно напечатать юникодный символ, модуль должен знать про кодировку CP1251, CP866, CP878 или какая-тем тебе нужна... Если старший байт при этом 00, и у младшего старший бит 0 - я бы предположил, что это все ж ASCII. И SIM300 делал так. И меня это вполне устраивало. Хоть бы и каша, хоть бы и вообще не отображал то, что не ASCII. Цитата Отправь SMS с телефона или даже лучше другого SIM300, тогда точно останется будет 7-битный ASCII без всяких хвостиков. Отправлял. Да, 7-битный нормально декодируется (кто б сомневался). Но _меня_ это не устраивает. P.S. Кстати, когда в сообщении все пары 00xx, и xx только ASCII - все равно такая же фигня...
Сообщение отредактировал rx3apf - Aug 24 2010, 17:27
|
|
|
|
|
Nov 26 2010, 13:47
|
Участник

Группа: Участник
Сообщений: 35
Регистрация: 8-08-07
Из: MockBa
Пользователь №: 29 658

|
Цитата(rx3apf @ Aug 17 2010, 00:52)  Обновил прошивку до 06, но картина не изменилась - вне зависимости от установки AT+CMGF тело сообщений в 16-битной кодировке как шло hex-дампом, так и идет. SIM300 точно превращал такие сообщения в нормальный ASCII-текст (проверил перестановкой модулей и карточек на макете). Впрочем, декодер PDU я уже написал, так что мне по-фигу  Но все равно - как-то это неправильно... У меня аналогичная проблема. Окончательно пока не решилась, думаю надо ждать обновленную версию прошивки. Но похоже это проявляется только, если отправлять смс с сайта (например, МТС). Если отправлять с телефона, то все ок (даже если из майл агента - тоже все ок). Ниже пример: Revision:1137B06SIM900M64_ST....OK AT+CMGF=1....OK AT+CSCS="GSM"....OK 1. отправляем через сайт мтс (123456*test*123456): ...AT+CMGR=1........+CMGR: "REC UNREAD","sms.mts.ru","", "10/11/26,11:37:49+12"..003100320033003400350036002A0074006500730074002A0031003200330034003500360 00A 00490050003A0020003100390033002E00330039002E003100310036002E0033002F002F0421043C 043E0442044004380442 043500200412041804140415041E002D0421041E0411042B04220418042F002004380020041D041E 0412041E....OK.... 2. отправляем с обычного телефона (Vip12356test25): ...AT+CMGR=8...+CMGR: "REC UNREAD","+7926xxxxxxx","","10/11/26,16:20:23+12"..Vip12356test25....OK.... 3. отправляем из агента (123456*jjhjhjjhj*4545454p*4545454): ...AT+CMGR=11...+CMGR: "REC UNREAD","6237","","10/11/26,16:39:57+12"..vixxxx@mail.ru 123456*jjhjhjjhj*454 5454p*4545454 // Obwaisya legko-otvechay v Agent!....OK....
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|