dotnot 0 16 апреля, 2016 Опубликовано 16 апреля, 2016 · Жалоба Здравствуйте уважаймые 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 0 16 апреля, 2016 Опубликовано 16 апреля, 2016 · Жалоба 1) И вообще возможно ли гдето в ДШ найти полный перечень команд которые пишут во флеш чтобы ими не пренебрегать? В ДШ на 800.ю серию наконец таки задокументировали, какой параметр когда сохраняется ("Parameter Saving Mode"). Если нет "AUTO_SAVE", то смело устанавливать при запуске в нужное значение. Всякие AT&W и подобное было придумано для тех случаев, когда прикладное п/о не является единым целым с терминалом, но требует от него определенный стандарт работы. Для встраиваемого оборудования это смысла не имеет - здесь и так без участия оператора атоматом все должно настраиватся. Исключение может быть лишь для нуууу-очень-маленких МК, где память программ нууу-очень-ограничена, и терминал (модем) будет настраиваться в процессе производства оборудования. 2) От входящих СМС мне нужны только индикаторы в АТ канал +CMT, сохранение в память телефона или СИМ не нужно. Но экспереминтируя (еще на старой прошивке 1308B02SIM800H) я понял что сохранение СМС в память отключить нельзя, или я не понял как. А разве <mt>=2 ( SMS-DELIVERs (except class 2) are routed directly to the TE using unsolicited result code: +CMT) не то? 3) И еще если можно вопрос наверное не по сим800: как правильно декодировать номер входящего СМС, например в +CMT? Там кроме цифр бывают буквы вроде: 16p6p6w237562767963656. Хотя когда шлю с обычного мобильного на модем то все ок - номер идеальный с плюсом. А когда оператор что-то присылает то вот така белебирда, на UCS2 не похоже. Может ее нужно както раскодироватьи там будет какоенибудь красивое название сервиса? Если позволяет память и время, лучше использовать PDU. Да, придется разобраться. Но оно того стоит. Я, лично, не понимаю, как по-простому можно будет разобрать в текстовом виде СМС, в которой будет, допустим, "<CR><LF>OK<CR><LF>" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
artemkad 51 16 апреля, 2016 Опубликовано 16 апреля, 2016 · Жалоба Я, лично, не понимаю, как по-простому можно будет разобрать в текстовом виде СМС, в которой будет, допустим, "<CR><LF>OK<CR><LF>" Подобную SMS с телефона отправить не получится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alechek 0 16 апреля, 2016 Опубликовано 16 апреля, 2016 · Жалоба ArtemKAD, а никто про телефон и не говорит ;) Есть масса способов отправить сообщение НЕ с телефона: Самый простой - с сайта ОПЕРАТОРА. Самый массовый - рассылка через всякие сервисы. Самый экзотический - создать свое сообщение в PDU (со всякими UDH) и отправить его через модуль. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dotnot 0 16 апреля, 2016 Опубликовано 16 апреля, 2016 · Жалоба Спасибо! Прозевал я Parameter Saving Mode, правда по AT+CSAS там не написно, зато написано в самом описании что она сама сохраняет все параметры в nvram, то есть я так понял ее лучше часто не вызывать. Интересно будет ли работать если ее вообще не вызвать а просто настраивать параметры, теперь смогу узнать только на новых чистых модулях. Потестил, похоже на новой девятой прошивке при <mt> = 2 SMS реально перестали сохранятся в память и теперь даже удалять не нужно, на модулях второй прошивки точно сохранялись даже при <mt> = 2. А отображение номера входящего СМС в PDU может быть более адекватным? Я думал что такие вещи не зависят от режима. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Baser 3 16 апреля, 2016 Опубликовано 16 апреля, 2016 · Жалоба Нужно ли вручноую при старте модуля проверять все настройки СМС и если не соотвтетствуют нужным то только тогда вызывать эту команду или можно просто каждый раз безболезненно ее вызывать (как сейчас и делаю, потому что сверка настроек при запуске мне кажется каким-то небезопасным с точки зрения программирования методом, больше кода, больше ошибок...). Ваши страхи беспочвенны. Я всегда после старта модема проверяю все нужные мне параметры. Как только обнаруживается несоответствие, перехожу на процедуру, которая устанавливает ВСЕ нужные параметры не разбираясь. Далее опять проверка и рабочий режим. Проблемы тут могут быть только при поставке на производство модемов с новой прошивкой, где китайцы могут выкинуть какой-нибудь неожиданный фортель. Но пока (еще с SIM300) все нормально :) А отображение номера входящего СМС в PDU может быть более адекватным? Я думал что такие вещи не зависят от режима.То, что вы посылаете/принимаете в текстовом режиме, модем все равно преобразует в/из формата PDU. Там все одинаково. Но разобраться и написать свою поддержку PDU займет ощутимое время и объем кода прошивки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alechek 0 17 апреля, 2016 Опубликовано 17 апреля, 2016 · Жалоба То, что вы посылаете/принимаете в текстовом режиме, модем все равно преобразует в/из формата PDU. Там все одинаково. Но разобраться и написать свою поддержку PDU займет ощутимое время и объем кода прошивки. Мне вот интерено, как модуль будет отображать в текстовом режиме СМС, если она специфическая служебная. Просто пустое сообщение? PS: Кода немного (правда, длинные сообщения и русский язык не используется): Module ro code ro data rw data rw data (abs) ------ ------- ------- ------- ------- pdu0340.o 1 104 ОЗУ, правда, еще надо. А вот время да... Но зато начитаешь понимать, что как ходит где грабли могут лежать, что такое SMS-DELIVER (SUBMIT), OA, DA, UDL, UDH и прочее. А отображение номера входящего СМС в 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 3 17 апреля, 2016 Опубликовано 17 апреля, 2016 · Жалоба Я всегда после старта модема проверяю все нужные мне параметры. Как только обнаруживается несоответствие, перехожу на процедуру, которая устанавливает ВСЕ нужные параметры не разбираясь. Далее опять проверка и рабочий режим. Перечитал и понял, что написал некорректно. Конечно же я предварительно разбираюсь, какие параметры модуль сохраняет во флеш, а какие только в ОЗУ. И конечно, параметры сохраняемые в ОЗУ, я без проверки устанавливаю каждый раз после включения. Описанный выше алгоритм относится только к параметрам, сохраняемым во флеш. И номера могут быть... Я ограничиваюсь только 0х81 (129) и 0х91 (145). Тем более, что софт SIM900-го другие типы не понимает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alechek 0 17 апреля, 2016 Опубликовано 17 апреля, 2016 · Жалоба Я ограничиваюсь только 0х81 (129) и 0х91 (145). Ну... Как ни странно, ответ на DA_TON_ALPHANUMERIC (SMS c сайта) отправился! Тем более, что софт 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 0 17 апреля, 2016 Опубликовано 17 апреля, 2016 · Жалоба Описанный выше алгоритм относится только к параметрам, сохраняемым во флеш. Я так и понял, и сейчас вроде так и делаю. Вобщем всем спасибо за опыт. PDU коненчо с первого взгляда выглядит весьма объемно но если в нем больше возможностей по разборке адресов то со временем придется переходить на него. Конечно мне до сих пор не понятно что симком делает с OA в некоторых случаях, может это и есть gsm0411_address какимнибудь образом закодированный, надо будет проверить, в даташите по этому поводу так ничего и не нашел. В остальном пока вроде текстовый режим от симкома всем устраивает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fuzzion 0 21 апреля, 2016 Опубликовано 21 апреля, 2016 · Жалоба Для встраиваемого оборудования это смысла не имеет - здесь и так без участия оператора атоматом все должно настраиватся. Некоторые параметры, например: CLTS, применяются только после перезапуска модуля. Поэтому если его не сохранить по AT&W, то результата и не будет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alechek 0 21 апреля, 2016 Опубликовано 21 апреля, 2016 · Жалоба fuzzion, не увидел такого поведения в документации. А значит - это косяк (или "особенности", как любят говорить представители SIMCOM). Обход косяков - это отдельная тема. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
batuev.b 0 28 апреля, 2016 Опубликовано 28 апреля, 2016 · Жалоба fuzzion, не увидел такого поведения в документации. А значит - это косяк (или "особенности", как любят говорить представители SIMCOM). Обход косяков - это отдельная тема. о сохранении CLTS. Прошу обратить внимание на графу Parameter Saving Mode в SIM800 Series_AT Command Manual_V1.09 описания CLTS: О начале действия команды CLTS. Принцип таков, что эта команда операторозависимая. Вы можете не перезагружать модуль, модуль выдаст вам время, но позже - после перерегистрации или hoping. Но если вам надо, чтобы обновление произошло быстро, то заставьте модуль "договориться" с БС о новых условиях - перезагрузите модуль или подайте последовательность AT+CFUN=0/1. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alechek 0 29 апреля, 2016 Опубликовано 29 апреля, 2016 · Жалоба Я имел ввиду, что с момента включения (ответа на AT) до момента регистрации в сети, даже у SIM800 серии проходит 5-10 секунд. То есть, если у модуля нет скрытых багов особенностей, - установить CLTS вполне можно успеть и ДО начала первоначальной регистрации! Батор, в этой же теме: SIM800C-DS Как понимать 5.2. AT+CMSS SIM800C-DS does not support sending message from storage. Так как оно РАБОТАЕТ! То есть я успешно отправил сохраненное сообщение с SIM-карты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CADiLO 8 29 апреля, 2016 Опубликовано 29 апреля, 2016 · Жалоба 5.2. AT+CMSS SIM800C-DS does not support sending message from storage. А это из какого документа??? Так как в SIM800 Series_AT Command Manual_V1.09.pdf такой фразы нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться