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.
587 lines
13 KiB
587 lines
13 KiB
void win()
|
|
{
|
|
char* S1[]={"utleto.raw","dleto.raw","veleto.raw","letorain.raw","utroos.raw","dosen.raw","veosen.raw","osenrain.raw","utyzim.raw","dzima.raw","vzima.raw","utyzimsn.raw","dzima2.raw","new.raw","dvesna.raw","vevesna.raw","vesnarun.raw","dvesnar.raw","dvesnaun.raw","rain.raw"};//19
|
|
byte bait;
|
|
byte bait1;
|
|
byte q=0;
|
|
|
|
mon1=t.mon;
|
|
hour1=t.hour;
|
|
days1=t.date;
|
|
if ((mon1==12) || (mon1==1) || (mon1==2))//zima
|
|
{
|
|
|
|
if (hour1<10)
|
|
{q=8;
|
|
}
|
|
if ((hour1>9)&&(hour1<17))
|
|
{q=9;
|
|
}
|
|
if ((hour1>18)&&(hour1<24))
|
|
{q=10;
|
|
if ((mon1==12)&&(days1>25))
|
|
q=13;
|
|
if ((mon1==1)&&(days1<8))
|
|
q=13;
|
|
|
|
}
|
|
}
|
|
|
|
if (mon1==3)//mart
|
|
{
|
|
|
|
if (hour1<9)
|
|
{q=8;
|
|
}
|
|
if ((hour1>8)&&(hour1<15))
|
|
{q=17;
|
|
}
|
|
if ((hour1>14)&&(hour1<19))
|
|
{q=18;
|
|
}
|
|
|
|
if ((hour1>18)&&(hour1<24))
|
|
{q=16;
|
|
}
|
|
}
|
|
|
|
|
|
if ((mon1==4) || (mon1==5))
|
|
{
|
|
|
|
if (hour1<9)
|
|
{q=4;
|
|
}
|
|
if ((hour1>8)&&(hour1<19))
|
|
{q=14;
|
|
}
|
|
if ((hour1>18)&&(hour1<24))
|
|
{q=15;
|
|
if (hu>96) {q=19;}
|
|
}
|
|
}
|
|
|
|
|
|
if ((mon1==6) || (mon1==7) || (mon1==8))//leto
|
|
{
|
|
|
|
if (hour1<8)
|
|
{q=0;
|
|
}
|
|
if ((hour1>7)&&(hour1<20))
|
|
{q=1;
|
|
if (hu>90) {q=3;}
|
|
}
|
|
if ((hour1>19)&&(hour1<24))
|
|
{q=2;
|
|
if (hu>96) {q=19;}
|
|
}
|
|
}
|
|
|
|
|
|
if ((mon1==9) || (mon1==10) || (mon1==11))//leto
|
|
{
|
|
|
|
if (hour1<8)
|
|
{q=4;
|
|
}
|
|
if ((hour1>7)&&(hour1<20))
|
|
{q=5;
|
|
if (hu>90) {q=7;}
|
|
}
|
|
if ((hour1>19)&&(hour1<24))
|
|
{q=6;
|
|
if ((hu>96)&&(tu>10)) {q=19;}
|
|
}
|
|
}
|
|
//pressure hu tu
|
|
|
|
|
|
|
|
sd.chdir("/");//установка раб директории
|
|
delay (50);
|
|
sd.chdir("win");//установка раб директории
|
|
delay (50);
|
|
|
|
//myFiles.loadBitmap(0, 0, 640, 480, S1[q]);
|
|
|
|
|
|
//myFiles.loadBitmap(0, 0, 800, 480, "33a.raw");
|
|
myFile.open(S1[q], O_READ);
|
|
|
|
int n=0;
|
|
int m1=0;
|
|
int w;
|
|
for (int i =0 ; i < 307200; i = i++)
|
|
{
|
|
n=n+1;
|
|
bait = myFile.read();
|
|
|
|
bait1 =myFile.read();
|
|
|
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
|
w= bait<<8|bait1;
|
|
|
|
pic1[n]=w;
|
|
//3199
|
|
if (n>639){
|
|
n=0;
|
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
|
// myGLCD.drawBitmap (0, 2*m, 320, 1, pic1, 2);
|
|
myGLCD.drawBitmap (0, m1, 640, 1, pic1, 1);
|
|
m1=m1+1;
|
|
}
|
|
}
|
|
|
|
myFile.close();
|
|
|
|
|
|
sd.chdir("/");//установка раб директории
|
|
delay (50);
|
|
|
|
myGLCD.setFont( SevenSegNumFont);
|
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
|
|
|
if (pressure>759)
|
|
myGLCD.setColor(255,50,50);
|
|
|
|
if (pressure<746)
|
|
myGLCD.setColor(0,0,255);
|
|
|
|
if ((pressure>745)&&(pressure<760))
|
|
myGLCD.setColor(7,120,34);
|
|
|
|
myGLCD.printNumI(pressure,183-24,30+13);// myGLCD.print(":",cx+32+32, cy);
|
|
// myGLCD.setColor(0,0,255);
|
|
myGLCD.setFont( Ubuntubold);
|
|
|
|
|
|
// myGLCD.print("mm",183-24+22, 30+16+20+24);
|
|
|
|
if (pres[0]>pres[1])
|
|
myGLCD.print("*",183-24+35,30+13-30);
|
|
|
|
if (pres[0]<pres[1])
|
|
myGLCD.print("*",183-24+35, 30+16+20+26);
|
|
|
|
// myGLCD.setFont( BigFont);
|
|
|
|
if (pres[1]>759)
|
|
myGLCD.setColor(255,200,200);
|
|
|
|
if (pres[1]<746)
|
|
myGLCD.setColor(200,200,255);
|
|
|
|
if ((pres[1]>745)&&(pres[1]<760))
|
|
myGLCD.setColor(200,255,200);
|
|
|
|
myGLCD.printNumI(pres[1],183-24+2-8+24,30+16+20+64);
|
|
|
|
if (pres[2]>759)
|
|
myGLCD.setColor(255,200,200);
|
|
|
|
if (pres[2]<746)
|
|
myGLCD.setColor(200,200,255);
|
|
|
|
if ((pres[2]>745)&&(pres[2]<760))
|
|
myGLCD.setColor(200,255,200);
|
|
|
|
|
|
myGLCD.printNumI(pres[2],183-24+2-8+24,30+16+20+100);
|
|
|
|
myGLCD.setFont( Ubuntubold);
|
|
|
|
|
|
|
|
//*********TEMPUL**************************************
|
|
// myGLCD.setColor(255,142,21);
|
|
|
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
|
if (zn<2)
|
|
{myGLCD.setColor(0,0,255);//обводка
|
|
myGLCD.print("-",21-2, 235+15-2);
|
|
myGLCD.print("-",21+2, 235+15+2);
|
|
myGLCD.print("-",21-2, 235+15+2);
|
|
myGLCD.print("-",21+2, 235+15-2);
|
|
}
|
|
else
|
|
{ myGLCD.setColor(VGA_RED);
|
|
myGLCD.print("+",21-2, 235+15-2);
|
|
myGLCD.print("+",21+2, 235+15+2);
|
|
myGLCD.print("+",21-2, 235+15+2);
|
|
myGLCD.print("+",21+2, 235+15-2);
|
|
}
|
|
myGLCD.setColor(VGA_RED);
|
|
//myGLCD.print(",",0+88-2, 235+24-2);
|
|
// myGLCD.print(",",0+88+2, 235+24+2);
|
|
myGLCD.print("C",16+88+28-2, 227-2);
|
|
myGLCD.print("C",16+88+28+2, 227+2);
|
|
|
|
|
|
//*********TEMPUL**************************************
|
|
// myGLCD.setColor(255,142,21);
|
|
myGLCD.setColor(VGA_WHITE);
|
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
|
if (zn<2)
|
|
{myGLCD.print("-",21, 235+15);
|
|
}
|
|
else
|
|
{myGLCD.print("+",21, 235+15);
|
|
}
|
|
|
|
|
|
|
|
|
|
if (tu<10)
|
|
{ myGLCD.setFont( SevenSegNumFont);
|
|
myGLCD.printNumI(tu,16+24+32-20,235);// myGLCD.print(":",cx+32+32, cy);
|
|
myGLCD.setFont( Ubuntubold);
|
|
myGLCD.print(",",16+78-20, 235+24);
|
|
myGLCD.print("C",16+88+28, 227);
|
|
myGLCD.printNumI(tud,16+88+10-20,235+50-30);
|
|
}
|
|
else
|
|
{ myGLCD.setFont( SevenSegNumFont);
|
|
myGLCD.printNumI(tu,16+24,235);
|
|
myGLCD.setFont( Ubuntubold);
|
|
myGLCD.print(",",16+78, 235+24);
|
|
myGLCD.print("C",16+88+28, 227);
|
|
myGLCD.printNumI(tud,16+88+10,235+50-30);
|
|
|
|
}
|
|
//***********************************************************
|
|
int Tm;
|
|
int Tm1;
|
|
if (zn<2)
|
|
{Tm1=-1*tu;
|
|
}
|
|
else
|
|
{Tm1=tu;
|
|
}
|
|
|
|
|
|
if (temul[1]>1000)
|
|
{ Tm=-1*(temul[1]-1000);
|
|
|
|
}
|
|
else
|
|
{
|
|
Tm=temul[1];
|
|
}
|
|
myGLCD.setFont( Ubuntubold);
|
|
if (Tm/10>Tm1)
|
|
myGLCD.print("*",24+32+35-18,235+58);
|
|
|
|
if (Tm/10<Tm1)
|
|
myGLCD.print("*",24+32+35-18,235-27);
|
|
|
|
|
|
//myGLCD.setColor(VGA_WHITE);
|
|
myGLCD.setColor(255,200,200);
|
|
myGLCD.setFont( Ubuntubold);
|
|
if (temul[0]>=1000)
|
|
{ Tm=temul[0]-1000;
|
|
myGLCD.setColor(150,200,255);
|
|
myGLCD.print("-" ,100-24, 235+90+12);
|
|
}
|
|
else
|
|
{ myGLCD.print("+" ,100-24, 235+90+12);
|
|
Tm=temul[0];
|
|
myGLCD.setColor(255,200,200);
|
|
}
|
|
if (temul[0]<100)
|
|
{ myGLCD.print("," ,100+24-8, 235+90+12);
|
|
myGLCD.printNumI(Tm/10,100,235+90+12);
|
|
|
|
myGLCD.printNumI(Tm%10,100+48-15,235+90+12);
|
|
}
|
|
else
|
|
{ myGLCD.print("," ,100+48-8, 235+90+12);
|
|
myGLCD.printNumI(Tm/10,100,235+90+12);
|
|
|
|
myGLCD.printNumI (Tm%10,100+48+24-15,235+90+12);
|
|
}
|
|
|
|
|
|
|
|
if (temul[1]>=1000)
|
|
{ Tm=temul[1]-1000;
|
|
myGLCD.print("-" ,30, 235+60+80+12);
|
|
}
|
|
else
|
|
{ myGLCD.print("+" ,30, 235+60+80+12);
|
|
Tm=temul[1];
|
|
}
|
|
if (temul[1]<100)
|
|
{ myGLCD.print("," ,30+24+24-8, 235+60+80+12);
|
|
myGLCD.printNumI(Tm/10,30+24,235+60+80+12);
|
|
|
|
myGLCD.printNumI(Tm%10,30+24+48,235+60+80+12);
|
|
}
|
|
else
|
|
{ myGLCD.print("," ,30+24+48-8, 235+60+80+12);
|
|
myGLCD.printNumI(Tm/10,30+24,235+60+80+12);
|
|
|
|
myGLCD.printNumI (Tm%10,30+24+48+24-15,235+60+80+12);
|
|
}
|
|
|
|
|
|
//*********HUG**************************************
|
|
myGLCD.setColor(129,239,255);
|
|
|
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
|
myGLCD.setFont( Ubuntubold);
|
|
|
|
myGLCD.print("%",255+88, 235+24);
|
|
myGLCD.setFont( SevenSegNumFont);
|
|
myGLCD.printNumI(hu,255+24,235);
|
|
//myGLCD.printNumI(hud,255+88+20,240);
|
|
myGLCD.setFont( Ubuntubold);
|
|
|
|
if (hug[0]/10>hug[1]/10)
|
|
myGLCD.print("*",255+24+24,235-27);
|
|
|
|
if (hug[0]/10<hug[1]/10)
|
|
myGLCD.print("*",255+24+24,235+53);
|
|
|
|
|
|
myGLCD.setColor(200,200,255);
|
|
myGLCD.printNumI(hug[1]/10,255+24+44,235+90+12);
|
|
myGLCD.print("%",255+24+44+48, 235+90+12);
|
|
|
|
myGLCD.printNumI(hug[2]/10,245,235+60+80+12);
|
|
myGLCD.print("%",245+48, 235+60+80+12);
|
|
|
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
|
|
|
|
|
|
|
//*********************min max************************************************
|
|
// myGLCD.setBackColor(8,101,192);
|
|
myGLCD.setColor(255, 55, 55);
|
|
myGLCD.setFont(BigFont);
|
|
int px=25;
|
|
int py=437;
|
|
byte hh;
|
|
byte mm;
|
|
byte d;
|
|
byte m;
|
|
word y;
|
|
//*************max****************************************
|
|
if (temul[24]>600)
|
|
{readmax();
|
|
}
|
|
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);
|
|
myGLCD.setBackColor(255,255,255);
|
|
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);
|
|
|
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
|
myGLCD.print(":" ,px-4+16*2, py+16);
|
|
if(hh<10)
|
|
{ myGLCD.print("0" ,px, py+16);
|
|
myGLCD.printNumI(hh, px+16, py+16);
|
|
}
|
|
else
|
|
{myGLCD.printNumI(hh, px, py+16);
|
|
}
|
|
//myGLCD.print(":" ,px+16*2, py+16);
|
|
|
|
if(mm<10)
|
|
{ myGLCD.print("0" ,px+16*3-8, py+16);
|
|
myGLCD.printNumI(mm, px+16*4-8, py+16);
|
|
}
|
|
else
|
|
{myGLCD.printNumI(mm, px+16*3-8, py+16);
|
|
}
|
|
// myGLCD.print(" " ,px+16*5, py+16);
|
|
myGLCD.print("." ,px+16*7-4, py+16);
|
|
if(d<10)
|
|
{ myGLCD.print("0" ,px+16*5, py+16);
|
|
myGLCD.printNumI(d, px+16*6, py+16);
|
|
}
|
|
else
|
|
{myGLCD.printNumI(d, px+16*5, py+16);
|
|
}
|
|
|
|
myGLCD.print("." ,px+16*10-10, py+16);
|
|
if(m<10)
|
|
{ myGLCD.print("0" ,px+16*8-6, py+16);
|
|
myGLCD.printNumI(m, px+16*9-6, py+16);
|
|
}
|
|
else
|
|
{myGLCD.printNumI(m, px+16*8-6, py+16);
|
|
}
|
|
// myGLCD.print("." ,px+16*11-12, py+16);
|
|
|
|
myGLCD.printNumI(y, px+16*11-14, py+16);
|
|
|
|
//*************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;
|
|
|
|
py=437;
|
|
px=240;
|
|
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.setBackColor( VGA_TRANSPARENT);
|
|
myGLCD.print(":" ,px-4+16*2, py+16);
|
|
if(hh<10)
|
|
{ myGLCD.print("0" ,px, py+16);
|
|
myGLCD.printNumI(hh, px+16, py+16);
|
|
}
|
|
else
|
|
{myGLCD.printNumI(hh, px, py+16);
|
|
}
|
|
// myGLCD.print(":" ,px+16*2, py+16);
|
|
|
|
if(mm<10)
|
|
{ myGLCD.print("0" ,px+16*3-8, py+16);
|
|
myGLCD.printNumI(mm, px+16*4-8, py+16);
|
|
}
|
|
else
|
|
{myGLCD.printNumI(mm, px+16*3-8, py+16);
|
|
}
|
|
// myGLCD.print(" " ,px+16*5, py+16);
|
|
myGLCD.print("." ,px+16*7-4, py+16);
|
|
if(d<10)
|
|
{ myGLCD.print("0" ,px+16*5, py+16);
|
|
myGLCD.printNumI(d, px+16*6, py+16);
|
|
}
|
|
else
|
|
{myGLCD.printNumI(d, px+16*5, py+16);
|
|
}
|
|
|
|
myGLCD.print("." ,px+16*10-10, py+16);
|
|
|
|
if(m<10)
|
|
{ myGLCD.print("0" ,px+16*8-6, py+16);
|
|
myGLCD.printNumI(m, px+16*9-6, py+16);
|
|
}
|
|
else
|
|
{myGLCD.printNumI(m, px+16*8-6, py+16);
|
|
}
|
|
|
|
myGLCD.printNumI(y, px+16*11-14, py+16);
|
|
|
|
if(bt==0)
|
|
{ int xb=510;//390
|
|
barometr(xb);
|
|
bt=1;
|
|
}
|
|
else
|
|
{int xtd=510;//512;
|
|
termdom(xtd);
|
|
bt=0;
|
|
}
|
|
|
|
|
|
|
|
myGLCD.setColor(255, 255, 255);
|
|
myGLCD.setFont( Ubuntubold);
|
|
|
|
}
|
|
|
|
//***************************************************************************
|
|
//****************************************************************************
|
|
void readmax()
|
|
{
|
|
byte reader[47];//23:00 T=+25,8C Pmm=756 H=25% Tu=+25,6C Hu=75,6%
|
|
sd.chdir("/");
|
|
delay (100);
|
|
myFile.open("rab.txt", O_READ);
|
|
|
|
// пропускаем ненужные данные в файле rab.txt
|
|
for (int n =0 ; n < 24; n = n++)// колво строк в файле
|
|
{
|
|
for (int i =0 ; i < 47; i = i++) // колво байт в строку
|
|
{ byte b= myFile.read();
|
|
}
|
|
byte b= myFile.read()-48;//возврат коретки 2 байта
|
|
b= myFile.read()-48;
|
|
}
|
|
//**************************************************************
|
|
|
|
//читаем время и температуру максимальную с карты памяти в массив
|
|
for (int n =0 ; n < 3; n = n+2)// колво строк в файле
|
|
{
|
|
for (int i =0 ; i < 26; i = i++) // колво байт в строку
|
|
{ byte b= myFile.read();
|
|
if (b<48)
|
|
{reader[i]=b;
|
|
}
|
|
else
|
|
{ b=b-48;//получение цифры из байта
|
|
|
|
reader[i]=b;
|
|
}
|
|
|
|
}
|
|
time1[n+24]=reader[0]*10000+reader[1]*1000+reader[3]*100+reader[4]*10+reader[6];//max 16.08. 1 16081
|
|
time1[n+1+24]=reader[9]*10000+reader[10]*1000+reader[12]*100+reader[13]*10+reader[7];//12:00 4 12004
|
|
|
|
if (reader[20]==45)
|
|
{temul[24+n/2]=reader[21]*100+reader[22]*10+reader[24]+1000;
|
|
}
|
|
else
|
|
{temul[24+n/2]=reader[21]*100+reader[22]*10+reader[24];
|
|
}
|
|
|
|
|
|
|
|
|
|
byte b= myFile.read()-48;//возврат коретки 2 байта
|
|
b= myFile.read()-48;
|
|
|
|
myFile.close();
|
|
}
|
|
}
|
|
|