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/grafikm.ino

1444 lines
37 KiB

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);
}
}