Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Настройки и удаление SMS в SIM800x.
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
dotnot
Здравствуйте уважаймые 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 не похоже. Может ее нужно както раскодироватьи там будет какоенибудь красивое название сервиса?

Спасибо что прочитали пост.
Alechek
Цитата(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>"
ArtemKAD
Цитата(Alechek @ Apr 16 2016, 11:45) *
Я, лично, не понимаю, как по-простому можно будет разобрать в текстовом виде СМС, в которой будет, допустим, "<CR><LF>OK<CR><LF>"

Подобную SMS с телефона отправить не получится.
Alechek
ArtemKAD, а никто про телефон и не говорит wink.gif
Есть масса способов отправить сообщение НЕ с телефона:
Самый простой - с сайта ОПЕРАТОРА.
Самый массовый - рассылка через всякие сервисы.
Самый экзотический - создать свое сообщение в PDU (со всякими UDH) и отправить его через модуль.
dotnot
Спасибо! Прозевал я Parameter Saving Mode, правда по AT+CSAS там не написно, зато написано в самом описании что она сама сохраняет все параметры в nvram, то есть я так понял ее лучше часто не вызывать. Интересно будет ли работать если ее вообще не вызвать а просто настраивать параметры, теперь смогу узнать только на новых чистых модулях.
Потестил, похоже на новой девятой прошивке при <mt> = 2 SMS реально перестали сохранятся в память и теперь даже удалять не нужно, на модулях второй прошивки точно сохранялись даже при <mt> = 2.
А отображение номера входящего СМС в PDU может быть более адекватным? Я думал что такие вещи не зависят от режима.
Baser
Цитата(dotnot @ Apr 16 2016, 03:02) *
Нужно ли вручноую при старте модуля проверять все настройки СМС и если не соотвтетствуют нужным то только тогда вызывать эту команду или можно просто каждый раз безболезненно ее вызывать (как сейчас и делаю, потому что сверка настроек при запуске мне кажется каким-то небезопасным с точки зрения программирования методом, больше кода, больше ошибок...).

Ваши страхи беспочвенны. Я всегда после старта модема проверяю все нужные мне параметры. Как только обнаруживается несоответствие, перехожу на процедуру, которая устанавливает ВСЕ нужные параметры не разбираясь. Далее опять проверка и рабочий режим. Проблемы тут могут быть только при поставке на производство модемов с новой прошивкой, где китайцы могут выкинуть какой-нибудь неожиданный фортель. Но пока (еще с SIM300) все нормально sm.gif

Цитата(dotnot @ Apr 16 2016, 13:31) *
А отображение номера входящего СМС в PDU может быть более адекватным? Я думал что такие вещи не зависят от режима.
То, что вы посылаете/принимаете в текстовом режиме, модем все равно преобразует в/из формата PDU. Там все одинаково.
Но разобраться и написать свою поддержку PDU займет ощутимое время и объем кода прошивки.
Alechek
Цитата(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


Думаю, это более чем достаточно для адеквтности.

Baser
Цитата(Baser @ Apr 16 2016, 16:01) *
Я всегда после старта модема проверяю все нужные мне параметры. Как только обнаруживается несоответствие, перехожу на процедуру, которая устанавливает ВСЕ нужные параметры не разбираясь. Далее опять проверка и рабочий режим.

Перечитал и понял, что написал некорректно. Конечно же я предварительно разбираюсь, какие параметры модуль сохраняет во флеш, а какие только в ОЗУ. И конечно, параметры сохраняемые в ОЗУ, я без проверки устанавливаю каждый раз после включения. Описанный выше алгоритм относится только к параметрам, сохраняемым во флеш.

Цитата(Alechek @ Apr 17 2016, 10:42) *
И номера могут быть...

Я ограничиваюсь только 0х81 (129) и 0х91 (145). Тем более, что софт SIM900-го другие типы не понимает.
Alechek
Цитата(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.

Ограничений по адресу источника тут нет.
dotnot
Цитата(Baser @ Apr 17 2016, 12:43) *
Описанный выше алгоритм относится только к параметрам, сохраняемым во флеш.


Я так и понял, и сейчас вроде так и делаю.
Вобщем всем спасибо за опыт. PDU коненчо с первого взгляда выглядит весьма объемно но если в нем больше возможностей по разборке адресов то со временем придется переходить на него. Конечно мне до сих пор не понятно что симком делает с OA в некоторых случаях, может это и есть gsm0411_address какимнибудь образом закодированный, надо будет проверить, в даташите по этому поводу так ничего и не нашел. В остальном пока вроде текстовый режим от симкома всем устраивает.
fuzzion
Цитата(Alechek @ Apr 16 2016, 11:45) *
Для встраиваемого оборудования это смысла не имеет - здесь и так без участия оператора атоматом все должно настраиватся.

Некоторые параметры, например: CLTS, применяются только после перезапуска модуля. Поэтому если его не сохранить по AT&W, то результата и не будет
Alechek
fuzzion, не увидел такого поведения в документации. А значит - это косяк (или "особенности", как любят говорить представители SIMCOM).
Обход косяков - это отдельная тема.
Цырен.
Цитата(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.
Alechek
Я имел ввиду, что с момента включения (ответа на 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-карты.
CADiLO
5.2. AT+CMSS
SIM800C-DS does not support sending message from storage.


А это из какого документа??? Так как в SIM800 Series_AT Command Manual_V1.09.pdf такой фразы нет.
Alechek
Цитата(SIM800-DS_Application Note_V1.00)
5.2. AT+CMSS

Эдуард, у этого модуля еще интереснее неприятная "особенность" есть.
МТ уже неделю с ней разбираются....
CADiLO
Увидел - в апнотесе.

Только апнотесы уже давно не обновлялись, а в АТ нет сноски что не может SMS из storage.

Кстати у нас SIM800C-DS не пошли, даже десятка образцов не ушло, не любит народ смесь бульдога с носорогом (LGA+LCC)
Да и поставить два SIM800С и получить оба полноценных канала дешевле в целом оказывается.
А совсем бюджетное делают на SIM800С + 74CBTLV3257

У треккерщиков есть огромный интерес к SIM868, но там опять же LGA+LCC, так что часть народа останется на SIM800С+28ML
Alechek
Цитата(CADiLO @ Apr 29 2016, 12:45) *
Только апнотесы уже давно не обновлялись, а в АТ нет сноски что не может SMS из storage.

В АТ мануале так-то и *DS: асинсхронные ответы не описаны... Так что апнотес актуален.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.