Цитата(MKdemiurg @ Oct 17 2011, 14:24)

Хм...а если не проверять cipstatus? Я вот проверяю CGREG, CGATT и если на CIICR приходит PDP DEACT - делаю рестарт. Просто что конкретно даст AT+CIPSTATUS в плане проверки ?
Я на CIPSTATUS не жалуюсь, загвоздка не в нем, а в том, что при выполнении CGATT=1 получаю сразу ERROR. Я тут CIPSTATUS даже и не вызываю нигде. Если CGATT=1 ответит ОК, то тогда уже IPSTATUS, но там дальше всё нормально.
Еще раз: проблема в том, что если появился GPRS, то модем сам его не обнаруживает, на CGATT=1 выдает ERROR, и помогает только перезагрузка с отключением питания модема.
Наши поставщики щас ищут, какой командой можно пнуть модем, чтобы он без рестарта поискал GPRS.
Цитата(KAlex @ Oct 17 2011, 14:26)

Ну и зря.
Делаем cipshut и открываем сессию заново. Как правило со второго раза соединяется ок.
Именно так, как только появляются новые данные на отправку, я делаю CIPSEND, получаю ERROR, иду на закрытие TCP-соединения, дальше дается CIPSHUT и при попытке CIPSTART получаю ERROR, то есть со второго раза не соединяется, и дальше так и не соединяется сколько ни пытается. Через паузу иду на закрытие GPRS и пытаюсь подключить GPRS снова, но на CGATT=1 получаю стабильно ERROR. Найти GPRS помогает только сброс модема по PWRKEY и питанию.
Цитата(butthead2 @ Oct 17 2011, 14:34)

Ничего путевого не даст. Еще с незапамятных времен приколотил на эту кривую команду. CGATT и CIICR - с головой хватает.
Если GPRS есть, то CGATT и CIICR проходят чудесно. Если его нет, то на CGATT=1 уже получаем ERROR. Вот щас выкинул вообще вызов CIPSTATUS из алгоритма, загнал опять в то же состояние - проблема та же. CIPSTATUS не влияет.