#ifndef AMPEL_WEB_CONFIG_H_ #define AMPEL_WEB_CONFIG_H_ #define STRING_LEN 64 //TODO: Shorter? #if defined(ESP8266) # include #elif defined(ESP32) # include #endif namespace config { char* selected_ssid(); // Sensor 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. extern bool &wifi_active; // [true / false] void save(); // Save config to EEPROM // LED extern uint8_t &max_brightness; extern uint8_t &min_brightness; extern uint16_t &led_count; // Time server extern char *ntp_server; extern int16_t &time_zone; // [h] extern bool &daylight_saving_time; // [true / false] //CSV bool csv_active(); //TODO: Find better names? extern uint16_t &csv_interval; // [s] // MQTT bool mqtt_active(); extern char *mqtt_server; extern char *mqtt_user; extern char *mqtt_password; extern uint16_t &mqtt_port; extern uint16_t &mqtt_sending_interval; // [s] extern bool &mqtt_encryption; // [true / false] extern bool &allow_mqtt_commands; // [true / false] // LORAWAN #if defined(ESP32) bool lorawan_active(); // also defined for ESP8266, and set to false #endif } namespace web_config { void initialize(); void setWifiConnectionCallback(void (*success_function)()); void setWifiFailCallback(void (*fail_function)()); void update(); #if defined(ESP8266) extern ESP8266WebServer http; #elif defined(ESP32) extern WebServer http; #endif } #endif