Exemple #1
0
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);
}
Exemple #2
0
//		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);
	}
}
Exemple #3
0
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);
   
}
Exemple #4
0
/************************************************************************
*                                                                       *
*  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;
        }

    }
}
Exemple #5
0
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);
   }    
   
}