25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
842 B

  1. #include "Core.h"
  2. #include "Config.h"
  3. #include "Flash.h"
  4. #define LOGGER_NAME "Core"
  5. namespace core {
  6. uint16_t sleepTime = SLEEP_DEFAULT_TIME_SECONDS;;
  7. void main() {
  8. VERBOSE("main");
  9. PositionEntryMetadata metadata;
  10. if (positions::acquire(metadata)) {
  11. positions::appendLast(metadata);
  12. setSleepTime();
  13. }
  14. if (positions::needsToSend()) {
  15. positions::send();
  16. }
  17. }
  18. void setSleepTime() {
  19. setSleepTime(gps::getVelocity());
  20. }
  21. void setSleepTime(uint8_t velocity) {
  22. sleepTime = SLEEP_DEFAULT_TIME_SECONDS;
  23. for (uint8_t i = 0; i < flash::getArraySize(config::defaultSleepTimings); i++) {
  24. sleepTimings_t timing;
  25. flash::read(&config::defaultSleepTimings[i], timing);
  26. if (velocity > timing.speed) continue;
  27. sleepTime = timing.seconds;
  28. break;
  29. }
  30. VERBOSE_FORMAT("setSleepTime", "%d", sleepTime);
  31. }
  32. }