А мы уже спрыгнули с киевстара на МТС, на киевстаре рвалось соединение примерно раз в пол часа, что днем что ночью.... хоть часы сверяй, поставили МТС, максимум раз в неделю 1 обрыв бывает, устройства шлют данные на сервер каждые 30сек, любой обрыв связи на сервере будет заметный и записан в лог (защита от глушилок), нет времени щас подключаться через терминал снимать логи, приведу хоть кодом на С последовательность команд при реконекте
Код
//----------------------------------------------------------
//
//----------------------------------------------------------
unsigned char setting2()
{
unsigned int k=0;
clear_rx();
putstr("AT+CGATT=0\r\0"); k=0;
while(!strstrf(rx_buffer, "OK"))
{
k++;
delay_ms(100);
if(k==200) {k=0; clear_rx(); return 1;}
}
clear_rx();
putstr("AT+CGATT=1\r\0"); k=0;
while(!strstrf(rx_buffer, "OK"))
{
k++;
delay_ms(100);
if(k==200) {k=0; clear_rx(); return 1;}
}
clear_rx();
putstr("AT+CIPSHUT\r\0"); k=0;
while(!strstrf(rx_buffer, "SHUT OK"))
{
k++;
delay_ms(100);
if(k==200) {k=0; clear_rx(); return 1;}
}
clear_rx();
putstr("AT+CIPCSGP=1,\"");
putstr(SimSettingTochka);
putstr("\",\"\",\"\"\r\0");
k=0;
while(!strstrf(rx_buffer, "OK"))
{
k++;
delay_ms(100);
if(k==200) {k=0; clear_rx(); return 1;}
}
clear_rx();
putstr("AT+CSTT\r\0"); k=0;
while(!strstrf(rx_buffer, "OK"))
{
k++;
delay_ms(100);
if(k==200) {k=0; clear_rx(); return 1;}
}
clear_rx();
putstr("AT+CIICR\r\0"); k=0;
while(!strstrf(rx_buffer, "OK"))
{
k++;
delay_ms(100);
if(k==200) {k=0; clear_rx(); return 1;}
}
clear_rx();
putstr("AT+CIFSR\r\0"); k=0;
delay_ms(1000);
clear_rx();
putstr("AT+CIPSTATUS\r\0"); k=0;
while(!strstrf(rx_buffer, "IP STATUS"))
{
k++;
delay_ms(100);
if(k==200) {k=0; clear_rx(); return 1;}
}
clear_rx();
putstr("AT+CIPSTART=\"TCP\",\""); k=0;
putstr(SimSettingIP);
putstr("\",\"");
putstr(SimSettingPORT);
putstr("\"\r\0");
k=0;
while(!strstrf(rx_buffer, "CONNECT OK"))
{
k++;
delay_ms(100);
if(k==400) {k=0; clear_rx(); return 1;}
}
clear_rx();
delay_ms(1000);
SendStatus();
return 0;
}
ПС. Не начинайте критиковать код как все можно лучше сделать, запхать все в массивы и крутить в циклах и т.п. Код был набросан для проверки работоспособности последовательности команд при реконектах
тоже иногда выдавалось ПДП деакт при AT+CIICR, решилось почти методом тыка, точку доступа задаем через AT+CIPCSGP а после отправляем пустаю команду AT+CSTT, проверял на киевстарах и МТС