save_config.h 4.57 KB
Newer Older
Eric Duminil's avatar
Eric Duminil committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96


// This file is generated, please do not edit.
// Change generate_ampel_config_h.py instead.

enum ConfigEntryType : unsigned short {
  Config_Type_Bool,
  Config_Type_UInt,
  Config_Type_Time,
  Config_Type_String,
  Config_Type_Password
};

struct ConfigShapeEntry {
  enum ConfigEntryType cfg_type;
  unsigned short cfg_len;
  const char* _cfg_key;
  union {
    void* as_void;
    bool* as_bool;
    unsigned int* as_uint;
    char* as_str;
  } cfg_val;
  const __FlashStringHelper* cfg_key() const { return FPSTR(_cfg_key); }
};

enum ConfigShapeId {
  Config_wifi_ssid,
  Config_wifi_password,
  Config_wifi_timeout,
  Config_measurement_timestep,
  Config_csv_interval,
  Config_temperature_offset,
  Config_altitude_above_sea_level,
  Config_atmospheric_co2_concentration,
  Config_auto_calibrate_sensor,
  Config_max_brightness,
  Config_min_brightness,
  Config_led_count,
  Config_http_user,
  Config_http_password,
  Config_mqtt_sending_interval,
  Config_mqtt_server,
  Config_mqtt_port,
  Config_mqtt_user,
  Config_mqtt_password,
  Config_ntp_server,
  Config_utc_offset_in_seconds,
  Config_bauds,
};
static constexpr char CFG_KEY_WIFI_SSID[] PROGMEM = "wifi_ssid";
static constexpr char CFG_KEY_WIFI_PASSWORD[] PROGMEM = "wifi_password";
static constexpr char CFG_KEY_WIFI_TIMEOUT[] PROGMEM = "wifi_timeout";
static constexpr char CFG_KEY_MEASUREMENT_TIMESTEP[] PROGMEM = "measurement_timestep";
static constexpr char CFG_KEY_CSV_INTERVAL[] PROGMEM = "csv_interval";
static constexpr char CFG_KEY_TEMPERATURE_OFFSET[] PROGMEM = "temperature_offset";
static constexpr char CFG_KEY_ALTITUDE_ABOVE_SEA_LEVEL[] PROGMEM = "altitude_above_sea_level";
static constexpr char CFG_KEY_ATMOSPHERIC_CO2_CONCENTRATION[] PROGMEM = "atmospheric_co2_concentration";
static constexpr char CFG_KEY_AUTO_CALIBRATE_SENSOR[] PROGMEM = "auto_calibrate_sensor";
static constexpr char CFG_KEY_MAX_BRIGHTNESS[] PROGMEM = "max_brightness";
static constexpr char CFG_KEY_MIN_BRIGHTNESS[] PROGMEM = "min_brightness";
static constexpr char CFG_KEY_LED_COUNT[] PROGMEM = "led_count";
static constexpr char CFG_KEY_HTTP_USER[] PROGMEM = "http_user";
static constexpr char CFG_KEY_HTTP_PASSWORD[] PROGMEM = "http_password";
static constexpr char CFG_KEY_MQTT_SENDING_INTERVAL[] PROGMEM = "mqtt_sending_interval";
static constexpr char CFG_KEY_MQTT_SERVER[] PROGMEM = "mqtt_server";
static constexpr char CFG_KEY_MQTT_PORT[] PROGMEM = "mqtt_port";
static constexpr char CFG_KEY_MQTT_USER[] PROGMEM = "mqtt_user";
static constexpr char CFG_KEY_MQTT_PASSWORD[] PROGMEM = "mqtt_password";
static constexpr char CFG_KEY_NTP_SERVER[] PROGMEM = "ntp_server";
static constexpr char CFG_KEY_UTC_OFFSET_IN_SECONDS[] PROGMEM = "utc_offset_in_seconds";
static constexpr char CFG_KEY_BAUDS[] PROGMEM = "bauds";
static constexpr ConfigShapeEntry configShape[] PROGMEM = {
  { Config_Type_String, sizeof(cfg::wifi_ssid)-1, CFG_KEY_WIFI_SSID, cfg::wifi_ssid },
  { Config_Type_Password, sizeof(cfg::wifi_password)-1, CFG_KEY_WIFI_PASSWORD, cfg::wifi_password },
  { Config_Type_UInt, 0, CFG_KEY_WIFI_TIMEOUT, &cfg::wifi_timeout },
  { Config_Type_UInt, 0, CFG_KEY_MEASUREMENT_TIMESTEP, &cfg::measurement_timestep },
  { Config_Type_UInt, 0, CFG_KEY_CSV_INTERVAL, &cfg::csv_interval },
  { Config_Type_UInt, 0, CFG_KEY_TEMPERATURE_OFFSET, &cfg::temperature_offset },
  { Config_Type_UInt, 0, CFG_KEY_ALTITUDE_ABOVE_SEA_LEVEL, &cfg::altitude_above_sea_level },
  { Config_Type_UInt, 0, CFG_KEY_ATMOSPHERIC_CO2_CONCENTRATION, &cfg::atmospheric_co2_concentration },
  { Config_Type_Bool, 0, CFG_KEY_AUTO_CALIBRATE_SENSOR, &cfg::auto_calibrate_sensor },
  { Config_Type_UInt, 0, CFG_KEY_MAX_BRIGHTNESS, &cfg::max_brightness },
  { Config_Type_UInt, 0, CFG_KEY_MIN_BRIGHTNESS, &cfg::min_brightness },
  { Config_Type_UInt, 0, CFG_KEY_LED_COUNT, &cfg::led_count },
  { Config_Type_String, sizeof(cfg::http_user)-1, CFG_KEY_HTTP_USER, cfg::http_user },
  { Config_Type_Password, sizeof(cfg::http_password)-1, CFG_KEY_HTTP_PASSWORD, cfg::http_password },
  { Config_Type_UInt, 0, CFG_KEY_MQTT_SENDING_INTERVAL, &cfg::mqtt_sending_interval },
  { Config_Type_String, sizeof(cfg::mqtt_server)-1, CFG_KEY_MQTT_SERVER, cfg::mqtt_server },
  { Config_Type_UInt, 0, CFG_KEY_MQTT_PORT, &cfg::mqtt_port },
  { Config_Type_String, sizeof(cfg::mqtt_user)-1, CFG_KEY_MQTT_USER, cfg::mqtt_user },
  { Config_Type_String, sizeof(cfg::mqtt_password)-1, CFG_KEY_MQTT_PASSWORD, cfg::mqtt_password },
  { Config_Type_String, sizeof(cfg::ntp_server)-1, CFG_KEY_NTP_SERVER, cfg::ntp_server },
  { Config_Type_UInt, 0, CFG_KEY_UTC_OFFSET_IN_SECONDS, &cfg::utc_offset_in_seconds },
  { Config_Type_UInt, 0, CFG_KEY_BAUDS, &cfg::bauds },
};