Перейти к содержанию
    

1. Подскажите, что если модем SIM900R часто аппаратно перегружается? Ну например в среднем один раз в час. Как это отразится на его работоспособности? Устройство работает круглосуточно, период эксплуатации 5-10 лет.

 

2. Как правильно "запарковать" модем перед аппаратным перегрузом? Нужно ли предварительно "powerkey" тискать? Обязательно ли за status-ом посматривать?

 

3. И как таки правильно закрыть GPRS (UDP сессия) ? Сейчас я делаю "AT+CIPSHUT" и жду "SHUT OK"

 

4. Часто ловлю ERROR на +CSTT= "internet". После "SHUT OK" предыдущей сессии проходит около 18с. Со второй попытки конектится.

 

 

Спасибо!

Изменено пользователем ISG2015

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>>>Подскажите, что если модем SIM900R часто аппаратно перегружается? Ну например в среднем один раз в час.

 

Вопрос - а на пуркуа???

Работает и пусть себе работает - аппаратная перезагрузка это уже самый крайний случай.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>>>Подскажите, что если модем SIM900R часто аппаратно перегружается? Ну например в среднем один раз в час.

 

Вопрос - а на пуркуа???

Работает и пусть себе работает - аппаратная перезагрузка это уже самый крайний случай.

 

Идея была в том ,что при любой коллизии в GPRS линке - просто перегружать модем аппаратно. Не вдаваясь в подробности так сказать. Если у меня модем подключается к GPRS за 18с то мне легче и проще перегружать все сразу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вижу подводный камень у такого решения: операторы часто округляют трафик полной или неполной сессии, а так же по времени. В случае каких-то проблем с передачей данных модуль будет часто перезагружаться, и счет за GPRS потом может не порадовать.

 

И что значит перезагружать аппаратно? По питанию? А может, перед этим попробовать дать ему команду AT+CFUN=1,1 чтобы он сам перезагрузился? Вполне штатный и безболезненный способ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Идея была в том ,что при любой коллизии в GPRS линке - просто перегружать модем аппаратно. Не вдаваясь в подробности так сказать. Если у меня модем подключается к GPRS за 18с то мне легче и проще перегружать все сразу.

 

А что в вашем случае считается коллизией? Т.е. какой алгоритм определения ситуации, когда надо перезагрузить модем.

Я тоже обычно перезагружаю, но только после серии проверок. Частые жесткие перезапуски несут еще один подводный камень: операторы могут резервировать средства для открытия очередной GPRS-сессии, и временно держать резервы от прошлых сессий. В итоге, при положительном балансе, получаем нехватку средств даже для звонка, аж до возврата резервов (обычно в конце суток).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, вы правы, что то не так в таком подходе.

Тогда помогите разобраться с тем как:

1. Правильно завершить сессию GPRS (UDP)? Сейчас я выполняю AT+CIPSHUT и жду ОК. Но на форуме читал что ОК может и прийти а сессия еще "висеть".

2. Как запарковать правильно модем? Ведь даже если я буду перегружать модем в исключительных ситуациях, тогда, когда уже ничего другое не помогает, то как бы нужно правильно его подготовить к аппаратному (по-питанию) перегрузу!

 

 

А что в вашем случае считается коллизией? Т.е. какой алгоритм определения ситуации, когда надо перезагрузить модем.

 

А вот что угодно: при попытке подключиться на любую из команд ERROR - перезагрузка, при отправке пакета получили ERROR или PDP DEACT - перезагрузка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3. Еще не совсем понимаю почему модем подключается к GPRS с неправильным APN!? о_О Как тарифицируется все если я неправильно указал APN?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2. Как запарковать правильно модем? Ведь даже если я буду перегружать модем в исключительных ситуациях, тогда, когда уже ничего другое не помогает, то как бы нужно правильно его подготовить к аппаратному (по-питанию) перегрузу!

 

Да никак не надо, он при корректном выключении/перезагрузке сам завершает все сессии и посылает оператору сигнал о снятии регистрации в сети. Просто нужно дождаться пока STATUS уйдет в 0.

 

3. Еще не совсем понимаю почему модем подключается к GPRS с неправильным APN!? о_О Как тарифицируется все если я неправильно указал APN?

 

Зависит от оператора, у Мегафона даже есть услуга "Интернет без настроек", когда можно писать в APN/Login/Password любой бред. Тарификация так же зависит от честности оператора. также нужно учесть такой момент, что GPRS может устанавливаться, но все пакеты срезаться, а любой HTTP-запрос перенаправляться на специальную страницу оператора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

p_kav, а я однако за STATUS совсем не слежу:( Нужно разбираться с этим делом ,конечно не годится никуда рвать сессии и потом иметь неприятности с опером.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Наверное, стоит разделить логику обработки ваших "коллизий" при подключении к GPRS и во время работы. При неудачном подключении сессии как таковой еще нет, поэтому перезагрузка не так страшна. Обычно я запускаю таймер при первой попытке подключения и затем многократно пытаюсь подключиться корректно (без перезапуска). Перезапуск - по таймауту (скажем, 5 минут неудачных попыток). Еще лучше использовать внешний вотчдог на PIC, блокируемый меандром, генерируемым модулем при успешном подключении.

Что касается внештатных ситуаций во время работы, то в случае с UDP - это отсутствие подтверждения от сервера на определенное к-во отправленных пакетов. После этого - отсутствие ответов на несколько пингов или UDP-DNS-запросов, например, google.com, отправленных на 8.8.8.8:53 (запрос формируется по шаблону, ответ детектируется по порту). Тут уже можно деактивировать GPRS и запускать таймер рестарта (тушить меандр) и процедуру запуска GPRS.

Но такая ситуация возможна и в случае кратковременного выхода из покрытия GSM, так что есть смысл дополнительно проверить сигнал, и увеличить (но не бесконечно!) таймаут рестарта в случае слабого сигнала. Где-то так...

А вообще-то хорошо продуманный и практически выверенный алгоритм обработки таких ситуаций - это та "изюминка", которая определит качество работы вашего устройства в целом с точки зрения пользователя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

хорошо продуманный и практически выверенный алгоритм обработки таких ситуаций - это та "изюминка", которая определит качество работы вашего устройства в целом

 

Трудно в вами не согласиться. Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И если будете делать свой внешний стек, то тогда посмотрите в сторону 3G модуля SIM5350.

Там нет встроенного TCP/UDP стека, зато умеет работать в два потока IP/V4 и IP/V6 в любой комбинации.

Идеальный модуль под внешний стек - быстрый и для 3G недорогой.

 

Вот если б с ним можно было работать по PPP. На команду ATD*99# всегда отвечает ERROR.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>>>>Вот если б с ним можно было работать по PPP

 

SIMCOM_SIM5350_ATC_EN_V1.02 - сделайте поиск PPP по документу :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

SIMCOM_SIM5350_ATC_EN_V1.02 - сделайте поиск PPP по документу :)

OK. Сигнатура 'PPP' встречается для 4-х команд, причем всегда для вида 'Test command':

1) CGDCONT - сигнатура появляется для пар-ра PDP_type; на деле же, как видно из листинга,

SIM5350 не допускает типа 'PPP' для PDP-context. Второй случай появления этой сигнатуры

в этой команде - это примеры. По всей видимости, SIMCom не подкорректировала мануал;

2) CGQREQ & CGQMIN - на эти 2 команды запроса QOS модуль отвечает ERROR вопреки мануалу;

3) CGEQREQ - аналогично пункту 1).

 

AT+CGMR

AT+CGMR 
+CGMR: 1231B02SIM5350E  
AT+CGDCONT=1,"IP","internet"

AT+CGDCONT=1,"IP","internet"
OK  
AT+CGDCONT=?
AT+CGDCONT=? 
+CGDCONT: (1-6),"IP",,,(0),(0),(0-1) 
+CGDCONT: (1-6),"IPV6",,,(0),(0),(0-1) 
+CGDCONT: (1-6),"IPV4V6",,,(0),(0),(0-1) 
OK 
AT+CGQREQ=?

AT+CGQREQ=? 
ERROR 
AT+CGQMIN=?

AT+CGQMIN=? 
ERROR 
AT+CGEQREQ=?

AT+CGEQREQ=? 
+CGEQREQ: "IP", (0-4), (0-256000), (0-256000), (0-256000), (0-256000),(0-2), (0, 10-1500, 1502, 1510, 1520), ("0E0","1E2","7E3","1E3","1E4","1E5","1E6","1E1"), ("0E0","5E2","1E2","5E3","4E3","1E3","1E4","1E5","1E6","6E8"), (0-3), (0, 10-150, 200-950, 1000-4000), (0-3) 
+CGEQREQ: "IPV6", (0-4), (0-256000), (0-256000), (0-256000), (0-256000),(0-2), (0, 10-1500, 1502, 1510, 1520), ("0E0","1E2","7E3","1E3","1E4","1E5","1E6","1E1"), ("0E0","5E2","1E2","5E3","4E3","1E3","1E4","1E5","1E6","6E8"), (0-3), (0, 10-150, 200-950, 1000-4000), (0-3) 
+CGEQREQ: "IPV4V6", (0-4), (0-256000), (0-256000), (0-256000), (0-256000),(0-2), (0, 10-1500, 1502, 1510, 1520), ("0E0","1E2","7E3","1E3","1E4","1E5","1E6","1E1"), ("0E0","5E2","1E2","5E3","4E3","1E3","1E4","1E5","1E6","6E8"), (0-3), (0, 10-150, 200-950, 1000-4000), (0-3) 
OK 
ATD*99#
ATD*99# 
ERROR 
OK 
ATD*99***1#

ATD*99***1# 
ERROR 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...