25 uint8_t screen_flag = 0;
26 uint8_t warnung_flag = 0;
27 int8_t auswahl_nr = 0;
29 uint8_t screen_return = SCREEN_FLAG_BETRIEB;
30 bool msgbox_notaus =
false;
60 if ( !(screen_flag == SCREEN_FLAG_BETRIEB) )
65 screen_flag = SCREEN_FLAG_BETRIEB;
92 gfx_draw_battery ( BETRIEB_SPALTE_2 - 7, BETRIEB_BATZEILE_1 + 7, icon.battery_color[0], GFX_BAT_NO_CROSS );
93 gfx_draw_battery ( BETRIEB_SPALTE_3 - 7, BETRIEB_BATZEILE_1 + 7, icon.battery_color[4], GFX_BAT_NO_CROSS );
95 sprintf ( text,
"%5.2fV", icon.bat_voltage[0] );
99 sprintf ( text,
"%5.2fV", icon.bat_voltage[4] );
107 gfx_draw_battery ( BETRIEB_SPALTE_2 - 7, BETRIEB_BATZEILE_2 + 7, icon.battery_color[1], GFX_BAT_NO_CROSS );
108 gfx_draw_battery ( BETRIEB_SPALTE_3 - 7, BETRIEB_BATZEILE_2 + 7, icon.battery_color[5], GFX_BAT_NO_CROSS );
110 sprintf ( text,
"%5.2fV", icon.bat_voltage[1] );
114 sprintf ( text,
"%5.2fV", icon.bat_voltage[5] );
122 gfx_draw_battery ( BETRIEB_SPALTE_2 - 7, BETRIEB_BATZEILE_3 + 7, icon.battery_color[2], GFX_BAT_NO_CROSS );
123 gfx_draw_battery ( BETRIEB_SPALTE_3 - 7, BETRIEB_BATZEILE_3 + 7, icon.battery_color[6], GFX_BAT_NO_CROSS );
125 sprintf ( text,
"%5.2fV", icon.bat_voltage[2] );
129 sprintf ( text,
"%5.2fV", icon.bat_voltage[6] );
137 gfx_draw_battery ( BETRIEB_SPALTE_2 - 7, BETRIEB_BATZEILE_4 + 7, icon.battery_color[3], GFX_BAT_NO_CROSS );
138 gfx_draw_battery ( BETRIEB_SPALTE_3 - 7, BETRIEB_BATZEILE_4 + 7, icon.battery_color[7], GFX_BAT_NO_CROSS );
140 sprintf ( text,
"%5.2fV", icon.bat_voltage[3] );
144 sprintf ( text,
"%5.2fV", icon.bat_voltage[7] );
160 sprintf ( text,
"%5imA", icon.mAmp );
165 sprintf ( text,
"%4.2f V", icon.volt );
203 if ( !(screen_flag == SCREEN_FLAG_AKKU_INFO) )
208 screen_flag = SCREEN_FLAG_AKKU_INFO;
219 if ( icon.verbraucher )
220 gfx_draw_bitmap( &ico_verbraucher_an, AKKU_SPALTE_1 - ico_verbraucher_an.
width / 2, AKKU_VENTZEILE + (42 - ico_verbraucher_an.
height) / 2 );
222 gfx_draw_bitmap( &ico_verbraucher_aus, AKKU_SPALTE_1 - ico_verbraucher_aus.
width / 2, AKKU_VENTZEILE + (42 - ico_verbraucher_aus.
height) / 2 );
230 sprintf ( text,
" %3i%%", icon.soc );
231 gfx_draw_soc ( AKKU_SPALTE_1 - 60 / 2, AKKU_SOCZEILE + (40 - 30) / 2, icon.soc_color );
236 sprintf ( text,
" %2i'C", icon.temperatur );
237 gfx_draw_temperatur ( AKKU_SPALTE_1 - 24 / 2, AKKU_TEMPZEILE + (50 - 40) / 2, icon.temp_color );
242 sprintf ( text,
"%5imA", icon.mAmp );
248 sprintf ( text,
" %4.2fV", icon.volt );
254 sprintf ( text,
" %3i%%", icon.soh );
255 gfx_draw_soh ( AKKU_SPALTE_1 - 26 / 2, AKKU_SOHZEILE + (53 - 52) / 2 );
289 if ( !(screen_flag == SCREEN_FLAG_LADEN) )
294 screen_flag = SCREEN_FLAG_LADEN;
299 gfx_draw_soc ( 120 - 60 / 2, (50 - 30) / 2, icon.soc_color );
311 gfx_draw_battery ( LADEN_SPALTE_2 - 7, LADEN_BATZEILE_1 + 7, icon.battery_color[0], GFX_BAT_NO_CROSS );
312 gfx_draw_battery ( LADEN_SPALTE_3 - 7, LADEN_BATZEILE_1 + 7, icon.battery_color[4], GFX_BAT_NO_CROSS );
314 sprintf ( text,
"%5imA", icon.mAmp[0] );
318 sprintf ( text,
"%5imA", icon.mAmp[4] );
326 gfx_draw_battery ( LADEN_SPALTE_2 - 7, LADEN_BATZEILE_2 + 7, icon.battery_color[1], GFX_BAT_NO_CROSS );
327 gfx_draw_battery ( LADEN_SPALTE_3 - 7, LADEN_BATZEILE_2 + 7, icon.battery_color[5], GFX_BAT_NO_CROSS );
329 sprintf ( text,
"%5imA", icon.mAmp[1] );
333 sprintf ( text,
"%5imA", icon.mAmp[5] );
341 gfx_draw_battery ( LADEN_SPALTE_2 - 7, LADEN_BATZEILE_3 + 7, icon.battery_color[2], GFX_BAT_NO_CROSS );
342 gfx_draw_battery ( LADEN_SPALTE_3 - 7, LADEN_BATZEILE_3 + 7, icon.battery_color[6], GFX_BAT_NO_CROSS );
344 sprintf ( text,
"%5imA", icon.mAmp[2] );
348 sprintf ( text,
"%5imA", icon.mAmp[6] );
356 gfx_draw_battery ( LADEN_SPALTE_2 - 7, LADEN_BATZEILE_4 + 7, icon.battery_color[3], GFX_BAT_NO_CROSS );
357 gfx_draw_battery ( LADEN_SPALTE_3 - 7, LADEN_BATZEILE_4 + 7, icon.battery_color[7], GFX_BAT_NO_CROSS );
359 sprintf ( text,
"%5imA", icon.mAmp[3] );
363 sprintf ( text,
"%5imA", icon.mAmp[7] );
405 screen_flag = SCREEN_FLAG_WARNUNG;
421 sprintf ( text,
"< Ckrit " );
422 color = GFX_COLOR_RED;
426 sprintf ( text,
" OK " );
427 color = GFX_COLOR_GREEN;
429 gfx_draw_soc ( WARN_SPALTE_1 - 60 / 2, WARN_SOCZEILE + (60 - 30) / 2, icon.soc_color );
434 if ( icon.temperatur == 2 )
436 sprintf ( text,
"> Tkrit " );
437 color = GFX_COLOR_RED;
439 else if ( icon.temperatur == 1 )
441 sprintf ( text,
"> Tupper" );
442 color = GFX_COLOR_BLACK;
446 sprintf ( text,
" OK " );
447 color = GFX_COLOR_BLACK;
449 gfx_draw_temperatur ( WARN_SPALTE_1 - 24 / 2, WARN_TEMPZEILE + (70 - 45) / 2, icon.temp_color );
456 sprintf ( text,
"< Vmin " );
457 color = GFX_COLOR_RED;
461 sprintf ( text,
" OK " );
462 color = GFX_COLOR_BLACK;
471 sprintf ( text,
"< Min " );
472 color = GFX_COLOR_RED;
476 sprintf ( text,
" OK " );
477 color = GFX_COLOR_BLACK;
479 gfx_draw_soh ( WARN_SPALTE_1 - 26 / 2, WARN_SOHZEILE + (60 - 52) / 2 );
484 gfx_draw_filled_rect( 0, WARN_HINWEIS, gfx_get_width (), gfx_get_height () - WARN_HINWEIS, GFX_COLOR_RED );
509 screen_flag = SCREEN_FLAG_HOME;
510 if ( PORTD_IN & LADE_POWER_IN_INT_bm )
540 gfx_draw_filled_rect( 0, WARN_HINWEIS, gfx_get_width (), gfx_get_height () - WARN_HINWEIS, GFX_COLOR_WHITE );
574 auswahl_batterie[0].x = BETRIEB_SPALTE_2 - 17;
575 auswahl_batterie[0].y = BETRIEB_BATZEILE_1 + 20;
577 auswahl_batterie[1].x = BETRIEB_SPALTE_2 - 17;
578 auswahl_batterie[1].y = BETRIEB_BATZEILE_2 + 20;
580 auswahl_batterie[2].x = BETRIEB_SPALTE_2 - 17;
581 auswahl_batterie[2].y = BETRIEB_BATZEILE_3 + 20;
583 auswahl_batterie[3].x = BETRIEB_SPALTE_2 - 17;
584 auswahl_batterie[3].y = BETRIEB_BATZEILE_4 + 20;
586 auswahl_batterie[4].x = BETRIEB_SPALTE_3 - 17;
587 auswahl_batterie[4].y = BETRIEB_BATZEILE_1 + 20;
589 auswahl_batterie[5].x = BETRIEB_SPALTE_3 - 17;
590 auswahl_batterie[5].y = BETRIEB_BATZEILE_2 + 20;
592 auswahl_batterie[6].x = BETRIEB_SPALTE_3 - 17;
593 auswahl_batterie[6].y = BETRIEB_BATZEILE_3 + 20;
595 auswahl_batterie[7].x = BETRIEB_SPALTE_3 - 17;
596 auswahl_batterie[7].y = BETRIEB_BATZEILE_4 + 20;
void gfx_draw_soh(uint16_t x, uint16_t y)
Zeichnet das SOH-Symbol.
void gfx_draw_voltage(uint16_t x, uint16_t y)
Zeichnet ein gelbes Warndreieck mit einem Blitz.
void gfx_draw_warning(uint16_t x, uint16_t y)
Zeichnet ein Ausrufezeichen als Warnungssymbol.
struct font basic_6x7
Initialise font BPMONO 10x14.
void gfx_draw_soc(uint16_t x, uint16_t y, uint8_t charge)
Zeichnet das SOC-Symbol, eine horizontale Batterie mit gefüllten Segmenten und verschiedenen Farben...
Variablentyp zur Darstellung des Laden-Screen.
struct font big_font_16x16
Initialise font BPMONO 10x16.
void screen_akku_warnung(scr_warning_t icon)
Der Warnung-Screen.
bool verbraucher
Verbraucher ein- oder ausgeschaltet.
#define GFX_COLOR_TRANSPARENT
Value used as input to font functions to give a transparent background region.
void screen_akku_info(scr_info_t icon)
Der Infoscreen.
void gfx_draw_current(uint16_t x, uint16_t y)
Zeichnet ein gelbes Warndreieck mit einem Stecker.
void screen_laden(scr_laden_t icon)
Der Ladescreen.
void screen_betrieb(scr_betrieb_t icon)
Der Standard Betriebsscreen.
void screen_init(void)
Koordinaten für die Markierung ausgewählter Zeilen wird initialisiert.
#define gfx_draw_rect(x, y, width, height, color)
Standard Header Datei, Definition der Batteriekonstanten und Grenzwerte.
void message_notaus(void)
Messagebox mit Text NOTAUS.
Variablentyp zur Darstellung des Info-Screen.
void gfx_draw_hor_battery(uint16_t x, uint16_t y, uint16_t color, uint8_t cross)
Zeichnet eine große horizontale Batterie.
void screen_home(void)
Der Home-Screen.
Variablentyp zur Darstellung des Betriebs-Screen.
void gfx_draw_battery(uint16_t x, uint16_t y, uint16_t color, uint8_t cross)
Zeichnet eine kleine vertikale Batterie.
struct font bpmono_10x16
Initialise font BPMONO 10x16.
#define gfx_draw_filled_rect(x, y, width, height, color)
void gfx_draw_temperatur(uint16_t x, uint16_t y, uint16_t color)
Zeichnet ein Thermometer, die Quecksilbersäule in unterschiedlichen Farben.
Standardheader und Positionen der Zeilen und Spalten auf den jeweiligen Screens.
Variablentyp zur Darstellung des Warnung-Screen.
void gfx_draw_string_aligned(const char *str, gfx_coord_t x, gfx_coord_t y, const struct font *font, const gfx_color_t bg_color, const gfx_color_t text_color, enum gfx_text_position text_pos, enum gfx_text_alignment text_align)
Draws an aligned string to the display.
#define gfx_draw_bitmap(bmp, x, y)