100 lines
1.7 KiB
C++
100 lines
1.7 KiB
C++
/*
|
|
* gui.cpp
|
|
*
|
|
* Created on: 25.11.2018
|
|
* Author: Hendrik Schutter
|
|
*/
|
|
|
|
#include "openChargeMicro.h"
|
|
|
|
|
|
gui::gui() {
|
|
|
|
}
|
|
gui::~gui() {
|
|
|
|
}
|
|
|
|
void gui::gui_init(){
|
|
oled.oled_init();
|
|
}
|
|
|
|
|
|
void gui::gui_info(){
|
|
|
|
oled.oled_clear_screen();
|
|
oled.oled_clear_screen();
|
|
oled.oled_gotoxy(0,0);
|
|
oled.oled_write("OpenChargeMicro");
|
|
oled.oled_gotoxy(0,2);
|
|
oled.oled_write("HW: 0.1 SW: dev");
|
|
oled.oled_gotoxy(0,6);
|
|
oled.oled_write("Akkus einstecken");
|
|
|
|
}
|
|
|
|
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);
|
|
|
|
sprintf(buffer, "----%02d:%02d:%02d----", pTime.diffHour, pTime.diffMinute, pTime.diffSecond);
|
|
|
|
//sprintf(buffer, "%lu", pTime);
|
|
|
|
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
|
|
dtostrf( (double) (pCapacity / 1000.0), 3, 2, charCapacity);
|
|
sprintf(buffer, "C: %smAh", charCapacity);
|
|
} else {
|
|
//µAh
|
|
//dtostrf(pCapacity, 1, 2, charCapacity);
|
|
sprintf(buffer, "C: %iuAh", (int) pCapacity);
|
|
}
|
|
|
|
oled.oled_write_str(buffer);
|
|
|
|
}
|
|
|
|
void gui::gui_write(char* str){
|
|
oled.oled_clear_screen();
|
|
oled.oled_gotoxy(0,0);
|
|
oled.oled_write_str(str);
|
|
}
|