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); } }
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); }
void DemoFont(void) { LCD_ClearScreen(); LCD_SetFont(0); LCD_PrintXY(0,0, "Font 0"); LCD_SetFont(1); LCD_PrintXY(0,8, "Font 1"); LCD_SetFont(2); LCD_PrintXY(0,23,"Font 2"); LCD_SetFont(3); LCD_PrintXY(0,39,"Font 3"); }
//-------------------------------------------------------------------------------------------------- // Name: Demo Functions // Function: // // Parameter: // Return: //-------------------------------------------------------------------------------------------------- void DemoLogo(void) { LCD_ClearScreen(); LCD_DrawBitmap(0,0,bmp_raspi); LCD_SetFont(0); LCD_PrintXY(70,4 ,"Raspi-LCD"); LCD_PrintXY(75,14,"Project"); LCD_PrintXY(68,32,"powered by"); LCD_PrintXY(70,42,"Emsystech"); LCD_PrintXY(62,52,"Engineering"); }
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(); }
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); }
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); }
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 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); } } }
void DemoText(void) { LCD_ClearScreen(); LCD_SetFont(1); LCD_PrintXY(30,0,"Raspi-LCD"); LCD_PrintXY(0,12,"www.emsystech.de"); LCD_SetFont(0); LCD_PrintXY(8,29,"128 x 64 Pixel (BW)"); LCD_PrintXY(6,38,"White LED Backlight"); LCD_PrintXY(4,47,"8 Lines with 21 Char "); LCD_PrintXY(4,56,"in the smallest Font "); }
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); } }
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); } }
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); } } }
void DemoBitmap(void) { LCD_DrawBitmap(0,0,bmp_men); LCD_SetFont(1); LCD_PrintXY(6,0, "Bitmap"); }
void O2_StatusView(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"); }