67 lines
1.7 KiB
C++
67 lines
1.7 KiB
C++
#include <logger.h>
|
|
#include "config.hpp"
|
|
#include "eink.hpp"
|
|
#include "io.hpp"
|
|
|
|
logging::Logger logger;
|
|
Eink eink;
|
|
IO io;
|
|
|
|
RTC_DATA_ATTR int bootCount = 0;
|
|
RTC_DATA_ATTR int updateCount = 0;
|
|
RTC_DATA_ATTR float last_temp = 20;
|
|
RTC_DATA_ATTR int last_battery = 0;
|
|
bool update = false;
|
|
|
|
|
|
void setup()
|
|
{
|
|
Serial.begin(115200);
|
|
logger.log(logging::LoggerLevel::LOGGER_LEVEL_INFO, "MAIN", "Boot number: %i", bootCount);
|
|
update = false;
|
|
#ifndef DEBUG
|
|
logger.setDebugLevel(logging::LoggerLevel::LOGGER_LEVEL_INFO);
|
|
#endif
|
|
io.setup_io();
|
|
io.set_low_power();
|
|
|
|
uint8_t battery = io.read_battery();
|
|
if (abs(battery - last_battery) >= 2)
|
|
{
|
|
last_battery = battery;
|
|
update = true;
|
|
}
|
|
logger.log(logging::LoggerLevel::LOGGER_LEVEL_INFO, "MAIN", "Battery: %i", battery);
|
|
|
|
float temp = io.read_temp();
|
|
|
|
logger.log(logging::LoggerLevel::LOGGER_LEVEL_INFO, "MAIN", "TEMP: %f", temp);
|
|
if (abs(temp - last_temp) >= 0.5 && temp > -120)
|
|
{
|
|
last_temp = temp;
|
|
update = true;
|
|
}
|
|
|
|
float internal_temp = io.read_internal_temp();
|
|
eink.setup_eink();
|
|
|
|
++bootCount;
|
|
if (update)
|
|
{
|
|
++updateCount;
|
|
eink.drawBattery(186, 14, battery); // eink width 250 - drawbattery width
|
|
eink.drawSignalBars(180 - 24 - 4, 12, 84); // drawbattery width - drawsignal
|
|
logger.log(logging::LoggerLevel::LOGGER_LEVEL_INFO, "MAIN", "TEMP: %f", temp);
|
|
eink.show_temp(temp);
|
|
eink.show_internal_temp(180 - 24 - 4 - 100, 12, internal_temp);
|
|
eink.show_count(180 - 24 - 4 - 100 - 60, 12, (float)bootCount, "c: ");
|
|
eink.show_count(180 - 24 - 4 - 100 - 60 - 50, 12, (float)bootCount, "u: ");
|
|
eink.display(true);
|
|
}
|
|
io.set_deep_sleep();
|
|
}
|
|
|
|
void loop()
|
|
{
|
|
}
|