gprs, чтение файла на сервере

olegue
Offline
Зарегистрирован: 23.09.2020

void cycle_for (void)
{bit_ok=2; 
  for (long i=0; i <= 600000; i++){
  if (mySerial.available()) {
    a=(mySerial.read());
    if(a==cmp_com){i=600000; bit_ok=1;}
  }
  }
}



void setup() {
 
init_GSM ();

for (long i=0; i <= 30000; i++){delay(1); read_uart();}
while (count_ready_GPRS<7){
    init_GPRS();
  // if(count_ready_GPRS<7){  init_GSM ();}
  Serial.print ("\n\r\n");
}

    Timer1.initialize(1000000); // set a timer of length 100000 microseconds (or 0.1 sec - or 10Hz => the led will blink 5 times, 5 cycles of on-and-off, per second)
  Timer1.attachInterrupt( timerIsr ); // attach the service routine here

}

void loop() {
        clok_to_string();
  
      
      Serial.print ("Read server \n\r\n");
      adress_txt="txt/pomidor.txt";
       read_gprs();
       for (long i=0; i <= 2000; i++){delay(1);  read_uart();
      // Serial.print(r);
       if(r=='+'){aa=1;}
       if(aa==1){
        if(r==0x0D){aa=2;}
        }

        if(aa==2){ 
          if(r=='('){aa=0; Serial.print ("ON motor \n\r\n"); digitalWrite (13, HIGH); digitalWrite (5, HIGH); bit_time=1; Serial.print(hh); Serial.print(':'); Serial.print(mm); Serial.print(':');  Serial.println(ss);}
          if(r==')'){aa=0; Serial.print ("OFF motor \n\r\n"); digitalWrite (13, LOW); digitalWrite (5, LOW);  bit_time=0;}
        }
       }

       for (long i=0; i <= 2000; i++){delay(1);  }

       String String_temp_v;
      String_temp_v = (sensor_invoda.getTempCByIndex(0));
       out_messeng_Server = String_temp_v.toInt(); 
      // out_messeng_Server++;
     adress_php= "in/1/index.php/?a=";
       SEND_GPRS();

       for (long i=0; i <= 1500; i++){delay(1);  }

      out_messeng_string_Server = string_clok;
     adress_php= "in/time/index.php/?a=";
       SEND_string_GPRS();

       for (long i=0; i <= 1500; i++){delay(1);  }

      
}





//***************************


void read_gprs (void)
{
  mySerial.print ("sensor changed to: 0\n\r\n");   
    delay (100);
        mySerial.print ("Send start\n\r\n");   
    delay (100);
        mySerial.print ("setup url\n\r\n");   
    delay (100);
    
mySerial.print ("AT+HTTPPARA="); mySerial.print ('"');  mySerial.print ("URL"); mySerial.print ('"'); mySerial.print (','); mySerial.print ('"'); 
  mySerial.print (adress_site); mySerial.print (adress_txt);  mySerial.print ('"'); mySerial.print ("\n\r\n");
delay (1000);
mySerial.print ("GET url\n\r\n");   
    delay (100);
    mySerial.print ("AT+HTTPACTION=0\n\r\n");   
    delay (5000);
  mySerial.print ("AT+HTTPREAD=1,1000\n\r\n");   
}
void read_uart (void)
{
  if (mySerial.available()) {
   // Serial.write(mySerial.read());
    r=(mySerial.read());
  }
  if (Serial.available()) {
   // mySerial.write(Serial.read());
   //r=(Serial.read());
  }
}



тут https://www.rlocman.ru/review/article.html?di=600337

человек сделал полив помидор. меня заитересовало как он читает файлы. Запостил только часть кода , там где чтение файла

может кто-то подскажет зачем:

1

mySerial.print ("AT+HTTPREAD=1,1000\n\r\n");

читать 1000 байт если в файле всего 4 символа

2 вот это

 mySerial.print ("sensor changed to: 0\n\r\n");   
    delay (100);
        mySerial.print ("Send start\n\r\n");   
    delay (100);
        mySerial.print ("setup url\n\r\n");   
    delay (100);

отсылает в модем.

3.

       if(r=='+'){aa=1;}
       if(aa==1){
        if(r==0x0D){aa=2;}
        }

        if(aa==2){ 
          if(r=='('){aa=0; Serial.print ("ON motor \n\r\n");

суть алгоритма поиска скобки.

 

 

rkit
Offline
Зарегистрирован: 23.11.2016

человек - плохой программист