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.

86 line
2.1 KiB

  1. #pragma once
  2. #include <Arduino.h>
  3. #define BACKUP_ENABLE_SDCARD 0
  4. #define BACKUP_ENABLE_NETWORK 1
  5. #if BACKUP_ENABLE_NETWORK
  6. #include "NetworkPositionsConfig.h"
  7. #endif
  8. #define SIM808_BAUDRATE 4800
  9. #define CONFIG_ADDR 0
  10. #define CONFIG_RESERVED_SIZE 128
  11. #define CONFIG_SEED 13
  12. #define VERSION "1.00"
  13. #pragma region Default configuration values
  14. #define MENU_TIMEOUT 10000
  15. /**
  16. \def SLEEP_DEFAULT_TIME_SECONDS
  17. Hard coded value for default sleep time between position acquisitions.
  18. Exprimed in seconds
  19. */
  20. #define SLEEP_DEFAULT_TIME_SECONDS 1800
  21. #define SLEEP_DEFAULT_INCREASE_THRESHOLD 3
  22. #define GPS_DEFAULT_INTERMEDIATE_TIMEOUT_MS 10000
  23. #define GPS_DEFAULT_TOTAL_TIMEOUT_MS 80000
  24. #define NETWORK_DEFAULT_INTERMEDIATE_TIMEOUT_MS 6000
  25. #define NETWORK_DEFAULT_TOTAL_TIMEOUT_MS 80000
  26. #define NETWORK_DEFAULT_NO_NETWORK_QUALITY_THRESHOLD 8
  27. #define NETWORK_DEFAULT_NO_NETWORK_TRIES 5
  28. #pragma endregion
  29. #define SLEEP_TIMING_TIME(hours, minutes) hours * 60 + minutes
  30. #define SLEEP_TIMING_MIN SLEEP_TIMING_TIME(0, 0)
  31. #define SLEEP_TIMING_MAX SLEEP_TIMING_TIME(23, 59)
  32. struct sleepTimings_t {
  33. uint8_t speed;
  34. uint16_t timeMin;
  35. uint16_t timeMax;
  36. uint16_t seconds;
  37. };
  38. struct config_t {
  39. uint8_t seed;
  40. char version[5];
  41. uint16_t firstEntry;
  42. uint16_t lastEntry;
  43. #if BACKUP_ENABLE_NETWORK
  44. networkConfig_t network;
  45. #endif
  46. };
  47. namespace config {
  48. static const sleepTimings_t defaultSleepTimings[] PROGMEM = {
  49. { 3, SLEEP_TIMING_TIME(16, 00), SLEEP_TIMING_TIME(19, 59), 3600 },
  50. { 3, SLEEP_TIMING_TIME(20, 00), SLEEP_TIMING_MAX, SLEEP_DEFAULT_TIME_SECONDS },
  51. { 3, SLEEP_TIMING_MIN, SLEEP_TIMING_TIME(8, 29), SLEEP_DEFAULT_TIME_SECONDS },
  52. { 3, SLEEP_TIMING_TIME(8, 30), SLEEP_TIMING_TIME(15, 59), 10800 },
  53. { 5, SLEEP_TIMING_MIN, SLEEP_TIMING_MAX, 900 },
  54. { 20, SLEEP_TIMING_MIN, SLEEP_TIMING_MAX, 600 },
  55. { 30, SLEEP_TIMING_MIN, SLEEP_TIMING_MAX, 540 },
  56. { 50, SLEEP_TIMING_MIN, SLEEP_TIMING_MAX, 480 },
  57. { 80, SLEEP_TIMING_MIN, SLEEP_TIMING_MAX, 240 },
  58. { 100, SLEEP_TIMING_MIN, SLEEP_TIMING_MAX, 210 },
  59. { 180, SLEEP_TIMING_MIN, SLEEP_TIMING_MAX, 180 },
  60. };
  61. namespace main {
  62. extern config_t value;
  63. void setup();
  64. void save();
  65. void reset();
  66. }
  67. }