Я пытаюсь продолжать отправлять данные с интервалом в 20 секунд, но вместо того, чтобы отправлять одну запись в 20 секунд, отправляются одновременно две записи за 40 секунд. Пожалуйста, предложите, если это обычное поведение с GPRS, или мы что-то упустили.
GSM я использую GL865 и Arduino Uno.
Пожалуйста, поделитесь своим мнением.
И через некоторое время он отправляет 3 данных через 60 секунд.
mySerial.println("AT&K=0");
smart_delay(2000);
mySerial.println("AT+CGDCONT=1,\"IP\",\"www\",\"0.0.0.0\",0,0");
smart_delay(3000);
mySerial.println("AT#GPRS=1");
smart_delay(3000);
mySerial.println("AT+CGPADDR=1");
smart_delay(3000);
mySerial.println("AT#SCFG=1,1,300,90,600,250");
smart_delay(5000);while(1)
{
mySerial.println("AT+CREG?");
mySerial.println("AT#CGPADDR=1");
smart_delay(4000);
mySerial.println("AT#SGACT=1,1");
mySerial.println("AT#SD=1,0,80,\"XXXXXXXX.com\"");req = "\r\nGET /?func=updateDeviceLoc¶ms=";
req.print(1);
req+=":";
req.print(flat,6);
req+=":";
req.print(flon,6);
req+=" HTTP/1.1\r\nHost: XXXXXXXXXXXXX.com\r\nConnection:keep-alive\r\n";
mySerial.println(req);
smart_delay(20000);
}// smart_delay() function .
static void smart_delay(unsigned long ms)
{
int x=0;
char c;
unsigned long start = millis();
do
{
while (mySerial.available())
{
c=mySerial.read();
}
} while (millis() - start < ms);
}
Задача ещё не решена.
Других решений пока нет …