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/_719/win.ino

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