|
Настройки и удаление SMS в SIM800x. |
|
|
|
Apr 16 2016, 00:02
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 29-05-12
Пользователь №: 72 074

|
Здравствуйте уважаймые AT-командщики =). Вроде все работет неплохо, всем доволен, но волнует пару простых вопросов по SIM800h/c перед запуском в прод. Версия прошивки SIM800h на котором сейчас разрабатываю 1308B09SIM800H32 . Дш почитал немало пока разбирался но что-то эти простые вещи то ли упустил то ли не понял.
1) Безопасно ли выполнять команду сохранения настроек SMS "AT+CSAS\r" при каждом запуске модуля после инициализации всех параметров СМС (режим текст, кодеровка UCS2, CNMI индикаторы, etc)? Она сохраняет все во флеш? Не испортится ли флеш за пару месяцов/лет? Проверяет ли модуль нужно ли по факту ерейзить и записывать или нет перед сохранением? Нужно ли вручноую при старте модуля проверять все настройки СМС и если не соотвтетствуют нужным то только тогда вызывать эту команду или можно просто каждый раз безболезненно ее вызывать (как сейчас и делаю, потому что сверка настроек при запуске мне кажется каким-то небезопасным с точки зрения программирования методом, больше кода, больше ошибок...). И вообще возможно ли гдето в ДШ найти полный перечень команд которые пишут во флеш чтобы ими не пренебрегать? 2) От входящих СМС мне нужны только индикаторы в АТ канал +CMT, сохранение в память телефона или СИМ не нужно. Но экспереминтируя (еще на старой прошивке 1308B02SIM800H) я понял что сохранение СМС в память отключить нельзя, или я не понял как. Кстати в +CNMI есть последний параметр bfr который вроде как по даташиту должен контролить буфферизацию +CMT, но меняя его, сообщения все равно всегда сохранялись в память модема или сим что было видно по "AT+CPMS?\r". Не должен ли этот параметр выключать сохранение СМСок в память? Или я неправильно понял ДШ? Вобщем, когда память у меня достигла 10и записей почему-то начали приходить +CMT со старой СМСкой и я перестал получать новые. По этому каждый раз по получению индикатора стал вызывать удаление 'AT+CMGDA="DEL ALL"\r' . Сейчас все отлично - память чистится, повторные СМС не приходят но опять же вопрос к вам: не убъет ли это флешку? Не разобрался - СМСки записываются изначально в ОЗУ модема или во флешу? Безопасно ли каждый раз делать удаление? Или это правильней решить другим способом? Кстати на старой прошивке, 1308B02SIM800H* пару модулей с которой я покупал два года назад при выполнении удаления вообще модем иногда переставал отвечать на команды до ребута. А на модемах с новой прошивкой 1308B09SIM800H32 все ОК, бывали ли такие истории у когото или мне попался какойто брак? 3) И еще если можно вопрос наверное не по сим800: как правильно декодировать номер входящего СМС, например в +CMT? Там кроме цифр бывают буквы вроде: 16p6p6w237562767963656. Хотя когда шлю с обычного мобильного на модем то все ок - номер идеальный с плюсом. А когда оператор что-то присылает то вот така белебирда, на UCS2 не похоже. Может ее нужно както раскодироватьи там будет какоенибудь красивое название сервиса?
Спасибо что прочитали пост.
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
Apr 16 2016, 08:45
|
Профессионал
    
Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882

|
Цитата(dotnot @ Apr 16 2016, 05:02)  1) И вообще возможно ли гдето в ДШ найти полный перечень команд которые пишут во флеш чтобы ими не пренебрегать? В ДШ на 800.ю серию наконец таки задокументировали, какой параметр когда сохраняется ("Parameter Saving Mode"). Если нет "AUTO_SAVE", то смело устанавливать при запуске в нужное значение. Всякие AT&W и подобное было придумано для тех случаев, когда прикладное п/о не является единым целым с терминалом, но требует от него определенный стандарт работы. Для встраиваемого оборудования это смысла не имеет - здесь и так без участия оператора атоматом все должно настраиватся. Исключение может быть лишь для нуууу-очень-маленких МК, где память программ нууу-очень-ограничена, и терминал (модем) будет настраиваться в процессе производства оборудования. Цитата(dotnot @ Apr 16 2016, 05:02)  2) От входящих СМС мне нужны только индикаторы в АТ канал +CMT, сохранение в память телефона или СИМ не нужно. Но экспереминтируя (еще на старой прошивке 1308B02SIM800H) я понял что сохранение СМС в память отключить нельзя, или я не понял как. А разве <mt>=2 ( SMS-DELIVERs (except class 2) are routed directly to the TE using unsolicited result code: +CMT) не то? Цитата(dotnot @ Apr 16 2016, 05:02)  3) И еще если можно вопрос наверное не по сим800: как правильно декодировать номер входящего СМС, например в +CMT? Там кроме цифр бывают буквы вроде: 16p6p6w237562767963656. Хотя когда шлю с обычного мобильного на модем то все ок - номер идеальный с плюсом. А когда оператор что-то присылает то вот така белебирда, на UCS2 не похоже. Может ее нужно както раскодироватьи там будет какоенибудь красивое название сервиса? Если позволяет память и время, лучше использовать PDU. Да, придется разобраться. Но оно того стоит. Я, лично, не понимаю, как по-простому можно будет разобрать в текстовом виде СМС, в которой будет, допустим, "<CR><LF>OK<CR><LF>"
|
|
|
|
|
Apr 16 2016, 09:42
|
Профессионал
    
Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882

|
ArtemKAD, а никто про телефон и не говорит  Есть масса способов отправить сообщение НЕ с телефона: Самый простой - с сайта ОПЕРАТОРА. Самый массовый - рассылка через всякие сервисы. Самый экзотический - создать свое сообщение в PDU (со всякими UDH) и отправить его через модуль.
|
|
|
|
|
Apr 16 2016, 10:31
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 29-05-12
Пользователь №: 72 074

|
Спасибо! Прозевал я Parameter Saving Mode, правда по AT+CSAS там не написно, зато написано в самом описании что она сама сохраняет все параметры в nvram, то есть я так понял ее лучше часто не вызывать. Интересно будет ли работать если ее вообще не вызвать а просто настраивать параметры, теперь смогу узнать только на новых чистых модулях. Потестил, похоже на новой девятой прошивке при <mt> = 2 SMS реально перестали сохранятся в память и теперь даже удалять не нужно, на модулях второй прошивки точно сохранялись даже при <mt> = 2. А отображение номера входящего СМС в PDU может быть более адекватным? Я думал что такие вещи не зависят от режима.
|
|
|
|
|
Apr 16 2016, 13:01
|

Просто Che
    
Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881

|
Цитата(dotnot @ Apr 16 2016, 03:02)  Нужно ли вручноую при старте модуля проверять все настройки СМС и если не соотвтетствуют нужным то только тогда вызывать эту команду или можно просто каждый раз безболезненно ее вызывать (как сейчас и делаю, потому что сверка настроек при запуске мне кажется каким-то небезопасным с точки зрения программирования методом, больше кода, больше ошибок...). Ваши страхи беспочвенны. Я всегда после старта модема проверяю все нужные мне параметры. Как только обнаруживается несоответствие, перехожу на процедуру, которая устанавливает ВСЕ нужные параметры не разбираясь. Далее опять проверка и рабочий режим. Проблемы тут могут быть только при поставке на производство модемов с новой прошивкой, где китайцы могут выкинуть какой-нибудь неожиданный фортель. Но пока (еще с SIM300) все нормально  Цитата(dotnot @ Apr 16 2016, 13:31)  А отображение номера входящего СМС в PDU может быть более адекватным? Я думал что такие вещи не зависят от режима. То, что вы посылаете/принимаете в текстовом режиме, модем все равно преобразует в/из формата PDU. Там все одинаково. Но разобраться и написать свою поддержку PDU займет ощутимое время и объем кода прошивки.
|
|
|
|
|
Apr 17 2016, 07:42
|
Профессионал
    
Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882

|
Цитата(Baser @ Apr 16 2016, 18:01)  То, что вы посылаете/принимаете в текстовом режиме, модем все равно преобразует в/из формата PDU. Там все одинаково. Но разобраться и написать свою поддержку PDU займет ощутимое время и объем кода прошивки. Мне вот интерено, как модуль будет отображать в текстовом режиме СМС, если она специфическая служебная. Просто пустое сообщение? PS: Кода немного (правда, длинные сообщения и русский язык не используется): Код Module ro code ro data rw data rw data (abs) ------ ------- ------- ------- ------- pdu0340.o 1 104 ОЗУ, правда, еще надо. А вот время да... Но зато начитаешь понимать, что как ходит где грабли могут лежать, что такое SMS-DELIVER (SUBMIT), OA, DA, UDL, UDH и прочее. Цитата(dotnot @ Apr 16 2016, 15:31)  А отображение номера входящего СМС в PDU может быть более адекватным? Я думал что такие вещи не зависят от режима. Номер отправителя - это OA (Originator Address) в SMS-DELIVER. А это Код struct gsm0411_address { BYTE Length; // длина адреса в символах union { struct { BYTE NPI :4; BYTE TON :3; BYTE EXT :1; }; BYTE Raw; } TOA; char Address[0]; }; И номера могут быть Код // Type of Number sub-field #define DA_TON_UNKNOWN 0x0 #define DA_TON_INTERNATIONAL 0x1 #define DA_TON_NATIONAL 0x2 #define DA_TON_NETWORK_SPECIFIC 0x3 #define DA_TON_SUBSCRIBER 0x4 #define DA_TON_ALPHANUMERIC 0x5 #define DA_TON_ABBREVIATED 0x6 #define DA_TON_RESERVED 0x7
// Numbering Plan Identification sub-field #define DA_NPI_UNKNOWN 0x0 #define DA_NPI_ISDN 0x1 #define DA_NPI_DATA 0x3 #define DA_NPI_TELEX 0x4 #define DA_NPI_NATIONAL 0x8 #define DA_NPI_PRIVATE 0x9 #define DA_NPI_ERMES 0xA #define DA_NPI_RESERVED 0xF Думаю, это более чем достаточно для адеквтности.
|
|
|
|
|
Apr 17 2016, 09:43
|

Просто Che
    
Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881

|
Цитата(Baser @ Apr 16 2016, 16:01)  Я всегда после старта модема проверяю все нужные мне параметры. Как только обнаруживается несоответствие, перехожу на процедуру, которая устанавливает ВСЕ нужные параметры не разбираясь. Далее опять проверка и рабочий режим. Перечитал и понял, что написал некорректно. Конечно же я предварительно разбираюсь, какие параметры модуль сохраняет во флеш, а какие только в ОЗУ. И конечно, параметры сохраняемые в ОЗУ, я без проверки устанавливаю каждый раз после включения. Описанный выше алгоритм относится только к параметрам, сохраняемым во флеш. Цитата(Alechek @ Apr 17 2016, 10:42)  И номера могут быть... Я ограничиваюсь только 0х81 (129) и 0х91 (145). Тем более, что софт SIM900-го другие типы не понимает.
|
|
|
|
|
Apr 17 2016, 12:45
|
Профессионал
    
Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882

|
Цитата(Baser @ Apr 17 2016, 14:43)  Я ограничиваюсь только 0х81 (129) и 0х91 (145). Ну... Как ни странно, ответ на DA_TON_ALPHANUMERIC (SMS c сайта) отправился! Цитата(Baser @ Apr 17 2016, 14:43)  Тем более, что софт SIM900-го другие типы не понимает. Софт? Что имелось ввиду? Мне вот, допустим, интересно, обрабатывает ли SIMCOM SMS-PP сообщения (3GPP TS 11.14б раздел 7) Цитата If the service "data download via SMS Point-to-point" is allocated and activated in the SIM Service Table (see TS 11.11 [20]), then the ME shall follow the procedure below: - When the ME receives a Short Message with: protocol identifier = SIM data download, and data coding scheme = class 2 message, or when the ME receives a Short Message with: protocol identifier=ANSI-136 R-DATA (see 3G TS 23.040 [30]) and data coding scheme = class 2 message, and the ME chooses not to handle the message ( e.g. MEs not supporting EGPRS over TIA/EIA-136 do not need to handle the message), then the ME shall pass the message transparently to the SIM using the ENVELOPE (SMS-PP DOWNLOAD) command as defined below. Ограничений по адресу источника тут нет.
|
|
|
|
|
Apr 17 2016, 15:17
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 29-05-12
Пользователь №: 72 074

|
Цитата(Baser @ Apr 17 2016, 12:43)  Описанный выше алгоритм относится только к параметрам, сохраняемым во флеш. Я так и понял, и сейчас вроде так и делаю. Вобщем всем спасибо за опыт. PDU коненчо с первого взгляда выглядит весьма объемно но если в нем больше возможностей по разборке адресов то со временем придется переходить на него. Конечно мне до сих пор не понятно что симком делает с OA в некоторых случаях, может это и есть gsm0411_address какимнибудь образом закодированный, надо будет проверить, в даташите по этому поводу так ничего и не нашел. В остальном пока вроде текстовый режим от симкома всем устраивает.
|
|
|
|
|
Apr 21 2016, 03:13
|
Группа: Новичок
Сообщений: 2
Регистрация: 7-11-11
Пользователь №: 68 164

|
Цитата(Alechek @ Apr 16 2016, 11:45)  Для встраиваемого оборудования это смысла не имеет - здесь и так без участия оператора атоматом все должно настраиватся. Некоторые параметры, например: CLTS, применяются только после перезапуска модуля. Поэтому если его не сохранить по AT&W, то результата и не будет
|
|
|
|
|
Apr 28 2016, 08:36
|

Евгений
  
Группа: Участник
Сообщений: 341
Регистрация: 13-10-11
Пользователь №: 67 706

|
Цитата(Alechek @ Apr 21 2016, 08:18)  fuzzion, не увидел такого поведения в документации. А значит - это косяк (или "особенности", как любят говорить представители SIMCOM). Обход косяков - это отдельная тема. о сохранении CLTS. Прошу обратить внимание на графу Parameter Saving Mode в SIM800 Series_AT Command Manual_V1.09 описания CLTS:
О начале действия команды CLTS. Принцип таков, что эта команда операторозависимая. Вы можете не перезагружать модуль, модуль выдаст вам время, но позже - после перерегистрации или hoping. Но если вам надо, чтобы обновление произошло быстро, то заставьте модуль "договориться" с БС о новых условиях - перезагрузите модуль или подайте последовательность AT+CFUN=0/1.
--------------------
|
|
|
|
|
Apr 29 2016, 05:01
|
Профессионал
    
Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882

|
Я имел ввиду, что с момента включения (ответа на AT) до момента регистрации в сети, даже у SIM800 серии проходит 5-10 секунд. То есть, если у модуля нет скрытых багов особенностей, - установить CLTS вполне можно успеть и ДО начала первоначальной регистрации! Батор, в этой же теме: SIM800C-DS Как понимать Цитата(SIM800-DS_Application Note_V1.00) 5.2. AT+CMSS SIM800C-DS does not support sending message from storage. Так как оно РАБОТАЕТ! То есть я успешно отправил сохраненное сообщение с SIM-карты.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|