You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 rivejä
715 B

  1. #include "Core.h"
  2. #include "Config.h"
  3. #define LOGGER_NAME "Core"
  4. namespace core {
  5. uint16_t sleepTime = SLEEP_DEFAULT_TIME_SECONDS;;
  6. namespace details {
  7. template<typename T, size_t N> size_t getFlashArraySize(T(&)[N]) { return N; }
  8. template<typename T> void readFromFlash(const T *source, T &dest) {
  9. memcpy_P(&dest, source, sizeof(T));
  10. }
  11. }
  12. void setSleepTime(uint8_t velocity) {
  13. for (uint8_t i = 0; i < details::getFlashArraySize(config::defaultSleepTimings); i++) {
  14. sleepTimings_t timing;
  15. details::readFromFlash(&config::defaultSleepTimings[i], timing);
  16. if (velocity > timing.speed) continue;
  17. sleepTime = timing.seconds;
  18. return;
  19. }
  20. sleepTime = SLEEP_DEFAULT_TIME_SECONDS;
  21. }
  22. }