void GUI_drawPushButton(const char *a,unsigned char x, unsigned char y, unsigned char color,unsigned char state){ char c; int i=0; while((c=a[i])!='\0')i++; glcd_rect(x-6,y-3,x+(i*6)+4,y+8+1,YES,!state); glcd_text57(x,y,a,1,state); glcd_rect(x-6,y-3,x+(i*6)+4,y+8+1,NO,state); glcd_rect(x-7,y-4,x+(i*6)+5,y+8+2,NO,!color); }
// SET CALIB. VALUES //input: // s Sensor structure. // index Point to a specific sensor. //description: // function devoted to set each (x,y) // point to be used in the linear // regression. //------------------------------------------- static void set_calib_values(sensor s,unsigned int index) { unsigned int j; float v,w; for(j=0;j<NKVAL;j++){ w=0.0; v=0.0; while(OK==0){ get_adc(s); v=(float) s[index].adc*5/1023; w=counter(w); glcd_rect(0,10,90,30,YES,OFF); sprintf(text,"X[%d]= %.1f gr",j+1,w); glcd_text57(0,10, text,1,ON); sprintf(text,"Y[%d]= %.1f V ",j+1,v); glcd_text57(0,20, text,1,ON); #ifdef FAST_GLCD glcd_update(); #endif } load[j]=w; voltage[j]=v; delay_ms(600); } }
void draw_sect(void) { //Sec1 glcd_rect(0, 0, 62, 30, YES, ON); glcd_rect(0, 0, 62, 30, NO, OFF); //Sec2 glcd_rect(63, 0, 127, 30, NO, ON); //Sec3 glcd_rect(0, 31, 62, 63, NO, ON); //Sec4 glcd_rect(63, 31, 127, 63, YES, ON); glcd_rect(63, 31, 127, 63, NO, OFF); }
/************************************************************************ * * * Purpose: Draw and handles the time config menu * * * * Proposito: Dibuja y maneja el menu de configuracion de la hora * * * * Passed: None * * Argumento: Nada * * Returned: None * * Retorno: Nada * * Note: * * * * * ************************************************************************/ void menu_timemenu(void) { glcd_fillScreen(OFF); glcd_text57(0, 0, MENU1, 1, ON); glcd_bar(0, 9, 127, 9, 2, ON); //div glcd_rect(5, 20, 25, 35, NO, ON); //DoW glcd_text57(9, 24, dow, 1, ON); glcd_rect(35, 20, 55, 35, NO, ON); //Dia glcd_text57(39, 24, dia, 1, ON); glcd_rect(65, 20, 85, 35, NO, ON); //Mes glcd_text57(69, 24, mes, 1, ON); glcd_rect(95, 20, 115, 35, NO, ON); //Año glcd_text57(99, 24, ao, 1, ON); glcd_rect(5, 45, 25, 60, NO, ON); //Hora glcd_text57(9, 49, hora, 1, ON); glcd_rect(35, 45, 55, 60, NO, ON); //Minuto glcd_text57(39, 49, min, 1, ON); glcd_rect(65, 45, 85, 60, NO, ON); // AM/PM. glcd_text57(69, 49, aop, 1, ON); glcd_update(); while (1) { readbuttons(); if (right==PRESSED) { control+=1; if (control>=8) { control = 1; } } if (left==PRESSED) { control-=1; if (control<=0) { control = 7; } } if (enter==PRESSED) { control = 10; } switch (control) { case 1: { glcd_rect(65, 45, 85, 60, YES, OFF); glcd_rect(65, 45, 85, 60, NO, ON); // AM/PM. glcd_text57(69, 49, aop, 1, ON); glcd_rect(5, 20, 25, 35, YES, ON); //DoW glcd_text57(9, 24, dow, 1, OFF); glcd_rect(35, 20, 55, 35, YES, OFF); glcd_rect(35, 20, 55, 35, NO, ON); //Dia glcd_text57(39, 24, dia, 1, ON); glcd_update(); if ((up==!PRESSED)&&(down==PRESSED)) { k++; if(k>=7) { k=0; } switch(k) { case 0: { dow[0] = "L"; break; } case 1: { dow[0] = "M"; break; } case 2: { dow[0] = "I"; break; } case 3: { dow[0] = "J"; break; } case 4: { dow[0] = "V"; break; } case 5: { dow[0] = "S"; break; } case 6: { dow[0] = "D"; break; } } glcd_rect(5, 20, 25, 35, YES, ON); //DoW glcd_text57(9, 24, dow, 1, OFF); glcd_update(); } if ((up==PRESSED)&&(down==!PRESSED)) { k--; if((k<0)||(k>10)) { k=6; } switch(k) { case 0: { dow[0] = "L"; break; } case 1: { dow[0] = "M"; break; } case 2: { dow[0] = "I"; break; } case 3: { dow[0] = "J"; break; } case 4: { dow[0] = "V"; break; } case 5: { dow[0] = "S"; break; } case 6: { dow[0] = "D"; break; } } glcd_rect(5, 20, 25, 35, YES, ON); //DoW glcd_text57(9, 24, dow, 1, OFF); glcd_update(); } break; } case 2: // DIA { glcd_rect(5, 20, 25, 35, YES, OFF); glcd_rect(5, 20, 25, 35, NO, ON); // DoW glcd_text57(9, 24, dow, 1, ON); glcd_rect(35, 20, 55, 35, YES, ON); //Dia glcd_text57(39, 24, dia, 1, OFF); glcd_rect(65, 20, 85, 35, YES, OFF); glcd_rect(65, 20, 85, 35, NO, ON); //Mes glcd_text57(69, 24, mes, 1, ON); glcd_update(); if ((up==!PRESSED)&&(down==PRESSED)) { int8 auxdia; auxdia = atoi(dia); auxdia -=1; if (auxdia==0) { if (atoi(mes)==2) { auxdia = 28; } else { auxdia = 31; } } itoa(auxdia,10,dia); glcd_rect(35, 20, 55, 35, YES, ON); //Dia glcd_text57(39, 24, dia, 1, OFF); glcd_update(); } if ((up==PRESSED)&&(down==!PRESSED)) { int8 auxdia; auxdia = atoi(dia); auxdia +=1; if (atoi(mes)==2) { if(auxdia==29) { auxdia = 1; } } if (auxdia==32) { auxdia = 1; } itoa(auxdia,10,dia); glcd_rect(35, 20, 55, 35, YES, ON); //Dia glcd_text57(39, 24, dia, 1, OFF); glcd_update(); } break; } case 3: // MES { glcd_rect(35, 20, 55, 35, YES, OFF); glcd_rect(35, 20, 55, 35, NO, ON); //Dia glcd_text57(39, 24, dia, 1, ON); glcd_rect(65, 20, 85, 35, YES, ON); //Mes glcd_text57(69, 24, mes, 1, OFF); glcd_rect(95, 20, 115, 35, YES, OFF); glcd_rect(95, 20, 115, 35, NO, ON); //Año glcd_text57(99, 24, ao, 1, ON); glcd_update(); if ((up==!PRESSED)&&(down==PRESSED)) { int8 auxmes; auxmes = atoi(mes); auxmes -=1; if (auxmes==0) { auxmes = 12; } itoa(auxmes,10,mes); glcd_rect(65, 20, 85, 35, YES, ON); //Mes glcd_text57(69, 24, mes, 1, OFF); glcd_update(); } if ((up==PRESSED)&&(down==!PRESSED)) { int8 auxmes; auxmes = atoi(mes); auxmes +=1; if (auxmes==13) { auxmes = 1; } itoa(auxmes,10,mes); glcd_rect(65, 20, 85, 35, YES, ON); //Mes glcd_text57(69, 24, mes, 1, OFF); glcd_update(); } break; } case 4: // AÑO { glcd_rect(65, 20, 85, 35, YES, OFF); glcd_rect(65, 20, 85, 35, NO, ON); //Mes glcd_text57(69, 24, mes, 1, ON); glcd_rect(95, 20, 115, 35, YES, ON); //Año glcd_text57(99, 24, ao, 1, OFF); glcd_rect(5, 45, 25, 60, YES, OFF); glcd_rect(5, 45, 25, 60, NO, ON); //Hora glcd_text57(9, 49, hora, 1, ON); glcd_update(); if ((up==!PRESSED)&&(down==PRESSED)) { int8 auxao; auxao = atoi(ao); auxao -=1; if (auxao==0) { auxao = 99; } itoa(auxao,10,ao); glcd_rect(95, 20, 115, 35, YES, ON); //Año glcd_text57(99, 24, ao, 1, OFF); glcd_update(); } if ((up==PRESSED)&&(down==!PRESSED)) { int8 auxao; auxao = atoi(ao); auxao +=1; if (auxao==99) { auxao = 0; } itoa(auxao,10,ao); glcd_rect(95, 20, 115, 35, YES, ON); //Año glcd_text57(99, 24, ao, 1, OFF); glcd_update(); } break; } case 5: // HORA { glcd_rect(95, 20, 115, 35, YES, OFF); glcd_rect(95, 20, 115, 35, NO, ON); //Año glcd_text57(99, 24, ao, 1, ON); glcd_rect(5, 45, 25, 60, YES, ON); //Hora glcd_text57(9, 49, hora, 1, OFF); glcd_rect(35, 45, 55, 60, YES, OFF); glcd_rect(35, 45, 55, 60, NO, ON); //Minuto glcd_text57(39, 49, min, 1, ON); glcd_update(); if ((up==!PRESSED)&&(down==PRESSED)) { int8 auxhora; auxhora = atoi(hora); auxhora -=1; if ((aop[0]==0x41)||(aop[0]==0x50)) { if (auxhora<=0) { auxhora = 12; } } else { if ((auxhora<0)||(auxhora>50)) { auxhora = 23; } } itoa(auxhora,10,hora); glcd_rect(5, 45, 25, 60, YES, ON); //Hora glcd_text57(9, 49, hora, 1, OFF); glcd_update(); } if ((up==PRESSED)&&(down==!PRESSED)) { int8 auxhora; auxhora = atoi(hora); auxhora +=1; if ((aop[0]==0x41)||(aop[0]==0x50)) { if (auxhora>12) { auxhora = 1; } } else { if (auxhora>23) { auxhora = 0; } } itoa(auxhora,10,hora); glcd_rect(5, 45, 25, 60, YES, ON); //Hora glcd_text57(9, 49, hora, 1, OFF); glcd_update(); } break; } case 6: // MINUTOS { glcd_rect(5, 45, 25, 60, YES, OFF); glcd_rect(5, 45, 25, 60, NO, ON); //Hora glcd_text57(9, 49, hora, 1, ON); glcd_rect(35, 45, 55, 60, YES, ON); //Minuto glcd_text57(39, 49, min, 1, OFF); glcd_rect(65, 45, 85, 60, YES, OFF); glcd_rect(65, 45, 85, 60, NO, ON); // AM/PM. glcd_text57(69, 49, aop, 1, ON); glcd_update(); if ((up==!PRESSED)&&(down==PRESSED)) { int8 auxmin; auxmin = atoi(min); if (auxmin==0) { auxmin = 60; } auxmin -=1; itoa(auxmin,10,min); glcd_rect(35, 45, 55, 60, YES, ON); //Minuto glcd_text57(39, 49, min, 1, OFF); glcd_update(); } if ((up==PRESSED)&&(down==!PRESSED)) { int8 auxmin; auxmin = atoi(min); auxmin +=1; if (auxmin>=60) { auxmin = 0; } itoa(auxmin,10,min); glcd_rect(35, 45, 55, 60, YES, ON); //Minuto glcd_text57(39, 49, min, 1, OFF); glcd_update(); } break; } case 7: // AM - PM { glcd_rect(35, 45, 55, 60, YES, OFF); glcd_rect(35, 45, 55, 60, NO, ON); //Minuto glcd_text57(39, 49, min, 1, ON); glcd_rect(65, 45, 85, 60, YES, ON); //AM PM glcd_text57(69, 49, aop, 1, OFF); glcd_rect(5, 20, 25, 35, YES, OFF); glcd_rect(5, 20, 25, 35, NO, ON); //DoW glcd_text57(9, 24, dow, 1, ON); glcd_update(); if ((up==!PRESSED)&&(down==PRESSED)) { if (aop[0]==0x41) { aop[0] = "P"; } else if (aop[0]==0x50) { aop[0] = "M"; } else if (aop[0]==0x4D) { aop[0] = "A"; } glcd_rect(65, 45, 85, 60, YES, ON); //Minuto glcd_text57(69, 49, aop, 1, OFF); glcd_update(); } if ((up==PRESSED)&&(down==!PRESSED)) { if (aop[0]==0x41) { aop[0] = "M"; } else if (aop[0]==0x50) { aop[0] = "A"; } else if (aop[0]==0x4D) { aop[0] = "P"; } glcd_rect(65, 45, 85, 60, YES, ON); //Minuto glcd_text57(69, 49, aop, 1, OFF); glcd_update(); } break; } case 10: // SET { glcd_fillscreen(OFF); glcd_text57(0, 0, MENU1, 1, ON); glcd_bar(0, 9, 127, 9, 2, ON); //div glcd_rect(5, 20, 25, 35, YES, ON); //DoW glcd_text57(9, 24, dow, 1, OFF); glcd_rect(5, 20, 25, 35, NO, ON); //Dia glcd_text57(9, 24, dia, 1, ON); glcd_rect(35, 20, 55, 35, NO, ON); //Mes glcd_text57(39, 24, mes, 1, ON); glcd_rect(65, 20, 85, 35, NO, ON); //Año glcd_text57(69, 24, ao, 1, ON); glcd_rect(5, 45, 25, 60, NO, ON); //Hora glcd_text57(9, 49, hora, 1, ON); glcd_rect(35, 45, 55, 60, NO, ON); //Minuto glcd_text57(39, 49, min, 1, ON); glcd_rect(65, 45, 85, 60, NO, ON); // AM/PM. glcd_text57(69, 49, aop, 1, ON); glcd_update(); break; } } button = !PRESSED; if (control==10) { /*GRABAR EN RTC*/ ds1307_set_date_time(atoi(dia),atoi(mes),atoi(ao),(k+1),atoi(hora),atoi(min),0,aop[0]); return; } } }
void update_readings(void) { draw_sect(); //Sec1 if(rcv_t==1) { glcd_text_sec(1, 1, t2_print, OFF); } if(rcv_p==1) { glcd_text_sec(1, 2, pprint, OFF); } if(rcv_h==1) { glcd_text_sec(1, 3, hprint, OFF); } //Sec2 if(rcv_a==1) { glcd_text_sec(2, 1, aprint, ON); } if(rcv_v==1) { glcd_text_sec(2, 2, vprint, ON); } if(rcv_l==1) { glcd_rect(65, 21, 125, 28, NO, ON); glcd_rect(67, 23, ll, 26, YES, ON); } //Sec3 if(rcv_w==1) { switch(ww) { case 1: { glcd_showimg_xy(sun,3, 32, NO); break; } case 2: { glcd_showimg_xy(cloud,3, 32, NO); break; } case 3: { glcd_showimg_xy(rain,3, 32, NO); break; } case 4: { glcd_showimg_xy(snow,3, 32, NO); break; } } } if(rcv_pdl==1) { glcd_text_sec(3, 1, pdlprint, ON); } if(rcv_d==1) { glcd_text_sec(3, 2, dprint, ON); } //Sec4 if(rcv_bat1_st==1) { switch(bat1_st) { case 0: { glcd_showimg_xy(nobat,66, 33, YES); break; } case 1: { glcd_showimg_xy(bat1,66, 33, YES); break; } case 2: { glcd_showimg_xy(bat2,66, 33, YES); break; } case 3: { glcd_showimg_xy(bat3,66, 33, YES); break; } case 4: { glcd_showimg_xy(fullbat,66, 33, YES); break; } } } switch(bat2_st) { case 0: { glcd_showimg_xy(nobat,88, 33, YES); break; } case 1: { glcd_showimg_xy(bat1,88, 33, YES); break; } case 2: { glcd_showimg_xy(bat2,88, 33, YES); break; } case 3: { glcd_showimg_xy(bat3,88, 33, YES); break; } case 4: { glcd_showimg_xy(fullbat,88, 33, YES); break; } } switch(okst) { case 0: { glcd_showimg_xy(warning,115, 33, YES); break; } case 1: { glcd_text57(110,33,ok,1,OFF); break; } } if(rcv_td==1) { glcd_text_sec(4,2,print_date,OFF); glcd_text_sec(4,3,print_time,OFF); } }