2018-11-25 16:58:13 +01:00
/*
* gui . cpp
*
* Created on : 25.11 .2018
* Author : Hendrik Schutter
*/
# include "openChargeMicro.h"
gui : : gui ( ) {
2018-11-25 22:04:09 +01:00
2018-11-25 16:58:13 +01:00
}
gui : : ~ gui ( ) {
}
2018-11-25 22:19:42 +01:00
void gui : : gui_init ( ) {
2018-11-25 22:04:09 +01:00
oled . oled_init ( ) ;
2018-11-25 22:19:42 +01:00
oled . oled_gotoxy ( 0 , 1 ) ;
oled . oled_write ( __DATE__ ) ;
2018-11-25 22:04:09 +01:00
2018-11-25 22:19:42 +01:00
oled . oled_font_size ( 2 ) ;
oled . oled_gotoxy ( 0 , 4 ) ;
oled . oled_write ( " GPL 3.0 " ) ;
oled . oled_font_size ( 0 ) ;
}
2018-11-25 22:04:09 +01:00
2018-11-25 22:19:42 +01:00
void gui : : gui_info ( ) {
2018-11-25 22:04:09 +01:00
oled . oled_clear_screen ( ) ;
2018-11-25 22:19:42 +01:00
oled . oled_gotoxy ( 0 , 0 ) ;
2018-11-25 22:04:09 +01:00
oled . oled_write ( " OpenChargeMicro " ) ;
2018-11-25 22:19:42 +01:00
oled . oled_gotoxy ( 0 , 2 ) ;
2018-11-25 22:04:09 +01:00
oled . oled_write ( " HW: 0.1 SW: dev " ) ;
2018-11-25 22:19:42 +01:00
oled . oled_gotoxy ( 0 , 6 ) ;
2018-11-25 22:04:09 +01:00
oled . oled_write ( " Akkus einstecken " ) ;
}
2018-11-25 16:58:13 +01:00
void gui : : gui_print ( int pNr , bool pStatus , struct time_t pTime , double pVoltage ,
int pCurrent , unsigned long int pCapacity ) {
oled . oled_clear_screen ( ) ;
char buffer [ 50 ] ;
oled . oled_font_size ( 0 ) ;
/* Number and Status */
oled . oled_gotoxy ( 0 , 0 ) ;
if ( pStatus ) {
//charging
sprintf ( buffer , " #%i - laedt " , pNr ) ;
} else {
//full
sprintf ( buffer , " #%i - voll " , pNr ) ;
}
oled . oled_write_str ( buffer ) ;
/* time */
oled . oled_gotoxy ( 0 , 2 ) ;
2018-11-25 22:19:42 +01:00
sprintf ( buffer , " ----%02d:%02d:%02d---- " , pTime . diffHour , pTime . diffMinute ,
pTime . diffSecond ) ;
2018-11-25 16:58:13 +01:00
oled . oled_write_str ( buffer ) ;
/* voltage and current */
oled . oled_gotoxy ( 0 , 4 ) ;
char charVoltage [ 10 ] ;
dtostrf ( pVoltage , 1 , 2 , charVoltage ) ;
sprintf ( buffer , " U:%sV I:%imA " , charVoltage , pCurrent ) ;
oled . oled_write_str ( buffer ) ;
/* capacity */
oled . oled_gotoxy ( 0 , 6 ) ;
char charCapacity [ 10 ] ;
if ( pCapacity > 1000 ) {
//mAh
2018-11-25 22:19:42 +01:00
dtostrf ( ( double ) ( pCapacity / 1000.0 ) , 3 , 2 , charCapacity ) ;
2018-11-25 16:58:13 +01:00
sprintf ( buffer , " C: %smAh " , charCapacity ) ;
} else {
//µAh
//dtostrf(pCapacity, 1, 2, charCapacity);
sprintf ( buffer , " C: %iuAh " , ( int ) pCapacity ) ;
}
oled . oled_write_str ( buffer ) ;
}
2018-11-25 22:04:09 +01:00
2018-11-25 22:19:42 +01:00
void gui : : gui_write ( char * str ) {
2018-11-25 22:04:09 +01:00
oled . oled_clear_screen ( ) ;
2018-11-25 22:19:42 +01:00
oled . oled_gotoxy ( 0 , 0 ) ;
2018-11-25 22:04:09 +01:00
oled . oled_write_str ( str ) ;
}