Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

49 Zeilen
1.0 KiB

  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. gps::powerOn();
  9. SIM808_GPS_STATUS gpsStatus = gps::acquireCurrentPosition(GPS_DEFAULT_TOTAL_TIMEOUT_MS);
  10. gps::powerOff();
  11. if (gpsStatus > SIM808_GPS_STATUS::NO_FIX) {
  12. tmElements_t time;
  13. gps::getTime(time);
  14. rtc::powerOn();
  15. rtc::setTime(time);
  16. rtc::powerOff();
  17. positions::appendLast();
  18. uint8_t velocity;
  19. gps::getVelocity(velocity);
  20. core::setSleepTime(velocity);
  21. }
  22. if (positions::needsToSend()) {
  23. positions::send();
  24. }
  25. mainunit::deepSleep(core::sleepTime);
  26. }
  27. void setSleepTime(uint8_t velocity) {
  28. for (uint8_t i = 0; i < flash::getFlashArraySize(config::defaultSleepTimings); i++) {
  29. sleepTimings_t timing;
  30. flash::readFromFlash(&config::defaultSleepTimings[i], timing);
  31. if (velocity > timing.speed) continue;
  32. sleepTime = timing.seconds;
  33. return;
  34. }
  35. sleepTime = SLEEP_DEFAULT_TIME_SECONDS;
  36. }
  37. }