web_config.h 1.67 KB
Newer Older
1
2
3
#ifndef AMPEL_WEB_CONFIG_H_
#define AMPEL_WEB_CONFIG_H_

Eric Duminil's avatar
Notes    
Eric Duminil committed
4
#define STRING_LEN 64 //TODO: Shorter?
Eric Duminil's avatar
Eric Duminil committed
5

6
7
8
9
10
11
#if defined(ESP8266)
#  include <ESP8266WebServer.h>
#elif defined(ESP32)
#  include <WebServer.h>
#endif

Eric Duminil's avatar
Eric Duminil committed
12
namespace config {
Eric Duminil's avatar
Eric Duminil committed
13
  char* current_ssid();
Eric Duminil's avatar
Eric Duminil committed
14
  // Sensor
15
16
17
18
19
  extern uint16_t &measurement_timestep; // [s] Value between 2 and 1800 (range for SCD30 sensor).
  extern uint16_t &altitude_above_sea_level; // [m]
  extern uint16_t &co2_calibration_level; // [ppm]
  extern bool &auto_calibrate_sensor; // [true / false]
  extern float &temperature_offset; // [K] Sign isn't relevant.
Eric Duminil's avatar
Eric Duminil committed
20

Eric Duminil's avatar
Eric Duminil committed
21
  extern bool &wifi_active; // [true / false]
Eric Duminil's avatar
Eric Duminil committed
22
  void save(); // Save config to EEPROM
Eric Duminil's avatar
Eric Duminil committed
23

Eric Duminil's avatar
Eric Duminil committed
24
  // LED
25
26
27
  extern uint8_t &max_brightness;
  extern uint8_t &min_brightness;
  extern uint16_t &led_count;
Eric Duminil's avatar
Eric Duminil committed
28

Eric Duminil's avatar
Eric Duminil committed
29
  // Time server
Eric Duminil's avatar
Eric Duminil committed
30
  extern char *ntp_server;
Eric Duminil's avatar
Eric Duminil committed
31
32
33
  extern int16_t &time_zone; // [h]
  extern bool &daylight_saving_time; // [true / false]

Eric Duminil's avatar
Eric Duminil committed
34
  //CSV
Eric Duminil's avatar
Notes    
Eric Duminil committed
35
  bool csv_active(); //TODO: Find better names?
Eric Duminil's avatar
Eric Duminil committed
36
37
  extern uint16_t &csv_interval; // [s]

Eric Duminil's avatar
Eric Duminil committed
38
  // MQTT
Eric Duminil's avatar
Eric Duminil committed
39
  bool mqtt_active();
Eric Duminil's avatar
Eric Duminil committed
40
41
42
43
  extern char *mqtt_server;
  extern char *mqtt_user;
  extern char *mqtt_password;
  extern uint16_t &mqtt_port;
Eric Duminil's avatar
Eric Duminil committed
44
  extern uint16_t &mqtt_sending_interval; // [s]
Eric Duminil's avatar
Eric Duminil committed
45
  extern bool &mqtt_encryption; // [true / false]
Eric Duminil's avatar
Eric Duminil committed
46
  extern bool &allow_mqtt_commands; // [true / false]
Eric Duminil's avatar
Eric Duminil committed
47
48
49
50
51

  // LORAWAN
#if defined(ESP32)
  bool lorawan_active(); // also defined for ESP8266, and set to false
#endif
Eric Duminil's avatar
Eric Duminil committed
52
53
}

54
55
namespace web_config {
  void initialize();
Eric Duminil's avatar
Eric Duminil committed
56
57
  void setWifiConnectionCallback(void (*success_function)());
  void setWifiFailCallback(void (*fail_function)());
58
  void update();
Eric Duminil's avatar
Eric Duminil committed
59
60
61
62
63
64

#if defined(ESP8266)
  extern ESP8266WebServer http;
#elif defined(ESP32)
  extern WebServer http;
#endif
65
66
}
#endif