settings.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #pragma once
  2. #include <avr/eeprom.h>
  3. #include "working_modes.h"
  4. /* u8 list - max 15 */
  5. #define CONF_U8_GNSS_MODE 0
  6. #define CONF_U8_SKIP_POINTS 1
  7. #define CONF_U8_AUTO_PAUSE_TIME 2
  8. #define CONF_U8_AUTO_PAUSE_DIST 3
  9. #define CONF_U8_MIN_SATS 4
  10. #define CONF_U8_AUTO_PAUSE_SPEED 5
  11. #define CONF_U8_LAST 5
  12. /* flags list - max 31 */
  13. #define CONFFLAG_DISABLE_FILTERS 0
  14. #define CONFFLAG_ENABLE_SBAS 1
  15. #define CONFFLAG_LOGGING_AFTER_BOOT 2
  16. #define CONFFLAG_AUTO_PAUSE 3
  17. #define CONFFLAG_RESET_ON_NEW_FILE 4
  18. #define CONFFLAG_LAST 4
  19. /* GNSS modes */
  20. #define GNSS_MODE_GPS_GLONASS_GALILEO 0
  21. #define GNSS_MODE_GPS 1
  22. #define GNSS_MODE_GPS_GALILEO 2
  23. #define GNSS_MODE_GALILEO 3
  24. #define GNSS_MODE_GPS_BEIDOU 4
  25. #define GNSS_MODE_BEIDOU 5
  26. struct config_s {
  27. union {
  28. unsigned char conf_u8[16];
  29. struct {
  30. unsigned char gnss_mode; // 0
  31. unsigned char skip_points; // 1
  32. unsigned char auto_pause_time; // 2
  33. unsigned char auto_pause_dist; // 3
  34. unsigned char min_sats; // 4
  35. unsigned char auto_pause_speed; // 5
  36. };
  37. };
  38. unsigned char flags[4];
  39. };
  40. extern const __flash unsigned char limits_max_u8[];
  41. extern const __flash unsigned char limits_min_u8[];
  42. extern __flash const char *gnss_names[];
  43. extern __flash const struct menu_struct settings_menu;
  44. unsigned char settings_load(void); /* 0 - ok, 1 - error */
  45. void settings_store(void);
  46. unsigned char check_config_data(void); /* 0 - ok, 1 - error */
  47. void settings_display_and_modify_bool(unsigned char mindex, unsigned char k);
  48. void settings_display_and_modify_u8(unsigned char mindex, unsigned char k);
  49. unsigned char get_flag(unsigned char index);
  50. void set_flag(unsigned char index, unsigned char val);
  51. void settings_bool_disp_default(unsigned char val);