From b6ef726d8a84156bfe5d3ea792c94f142f2e0385 Mon Sep 17 00:00:00 2001 From: dakkar Date: Sun, 27 Mar 2022 13:58:31 +0100 Subject: show uptime --- display.h | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/display.h b/display.h index 5c9a4a9..a07c86d 100644 --- a/display.h +++ b/display.h @@ -11,15 +11,48 @@ #include "data.h" +class TimeStr { +private: + char str[10]; + + unsigned long cut(unsigned long &val, unsigned long max) { + unsigned long ret = val/max; + val %= max; + return ret; + } +public: + TimeStr() :str("000:00:00") {} + + const char *format(unsigned long now_millis) { + unsigned long now_s = now_millis/1000; + unsigned long now_m = cut(now_s,60); + unsigned long now_h = cut(now_m,60); + + str[0]='0' + cut(now_h,100); + str[1]='0' + cut(now_h,10); + str[2]='0' + now_h; + + str[4]='0' + cut(now_m,10); + str[5]='0' + now_m; + + str[7]='0' + cut(now_s,10); + str[8]='0' + now_s; + + return &str[0]; + } +}; + class Display { private: GxIO_Class io; GxEPD_Class display; + TimeStr timeStr; public: Display() : io(SPI, EPD_CS, EPD_DC, EPD_RSET), - display(io, EPD_RSET, EPD_BUSY) + display(io, EPD_RSET, EPD_BUSY), + timeStr() {} void start() { @@ -59,6 +92,10 @@ public: display.setCursor(120,30); display.print("Batt "); display.print(data->batteryVoltage); + display.setCursor(0,120); + display.print("Uptime "); + display.print(timeStr.format(millis())); + // "partial" update display.updateWindow(0, 0, GxEPD_WIDTH, GxEPD_HEIGHT, false); -- cgit v1.2.3