void grafikm() { boolean datm=1; boolean datd=1; boolean daty=1; graf=1;//флаг захода выхода табл график boolean d=0;//флаг графика за месяц boolean y=0;// флаг графика за год // boolean d=0; myGLCD.setColor(0,38,92); myGLCD.fillRoundRect(415, 22, 635, 90);//рисуем синий пр-к очистка поля даты myGLCD.setColor(255, 255, 255);//цвет обводки myGLCD.drawRoundRect(415, 22, 635, 90);//прямоугольник с обводкой myGLCD.setFont( Ubuntubold); myGLCD.setBackColor(0,38,92); myGLCD.setColor(255, 255, 0);//цвет myGLCD.print("M" ,440, 203);//выделение месяца цветом myGLCD.setBackColor(8,101,192); myGLCD.setColor(255, 255, 0);//цвет myGLCD.print("D" ,440, 163); myGLCD.print("Y" ,440, 243); myGLCD.setBackColor(0,38,92); myGLCD.setColor(63, 200, 255);//цвет myGLCD.print("RETURN" ,458, 368); myGLCD.setColor(0,38,92); myGLCD.fillRoundRect(0, 0, 415, 470);//рисуем синий пр-к myGLCD.setColor(255, 255, 255);//цвет обводки myGLCD.drawRoundRect(0, 0, 415, 470);//прямоугольник с обводкой myGLCD.setBackColor(0,38,92); myGLCD.setColor(55, 55, 155); if (days1<10) {myGLCD.print("0" ,527, 163); myGLCD.printNumI(days1, 527+24, 163); } else myGLCD.printNumI(days1, 527, 163); retg1: pikgrafikm(); picgrafm(); while(1) { sec=t.sec; if ((sec==0) ||(sec==15) || (sec==30) || (sec==45)) { delay(500); clc(); } //******DHT read******** if ((sec==11) || (sec==42) ) { info(); } //********************************DHT read end********************************************************************************************* if ((sec==53) || (sec==25) ) { info(); } //********************** TOUCH ******************************************* if (myTouch.dataAvailable()) { myTouch.read(); int x=myTouch.getX(); int y=myTouch.getY(); myGLCD.setFont( Ubuntubold); myGLCD.setColor(VGA_BLUE); myGLCD.setBackColor(255,255,255); myGLCD.setFont( Ubuntubold); // myGLCD.print("x= " , 650, 32); // myGLCD.printNumI(x , 700, 32); // myGLCD.setFont( Ubuntubold); // myGLCD.print("y= " ,650 , 72); // myGLCD.printNumI(y , 700, 72); if ((x>=640) && (x<=799)) // Upper row { if ((y>=10) && (y<=150)) //(10, 370, 90, 450); //Install { kalendarset(); graf=0; grafik(); } if ((y>=370) && (y<=450)) //(10, 370, 90, 450); //Clok {waitForIt1(639, 370, 799, 450); graf=0; menu(); } } //************dat if ((y>=150) && (y<=190)) { if ((x>=435) && (x<=465))// выбор график за день {d=1; y=0; myGLCD.setFont( Ubuntubold); myGLCD.setBackColor(0,38,92); myGLCD.setColor(255, 255, 0);//цвет myGLCD.print("D" ,440, 163); myGLCD.setBackColor(8,101,192); myGLCD.setColor(255, 255, 0);//цвет myGLCD.print("M" ,440, 203); myGLCD.print("Y" ,440, 243); } datd=1; if ((x>=490) && (x<=520)) { myGLCD.setBackColor(0,38,92); myGLCD.setColor(218,231,250);// myGLCD.setColor(31,70,126); myGLCD.print("<" ,495, 163); myGLCD.setColor(55,55,155); days1=days1-1; days1=validateDate(days1, mon1, years1); if(years1==t.year)//проверка на наличае данных {if(mon1>=t.mon) {if(days1>t.date) {myGLCD.setColor(150,0,0); datd=0; } } } if (days1<10) {myGLCD.print("0" ,527, 163); myGLCD.printNumI(days1, 527+24, 163); } else myGLCD.printNumI(days1, 527, 163); delay (300); myGLCD.setColor(31,70,126); myGLCD.print("<" ,495, 163); } if ((x>=580) && (x<=610)) { myGLCD.setBackColor(0,38,92); myGLCD.setColor(218,231,250);// myGLCD.setColor(31,70,126); myGLCD.print(">" ,590, 163); myGLCD.setColor(55,55,155); days1=days1+1; days1=validateDate(days1, mon1, years1); if(years1==t.year)//проверка на наличае данных {if(mon1>=t.mon) {if(days1>t.date) {myGLCD.setColor(150,0,0); datd=0; } } } if (days1<10) {myGLCD.print("0" ,527, 163); myGLCD.printNumI(days1, 527+24, 163); } else myGLCD.printNumI(days1, 527, 163); delay (300); myGLCD.setColor(31,70,126); myGLCD.print(">" ,590, 163); } } //********************************* if ((y>=200) && (y<=230)) //кнопка месяц { if ((x>=435) && (x<=465))// выбор график за день {d=0; y=0; myGLCD.setFont( Ubuntubold); myGLCD.setBackColor(0,38,92); myGLCD.setColor(255, 255, 0);//цвет myGLCD.print("M" ,440, 203); myGLCD.setBackColor(8,101,192); myGLCD.setColor(255, 255, 0);//цвет myGLCD.print("D" ,440, 163); myGLCD.print("Y" ,440, 243); } datm=1; if ((x>=490) && (x<=520)) { myGLCD.setBackColor(0,38,92); myGLCD.setColor(218,231,250);// myGLCD.setColor(31,70,126); myGLCD.print("<" ,495, 203); myGLCD.setColor(255,255,255); mon1=mon1-1; if (mon1==0) mon1=12; if(years1==t.year) {if(mon1>t.mon) {myGLCD.setColor(255,0,0); datm=0; } } if(years1<2015) {if(mon1<6) {myGLCD.setColor(255,0,0); datm=0; } } if(years1==t.year)//проверка на наличае данных {if(mon1>=t.mon) {if(days1>t.date) {myGLCD.setColor(255,0,0); datd=0; } } } if (mon1<10) {myGLCD.print("0" ,527, 203); myGLCD.printNumI(mon1, 527+24, 203); } else myGLCD.printNumI(mon1, 527, 203); delay (300); myGLCD.setColor(31,70,126); myGLCD.print("<" ,495, 203); } if ((x>=580) && (x<=610)) { myGLCD.setBackColor(0,38,92); myGLCD.setColor(218,231,250);// myGLCD.setColor(31,70,126); myGLCD.print(">" ,590, 203); myGLCD.setColor(255,255,255); mon1=mon1+1; if (mon1==13) mon1=1; if(years1==t.year)//проверка на наличае данных {if(mon1>t.mon) {myGLCD.setColor(255,0,0); datm=0; } } if(years1<2015) {if(mon1<6) {myGLCD.setColor(255,0,0); datm=0; } } if(years1==t.year)//проверка на наличае данных {if(mon1>=t.mon) {if(days1>t.date) {myGLCD.setColor(255,0,0); datd=0; } } } if (mon1<10) {myGLCD.print("0" ,527, 203); myGLCD.printNumI(mon1, 527+24, 203); } else myGLCD.printNumI(mon1, 527, 203); delay (300); myGLCD.setColor(31,70,126); myGLCD.print(">" ,590, 203); } } if ((y>=240) && (y<=270)) //кнопка год -+ { if ((x>=435) && (x<=465))// выбор график за год {d=0; y=1; myGLCD.setFont( Ubuntubold); myGLCD.setBackColor(0,38,92); myGLCD.setColor(255, 255, 0);//цвет myGLCD.print("Y" ,440, 243); myGLCD.setBackColor(8,101,192); myGLCD.setColor(255, 255, 0);//цвет myGLCD.print("D" ,440, 163); myGLCD.print("M" ,440, 203); } daty=1; if ((x>=485) && (x<=510)) {years1=years1-1; if(years1<2013) years1=2013; myGLCD.setBackColor(0,38,92); myGLCD.setColor(255,255,255); if((years1<2014) || (years1>t.year)) { myGLCD.setColor(255,0,0); daty=0; } myGLCD.printNumI(years1, 507, 243); delay(300); } if ((x>=600) && (x<=617)) {years1=years1+1; myGLCD.setBackColor(0,38,92); myGLCD.setColor(255,255,255); if((years1<2014) || (years1>t.year)) { myGLCD.setColor(255,0,0); daty=0; } myGLCD.printNumI(years1, 507, 243); delay(300); } } if ((y>=290) && (y<=340)) //кнопка RS {if ((x>=440) && (x<=515)) { myGLCD.setBackColor(0,38,92); if(daty+datd+datm==3) {myGLCD.setColor(0,255,0); myGLCD.print("RS" ,453, 303); //вывод даты данных myGLCD.setColor(0,38,92); myGLCD.fillRoundRect(415, 22, 635, 90);//рисуем синий пр-к очистка поля даты myGLCD.setColor(255, 255, 255);//цвет обводки myGLCD.drawRoundRect(415, 22, 635, 90);//прямоугольник с обводкой myGLCD.setFont( Ubuntubold); myGLCD.setBackColor(0,38,92); myGLCD.setColor(255,255,255); myGLCD.print("RS" ,453, 303); colorgraf=0; goto retg1; } else {myGLCD.setColor(255,0,0); myGLCD.print("RS" ,453, 303); } delay(300); myGLCD.setFont( Ubuntubold); myGLCD.setBackColor(0,38,92); myGLCD.setColor(255,255,255); myGLCD.print("RS" ,453, 303); } if ((x>=540) && (x<=605)) { if (d==1) {myGLCD.setBackColor(0,38,92); if(daty+datd+datm==3) {myGLCD.setColor(0,255,0); myGLCD.print("OK" ,553, 303); myGLCD.setBackColor(0,38,92); myGLCD.setColor(255,255,255); if (days1<10) {myGLCD.print("0" ,527, 163); myGLCD.printNumI(days1, 527+24, 163); } else myGLCD.printNumI(days1, 527, 163); myGLCD.setColor(255,255,255); delay(300); myGLCD.print("OK" ,553, 303); grafiks() ; } else {myGLCD.setColor(255,0,0); myGLCD.print("OK" ,553, 303); } delay(300); myGLCD.setFont( Ubuntubold); myGLCD.setBackColor(0,38,92); myGLCD.setColor(255,255,255); myGLCD.print("OK" ,553, 303); goto ret1; } if (y==1) {myGLCD.setBackColor(0,38,92); if(daty+datd+datm==3) {myGLCD.setColor(0,255,0); myGLCD.print("OK" ,553, 303); myGLCD.setColor(255,255,255); delay(300); myGLCD.print("OK" ,553, 303); //grafiky() ; } else {myGLCD.setColor(255,0,0); myGLCD.print("OK" ,553, 303); } delay(300); myGLCD.setFont( Ubuntubold); myGLCD.setBackColor(0,38,92); myGLCD.setColor(255,255,255); myGLCD.print("OK" ,553, 303); goto ret1; } myGLCD.setBackColor(0,38,92); if(daty+datd+datm==3) {myGLCD.setColor(0,255,0); myGLCD.print("OK" ,553, 303); colorgraf=colorgraf+1; //************************************** // pikgrafikm(); picgrafm(); // readmasfail( days1, mon1, years1); } else {myGLCD.setColor(255,0,0); myGLCD.print("OK" ,553, 303); } delay(300); myGLCD.setFont( Ubuntubold); myGLCD.setBackColor(0,38,92); myGLCD.setColor(255,255,255); myGLCD.print("OK" ,553, 303); } } ret1: if ((x>=440) && (x<=610)) {if ((y>=360) && (y<=400)) //кнопка GRAFIK { myGLCD.setBackColor(0,38,92); myGLCD.setColor(59, 251, 104);//цвет myGLCD.print("RETURN" ,458, 368); delay(500); myGLCD.setColor(63, 200, 255);//цвет myGLCD.print("TABLE " ,458, 368); myGLCD.setColor(0,38,92); myGLCD.fillRoundRect(0, 0, 415, 470);//рисуем синий пр-к myGLCD.setColor(255, 255, 255);//цвет обводки myGLCD.drawRoundRect(0, 0, 415, 470);//прямоугольник с обводкой myGLCD.setColor(0,38,92); myGLCD.fillRoundRect(415, 22, 635, 90);//рисуем синий пр-к очистка поля даты myGLCD.setColor(255, 255, 255);//цвет обводки myGLCD.drawRoundRect(415, 22, 635, 90);//прямоугольник с обводкой myGLCD.setFont( Ubuntubold); myGLCD.setBackColor(0,38,92); myGLCD.setColor(255, 255, 255); if (days1<10) {myGLCD.print("0" ,527, 163); myGLCD.printNumI(days1, 527+24, 163); } else myGLCD.printNumI(days1, 527, 163); colorgraf=0; grafiks(); } if ((y>=420) && (y<=470)) //кнопка QUIT { myGLCD.setBackColor(0,38,92); myGLCD.setColor(255, 100, 100);;//цвет нажатой кнопки myGLCD.print("QUIT" ,479, 433); delay(500); myGLCD.setColor(255, 100, 100);//цветmyGLCD.setColor(255, 97, 237);//цвет myGLCD.setColor(255, 97, 237);//цвет кнопки myGLCD.setColor(255, 255, 255);//цвет graf=0; colorgraf=0; menu(); } } }//END TOUCH ********************************************************* }//wile } void pikgrafikm() //*******рисуем график ********************************* { myGLCD.setColor(30,55,90); myGLCD.fillRoundRect(55, 5, 55+15, 440);//рисуем синий пр-к1 myGLCD.setColor(45,55,105); myGLCD.fillRoundRect(55+15, 5, 55+30, 440);//рисуем синий пр-к2 myGLCD.setColor(60,55,110); myGLCD.fillRoundRect(55+30, 5, 55+45, 440);//рисуем синий пр-к3 myGLCD.setColor(75,55,115); myGLCD.fillRoundRect(55+45, 5, 55+60, 440);//рисуем синий пр-к4 myGLCD.setColor(82,40,137); myGLCD.fillRoundRect(55+60,5 , 55+60+15, 440);//рисуем синий пр-к5 myGLCD.setColor(97,35,139); myGLCD.fillRoundRect(55+60+15,5 , 55+60+30, 440);//рисуем синий пр-к6 myGLCD.setColor(125,32,141); myGLCD.fillRoundRect(55+60+30,5 , 55+60+45, 440);//рисуем синий пр-к7 myGLCD.setColor(145,27,143); myGLCD.fillRoundRect(55+60+45,5 , 55+60+60, 440);//рисуем синий пр-к8 myGLCD.setColor(163,25,146); myGLCD.fillRoundRect(55+60+60,5 , 55+60+60+15, 440);//рисуем синий пр-к9 myGLCD.setColor(173,35,136); myGLCD.fillRoundRect(55+60+60+15,5 , 55+60+60+30, 440);//рисуем синий пр-к10 myGLCD.setColor(187,45,120); myGLCD.fillRoundRect(55+60+60+30,5 , 55+60+60+45, 440);//рисуем синий пр-к11 myGLCD.setColor(195,55,106); myGLCD.fillRoundRect(55+60+60+45,5 , 55+60+60+60, 440);//рисуем синий пр-к 12 myGLCD.setColor(200,64,97); myGLCD.fillRoundRect(55+60+60+60,5 , 55+60+60+60+15, 440);//рисуем синий пр-к13 myGLCD.setColor(195,75,92); myGLCD.fillRoundRect(55+60+60+60+15,5 , 55+60+60+60+30, 440);//рисуем синий пр-к14 myGLCD.setColor(190,85,87); myGLCD.fillRoundRect(55+60+60+60+30,5 , 55+60+60+60+45, 440);//рисуем синий пр-к15 myGLCD.setColor(180,95,82); myGLCD.fillRoundRect(55+60+60+60+45,5 , 55+60+60+60+60, 440);//рисуем синий пр-к 16 myGLCD.setColor(171,103,76); myGLCD.fillRoundRect(55+240,5 , 55+240+15, 440);//рисуем синий пр-к 17 myGLCD.setColor(151,93,86); myGLCD.fillRoundRect(55+240+15,5 , 55+240+30, 440);//рисуем синий пр-к 18 myGLCD.setColor(131,83,96); myGLCD.fillRoundRect(55+240+30,5 , 55+240+45, 440);//рисуем синий пр-к 19 myGLCD.setColor(101,73,116); myGLCD.fillRoundRect(55+240+45,5 , 55+300, 440);//рисуем синий пр-к 20 myGLCD.setColor(82,40,137); myGLCD.fillRoundRect(55+300,5 , 55+315, 440);//рисуем синий пр-к 21 myGLCD.setColor(60,55,110); myGLCD.fillRoundRect(55+315,5 , 55+330, 440);//рисуем синий пр-к 22 myGLCD.setColor(30,55,90); myGLCD.fillRoundRect(55+330,5 , 55+345, 440);//рисуем синий пр-к 23 myGLCD.setBackColor(0,38,92); myGLCD.setColor(VGA_WHITE); myGLCD.setFont(BigFont); myGLCD.drawLine(55, 10, 55, 450);// ось у myGLCD.drawLine(400, 10, 400, 440);//ось у давление myGLCD.drawLine(55, 90+180, 400, 90+180);// ось х темп myGLCD.drawLine(55, 440, 400, 440);//ось х влажность myGLCD.setColor(35,173,255); myGLCD.drawLine(55, 270-80, 400, 270-80);// ось 0 myGLCD.setColor(200,64,97); myGLCD.drawLine(55, 270-200, 400, 70);// ось 30 myGLCD.drawLine(55, 270-220, 400, 50);// ось 35 myGLCD.drawLine(55, 440-30, 400, 440-30);// ось 30 myGLCD.drawLine(55, 440-15, 400, 440-15);// ось 30 myGLCD.setColor(45,112,56); myGLCD.drawLine(55, 270-180, 400, 270-180);// ось 25 myGLCD.drawLine(55, 270-160, 400, 270-160);// ось 20 myGLCD.drawLine(55, 270-120, 400, 270-120);// ось 10 myGLCD.drawLine(55, 270-100, 400, 270-100);// ось 5 myGLCD.drawLine(55, 270-140, 400, 270-140);// ось 15 myGLCD.drawLine(55, 440-105, 400, 440-105);// ось 70 myGLCD.drawLine(55, 440-90, 400, 440-90);// ось 60 myGLCD.drawLine(55, 440-75, 400, 440-75);// ось 50 myGLCD.drawLine(55, 440-60, 400, 440-60);// ось 40 myGLCD.drawLine(55, 440-45, 400, 440-45);// ось 30 myGLCD.setColor(0,38,92); myGLCD.drawLine(55, 270-60, 400, 270-60);// ось -5 myGLCD.drawLine(55, 270-40, 400, 270-40);// ось -10 myGLCD.drawLine(55, 270-20, 400, 270-20);// ось -15 myGLCD.drawLine(55, 440-135, 400, 440-135);// ось 90 myGLCD.drawLine(55, 440-120, 400, 440-120);// ось 80 myGLCD.setColor(255,75,29); myGLCD.drawLine(55, 270-240, 400, 270-240);// ось 40 myGLCD.drawLine(55, 270-260, 400, 270-260);// ось 45 byte k=0; myGLCD.setColor(VGA_WHITE); for (int i =0 ; i < 270; i = i+4) { myGLCD.drawLine(55, 90+180-i, 52, 90+180-i); myGLCD.drawLine(400, 90+180-i, 403, 90+180-i); k=k+1; if((k==6)||(k==1))//верт метки tu td { if ((i/4-20)>29) {myGLCD.setColor(255,62,62); myGLCD.printNumI(i/4-20, 5, 90+180-8-i); } if ((i/4-20)>0 && (i/4-20)<30) {myGLCD.setColor(10,255,60); myGLCD.printNumI(i/4-20, 5, 90+180-8-i); } if ((i/4-20)<1) {myGLCD.setColor(35,173,255); myGLCD.printNumI(i/4-20, 5, 90+180-8-i); } myGLCD.setColor(VGA_WHITE); myGLCD.drawLine(55, 90+180-i, 55-9, 90+180-i); myGLCD.drawLine(400, 90+180-i, 400+9, 90+180-i); k=1;} } k=0; myGLCD.setColor(VGA_WHITE); for (int i =0 ; i < 150; i = i+3) { //myGLCD.drawLine(55, 440, 400, 440);//ось х давление //myGLCD.drawLine(55, 10, 55, 450);// ось у myGLCD.drawLine(55, 440-i, 52, 440-i); k=k+1; if((k==6)||(k==1))//верт метки tu td { if (i>119) {myGLCD.setColor(35,173,255); myGLCD.printNumI(i*2/3, 5, 440-8-i); } if (i>31 && i<119) {myGLCD.setColor(10,255,60); myGLCD.printNumI(i*2/3, 5, 440-8-i); } if (i<31) {myGLCD.setColor(255,255,0); myGLCD.printNumI(i*2/3, 5, 440-8-i); } myGLCD.setColor(VGA_WHITE); myGLCD.drawLine(55, 440-i, 55-9, 440-i); k=1;} } //************************************* k=0; for (int i =0 ; i < 360; i = i+11) //гориз метки и шкала { //for (byte n =0 ; n < 5; n = n++) myGLCD.drawLine(55+i, 90+180, 55+i, 90+180+5); myGLCD.drawLine(55+i, 440, 55+i, 440+5); k=k+1; if((k==6)||(k==1)) {myGLCD.printNumI(i/11, 55+i-12, 90+180+10); myGLCD.printNumI(i/11, 55+i-12, 440+10); myGLCD.drawLine(55+i, 90+180, 55+i, 90+180+9); myGLCD.drawLine(55+i, 440, 55+i, 440+9); k=1;} } myGLCD.setBackColor( VGA_TRANSPARENT); myGLCD.setColor(255,62,62); myGLCD.print("T C" ,59, 10); myGLCD.print("T C" ,61, 10); myGLCD.print("T C" ,60, 11); myGLCD.print("T C" ,60, 9); myGLCD.setColor(VGA_WHITE); myGLCD.print("T C" ,60, 10); myGLCD.setColor(10,255,60); myGLCD.print("750" ,352, 250-8); myGLCD.print("755" ,352, 230-8); myGLCD.print("760" ,352, 210-8); myGLCD.print("765" ,352, 190-8); myGLCD.print("770" ,352, 170-8); myGLCD.setColor(0,38,92); myGLCD.print("Pmm" ,353, 170-35); myGLCD.print("Pmm" ,351, 170-35); myGLCD.print("Pmm" ,352, 171-35); myGLCD.print("Pmm" ,352, 169-35); myGLCD.setColor(VGA_WHITE); myGLCD.print("Pmm" ,352, 170-35); myGLCD.setColor(35,173,255); myGLCD.print("H%" ,61, 290); myGLCD.print("H%" ,59, 290); myGLCD.print("H%" ,60, 291); myGLCD.print("H%" ,60, 289); myGLCD.setColor(VGA_WHITE); myGLCD.print("H%" ,60, 290); } void picgrafm()//рисуем график { myGLCD.setBackColor(0,38,92); if(colorgraf>3) colorgraf=0; if(colorgraf==0)//выбор цвета графика myGLCD.setColor(VGA_WHITE); if(colorgraf==1) myGLCD.setColor(35,173,255); if(colorgraf==2) myGLCD.setColor(255, 255, 0); if(colorgraf==3) myGLCD.setColor(10,255,60); //if(colorgraf==4) // myGLCD.setColor(255,62,62); // if(colorgraf==5) // myGLCD.setColor(255,114,0); myGLCD.setFont(BigFont); byte posy=16; // if (days1<10) // myGLCD.printNumI(days1, 420+16, posy*colorgraf+25); // else // myGLCD.printNumI(days1, 420, posy*colorgraf+25); // myGLCD.print("." ,420+32, posy*colorgraf+25); if (mon1<10) {myGLCD.print("0" ,420+32+16, posy*colorgraf+25); myGLCD.printNumI(mon1, 420+32+32, posy*colorgraf+25); } else myGLCD.printNumI(mon1, 420+32+16, posy*colorgraf+25); myGLCD.print("." ,420+32+32+16, posy*colorgraf+25); myGLCD.printNumI(years1-2000, 420+32+32+16+16, posy*colorgraf+25); byte reader[29];//01.06.14 Tma=+32,2 Tmi=+17,0 Tsr=+21,8C word work[31]={256,254,260,264,265,266,270,268,259,255,250,249,256,254,260,264,265,266,270,268,259,255,250,249,266,270,268,259,255,250,249}; char* strm[] = {"JAN","FEBR","MARCH","APRIL","MAY","JUNE","JULY","AUG","SEPT","OCT","NOV","DEC"}; char* stry[] = {"2014","2015","2016","2017","2018","2019","2020","2021","2022","2023","2024","2025","2026","2027","2028","2029","2030","2031","2032","2033","2034","2035"}; char* name; sd.chdir("/"); delay (100); sd.chdir("tempul");//23:00 T=+27,8C Hu=33,2% delay (100); name= stry[years1-2014]; if (!sd.chdir(name))//проверка наличая папки на флешке {sd.chdir("/"); delay (100); return; } delay (100); sd.chdir(name);// заходим в папку год delay (100); name= strm[mon1-1]; if (!sd.chdir(name))//проверка наличая папки на флешке {sd.chdir("/"); delay (100); return; } delay (100); sd.chdir(name);// заходим в папку месяц delay (100); //************************************************************************* myFile.open("minmax.txt", O_READ); for (int n =0 ; n < 32; n = n++)// колво строк в файле { for (int i =0 ; i < 28; i = i++) // колво необходимых байт в строке { byte b= myFile.read(); if (b<48) {reader[i]=b; } else { b=b-48;//получение цифры из байта reader[i]=b; } } for (int i =28 ; i < 67; i = i++) // колво пропускаемых байт в строке { byte b= myFile.read(); } if (reader[13]==45) {work[n]=(reader[14]*100+reader[15]*10+reader[17])+1000;//- к отр темп прибавляем 1000 } else { work[n]=reader[14]*100+reader[15]*10+reader[17];// полож темп записуем как есть } byte b= myFile.read()-48;//возврат коретки 2 байта b= myFile.read()-48; } myFile.close(); delay (100); myGLCD.setColor(255, 0, 0); int y1; int y2; //****************Рисуем графики Tmax*************************** byte dm=31;// макс день месяца if (mon1==2) dm=28; if ((mon1==4)||(mon1==6)||(mon1==9)||(mon1==11)) dm=30; if(years1==t.year)//проверка на наличае данных {if(mon1==t.mon) { dm=t.date-1; } } for ( byte x =1 ; x < dm; x = x+1) { if( work[x-1]>999) { y1=190+((work[x-1]-1000)*4/10); } else { y1=190-(work[x-1]*4/10); } if( work[x]>999) { y2=190+((work[x]-1000)*4/10); } else { y2=190-(work[x]*4/10); } myGLCD.drawLine(55+x*11, y1, 55+11*(x+1), y2); myGLCD.drawLine(55+x*11, y1-1, 55+11*(x+1), y2-1); } //**************************** strm = {"JAN","FEBR","MARCH","APRIL","MAY","JUNE","JULY","AUG","SEPT","OCT","NOV","DEC"}; stry = {"2014","2015","2016","2017","2018","2019","2020","2021","2022","2023","2024","2025","2026","2027","2028","2029","2030","2031","2032","2033","2034","2035"}; sd.chdir("/"); delay (100); sd.chdir("tempul");//23:00 T=+27,8C Hu=33,2% delay (100); name= stry[years1-2014]; if (!sd.chdir(name))//проверка наличая папки на флешке {sd.chdir("/"); delay (100); myGLCD.print("ret1" ,420+32+16, posy*colorgraf+25); return; } delay (100); sd.chdir(name);// заходим в папку год delay (100); name= strm[mon1-1]; if (!sd.chdir(name))//проверка наличая папки на флешке {sd.chdir("/"); delay (100); myGLCD.print("ret2" ,420+32+16, posy*colorgraf+25); return; } delay (100); sd.chdir(name);// заходим в папку месяц delay (100); //************************************************************************* myFile.open("minmax.txt", O_READ); for (int n =0 ; n < 32; n = n++)// колво строк в файле { for (int i =0 ; i < 28; i = i++) // колво необходимых байт в строке { byte b= myFile.read(); if (b<48) {reader[i]=b; } else { b=b-48;//получение цифры из байта reader[i]=b; } } for (int i =28 ; i < 67; i = i++) // колво пропускаемых байт в строке { byte b= myFile.read(); } if (reader[23]==45) {work[n]=reader[24]*100+reader[25]*10+reader[27]+1000;//- к отр } else { work[n]=reader[24]*100+reader[25]*10+reader[27];// полож темп записуем как есть } byte b= myFile.read()-48;//возврат коретки 2 байта b= myFile.read()-48; } myFile.close(); // delay (50); sd.chdir("/"); myGLCD.setColor(50, 50, 255); //****************Рисуем графики T min Tmax*************************** for ( byte x =1 ; x < dm; x = x+1) { if( work[x-1]>999) { y1=190+((work[x-1]-1000)*4/10); } else { y1=190-(work[x-1]*4/10); } if( work[x]>999) { y2=190+((work[x]-1000)*4/10); } else { y2=190-(work[x]*4/10); } myGLCD.drawLine(55+x*11, y1, 55+11*(x+1), y2); myGLCD.drawLine(55+x*11, y1-1, 55+11*(x+1), y2-1); } //*************************************************** if(colorgraf>3) colorgraf=0; if(colorgraf==0)//выбор цвета графика myGLCD.setColor(VGA_WHITE); if(colorgraf==1) myGLCD.setColor(35,173,255); if(colorgraf==2) myGLCD.setColor(255, 255, 0); if(colorgraf==3) myGLCD.setColor(10,255,60); //**************************** strm = {"JAN","FEBR","MARCH","APRIL","MAY","JUNE","JULY","AUG","SEPT","OCT","NOV","DEC"}; stry = {"2014","2015","2016","2017","2018","2019","2020","2021","2022","2023","2024","2025","2026","2027","2028","2029","2030","2031","2032","2033","2034","2035"}; sd.chdir("/"); delay (100); sd.chdir("tempul");//23:00 T=+27,8C Hu=33,2% delay (100); name= stry[years1-2014]; if (!sd.chdir(name))//проверка наличая папки на флешке {sd.chdir("/"); delay (100); return; } delay (100); sd.chdir(name);// заходим в папку год delay (100); name= strm[mon1-1]; if (!sd.chdir(name))//проверка наличая папки на флешке {sd.chdir("/"); delay (100); return; } delay (100); sd.chdir(name);// заходим в папку месяц delay (100); myFile.open("minmax.txt", O_READ); for (int n =0 ; n < 32; n = n++)// колво строк в файле { for (int i =0 ; i < 33; i = i++) // колво пропускаемых байт в строке { byte b= myFile.read(); } for (int i =0 ; i < 5; i = i++) // колво необходимых байт в строке { byte b= myFile.read(); if (b<48) {reader[i]=b; } else { b=b-48;//получение цифры из байта reader[i]=b; } } for (int i =0 ; i < 29; i = i++) // колво пропускаемых байт в строке { byte b= myFile.read(); } if (reader[0]==45) {work[n]=(reader[1]*100+reader[2]*10+reader[4])+1000;//- к отр } else { work[n]=reader[1]*100+reader[2]*10+reader[4];// полож темп записуем как есть } byte b= myFile.read()-48;//возврат коретки 2 байта b= myFile.read()-48; } myFile.close(); delay (50); sd.chdir("/"); //****************Рисуем графики T min Tmax*************************** for ( byte x =1 ; x < dm; x = x+1) { if( work[x-1]>999) { y1=190+((work[x-1]-1000)*4/10); } else { y1=190-(work[x-1]*4/10); } if( work[x]>999) { y2=190+((work[x]-1000)*4/10); } else { y2=190-(work[x]*4/10); } myGLCD.drawLine(55+x*11, y1, 55+11*(x+1), y2); myGLCD.drawLine(55+x*11, y1-1, 55+11*(x+1), y2-1); } //****************************давление strm = {"JAN","FEBR","MARCH","APRIL","MAY","JUNE","JULY","AUG","SEPT","OCT","NOV","DEC"}; stry = {"2014","2015","2016","2017","2018","2019","2020","2021","2022","2023","2024","2025","2026","2027","2028","2029","2030","2031","2032","2033","2034","2035"}; sd.chdir("/"); delay (100); sd.chdir("tempul");//23:00 T=+27,8C Hu=33,2% delay (100); name= stry[years1-2014]; if (!sd.chdir(name))//проверка наличая папки на флешке {sd.chdir("/"); delay (100); return; } delay (100); sd.chdir(name);// заходим в папку год delay (100); name= strm[mon1-1]; if (!sd.chdir(name))//проверка наличая папки на флешке {sd.chdir("/"); delay (100); return; } delay (100); sd.chdir(name);// заходим в папку месяц delay (100); myFile.open("minmax.txt", O_READ); for (int n =0 ; n < 32; n = n++)// колво строк в файле { for (int i =0 ; i < 54; i = i++) // колво пропускаемых байт в строке { byte b= myFile.read(); } for (int i =0 ; i < 3; i = i++) // колво необходимых байт в строке { byte b= myFile.read(); if (b<48) {reader[i]=b; } else { b=b-48;//получение цифры из байта reader[i]=b; } } for (int i =0 ; i < 10; i = i++) // колво пропускаемых байт в строке { byte b= myFile.read(); } work[n]=reader[0]*100+reader[1]*10+reader[2];//P byte b= myFile.read()-48;//возврат коретки 2 байта b= myFile.read()-48; } myFile.close(); delay (50); sd.chdir("/"); //****************Рисуем графики P *************************** for ( byte x =1 ; x < dm; x = x+1) //****************давление ул постр графика { y1=310-((work[x-1]-735)*120/30); y2=310-((work[x]-735)*120/30); myGLCD.drawLine(55+x*11, y1, 55+11*(x+1), y2); myGLCD.drawLine(55+x*11, y1-1, 55+11*(x+1), y2-1); } //****************************влажность strm = {"JAN","FEBR","MARCH","APRIL","MAY","JUNE","JULY","AUG","SEPT","OCT","NOV","DEC"}; stry = {"2014","2015","2016","2017","2018","2019","2020","2021","2022","2023","2024","2025","2026","2027","2028","2029","2030","2031","2032","2033","2034","2035"}; sd.chdir("/"); delay (100); sd.chdir("tempul");//23:00 T=+27,8C Hu=33,2% delay (100); name= stry[years1-2014]; if (!sd.chdir(name))//проверка наличая папки на флешке {sd.chdir("/"); delay (100); return; } delay (100); sd.chdir(name);// заходим в папку год delay (100); name= strm[mon1-1]; if (!sd.chdir(name))//проверка наличая папки на флешке {sd.chdir("/"); delay (100); return; } delay (100); sd.chdir(name);// заходим в папку месяц delay (100); myFile.open("minmax.txt", O_READ); for (int n =0 ; n < 32; n = n++)// колво строк в файле { for (int i =0 ; i < 44; i = i++) // колво пропускаемых байт в строке { byte b= myFile.read(); } for (int i =0 ; i < 4; i = i++) // колво необходимых байт в строке { byte b= myFile.read(); if (b<48) {reader[i]=b; } else { b=b-48;//получение цифры из байта reader[i]=b; } } for (int i =0 ; i < 19; i = i++) // колво пропускаемых байт в строке { byte b= myFile.read(); } work[n]=reader[0]*100+reader[1]*10+reader[3];//Н byte b= myFile.read()-48;//возврат коретки 2 байта b= myFile.read()-48; } myFile.close(); delay (50); sd.chdir("/"); for ( byte x =1 ; x < dm; x = x+1) //******************************************влажность ул постр графика { y1=440-(work[x-1]*15/100); y2=440-(work[x]*15/100); myGLCD.drawLine(55+x*11, y1, 55+11*(x+1), y2); myGLCD.drawLine(55+x*11, y1-1, 55+11*(x+1), y2-1); } //****************************влажность strm = {"JAN","FEBR","MARCH","APRIL","MAY","JUNE","JULY","AUG","SEPT","OCT","NOV","DEC"}; stry = {"2014","2015","2016","2017","2018","2019","2020","2021","2022","2023","2024","2025","2026","2027","2028","2029","2030","2031","2032","2033","2034","2035"}; sd.chdir("/"); delay (100); sd.chdir("tempul");//23:00 T=+27,8C Hu=33,2% delay (100); name= stry[years1-2014]; if (!sd.chdir(name))//проверка наличая папки на флешке {sd.chdir("/"); delay (100); return; } delay (100); sd.chdir(name);// заходим в папку год delay (100); name= strm[mon1-1]; if (!sd.chdir(name))//проверка наличая папки на флешке {sd.chdir("/"); delay (100); return; } delay (100); sd.chdir(name);// заходим в папку месяц delay (100); myFile.open("minmax.txt", O_READ); for (int n =0 ; n < 32; n = n++)// колво строк в файле { for (int i =0 ; i < 63; i = i++) // колво пропускаемых байт в строке { byte b= myFile.read(); } for (int i =0 ; i < 4; i = i++) // колво необходимых байт в строке { byte b= myFile.read(); if (b<48) {reader[i]=b; } else { b=b-48;//получение цифры из байта reader[i]=b; } } work[n]=reader[0]*100+reader[1]*10+reader[3];//Н byte b= myFile.read()-48;//возврат коретки 2 байта b= myFile.read()-48; } myFile.close(); delay (50); sd.chdir("/"); for ( byte x =1 ; x < dm; x = x+1) //****************темп дома постр графика { y1=190-(work[x-1]*4/10); y2=190-(work[x]*4/10); myGLCD.drawLine(55+x*11, y1, 55+11*(x+1), y2); //myGLCD.drawLine(55+x*15, y1-1, 55+15*(x+1), y2-1); } }