Beispiel #1
0
void DemoCpuTemperature(void)
{
	uint16	i,y;
	
	LCD_ClearScreen();
	LCD_SetPenColor(1);
	LCD_SetFont(1);
	LCD_PrintXY(40,0,"CPU:");
	LCD_PrintXY(80,0,TempString);
		
	LCD_SetFont(0);
	LCD_PrintXY(0,0, "60-");
	LCD_PrintXY(0,18,"50-");
	LCD_PrintXY(0,37,"40-");
	LCD_PrintXY(0,56,"30-");
	LCD_DrawLine(15,0,15,63);

	for(i=16;i<128;i++)
	{
		y = DemoMem[127-i];
		
		if(y > 290) 
		{
			y = ((y - 290) / 5);
			y = 64 - y;
			LCD_PutPixel(i,y,1);
			LCD_PutPixel(i,y+1,1);
		}
	}
}
void lcdscreentimer::paintEvent()
{
  if( m_editMode )
  {
  }
  else
  {
    if( m_selectedTime>=0 )
    {
      int x = 0, y = 10*m_selectedTime, dx = 127, dy = 10;
      LCD_SetPenColor(1);
      LCD_DrawLine(x,y,x+dx,y);
      LCD_DrawLine(x+dx,y,x+dx,y+dy);
      LCD_DrawLine(x+dx,y+dy,x,y+dy);
      //LCD_DrawLine(x,y+dy,x,y); // does not really work ?
      LCD_DrawLine(x,y,x,y+dy);
    }
    LCD_SetFont(0);
    LCD_PrintXY(3, 2,timerText1);
    LCD_PrintXY(3,12,timerText2);
    LCD_PrintXY(3,22,timerText3);
    LCD_PrintXY(3,32,timerText4);
    LCD_PrintXY(3,42,timerText5);
  }
}
Beispiel #3
0
void CpuTemperatureView(void)
{
	uint16_t	i,y;
	MEASUREMENT_VIEW_struct * viewMem = cpu_temp_getViewMem();
	LCD_ClearScreen();
	LCD_SetPenColor(1);
	LCD_SetFont(1);
	LCD_PrintXY(40,0,"CPU:");
	LCD_PrintXY(80,0,viewMem->cur_value);
		
	LCD_SetFont(0);
	LCD_PrintXY(0,0, "60-");
	LCD_PrintXY(0,18,"50-");
	LCD_PrintXY(0,37,"40-");
	LCD_PrintXY(0,56,"30-");
	LCD_DrawLine(15,0,15,63);

	for(i=16;i<128;i++)
	{
		y = viewMem->Mem[127-i];
		
		if(y > 290) 
		{
			y = ((y - 290) / 5);
			y = 64 - y;
			LCD_PutPixel(i,y,1);
			LCD_PutPixel(i,y+1,1);
		}
	}
}
Beispiel #4
0
void StatusView2(void)
{	
  char a[20];
  
  MEASUREMENT_VIEW_struct * AbgasMem = pt100_getViewMem();  
  
	LCD_ClearScreen();
	LCD_SetFont(0);	
  LCD_SetPenColor(1);
	LCD_PrintXY(0,0,"PufferKontrollSystem");
  LCD_DrawLine(0,21,127,21);
  LCD_DrawLine(0,42,127,42);
  
  LCD_DrawLine(63,21,63,63);

  LCD_PrintXY(2,23,"Abgas");
  LCD_PrintXY(2,32, AbgasMem->cur_value);

  LCD_PrintXY(66,23,"Verlust");
  double abgasverlust = get_abgasverlust();
  sprintf(a, "%4u",abgasverlust);
  LCD_PrintXY(66,32, a);


}
Beispiel #5
0
void AbgasTemperatureView(void)
{
	uint16_t	i,y;
	MEASUREMENT_VIEW_struct * viewMem = pt100_getViewMem();
	LCD_ClearScreen();
	LCD_SetPenColor(1);
	LCD_SetFont(0);
	LCD_PrintXY(30,0,"ABGAS:");
	LCD_PrintXY(80,0,viewMem->cur_value);
		
	LCD_SetFont(0);
	
  int max = roundUp(viewMem->max);
  int min  = roundDown(viewMem->min);
  int diff = max-min;
  int span;
  if(!diff) {
    span = 10;
    if(min) min -= 10;
  }else {
    span = diff/3;
  }
  
  if(span < 10) span = 10;
  
  char dummy[10];
 
    sprintf(dummy,"%4u-",min+(span*3));
    LCD_PrintXY(0,0, dummy);
    
    sprintf(dummy,"%4u-",min+(span*2));
    LCD_PrintXY(0,18,dummy);
    
    sprintf(dummy,"%4u-",min+(span*1));
    LCD_PrintXY(0,37,dummy);
    
    sprintf(dummy,"%4u-",min);
    LCD_PrintXY(0,56,dummy);

  
	LCD_DrawLine(27,0,27,63);
  diff = (span*3);
  
	for(i=27;i<128;i++)
	{
		y = viewMem->Mem[127-i];
		y =  64 - ((double)(y-min)*(double)(64.0/diff));
		LCD_PutPixel(i,y,1);
		LCD_PutPixel(i,y+1,1);
		
	}
}
Beispiel #6
0
void StatusView1(void)
{	
  char a[20];
  
  
/*
  (2000x4187x80-MW)/(3600x1000) = …KWh (Was noch in den Puffer geht);

Erklärung hierzu:

2000 = Puffervolumen;
4187 = Ws/(kg*K);  spezifische Wärmekapazität wasser in Wattsekunde/(kg*Kelvin)
80 = Maximaltemperatur des Puffers;
MW = Mittelwertberechnung der 8 Temperaturen;
Heizwert von 1 kg Holz = 3,5 KWh/kg
((2000x4187x80-MW)/(3600x1000))/3,5 = … kg (das ergibt die Holzmenge, die man nachlegen kann) – wird angezeigt am Display;

*/
  
  MEASUREMENT_VIEW_struct * CPUTempMem = cpu_temp_getViewMem();
  MEASUREMENT_VIEW_struct * O2Mem = lambda_getViewMem();
  MEASUREMENT_VIEW_struct * BrennerMem = k_sonde_getViewMem();
  MEASUREMENT_VIEW_struct * PufferMem = ds12b20_getViewMem();
  
  
  
  double KWh = (PUFFERVOLUMEN * SPEZ_WAERMEKAP_WASSER * MAX_PUFFER_TEMP - ds18b20_getAverage()) / (3600 * 1000);
  double kg = KWh / HEIZWERT_HOLZ;
 
	LCD_ClearScreen();
	LCD_SetFont(0);	
  LCD_SetPenColor(1);
	LCD_PrintXY(0,0,"PufferKontrollSystem");
  LCD_DrawLine(0,21,127,21);
  LCD_DrawLine(0,42,127,42);
  
  LCD_DrawLine(63,21,63,63);

  LCD_PrintXY(2,23,"Brenner");
  LCD_PrintXY(2,32, BrennerMem->cur_value);

  LCD_PrintXY(66,23,"Puffer");
  LCD_PrintXY(66,32, PufferMem->cur_value);

  LCD_PrintXY(2,44,"O2");
  LCD_PrintXY(2,53,O2Mem->cur_value);

  LCD_PrintXY(66,44,"nachlegen");
  LCD_PrintfXY(66,53,"%3.1f kg", kg);

}
Beispiel #7
0
void DemoVector(void)
{
	LCD_ClearScreen();
	LCD_SetFillColor(1);	
	LCD_DrawRect(110,20,120,60,1);
	LCD_DrawLine(0,0,127,0);
	LCD_DrawLine(0,0,127,16);
	LCD_DrawLine(0,0,127,32);
	LCD_DrawLine(0,0,127,48);
	LCD_DrawLine(0,0,127,63);
	LCD_SetPenColor(1);
	LCD_DrawCircle(63,31,31);
	LCD_DrawCircle(8,50,5);
	LCD_DrawEllipse(80,40, 30,10);
	LCD_SetFillColor(0);	
	LCD_DrawRect(12,20,40,40,3);
	LCD_SetFillColor(-1);	
	LCD_DrawRect(30,50,60,60,1);
}
Beispiel #8
0
void InitialView(char *str, uint8_t pos)
{	
  uint8_t i;
  char  a[] ={0x7F, 0};
  
 
	LCD_ClearScreen();
	LCD_SetFont(1);	
  LCD_SetPenColor(1);
	LCD_PrintXY(0,0,"Initialisierung...");
  
  LCD_PrintXY(0, 20, str);
  
  for(i=0; i<pos; i++)
    LCD_PrintXY(0+10*i, 40, a);
  
  LCD_WriteFramebuffer();

}
Beispiel #9
0
void ConfigView(void)
{	
  char a[20];
 
LCD_ClearScreen();
LCD_SetFont(0);	
  LCD_SetPenColor(1);
LCD_PrintXY(0,0,"Konfiguration");
  LCD_DrawLine(0,21,127,21);
  LCD_DrawLine(0,42,127,42);
  
  LCD_DrawLine(63,21,63,63);
  LCD_PrintXY(2,23,"Puffer :");
  LCD_PrintfXY(64,23, "%dl", app_config_get_puffer_volume());
  
  LCD_PrintXY(2,33,"Licht :");
  LCD_PrintfXY(64,33, "%ds", app_config_get_light_on_time());
  	//LCD_SetFont(0);	

}
Beispiel #10
0
void O2View(void)
{
	uint16_t	i,y;
  
  if(lambda_fehler()) {
    O2_ErrorView();
    return;
  } 
  else if(!lambda_run()) {
    O2_StatusView();
    return;
  }
  
	MEASUREMENT_VIEW_struct * viewMem = lambda_getViewMem();
	LCD_ClearScreen();
	LCD_SetPenColor(1);
	LCD_SetFont(0);
	LCD_PrintXY(40,0,"O2:");
	LCD_PrintXY(80,0,viewMem->cur_value);
		
	LCD_SetFont(0);
	LCD_PrintXY(0,0, "25-");
	LCD_PrintXY(0,18,"15-");
	LCD_PrintXY(0,37," 5-");
	LCD_PrintXY(0,56," 0-");
	LCD_DrawLine(15,0,15,63);

  
  for(i=16;i<128;i++)
	{
    y = viewMem->Mem[127-i];
    if(y < 25) {
		
      y =  64 - ((double)(y)*(double)(64.0/25));
      LCD_PutPixel(i,y,1);
      LCD_PutPixel(i,y+1,1);
    }
	}

}
Beispiel #11
0
void DemoBubbles(void)
{
	LCD_ClearScreen();
	LCD_SetPenColor(1);
	
	if(DemoMem[200])	{ if(DemoMem[201] > 16)	DemoMem[201]--; else	DemoMem[200] = 0;	}
		else		{ if(DemoMem[201] <48)	DemoMem[201]++; else	DemoMem[200] = 1;	}
	DemoMem[202] = ((63 - DemoMem[201]) < DemoMem[201]) ? (63 - DemoMem[201]) : DemoMem[201];	
	DemoMem[202] = (DemoMem[202] > 20) ? 20 : DemoMem[202];	
	LCD_DrawEllipse(28,DemoMem[201],20+20-DemoMem[202],DemoMem[202]);	

	if(DemoMem[203])	{ if(DemoMem[204] > 14)	DemoMem[204]--; else	DemoMem[203] = 0;	}
		else		{ if(DemoMem[204] <50)	DemoMem[204]++; else	DemoMem[203] = 1;	}
	DemoMem[205] = ((63 - DemoMem[204]) < DemoMem[204]) ? (63 - DemoMem[204]) : DemoMem[204];	
	DemoMem[205] = (DemoMem[205] > 20) ? 20 : DemoMem[205];	
	LCD_DrawEllipse(65,DemoMem[204],22+10-DemoMem[205],DemoMem[205]);	

	if(DemoMem[206])	{ if(DemoMem[207] > 10)	DemoMem[207]--; else	DemoMem[206] = 0;	}
		else		{ if(DemoMem[207] <54)	DemoMem[207]++; else	DemoMem[206] = 1;	}
	DemoMem[208] = ((63 - DemoMem[207]) < DemoMem[207]) ? (63 - DemoMem[207]) : DemoMem[207];	
	DemoMem[208] = (DemoMem[208] > 15) ? 15 : DemoMem[208];	
	LCD_DrawEllipse(102,DemoMem[207],15+20-DemoMem[208],DemoMem[208]);	
}
Beispiel #12
0
void DS18B20View(void)
{	
  char a[20];
  int i, count;
  DS18B20_struct *ds18b20_dev;
  
 
LCD_ClearScreen();
LCD_SetFont(0);	
  LCD_SetPenColor(1);
LCD_PrintXY(0,0,"DS18B20");
  LCD_DrawLine(0,21,127,21);
  count =  ds18b20_getDeviceCount() ;


  for(i=0; i<count;i++) {
    ds18b20_dev = ds18b20_getDevice(i);
    if(ds18b20_dev->crc)
      LCD_PrintfXY(0,23+(8*i), "%s: %5.1f",ds18b20_dev->_deviceid, ds18b20_dev->tempGrad); 
    else
      LCD_PrintfXY(0,23+(8*i), "%s: Fehler",ds18b20_dev->_deviceid); 
  }
}
Beispiel #13
0
void O2_ErrorView(void)
{
	uint16_t	i,y;
  
	LCD_ClearScreen();
	LCD_SetPenColor(1);
	LCD_SetFont(0);
	LCD_PrintXY( 0,0, "Lambda Fehler!");
	
	LCD_SetFont(0);
  
	LCD_PrintXY(0, 0, "W | S | U | U | S | C");
	LCD_PrintXY(0, 9, "D | P | H | L | O | J");
  LCD_DrawLine(0,18,127,18);
  LCD_PrintXY(0,19, "  |   |   |   |   |  ");
  
  if(lambda_get_single_error(WATCHDOG)) LCD_PrintXY(0,19, "X");
  if(lambda_get_single_error(SPI_ERROR)) LCD_PrintXY(24,19, "X");
  if(lambda_get_single_error(UBAT_HIGH)) LCD_PrintXY(48,19, "X");
  if(lambda_get_single_error(UBAT_LOW)) LCD_PrintXY(72,19, "X");
  if(lambda_get_single_error(SONDE_OVERHEAT)) LCD_PrintXY(96,19, "X");
  if(lambda_get_single_error(CJ_ERROR)) LCD_PrintXY(120,19, "X");

      
      
  LCD_PrintXY(0,35, "DIAHG|IA/IP|UN|VM");
  LCD_PrintXY(0,44, "DIAHD|IA/IP|UN|VM");
  LCD_DrawLine(0,53,127,53);
  LCD_PrintXY(0,54, "     |     |  |  ");
   if(lambda_get_single_cjerror(DIAHG_DIAHD_ERROR)) LCD_PrintXY(12,54, "X");                 
   if(lambda_get_single_cjerror(IA_IP_ERROR)) LCD_PrintXY(54,54, "X"); 
   if(lambda_get_single_cjerror(UN_ERROR)) LCD_PrintXY(78,54, "X"); 
   if(lambda_get_single_cjerror(VM_ERROR)) LCD_PrintXY(96,54, "X"); 
  
  

}
Beispiel #14
0
static uint8_t guiMainForm_ProcessEvents(struct guiGenericWidget_t *widget, guiEvent_t event)
{
    // Process GUI messages - focus, draw, etc
    switch(event.type)
    {
          case GUI_EVENT_INIT:
            guiCore_InitTimer(TMR_TIME_UPDATE, 1, 0, (guiGenericWidget_t *)&guiMainForm);
            guiCore_StartTimer(TMR_TIME_UPDATE, 1);
            guiCore_AcceptFocusedState(&guiMainForm, 1);
            break;
          case GUI_EVENT_TIMER:
            sprintf(textLabel_time.text, "%2d:%02d:%02d", timeHours, timeMinutes, timeSeconds);
            textLabel_time.redrawForced = 1;
            textLabel_time.redrawRequired = 1;
            break;
          case GUI_EVENT_DRAW:
            // Check if full redraw is required
            guiGraph_DrawPanel(&guiMainForm);
            // Draw static elemens
            if (guiMainForm.redrawForced)
            {
                LCD_SetLineStyle(LINE_STYLE_SOLID);
                LCD_SetPenColor(colorPalette[COLOR_INDEX_3DFRAME_DARK1]);
                LCD_DrawHorLine(3,guiMainForm.height - 25,guiMainForm.width - 6);
            }
            // Reset flags
            guiMainForm.redrawFocus = 0;
            guiMainForm.redrawRequired = 0;
            break;
        case GUI_EVENT_FOCUS:
            guiCore_AcceptFocusedState(&guiMainForm, 1);
            guiCore_SetFocusOnNextWidget((guiGenericContainer_t *)&guiMainForm, 1, INVOKE_QUEUED);
            break;
        case GUI_EVENT_UNFOCUS:
            guiCore_AcceptFocusedState(&guiMainForm, 0);
            guiMainForm.keepTouch = 0;
            break;
/*        case GUI_EVENT_ENCODER:
            if ((int16_t)event.lparam < 0)
                guiCore_SetFocusOnNextWidget((guiGenericContainer_t *)&guiMainForm,-1);
            else if ((int16_t)event.lparam > 0)
                guiCore_SetFocusOnNextWidget((guiGenericContainer_t *)&guiMainForm,1);
            break; */
        case GUI_EVENT_KEY:
            if (event.spec == GUI_KEY_EVENT_DOWN)
            {
                if (event.payload.params.lparam == GUI_KEY_LEFT)
                {
                    guiCore_SetFocusOnNextWidget((guiGenericContainer_t *)&guiMainForm, -1, INVOKE_QUEUED);
                }
                else if (event.payload.params.lparam == GUI_KEY_RIGHT)
                {
                    guiCore_SetFocusOnNextWidget((guiGenericContainer_t *)&guiMainForm, 1, INVOKE_QUEUED);
                }
                else if (event.payload.params.lparam == GUI_KEY_ESC)
                {
                    // Keep focus on first button
                    guiCore_SetFocusOn((guiGenericWidget_t *)&guiMainForm, INVOKE_QUEUED);
                }
            }
            break;
         case GUI_EVENT_TOUCH:
            // Call base container handler
            guiPanel_ProcessEvent((guiGenericWidget_t *)&guiMainForm, event);
            break;
    }
    return GUI_EVENT_ACCEPTED;
}