diff options
author | dakkar <dakkar@thenautilus.net> | 2022-03-27 13:58:31 +0100 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2022-03-27 13:58:36 +0100 |
commit | b6ef726d8a84156bfe5d3ea792c94f142f2e0385 (patch) | |
tree | 951fc4b27536a348b34029fe11258e2d55283bf1 | |
parent | fix pm low power reading (diff) | |
download | env-sensor-b6ef726d8a84156bfe5d3ea792c94f142f2e0385.tar.gz env-sensor-b6ef726d8a84156bfe5d3ea792c94f142f2e0385.tar.bz2 env-sensor-b6ef726d8a84156bfe5d3ea792c94f142f2e0385.zip |
show uptime
-rw-r--r-- | display.h | 39 |
1 files changed, 38 insertions, 1 deletions
@@ -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); |