|
|
|
GPRS для чайников |
|
|
|
Aug 27 2015, 06:17
|
Участник
Группа: Участник
Сообщений: 33
Регистрация: 6-05-15
Пользователь №: 86 547
|
Спасибо! UDP выбрали для сокращения трафика. Буду вникать.
|
|
|
|
|
Aug 29 2015, 05:12
|
Участник
Группа: Участник
Сообщений: 33
Регистрация: 6-05-15
Пользователь №: 86 547
|
1. Подскажите, что если модем SIM900R часто аппаратно перегружается? Ну например в среднем один раз в час. Как это отразится на его работоспособности? Устройство работает круглосуточно, период эксплуатации 5-10 лет.
2. Как правильно "запарковать" модем перед аппаратным перегрузом? Нужно ли предварительно "powerkey" тискать? Обязательно ли за status-ом посматривать?
3. И как таки правильно закрыть GPRS (UDP сессия) ? Сейчас я делаю "AT+CIPSHUT" и жду "SHUT OK"
4. Часто ловлю ERROR на +CSTT= "internet". После "SHUT OK" предыдущей сессии проходит около 18с. Со второй попытки конектится.
Спасибо!
Сообщение отредактировал ISG2015 - Aug 29 2015, 06:49
|
|
|
|
|
Aug 29 2015, 16:43
|
Участник
Группа: Участник
Сообщений: 33
Регистрация: 6-05-15
Пользователь №: 86 547
|
Цитата(CADiLO @ Aug 29 2015, 13:14) >>>Подскажите, что если модем SIM900R часто аппаратно перегружается? Ну например в среднем один раз в час.
Вопрос - а на пуркуа??? Работает и пусть себе работает - аппаратная перезагрузка это уже самый крайний случай. Идея была в том ,что при любой коллизии в GPRS линке - просто перегружать модем аппаратно. Не вдаваясь в подробности так сказать. Если у меня модем подключается к GPRS за 18с то мне легче и проще перегружать все сразу.
|
|
|
|
|
Aug 29 2015, 20:21
|
Местный
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682
|
Цитата(ISG2015 @ Aug 29 2015, 19:43) Идея была в том ,что при любой коллизии в GPRS линке - просто перегружать модем аппаратно. Не вдаваясь в подробности так сказать. Если у меня модем подключается к GPRS за 18с то мне легче и проще перегружать все сразу. А что в вашем случае считается коллизией? Т.е. какой алгоритм определения ситуации, когда надо перезагрузить модем. Я тоже обычно перезагружаю, но только после серии проверок. Частые жесткие перезапуски несут еще один подводный камень: операторы могут резервировать средства для открытия очередной GPRS-сессии, и временно держать резервы от прошлых сессий. В итоге, при положительном балансе, получаем нехватку средств даже для звонка, аж до возврата резервов (обычно в конце суток).
|
|
|
|
|
Aug 30 2015, 04:31
|
Участник
Группа: Участник
Сообщений: 33
Регистрация: 6-05-15
Пользователь №: 86 547
|
Да, вы правы, что то не так в таком подходе. Тогда помогите разобраться с тем как: 1. Правильно завершить сессию GPRS (UDP)? Сейчас я выполняю AT+CIPSHUT и жду ОК. Но на форуме читал что ОК может и прийти а сессия еще "висеть". 2. Как запарковать правильно модем? Ведь даже если я буду перегружать модем в исключительных ситуациях, тогда, когда уже ничего другое не помогает, то как бы нужно правильно его подготовить к аппаратному (по-питанию) перегрузу! Цитата(GeGeL @ Aug 29 2015, 21:21) А что в вашем случае считается коллизией? Т.е. какой алгоритм определения ситуации, когда надо перезагрузить модем. А вот что угодно: при попытке подключиться на любую из команд ERROR - перезагрузка, при отправке пакета получили ERROR или PDP DEACT - перезагрузка.
|
|
|
|
|
Aug 30 2015, 08:46
|
Участник
Группа: Участник
Сообщений: 33
Регистрация: 6-05-15
Пользователь №: 86 547
|
3. Еще не совсем понимаю почему модем подключается к GPRS с неправильным APN!? о_О Как тарифицируется все если я неправильно указал APN?
|
|
|
|
|
Aug 30 2015, 09:56
|
Местный
Группа: Участник
Сообщений: 294
Регистрация: 5-08-14
Из: Ярославль
Пользователь №: 82 466
|
Цитата(ISG2015 @ Aug 30 2015, 08:31) 2. Как запарковать правильно модем? Ведь даже если я буду перегружать модем в исключительных ситуациях, тогда, когда уже ничего другое не помогает, то как бы нужно правильно его подготовить к аппаратному (по-питанию) перегрузу! Да никак не надо, он при корректном выключении/перезагрузке сам завершает все сессии и посылает оператору сигнал о снятии регистрации в сети. Просто нужно дождаться пока STATUS уйдет в 0. Цитата(ISG2015 @ Aug 30 2015, 12:46) 3. Еще не совсем понимаю почему модем подключается к GPRS с неправильным APN!? о_О Как тарифицируется все если я неправильно указал APN? Зависит от оператора, у Мегафона даже есть услуга "Интернет без настроек", когда можно писать в APN/Login/Password любой бред. Тарификация так же зависит от честности оператора. также нужно учесть такой момент, что GPRS может устанавливаться, но все пакеты срезаться, а любой HTTP-запрос перенаправляться на специальную страницу оператора.
|
|
|
|
|
Aug 31 2015, 04:34
|
Участник
Группа: Участник
Сообщений: 33
Регистрация: 6-05-15
Пользователь №: 86 547
|
p_kav, а я однако за STATUS совсем не слежу Нужно разбираться с этим делом ,конечно не годится никуда рвать сессии и потом иметь неприятности с опером.
|
|
|
|
|
Aug 31 2015, 05:09
|
Местный
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682
|
Наверное, стоит разделить логику обработки ваших "коллизий" при подключении к GPRS и во время работы. При неудачном подключении сессии как таковой еще нет, поэтому перезагрузка не так страшна. Обычно я запускаю таймер при первой попытке подключения и затем многократно пытаюсь подключиться корректно (без перезапуска). Перезапуск - по таймауту (скажем, 5 минут неудачных попыток). Еще лучше использовать внешний вотчдог на PIC, блокируемый меандром, генерируемым модулем при успешном подключении. Что касается внештатных ситуаций во время работы, то в случае с UDP - это отсутствие подтверждения от сервера на определенное к-во отправленных пакетов. После этого - отсутствие ответов на несколько пингов или UDP-DNS-запросов, например, google.com, отправленных на 8.8.8.8:53 (запрос формируется по шаблону, ответ детектируется по порту). Тут уже можно деактивировать GPRS и запускать таймер рестарта (тушить меандр) и процедуру запуска GPRS. Но такая ситуация возможна и в случае кратковременного выхода из покрытия GSM, так что есть смысл дополнительно проверить сигнал, и увеличить (но не бесконечно!) таймаут рестарта в случае слабого сигнала. Где-то так... А вообще-то хорошо продуманный и практически выверенный алгоритм обработки таких ситуаций - это та "изюминка", которая определит качество работы вашего устройства в целом с точки зрения пользователя.
|
|
|
|
|
Aug 31 2015, 05:38
|
Участник
Группа: Участник
Сообщений: 33
Регистрация: 6-05-15
Пользователь №: 86 547
|
Цитата(GeGeL @ Aug 31 2015, 06:09) хорошо продуманный и практически выверенный алгоритм обработки таких ситуаций - это та "изюминка", которая определит качество работы вашего устройства в целом Трудно в вами не согласиться. Спасибо!
|
|
|
|
|
Jul 18 2018, 12:25
|
Группа: Новичок
Сообщений: 4
Регистрация: 6-03-18
Пользователь №: 102 179
|
Цитата(CADiLO @ May 13 2015, 10:24) И если будете делать свой внешний стек, то тогда посмотрите в сторону 3G модуля SIM5350. Там нет встроенного TCP/UDP стека, зато умеет работать в два потока IP/V4 и IP/V6 в любой комбинации. Идеальный модуль под внешний стек - быстрый и для 3G недорогой. Вот если б с ним можно было работать по PPP. На команду ATD*99# всегда отвечает ERROR.
|
|
|
|
|
Jul 19 2018, 12:47
|
Группа: Новичок
Сообщений: 4
Регистрация: 6-03-18
Пользователь №: 102 179
|
Цитата(CADiLO @ Jul 18 2018, 16:24) 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). CODE 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
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|