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

104 lines
2.9 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.10"
  13. #define CONFIG_DEFAULT_BATTERY_ALERT_LEVEL1 45
  14. #define CONFIG_DEFAULT_BATTERY_ALERT_LEVEL2 38
  15. #define CONFIG_DEFAULT_BATTERY_ALERT_CLEAR 60
  16. #define CONFIG_DEFAULT_ACTIVE_ALERTS 0
  17. #define CONFIG_DEFAULT_CONTACT_PHONE "+642568452"
  18. #define SLEEP_TIMING_TIME(hours, minutes) hours * 60 + minutes
  19. #pragma region Default configuration values
  20. #define MENU_TIMEOUT 10000
  21. /**
  22. \def SLEEP_DEFAULT_TIME_SECONDS
  23. Hard coded value for default sleep time between position acquisitions.
  24. Exprimed in seconds
  25. */
  26. #define SLEEP_DEFAULT_TIME_SECONDS 1800
  27. #define SLEEP_DEFAULT_STOPPED_THRESHOLD 5
  28. #define SLEEP_DEFAULT_PAUSING_TIME_SECONDS 270
  29. #define SLEEP_TIMING_MIN SLEEP_TIMING_TIME(0, 0)
  30. #define SLEEP_TIMING_MAX SLEEP_TIMING_TIME(23, 59)
  31. #define SLEEP_TIMING_MIN_MOVING_VELOCITY 5
  32. #define GPS_DEFAULT_INTERMEDIATE_TIMEOUT_MS 10000L
  33. #define GPS_DEFAULT_TOTAL_TIMEOUT_MS 80000L
  34. #define GPS_DEFAULT_MISSED_POSITION_GAP_KM 2
  35. #define NETWORK_DEFAULT_INTERMEDIATE_TIMEOUT_MS 10000L
  36. #define NETWORK_DEFAULT_TOTAL_TIMEOUT_MS 80000L
  37. #define NETWORK_DEFAULT_NO_NETWORK_QUALITY_THRESHOLD 8
  38. #define NETWORK_DEFAULT_NO_NETWORK_TRIES 5
  39. #define ALERT_SUSPICIOUS_RTC_TEMPERATURE 0
  40. #pragma endregion
  41. struct sleepTimings_t {
  42. uint8_t speed;
  43. uint16_t timeMin;
  44. uint16_t timeMax;
  45. uint16_t seconds;
  46. };
  47. struct config_t {
  48. uint8_t seed; //sizeof = 1
  49. char version[5]; //sizeof = 5
  50. uint16_t firstEntry; //sizeof = 2
  51. uint16_t lastEntry; //sizeof = 2
  52. #if BACKUP_ENABLE_NETWORK
  53. networkConfig_t network; //sizeof = 73
  54. #else
  55. char reserved[73];
  56. #endif
  57. uint8_t alertBatteryLevel1; //sizeof = 1
  58. uint8_t alertBatteryLevel2; //sizeof = 1
  59. uint8_t alertBatteryLevelClear; //sizeof = 1
  60. uint8_t activeAlerts; //sizeof = 1
  61. char contactPhone[15]; //sizeof = 15
  62. }; //sizeof = 29 + 73 = 102
  63. namespace config {
  64. static const sleepTimings_t defaultSleepTimings[] PROGMEM = {
  65. { 0, SLEEP_TIMING_TIME(16, 00), SLEEP_TIMING_TIME(19, 59), 3600 },
  66. { 0, SLEEP_TIMING_TIME(20, 00), SLEEP_TIMING_MAX, SLEEP_DEFAULT_TIME_SECONDS },
  67. { 0, SLEEP_TIMING_MIN, SLEEP_TIMING_TIME(8, 29), SLEEP_DEFAULT_TIME_SECONDS },
  68. { 0, SLEEP_TIMING_TIME(8, 30), SLEEP_TIMING_TIME(15, 59), 10800 },
  69. { SLEEP_TIMING_MIN_MOVING_VELOCITY, SLEEP_TIMING_MIN, SLEEP_TIMING_MAX, 540 },
  70. { 10, SLEEP_TIMING_MIN, SLEEP_TIMING_MAX, 270 },
  71. { 20, SLEEP_TIMING_MIN, SLEEP_TIMING_MAX, 225 },
  72. { 30, SLEEP_TIMING_MIN, SLEEP_TIMING_MAX, 240 },
  73. { 45, SLEEP_TIMING_MIN, SLEEP_TIMING_MAX, 280 },
  74. { 65, SLEEP_TIMING_MIN, SLEEP_TIMING_MAX, 276 },
  75. { 85, SLEEP_TIMING_MIN, SLEEP_TIMING_MAX, 225 }
  76. };
  77. namespace main {
  78. extern config_t value;
  79. void setup();
  80. void save();
  81. void reset();
  82. }
  83. }