#include "Core.h" #include "Config.h" #define LOGGER_NAME "Core" namespace core { uint16_t sleepTime = SLEEP_DEFAULT_TIME_SECONDS;; namespace details { template size_t getFlashArraySize(T(&)[N]) { return N; } template void readFromFlash(const T *source, T &dest) { memcpy_P(&dest, source, sizeof(T)); } } void setSleepTime(uint8_t velocity) { for (uint8_t i = 0; i < details::getFlashArraySize(config::defaultSleepTimings); i++) { sleepTimings_t timing; details::readFromFlash(&config::defaultSleepTimings[i], timing); if (velocity > timing.speed) continue; sleepTime = timing.seconds; return; } sleepTime = SLEEP_DEFAULT_TIME_SECONDS; } }