void grafik() { boolean datm=1; boolean datd=1; boolean daty=1; if (graf==1) { goto wil; } myGLCD.setColor(VGA_WHITE); myGLCD.setBackColor(VGA_BLUE); myGLCD.setFont(BigFont); myGLCD.fillScr(VGA_BLUE); kalend(); myGLCD.drawBitmap (639, 370, 160, 80, cl); myGLCD.drawRoundRect (639, 370, 799, 450); //Clok clc(); //********************************************************* myGLCD.setColor(8,101,192); myGLCD.fillRoundRect(0, 0, 635, 470);//рисуем синий пр-к myGLCD.setColor(255, 255, 255);//цвет обводки myGLCD.drawRoundRect(0, 0, 635, 470);//прямоугольник с обводкой myGLCD.setColor(0,38,92); myGLCD.fillRoundRect(415, 22, 635, 90);//рисуем синий пр-к myGLCD.setColor(255, 255, 255);//цвет обводки myGLCD.drawRoundRect(415, 22, 635, 90);//прямоугольник с обводкой myGLCD.setColor(0,38,92); myGLCD.fillRoundRect(0, 0, 415, 470);//рисуем синий пр-к myGLCD.setColor(255, 255, 255);//цвет обводки myGLCD.drawRoundRect(0, 0, 415, 470);//прямоугольник с обводкой tminmaxprint(); myGLCD.setFont( Ubuntubold); myGLCD.setBackColor(8,101,192); myGLCD.setColor(255, 255, 0);//цвет myGLCD.print("Change" ,460, 120); myGLCD.print("D" ,440, 163); myGLCD.print("M" ,440, 203); myGLCD.print("Y" ,440, 243); myGLCD.setBackColor(0,38,92); myGLCD.setFont( Ubuntubold); mon1=t.mon; years1=t.year; days1=t.date; myGLCD.setColor(255, 255, 255);//цвет if (days1<10) myGLCD.printNumI(days1, 440-8+24, 40); else myGLCD.printNumI(days1, 440-8, 40); myGLCD.print("." ,440+40, 40); if (mon1<10) {myGLCD.print("0" ,440+40+20, 40); myGLCD.printNumI(mon1, 440+40+20+24, 40); } else myGLCD.printNumI(mon1, 440+40+20, 40); myGLCD.print("." ,440+40+17+48, 40); myGLCD.printNumI(years1-2000, 440+40+20+48+20, 40); myGLCD.setColor(0,38,92); myGLCD.fillRoundRect(490, 157, 615, 195);//рисуем синий пр-к myGLCD.setColor(255, 255, 255);//цвет обводки myGLCD.drawRoundRect(490, 157, 615, 195);//прямоугольник с обводкой myGLCD.setColor(0,38,92); myGLCD.fillRoundRect(490, 197, 615, 235);//рисуем синий пр-к myGLCD.setColor(255, 255, 255);//цвет обводки myGLCD.drawRoundRect(490, 197, 615, 235);//прямоугольник с обводкой myGLCD.setColor(0,38,92); myGLCD.fillRoundRect(490, 237, 615, 275);//рисуем синий пр-к myGLCD.setColor(255, 255, 255);//цвет обводки myGLCD.drawRoundRect(490, 237, 615, 275);//прямоугольник с обводкой myGLCD.setBackColor(0,38,92); if (days1<10) {myGLCD.print("0" ,527, 163); myGLCD.printNumI(days1, 527+24, 163); } else myGLCD.printNumI(days1, 527, 163); if (mon1<10) {myGLCD.print("0" ,527, 203); myGLCD.printNumI(mon1, 527+24, 203); } else myGLCD.printNumI(mon1, 527, 203); myGLCD.printNumI(years1, 507, 243); myGLCD.setColor(31,70,126); myGLCD.print("<" ,495, 203); myGLCD.print("<" ,495, 163); //myGLCD.print("<" ,495, 243); myGLCD.print(">" ,590, 203); myGLCD.print(">" ,590, 163); //myGLCD.print(">" ,495, 243); myGLCD.setColor(0,38,92); myGLCD.fillRoundRect(440, 290, 518, 340);//рисуем синий пр-к myGLCD.setColor(255, 255, 255);//цвет обводки myGLCD.drawRoundRect(440, 290, 518, 340);//прямоугольник с обводкой myGLCD.setBackColor(0,38,92); myGLCD.setColor(0,38,92); myGLCD.fillRoundRect(538, 290, 615, 340);//рисуем синий пр-к myGLCD.setColor(255, 255, 255);//цвет обводки myGLCD.drawRoundRect(538, 290, 615, 340);//прямоугольник с обводкой myGLCD.setColor(0,38,92); myGLCD.fillRoundRect(440, 355, 615, 405);//рисуем синий пр-к myGLCD.setColor(255, 255, 255);//цвет обводки myGLCD.drawRoundRect(440, 355, 615, 405);//прямоугольник с обводкой myGLCD.setColor(0,38,92); myGLCD.fillRoundRect(440, 420, 615, 470);//рисуем синий пр-к myGLCD.setColor(255, 255, 255);//цвет обводки myGLCD.drawRoundRect(440, 420, 615, 470);//прямоугольник с обводкой myGLCD.setBackColor(0,38,92); myGLCD.print("RS" ,453, 303); myGLCD.print("OK" ,553, 303); myGLCD.setColor(63, 200, 255);//цвет myGLCD.print("GRAFIK" ,458, 368); myGLCD.setColor(255, 97, 237);//цвет myGLCD.print("QUIT" ,479, 433); myGLCD.setColor(255, 255, 255);//цвет //************************************************************ printmassiv(); myGLCD.setColor(0,38,92); myGLCD.fillRoundRect(645, 155, 797, 367);//рисуем синий пр-к myGLCD.setColor(255, 255, 255);//цвет обводки myGLCD.drawRoundRect(645, 155, 797, 367);//прямоугольник с обводкой info(); wil: while(1) { sec=t.sec; if ((sec==0) ||(sec==15) || (sec==30) || (sec==45)) { // myGLCD.setBackColor(0,0,255); // myGLCD.drawBitmap (769, 339, 30, 30, jar); delay(800); clc(); } //******************************* //if (sec==22) //{printmassiv(); //} //******************************** if ((sec==11) || (sec==42) ) { info(); } if ((sec==53) || (sec==25) ) { info(); } //***************************************************************** 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(); 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)) { 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(255,255,255); days1=days1-1; days1=validateDate(days1, mon1, years1); if(years1==t.year)//проверка на наличае данных {if(mon1>=t.mon) {if(days1>t.date) {myGLCD.setColor(255,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(255,255,255); days1=days1+1; days1=validateDate(days1, mon1, years1); if(years1==t.year)//проверка на наличае данных {if(mon1>=t.mon) {if(days1>t.date) {myGLCD.setColor(255,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)) //кнопка месяц {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)) //кнопка год -+ { 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); myGLCD.setColor(255,255,0); myGLCD.print("RS" ,453, 303); mon1=t.mon; years1=t.year; days1=t.date; 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); if (mon1<10) {myGLCD.print("0" ,527, 203); myGLCD.printNumI(mon1, 527+24, 203); } else myGLCD.printNumI(mon1, 527, 203); myGLCD.printNumI(years1, 507, 243); 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,255,0); myGLCD.print("RS" ,453, 303); printmassiv(); //вывод даты данных myGLCD.setBackColor(0,38,92); myGLCD.setFont( Ubuntubold); myGLCD.setColor(255, 255, 255); if (days1<10) { myGLCD.print(" " ,440-8, 40); myGLCD.printNumI(days1, 440-8+24, 40); } else myGLCD.printNumI(days1, 440-8, 40); myGLCD.print("." ,440+40, 40); if (mon1<10) {myGLCD.print("0" ,440+40+20, 40); myGLCD.printNumI(mon1, 440+40+20+24, 40); } else myGLCD.printNumI(mon1, 440+40+20, 40); myGLCD.print("." ,440+40+17+48, 40); myGLCD.printNumI(years1-2000, 440+40+20+48+20, 40); 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)) { myGLCD.setBackColor(0,38,92); if(daty+datd+datm==3) {myGLCD.setColor(0,255,0); myGLCD.print("OK" ,553, 303); //************************************** if(years1==t.year)//проверка сегодняшней даты данные есть в массиве, но не записаны еще на флешку {if(mon1==t.mon) {if(days1==t.date) { //вывод даты данных myGLCD.setBackColor(0,38,92); myGLCD.setFont( Ubuntubold); myGLCD.setColor(255, 255, 255); if (days1<10) { myGLCD.print(" " ,440-8, 40); myGLCD.printNumI(days1, 440-8+24, 40); } else myGLCD.printNumI(days1, 440-8, 40); myGLCD.print("." ,440+40, 40); if (mon1<10) {myGLCD.print("0" ,440+40+20, 40); myGLCD.printNumI(mon1, 440+40+20+24, 40); } else myGLCD.printNumI(mon1, 440+40+20, 40); myGLCD.print("." ,440+40+17+48, 40); myGLCD.printNumI(years1-2000, 440+40+20+48+20, 40); printmassiv(); } else readmasfail( days1, mon1, years1); } else readmasfail( days1, mon1, years1); } else 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); } } if ((x>=440) && (x<=610)) {if ((y>=360) && (y<=400)) //кнопка GRAFIK { myGLCD.setBackColor(0,38,92); myGLCD.setColor(59, 251, 104);//цвет myGLCD.print("GRAFIK" ,458, 368); delay(500); myGLCD.setColor(63, 200, 255);//цвет myGLCD.print("GRAFIK" ,458, 368); myGLCD.setColor(0,38,92); myGLCD.fillRoundRect(415, 22, 635, 90);//рисуем синий пр-к очистка поля даты myGLCD.setColor(255, 255, 255);//цвет обводки myGLCD.drawRoundRect(415, 22, 635, 90);//прямоугольник с обводкой myGLCD.setColor(255, 255, 255);//цвет colorgraf=0; grafiks(); } if ((y>=420) && (y<=470)) //кнопка QUIT { myGLCD.setBackColor(0,38,92); myGLCD.setColor(255, 100, 100);//цветmyGLCD.setColor(255, 97, 237);//цвет myGLCD.print("QUIT" ,479, 433); delay(500); myGLCD.setColor(255, 97, 237);//цвет myGLCD.print("QUIT" ,479, 433); myGLCD.setColor(255, 255, 255);//цвет graf=0; menu(); } } } }//wile } //**************************massiv****************** void printmassiv()// таблица данных датчиков за день {//myGLCD.printNumI(rtc_clock.get_hours(),cx, cy); //myGLCD.printNumI(rtc_clock.get_minutes() int x=10; myGLCD.setColor(VGA_RED);//заголовок таблицы myGLCD.setBackColor(255,255,255); myGLCD.setFont(BigFont); myGLCD.print("TIME" ,x+5, 10); myGLCD.print("Th C" ,x+5+70, 10); myGLCD.print("H%" ,x+5+75+63, 10); myGLCD.print("Pmm" ,x+5+75+63+38, 10); myGLCD.print("Tu C" ,x+5+75+63+38+53, 10); myGLCD.print("Hu%" ,x+5+75+63+38+53+70, 10); myGLCD.print("S%" ,x+5+75+63+38+53+70+60, 10); myGLCD.setColor(VGA_BLUE); myGLCD.setBackColor(255,255,255); myGLCD.setFont(BigFont); for ( byte index=0; index<24; index++) { myGLCD.print(":" ,x+32-5, 30+index*18); if(time1[index]/100<10) { myGLCD.print("0" ,x, 30+index*18); myGLCD.printNumI(time1[index]/100, x+16, 30+index*18); } else { myGLCD.printNumI(time1[index]/100, x, 30+index*18); } if(time1[index]%100<10) { myGLCD.print("0" ,x+32+5, 30+index*18); myGLCD.printNumI(time1[index]%100, x+32+16+5, 30+index*18); } else { myGLCD.printNumI(time1[index]%100, x+32+5, 30+index*18); } } x=x+75; for ( byte index=0; index<24; index++) { myGLCD.print("+" , x ,30+index*18); myGLCD.print("." ,x+32+5, 30+index*18); myGLCD.printNumI(temdom[index]/10, x+10, 30+index*18); myGLCD.printNumI(temdom[index]%10, x+10+32+5, 30+index*18); } x=x+68; for ( byte index=0; index<24; index++) { myGLCD.printNumI(h[index], x, 30+index*18); } x=x+38; for ( byte index=0; index<24; index++) { myGLCD.printNumI(pres[index], x, 30+index*18); } x=x+53; for ( byte index=0; index<24; index++)//Tu { if (temul[index]<999) { myGLCD.print("+" , x ,30+index*18); myGLCD.print("." ,x+32+5, 30+index*18); if ((temul[index]<100)&&(temul[index]>9)) { myGLCD.print("0" , x+10 ,30+index*18); myGLCD.printNumI(temul[index]/10, x+10+16, 30+index*18); myGLCD.printNumI(temul[index]%10, x+10+32+5, 30+index*18); } if (temul[index]<10) { myGLCD.print("00" , x+10 ,30+index*18); // myGLCD.printNumI(temul[index]/10, x+10+16, 30+index*18); myGLCD.printNumI(temul[index]%10, x+10+32+5, 30+index*18); } if (temul[index]>99) { myGLCD.printNumI(temul[index]/10, x+10, 30+index*18); myGLCD.printNumI(temul[index]%10, x+10+32+5, 30+index*18); } } else { myGLCD.print("-" , x ,30+index*18); myGLCD.print("." ,x+32+5, 30+index*18); //myGLCD.printNumI((temul[index]-1000)/10, x+10, 30+index*18); if ((temul[index]-1000<100)&&(temul[index]-1000>9)) { myGLCD.print("0" , x+10 ,30+index*18); myGLCD.printNumI((temul[index]-1000)/10, x+10+16, 30+index*18); myGLCD.printNumI((temul[index]-1000)%10, x+10+32+5, 30+index*18); } if (temul[index]-1000<10) { myGLCD.print("00" , x+10 ,30+index*18); // myGLCD.printNumI(temul[index]/10, x+10+16, 30+index*18); myGLCD.printNumI((temul[index]-1000)%10, x+10+32+5, 30+index*18); } if (temul[index]-1000>99) { myGLCD.printNumI((temul[index]-1000)/10, x+10, 30+index*18); myGLCD.printNumI((temul[index]-1000)%10, x+10+32+5, 30+index*18); } } } x=x+70; for ( byte index=0; index<24; index++)//Hug { myGLCD.print(" " ,x, 30+index*18); if ((hug[index]>0)&&(hug[index]<1000)) {myGLCD.print("." ,x+32-5, 30+index*18); myGLCD.printNumI(hug[index]/10, x, 30+index*18); myGLCD.printNumI(hug[index]%10, x+32+5, 30+index*18); } else { myGLCD.print("." ,x+32-5, 30+index*18); myGLCD.print("00" ,x, 30+index*18); myGLCD.print("0", x+32+5, 30+index*18); } } //sun x=x+60; for ( byte index=0; index<24; index++)//Hug { myGLCD.print(" " ,x, 30+index*18); if ((sun[index]>0)&&(sun[index]<100)) { if ((sun[index]>0)&&(sun[index]<10)) {myGLCD.print("0" ,x, 30+index*18); myGLCD.printNumI(sun[index], x+16, 30+index*18); //myGLCD.printNumI(hug7[index]%10, x+32+5, 30+index*18); } else { //myGLCD.print("." ,x+32-5, 30+index*18); myGLCD.printNumI(sun[index], x, 30+index*18); // myGLCD.print("0", x+32+5, 30+index*18); } } else { //myGLCD.print("." ,x+32-5, 30+index*18); myGLCD.print("00" ,x, 30+index*18); // myGLCD.print("0", x+32+5, 30+index*18); } } delay (200); } //****************************чтение файла со значениями погоды на зад день Ф.txt и запись данных в массивы ********************************************** void readmasfail(byte d,byte m,word y) { byte reader[35];//23:00 T=+26,8C Pmm=756 H=35% byte time7[24]={23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0}; word temul7[24]={256,254,260,264,265,266,270,268,259,255,250,249,256,254,260,264,265,266,270,268,259,255,250,249}; char* strd[] = {"01.txt","02.txt","03.txt","04.txt","05.txt","06.txt","07.txt","08.txt","09.txt","10.txt","11.txt","12.txt","13.txt","14.txt","15.txt","16.txt","17.txt","18.txt","19.txt","20.txt","21.txt","22.txt","23.txt","24.txt","25.txt","26.txt","27.txt","28.txt","29.txt","30.txt","31.txt"}; 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; //********************************************************************************************************************************* word hug7[24]={756,754,760,764,765,766,770,768,759,755,750,749,756,754,760,764,765,766,770,768,759,755,750,749}; // word temdom7[24]={256,254,260,264,265,266,270,268,259,255,250,249,256,254,260,264,265,266,270,268,259,255,250,249}; byte h7[24]={25,25,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,25,25}; word pres7[24]={756,754,760,764,765,766,770,768,759,755,750,749,756,754,760,764,765,766,770,768,759,755,750,749}; //******************************************************************************** sd.chdir("/"); delay (100); sd.chdir("tempdom");//23:00 T=+28,1C Pmm=755 H=35% delay (100); name= stry[y-2014]; if (!sd.chdir(name))//проверка наличая папки на флешке {sd.chdir("/"); delay (100); return; } delay (100); sd.chdir(name);// заходим в папку год delay (100); name= strm[m-1]; if (!sd.chdir(name))//проверка наличая папки на флешке {sd.chdir("/"); delay (100); return; } delay (100); sd.chdir(name);// заходим в папку месяц delay (100); name= strd[d-1]; //************************************************************************* myFile.open(name, O_READ); for (int n =0 ; n < 24; 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; } } //word time[24]=1000,1100,---- //word temdom[24]=256,254, //word pres[24]=756,754, // time7[n]=reader[0]*1000+reader[1]*100+reader[3]*10+reader[4]; temul7[n]=reader[9]*100+reader[10]*10+reader[12]; pres7[n]=reader[19]*100+reader[20]*10+reader[21]; h7[n]=reader[25]*10+reader[26]; //time7[n]=reader[0]*10+reader[1]; byte b= myFile.read()-48;//возврат коретки 2 байта b= myFile.read()-48; } myFile.close(); //******************************************вывод рез в табл************************************************************************************** myGLCD.setColor(VGA_RED);//заголовок таблицы myGLCD.setBackColor(255,255,255); myGLCD.setFont(BigFont); int x=10; myGLCD.print("TIME" ,x+5, 10); myGLCD.print("Th C" ,x+5+70, 10); myGLCD.print("H%" ,x+5+75+63, 10); myGLCD.print("Pmm" ,x+5+75+63+38, 10); myGLCD.print("Tu C" ,x+5+75+63+38+53, 10); myGLCD.print("Hu%" ,x+5+75+63+38+53+70, 10); myGLCD.print("S%" ,x+5+75+63+38+53+70+60, 10); myGLCD.setColor(VGA_BLUE); myGLCD.setBackColor(255,255,255); myGLCD.setFont(BigFont); x=x+75; for ( byte index=0; index<24; index++) { myGLCD.print("+" , x ,30+index*18); myGLCD.print("." ,x+32+5, 30+index*18); myGLCD.printNumI(temul7[index]/10, x+10, 30+index*18); myGLCD.printNumI(temul7[index]%10, x+10+32+5, 30+index*18); } x=x+63+5; for ( byte index=0; index<24; index++) { myGLCD.printNumI(h7[index], x, 30+index*18); } x=x+38; for ( byte index=0; index<24; index++) { myGLCD.printNumI(pres7[index], x, 30+index*18); } x=x+53; //******************************************************************************************************************************* sd.chdir("/"); delay (100); sd.chdir("tempul");//23:00 T=+27,8C Hu=33,2% delay (100); name= stry[y-2014]; if (!sd.chdir(name))//проверка наличая папки на флешке {sd.chdir("/"); delay (100); return; } delay (100); sd.chdir(name);// заходим в папку год delay (100); name= strm[m-1]; if (!sd.chdir(name))//проверка наличая папки на флешке {sd.chdir("/"); delay (100); return; } delay (100); sd.chdir(name);// заходим в папку месяц delay (100); name= strd[d-1]; // byte reader[24];//23:00 T=+26,8C Pmm=756 H=35% //************************************************************************* myFile.open(name, O_READ); for (int n =0 ; n < 24; n = n++)// колво строк в файле { for (int i =0 ; i < 23; i = i++) // колво байт в строке { byte b= myFile.read(); if (b<48) {reader[i]=b; } else { b=b-48;//получение цифры из байта reader[i]=b; } //word time[24]=1000,1100,---- //word temdom[24]=256,254, //word pres[24]=756,754, } //temdom7[n]=reader[9]*100+reader[10]*10+reader[12]; //pres7[n]=reader[19]*100+reader[20]*10+reader[21]; //h7[n]=reader[25]*10+reader[26]; time7[n]=reader[0]*10+reader[1]; hug7[n]=reader[18]*100+reader[19]*10+reader[21]; if (reader[8]==45) {temul7[n]=reader[9]*100+reader[10]*10+reader[12]+1000;//- к отр темп прибавляем 1000 } else { temul7[n]=reader[9]*100+reader[10]*10+reader[12];// полож темп записуем как есть } byte b= myFile.read()-48;//возврат коретки 2 байта b= myFile.read()-48; } myFile.close(); delay (100); sd.chdir("/"); delay (100); //******************************************* //вывод массивов в таблицу на печать //************************************************ for ( byte index=0; index<24; index++)//Tu { if (temul7[index]<999) { myGLCD.print("+" , x ,30+index*18); myGLCD.print("." ,x+32+5, 30+index*18); if ((temul7[index]<100)&&(temul7[index]>9)) { myGLCD.print("0" , x+10 ,30+index*18); myGLCD.printNumI(temul7[index]/10, x+10+16, 30+index*18); myGLCD.printNumI(temul7[index]%10, x+10+32+5, 30+index*18); } if (temul7[index]<10) { myGLCD.print("00" , x+10 ,30+index*18); // myGLCD.printNumI(temul[index]/10, x+10+16, 30+index*18); myGLCD.printNumI(temul7[index]%10, x+10+32+5, 30+index*18); } if (temul7[index]>99) { myGLCD.printNumI(temul7[index]/10, x+10, 30+index*18); myGLCD.printNumI(temul7[index]%10, x+10+32+5, 30+index*18); } } else { myGLCD.print("-" , x ,30+index*18); myGLCD.print("." ,x+32+5, 30+index*18); //myGLCD.printNumI((temul[index]-1000)/10, x+10, 30+index*18); if ((temul7[index]-1000<100)&&(temul7[index]-1000>9)) { myGLCD.print("0" , x+10 ,30+index*18); myGLCD.printNumI((temul7[index]-1000)/10, x+10+16, 30+index*18); myGLCD.printNumI((temul7[index]-1000)%10, x+10+32+5, 30+index*18); } if (temul7[index]-1000<10) { myGLCD.print("00" , x+10 ,30+index*18); // myGLCD.printNumI(temul[index]/10, x+10+16, 30+index*18); myGLCD.printNumI((temul7[index]-1000)%10, x+10+32+5, 30+index*18); } if (temul7[index]-1000>99) { myGLCD.printNumI((temul7[index]-1000)/10, x+10, 30+index*18); myGLCD.printNumI((temul7[index]-1000)%10, x+10+32+5, 30+index*18); } } } x=x+70; for ( byte index=0; index<24; index++)//Hug { myGLCD.print(" " ,x, 30+index*18); if ((hug7[index]>0)&&(hug7[index]<1000)) {myGLCD.print("." ,x+32-5, 30+index*18); myGLCD.printNumI(hug7[index]/10, x, 30+index*18); myGLCD.printNumI(hug7[index]%10, x+32+5, 30+index*18); } else { myGLCD.print("." ,x+32-5, 30+index*18); myGLCD.print("00" ,x, 30+index*18); myGLCD.print("0", x+32+5, 30+index*18); } } //**************** ****************** ********************* ********************* ********************* sd.chdir("/"); delay (100); sd.chdir("sun");//23:00 T=+27,8C Hu=33,2% delay (100); name= stry[y-2014]; if (!sd.chdir(name))//проверка наличая папки на флешке {sd.chdir("/"); delay (100); goto vr; } delay (100); sd.chdir(name);// заходим в папку год delay (100); name= strm[m-1]; if (!sd.chdir(name))//проверка наличая папки на флешке {sd.chdir("/"); delay (100); goto vr; } delay (100); sd.chdir(name);// заходим в папку месяц delay (100); name= strd[d-1]; // byte reader[24];//23:00 T=+26,8C Pmm=756 H=35% //************************************************************************* myFile.open(name, O_READ); for (int n =0 ; n < 24; n = n++)// колво строк в файле { for (int i =0 ; i < 11; i = i++) // колво байт в строке { byte b= myFile.read(); if (b<48) {reader[i]=b; } else { b=b-48;//получение цифры из байта reader[i]=b; } } hug7[n]=reader[8]*10+reader[9]; byte b= myFile.read()-48;//возврат коретки 2 байта b= myFile.read()-48; } myFile.close(); delay (100); sd.chdir("/"); delay (100); //******************************************* x=x+60; for ( byte index=0; index<24; index++)//Hug { myGLCD.print(" " ,x, 30+index*18); if ((hug7[index]>0)&&(hug7[index]<100)) {//myGLCD.print("." ,x+32-5, 30+index*18); myGLCD.printNumI(hug7[index], x, 30+index*18); //myGLCD.printNumI(hug7[index]%10, x+32+5, 30+index*18); } else { //myGLCD.print("." ,x+32-5, 30+index*18); myGLCD.print("00" ,x, 30+index*18); // myGLCD.print("0", x+32+5, 30+index*18); } } //******************************************************************************************** vr: x=10;//повт печать времени for ( byte index=0; index<24; index++) { myGLCD.print(":" ,x+32-5, 30+index*18); if(time7[index]<10) { myGLCD.print("0" ,x, 30+index*18); myGLCD.printNumI(time7[index], x+16, 30+index*18); } else { myGLCD.printNumI(time7[index], x, 30+index*18); } myGLCD.print("00" ,x+32+5, 30+index*18); } //вывод даты данных myGLCD.setBackColor(0,38,92); myGLCD.setFont( Ubuntubold); myGLCD.setColor(255, 255, 255); if (d<10) { myGLCD.print(" " ,440-8, 40); myGLCD.printNumI(d, 440-8+24, 40); } else myGLCD.printNumI(d, 440-8, 40); myGLCD.print("." ,440+40, 40); if (m<10) {myGLCD.print("0" ,440+40+20, 40); myGLCD.printNumI(m, 440+40+20+24, 40); } else myGLCD.printNumI(m, 440+40+20, 40); myGLCD.print("." ,440+40+17+48, 40); myGLCD.printNumI(y-2000, 440+40+20+48+20, 40); } void tminmaxprint() { myGLCD.setBackColor(255,255,255); myGLCD.setColor(255, 0, 0); myGLCD.setFont(BigFont); byte hh; byte mm; byte d; byte m; word y; d=time1[24]/1000; m=(time1[24]%1000)/10; y=((time1[24]%1000)%10)*10; hh=time1[25]/1000; mm=(time1[25]%1000)/10; y=y+((time1[25]%1000)%10); int px=430; byte py=90; myGLCD.print("Tmax=+" ,px, py); myGLCD.printNumI(temul[24]/10, px+16*6, py); myGLCD.print("," ,px+16*8, py); myGLCD.printNumI(temul[24]%10, px+16*9, py); myGLCD.print("C " ,px+16*10, py); //*************min *********************************************** myGLCD.setColor(55, 55, 255); myGLCD.setBackColor(255,255,255); d=time1[26]/1000; m=(time1[26]%1000)/10; y=((time1[26]%1000)%10)*10; hh=time1[27]/1000; mm=(time1[27]%1000)/10; y=y+((time1[27]%1000)%10); // int Tm; int Tm; int Tm1; py=90+16; px=430; if (temul[25]>1000) { Tm=temul[25]-1000; if(Tm<100) {myGLCD.print("Tmin= -" ,px, py); } else { myGLCD.print("Tmin=-" ,px, py); } } else { Tm=temul[25]; if(Tm<100) {myGLCD.print("Tmin= +" ,px, py); } else { myGLCD.print("Tmin=+" ,px, py); } } if(Tm<100) { // myGLCD.print(" " ,px+16*6, py); myGLCD.printNumI(Tm/10, px+16*7, py); myGLCD.print("," ,px+16*8, py); myGLCD.printNumI(Tm%10, px+16*9, py); myGLCD.print("C " ,px+16*10, py); } else { myGLCD.printNumI(Tm/10, px+16*6, py); myGLCD.print("," ,px+16*8, py); myGLCD.printNumI(Tm%10, px+16*9, py); myGLCD.print("C " ,px+16*10, py); } myGLCD.setFont( Ubuntubold); //************************************** myGLCD.setFont( Ubuntubold); }