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

529 lines
11 KiB

void drawDisplay()
{
//t = rtc.getTime();
// t.hour=rtc_clock.get_hours();
// t.min=rtc_clock.get_minutes()
// sec=t.sec;
t = rtc.getTime();
min1= t.min;
hour1=t.hour;
drawSec(t.sec);
oldsec=t.sec;
if (t.sec==0)
{
if(( t.hour>5)&&( t.hour<7)&&(t.min>29))
{night=0;
savefld();//запись новой даты в файлы полива цветов
}
else
{night=1;
}
drawMin(t.min);
drawHour(t.hour, t.min);
myGLCD.setColor(255, 255, 255);
myGLCD.setBackColor(0, 0, 0);
myGLCD.setFont( SevenSegNumFont);
// myGLCD.print(rtc_clock.get_hours(), clockCenterX+92+111+32, clockCenterY-8-20);
if (night==1)
{ myGLCD.setColor(192, 192, 255);
}
else
{ myGLCD.setColor(255,255, 255);
}
if (t.hour<10)
{
myGLCD.printNumI(0,clockCenterX+340, clockCenterY-8-20);
myGLCD.printNumI(t.hour, clockCenterX+340+32, clockCenterY-8-20);
}
else
{
myGLCD.printNumI(t.hour,clockCenterX+340, clockCenterY-8-20);
}
if (t.min<10)
{
myGLCD.printNumI(0,clockCenterX+340+96, clockCenterY-8-20);
myGLCD.printNumI(t.min, clockCenterX+340+128, clockCenterY-8-20);
}
else
{
myGLCD.printNumI(t.min, clockCenterX+340+96, clockCenterY-8-20);
}
}
if (q==1)
{ drawMin(t.min);
drawHour(t.hour, t.min);
printDate();
}
if( (hour1==0) && (min1==0))
{
printDate();
}
}
//****************************************************************************
void drawMark(int h)
{
float x1, y1, x2, y2;
h=h*30;
h=h+270;
x1=2*110*cos(h*0.0175);
y1=2*110*sin(h*0.0175);
x2=2*100*cos(h*0.0175);
y2=2*100*sin(h*0.0175);
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x2+clockCenterX, y2+clockCenterY);
}
void drawSec(int s)
{
float x1, y1, x2, y2;
int ps = s-1;
myGLCD.setColor(0, 0, 0);
if (ps==-1)
ps=59;
ps=ps*6;
ps=ps+270;
x1=2*95*cos(ps*0.0175);
y1=2*95*sin(ps*0.0175);
x2=2*80*cos(ps*0.0175);
y2=2*80*sin(ps*0.0175);
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x2+clockCenterX, y2+clockCenterY);
myGLCD.setColor(255,255,255);
s=s*6;
s=s+270;
x1=2*95*cos(s*0.0175);
y1=2*95*sin(s*0.0175);
x2=2*80*cos(s*0.0175);
y2=2*80*sin(s*0.0175);
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x2+clockCenterX, y2+clockCenterY);
}
void drawMin(int m)
{
float x1, y1, x2, y2, x3, y3, x4, y4;
int pm = m-1;
myGLCD.setColor(0, 0, 0);
if (pm==-1)
pm=59;
pm=pm*6;
pm=pm+270;
x1=2*80*cos(pm*0.0175);
y1=2*80*sin(pm*0.0175);
x2=2*5*cos(pm*0.0175);
y2=2*5*sin(pm*0.0175);
x3=2*30*cos((pm+4)*0.0175);
y3=2*30*sin((pm+4)*0.0175);
x4=2*30*cos((pm-4)*0.0175);
y4=2*30*sin((pm-4)*0.0175);
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x3+clockCenterX, y3+clockCenterY);
myGLCD.drawLine(x3+clockCenterX, y3+clockCenterY, x2+clockCenterX, y2+clockCenterY);
myGLCD.drawLine(x2+clockCenterX, y2+clockCenterY, x4+clockCenterX, y4+clockCenterY);
myGLCD.drawLine(x4+clockCenterX, y4+clockCenterY, x1+clockCenterX, y1+clockCenterY);
myGLCD.setColor(0, 255, 0);
m=m*6;
m=m+270;
x1=2*80*cos(m*0.0175);
y1=2*80*sin(m*0.0175);
x2=2*5*cos(m*0.0175);
y2=2*5*sin(m*0.0175);
x3=2*30*cos((m+4)*0.0175);
y3=2*30*sin((m+4)*0.0175);
x4=2*30*cos((m-4)*0.0175);
y4=2*30*sin((m-4)*0.0175);
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x3+clockCenterX, y3+clockCenterY);
myGLCD.drawLine(x3+clockCenterX, y3+clockCenterY, x2+clockCenterX, y2+clockCenterY);
myGLCD.drawLine(x2+clockCenterX, y2+clockCenterY, x4+clockCenterX, y4+clockCenterY);
myGLCD.drawLine(x4+clockCenterX, y4+clockCenterY, x1+clockCenterX, y1+clockCenterY);
}
void drawHour(int h, int m)
{
float x1, y1, x2, y2, x3, y3, x4, y4;
int ph = h;
myGLCD.setColor(0, 0, 0);
if (m==0)
{
ph=((ph-1)*30)+((m+59)/2);
}
else
{
ph=(ph*30)+((m-1)/2);
}
ph=ph+270;
x1=2*60*cos(ph*0.0175);
y1=2*60*sin(ph*0.0175);
x2=2*5*cos(ph*0.0175);
y2=2*5*sin(ph*0.0175);
x3=2*20*cos((ph+5)*0.0175);
y3=2*20*sin((ph+5)*0.0175);
x4=2*20*cos((ph-5)*0.0175);
y4=2*20*sin((ph-5)*0.0175);
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x3+clockCenterX, y3+clockCenterY);
myGLCD.drawLine(x3+clockCenterX, y3+clockCenterY, x2+clockCenterX, y2+clockCenterY);
myGLCD.drawLine(x2+clockCenterX, y2+clockCenterY, x4+clockCenterX, y4+clockCenterY);
myGLCD.drawLine(x4+clockCenterX, y4+clockCenterY, x1+clockCenterX, y1+clockCenterY);
myGLCD.setColor(255, 255, 0);
h=(h*30)+(m/2);
h=h+270;
x1=2*60*cos(h*0.0175);
y1=2*60*sin(h*0.0175);
x2=2*5*cos(h*0.0175);
y2=2*5*sin(h*0.0175);
x3=2*20*cos((h+5)*0.0175);
y3=2*20*sin((h+5)*0.0175);
x4=2*20*cos((h-5)*0.0175);
y4=2*20*sin((h-5)*0.0175);
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x3+clockCenterX, y3+clockCenterY);
myGLCD.drawLine(x3+clockCenterX, y3+clockCenterY, x2+clockCenterX, y2+clockCenterY);
myGLCD.drawLine(x2+clockCenterX, y2+clockCenterY, x4+clockCenterX, y4+clockCenterY);
myGLCD.drawLine(x4+clockCenterX, y4+clockCenterY, x1+clockCenterX, y1+clockCenterY);
}
//**************************************************
void printDate()
{
myGLCD.setFont( Ubuntubold);
// Time t_temp;
//t_temp = rtc.getTime();
if (night==1)
{ myGLCD.setColor(142, 142, 200);//ночной календарь
myGLCD.setBackColor(0,38,92);
}
else
{ myGLCD.setColor(0, 0, 255);
myGLCD.setBackColor(255, 255, 255);
}
dow= t.dow;
myGLCD.print(str[dow-1], 272+450-80, 24);
// myGLCD.print(rtc.getDOWStr(FORMAT_SHORT), 256+450, 8);
if (t.date<10)
myGLCD.printNumI(t.date, 272+450-50, 58);
else
myGLCD.printNumI(t.date, 264+450-50, 58);
myGLCD.printNumI(t.mon, 256+450-50, 92);
myGLCD.printNumI(t.year, 248+450-50, 126);
myGLCD.setFont(BigFont);
}
void clearDate()
{
if (night==1)
{ myGLCD.setColor (0,38,92);
}
else
{ myGLCD.setColor(255, 255, 255);
}
myGLCD.fillRect(240+450-80, 15, 319+450, 166);
// myGLCD.fillRoundRect(240+450-80, 0, 319+450, 85+80);
}
//*************************************************************************
//******************************************************************
void clok()
{ //t = rtc.getTime();
int a=0;
q=1;
int x, y;
do
{
t = rtc.getTime();
if( night==1 )
{constbr=20;
br=constbr+brightness;
analogWrite(12, br);
}
else
{constbr=200;
br=constbr+brightness;
analogWrite(12, br);
if (rawp==1)
{rawp=0;
myGLCD.fillScr(VGA_AQUA);//выход утром в RAW
byte bait;
byte bait1;
int w;
sd.chdir("/");
delay (100);
myFile.open("33.raw", O_READ);
int n=0;
int m=0;
for (int i =0 ; i < 96000; 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>399){
n=0;
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
// myGLCD.drawBitmap (0, 2*m, 320, 1, pic1, 2);
myGLCD.drawBitmap (0, 2*m, 400, 1, pic1, 2);
m=m+1;
}
}
myGLCD.drawBitmap (639, 370, 160, 80, cl);
myGLCD.drawRoundRect (639, 370, 799, 450); //Clok
kalend();
raw();
}
}
if (q==1)
{
// Clear screen
myGLCD.clrScr();
// Draw Clockface
myGLCD.setColor(0, 0, 255);
myGLCD.setBackColor(0, 0, 0);
for (int i=0; i<5; i++)
{
myGLCD.drawCircle(clockCenterX, clockCenterY, 230-i);//119-i
}
for (int i=0; i<5; i++)
{
myGLCD.drawCircle(clockCenterX, clockCenterY, 2*i);
}
myGLCD.setColor(192, 192, 255);
myGLCD.setFont( SevenSegNumFont);
myGLCD.print("3", clockCenterX+92+111-16, clockCenterY-8-20);
myGLCD.print("6", clockCenterX-32+12, clockCenterY+95+111-30);
myGLCD.print("9", clockCenterX-109-111, clockCenterY-8-20);
myGLCD.print("12", clockCenterX-32, clockCenterY-109-111);
for (int i=0; i<12; i++)
{
if ((i % 3)!=0)
drawMark(i);
}
// myGLCD.setFont(BigFont);
// Draw calendar
if (night==1)
{ myGLCD.setColor(0,38,92);
}
else
{ myGLCD.setColor(255, 255, 255);
}
// myGLCD.setColor(255, 255, 255);
myGLCD.fillRoundRect(240+450-80, 0, 319+450, 85+80);
if (night==1)
{ myGLCD.setColor(255, 255, 255);
}
else
{ myGLCD.setColor(0, 0, 0);
}
// myGLCD.setColor(0, 0, 0);
for (int i=0; i<14; i++)
{
myGLCD.drawLine(249+450-80+(i*10), 0, 248+450-80+(i*10), 7);
myGLCD.drawLine(250+450-80+(i*10), 0, 249+450-80+(i*10), 7);
myGLCD.drawLine(251+450-80+(i*10), 0, 250+450-80+(i*10), 7);
}
myGLCD.setFont( BigFont);
// Draw SET button
myGLCD.setColor(64, 64, 128);
myGLCD.fillRoundRect(260+450, 200+200, 319+450, 239+200);
myGLCD.setColor(255, 255, 255);
myGLCD.drawRoundRect(260+450, 200+200, 319+450, 239+200);
myGLCD.setBackColor(64, 64, 128);
myGLCD.print("SET", 266+450, 212+200);
myGLCD.setBackColor(0, 0, 0);
// Draw exit button
myGLCD.setColor(64, 64, 128);
myGLCD.fillRoundRect(260+450, 200+150, 319+450, 239+150);
myGLCD.setColor(255, 255, 255);
myGLCD.drawRoundRect(260+450, 200+150, 319+450, 239+150);
myGLCD.setBackColor(64, 64, 128);
myGLCD.print("EXT", 266+450, 212+150);
myGLCD.setBackColor(0, 0, 0);
if (night==1)
{ myGLCD.setColor(192, 192, 255);
}
else
{ myGLCD.setColor(255,255, 255);
}
myGLCD.setBackColor(0, 0, 0);
myGLCD.setFont( SevenSegNumFont);
t = rtc.getTime();
if (t.hour<10)
{
myGLCD.printNumI(0,clockCenterX+340, clockCenterY-8-20);
myGLCD.printNumI(t.hour, clockCenterX+340+32, clockCenterY-8-20);
}
else
{
myGLCD.printNumI(t.hour,clockCenterX+340, clockCenterY-8-20);
}
myGLCD.print(":",clockCenterX+340+64, clockCenterY-8-20);
if (t.min<10)
{
myGLCD.printNumI(0,clockCenterX+340+96, clockCenterY-8-20);
myGLCD.printNumI(t.min, clockCenterX+340+128, clockCenterY-8-20);
}
else
{
myGLCD.printNumI(t.min, clockCenterX+340+96, clockCenterY-8-20);
}
}
if (t.date==0)
{
setClock();
}
drawDisplay();
// printDate();
q=0;
if (myTouch.dataAvailable())
{
myTouch.read();
x=myTouch.getX();
y=myTouch.getY();
if (((y>=200+200) && (y<=239+200)) && ((x>=260+450) && (x<=319+450)))
{
myGLCD.setColor (255, 0, 0);
myGLCD.drawRoundRect(260+450, 200+200, 319+450, 239+200);
setClock();
}
if (((y>=200+150) && (y<=239+150)) && ((x>=260+450) && (x<=319+450)))
{
if (c==1)
{
menu();
}
myGLCD.setColor (255, 0, 0);
myGLCD.drawRoundRect(260+450, 200+150, 319+450, 239+150);
menu();
}
}
//**********TOUCH
delay(10);
t = rtc.getTime();
// rawp=1 ;
if (rawp==1)
{ if (t.sec==17)
{ prognoz();
q=1;
delay(5000);
}
if (t.sec==37)
{ nightgraf();
q=1;
delay(5000);
}
if ((sec==10) || (sec==29) )
{
if(Serial.available()) {
priem();
}
}
}
//**************************massiv******************
// t = rtc.getTime();
if (t.min==0)
{
if ((t.sec==0)||(t.sec==1))
{
// printmassiv();
if (fsec==1)
{uart();
bmp085();
uart();
savemastd();
fsec=0; //delay (300);
if(t.hour==23)
{sdwrite();
savemasclok();
saveminmax();//запись макс мин и средних значений датчиков за день
}
if((t.hour>=0)||(t.hour<23))
{
savemasclok();//запись времени на sd 12:56 15/05/14 и массива rab
}
}
}
}
//*****************************************************
if (t.min>3)
{fsec=1;
}
//*****************************************************************
} while (a<1);
}