settings.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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_UART_LOG_MODE 6
  12. #define CONF_U8_LAST 6
  13. /* UART log mode values (CONF_U8_UART_LOG_MODE) */
  14. #define UART_LOG_MODE_MIXED 0 /* NMEA and system log interleaved (default) */
  15. #define UART_LOG_MODE_NMEA 1 /* NMEA only */
  16. #define UART_LOG_MODE_SYSTEM 2 /* system log only */
  17. /* flags list - max 31 */
  18. #define CONFFLAG_DISABLE_FILTERS 0
  19. #define CONFFLAG_ENABLE_SBAS 1
  20. #define CONFFLAG_LOGGING_AFTER_BOOT 2
  21. #define CONFFLAG_AUTO_PAUSE 3
  22. #define CONFFLAG_RESET_ON_NEW_FILE 4
  23. #define CONFFLAG_VERBOSE_LOG 5
  24. #define CONFFLAG_LAST 5
  25. /* GNSS modes */
  26. #define GNSS_MODE_GPS_GLONASS_GALILEO 0
  27. #define GNSS_MODE_GPS 1
  28. #define GNSS_MODE_GPS_GALILEO 2
  29. #define GNSS_MODE_GALILEO 3
  30. #define GNSS_MODE_GPS_BEIDOU 4
  31. #define GNSS_MODE_BEIDOU 5
  32. struct config_s {
  33. union {
  34. unsigned char conf_u8[16];
  35. struct {
  36. unsigned char gnss_mode; // 0
  37. unsigned char skip_points; // 1
  38. unsigned char auto_pause_time; // 2
  39. unsigned char auto_pause_dist; // 3
  40. unsigned char min_sats; // 4
  41. unsigned char auto_pause_speed; // 5
  42. unsigned char uart_log_mode; // 6
  43. };
  44. };
  45. unsigned char flags[4];
  46. };
  47. extern const __flash unsigned char limits_max_u8[];
  48. extern const __flash unsigned char limits_min_u8[];
  49. extern __flash const char *gnss_names[];
  50. extern __flash const char *uart_log_mode_names[];
  51. extern __flash const struct menu_struct settings_menu;
  52. unsigned char settings_load(void); /* 0 - ok, 1 - error */
  53. void settings_store(void);
  54. unsigned char check_config_data(void); /* 0 - ok, 1 - error */
  55. void settings_display_and_modify_bool(unsigned char mindex, unsigned char k);
  56. void settings_display_and_modify_u8(unsigned char mindex, unsigned char k);
  57. unsigned char get_flag(unsigned char index);
  58. void set_flag(unsigned char index, unsigned char val);
  59. void settings_bool_disp_default(unsigned char val);
  60. void display_current_uart_log_mode(void);