You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Play/my718/internet.ino

290 lines
7.1 KiB

void internet()
{ //Serial2.setTimeout(5000);
char* name;
char* name1;
boolean bad=0;
int i;
// esp8266();
//doo:
myGLCD.setColor(VGA_WHITE);
myGLCD.setBackColor(0,172,238);
myGLCD.setFont(BigFont);
// myGLCD.fillScr(VGA_BLUE);
digitalWrite(18, LOW);
delay(3000);
digitalWrite(18, HIGH);//reset WIFI
myGLCD.print(" openweather " ,280, 457);
delay(7000);
//***************************
i=0;
while (i<900)
{
i++;
if(Serial2.available()) {
i=0;
if (Serial2.find("IP"))
{myGLCD.print("ip:" ,260, 457);
int ip1=Serial2.parseInt();
int ip2=Serial2.parseInt();
int ip3=Serial2.parseInt();
int ip4=Serial2.parseInt();
String data1= String(ip1)+"."+String(ip2)+"."+String(ip3)+"."+String(ip4)+" ";
myGLCD.print(data1 ,280, 457);
i=1000;
delay(3000);
c = Serial2.read();
c = Serial2.read();
myGLCD.print(" " ,240, 457);
}
}
if(i>0)delay (10);
}
//**************************************
Serial2.print("7");//проверка подключения к точке доступа если ответ больше 0 то подключились
delay(1000);
//***************************
i=0;
while (i<900)
{
i++;
if(Serial2.available()) {
i=0;
if (Serial2.find("7+"))
{myGLCD.print(" read data " ,280, 457);
i=1000;
}
}
if(i>0)delay (10);
}
//**************************************
Serial2.print("1");//проверка подключения к точке доступа если ответ больше 0 то подключились
delay(1000);
//***************************
i=0;
while (i<900)
{
i++;
if(Serial2.available()) {
i=0;
if (Serial2.find("1+"))
{myGLCD.print(" read server " ,280, 457);
i=1000;
}
}
if(i>0)delay (10);
}
//**************************************
//****************************SD**********************
sd.chdir("/");
delay (100);
sd.chdir("progn");
delay (100);
if (sd.exists("prognoz.txt"))
{name= "prognoz1.txt";
name1= "prognoz.txt";
}//установка раб директории
else
{name= "prognoz.txt";
name1= "prognoz1.txt";
}
// myFile.remove();
delay (50);
myFile.open(name, O_RDWR | O_CREAT | O_AT_END);
delay (50);
//******************************************************
i = 0; //счетчик времени
int n = 1; // счетчик символов
int st=0;
char c ;
//Serial2.setTimeout(2000);
i=0;
myGLCD.print(" read inform 1 " ,280, 457);
while (i<60000) {
if(Serial2.available()) {
c = Serial2.read();
myFile.print(c);
i=0;
}//gotov
i++;
}//while
delay (500);
myGLCD.print(" read inform 2 " ,280, 457);
i=0;
while (i<600) {
if(Serial2.available()) {
c = Serial2.read();
myFile.print(c);
i=0;
}//gotov
if(i>0)delay (10);
i++;
}//while
delay (500);
myGLCD.print(" read inform 3 " ,280, 457);
i=0;
while (i<600) {
if(Serial2.available()) {
c = Serial2.read();
myFile.print(c);
i=0;
}//gotov
if(i>0)delay (10);
i++;
}//while
myGLCD.print(" ",118, 457);
myGLCD.print(" end read inform " ,280, 457);
int cardSize=myFile.fileSize();
//myGLCD.printNumI(st ,150, 230);
// myGLCD.printNumI(i ,180, 230);
myFile.close();
delay (1000);
myGLCD.print(" ",118, 457);
myGLCD.print(" verifying " ,280, 457);
delay (1000);
myGLCD.print(" ",118, 457);
myGLCD.print("file size=" ,280, 457);
myGLCD.printNumI(cardSize,280+160, 457);
//************proverka file **********************************************
sd.chdir("/");//установка раб директории
delay (1000);
sd.chdir("progn");
delay (100);
myFile.open(name, O_READ);
char symbol;
i=0;
char token[] = "weatherdata";
n=1;
while( n < 8000)//размер считанного с сайта файла проверяем на наличае в конце </weatherdata>
{ symbol = myFile.read();
if(n>1000)
{if (symbol == token[i])
{ i=i+1;
}
else
{
i=0;
}
}
if(i>9){break;}
n=n+1;
}
if (cardSize>5000)//измерение размера файла если размер больше то считали все
{ if(i>9){// если есть в конце </weatherdata>
wifi=0;
myGLCD.print(" good file W= " ,280, 457);
myGLCD.printNumI(i,280+256, 457);
wifih=t.hour;// час обновления данных
wifim=t.min;// минуты
}
else// // если нет в конце </weatherdata> то error
{ myGLCD.print(" bad file W= " ,280, 457);
myGLCD.printNumI(i,280+256, 457);
wifi=9;
bad=1;
}
}
else//размер меньше то считали не все error
{ myGLCD.print(" bad file " ,280, 457);
wifi=9;
bad=1;
}
myFile.close();
delay (1000);
sd.chdir("/");//установка раб директории
delay (1000);
sd.chdir("progn");
delay (100);
if (bad==1)
{ if (sd.exists("Err.txt"))
{myFile.open("Err.txt", O_RDWR | O_CREAT | O_AT_END);
delay (100);
myFile.remove();
}
delay (100);
sd.rename(name,"Err.txt");
delay (100);
}
else{
myFile.open(name1, O_RDWR | O_CREAT | O_AT_END);
delay (100);
myFile.remove();
}
sd.chdir("/");
delay (2000);
// myGLCD.print(" end read inform " ,260, 460);
myGLCD.print(" ",250, 457);
clc();
digitalWrite(65, LOW);
/* return;
//****Для отладки***************************
while(1)
{
if (myTouch.dataAvailable())
{
myTouch.read();
int x=myTouch.getX();
int y=myTouch.getY();
if ((x>=0) && (x<=799)) // Upper row
{
if ((y>=10) && (y<=479)) // яркость
{
menu();
}
}
}//touch
sec=rtc_clock.get_seconds();
if (sec==0)
{
delay(800);
clc();
}
}//while
// dbgSerial.println(json);
//***********************************************************************************
*/
}
//***********************************************