smartPOC-tx/include/config.h

152 lines
No EOL
3.9 KiB
C

#if !defined(_CONFIG_H)
#define _CONFIG_H
#include "FS.h"
#define FORMAT_SPIFFS_IF_FAILED true
#include "SPIFFS.h"
#include <ArduinoJson.h>
static String keySSID = "ssid";
static String keyPass = "pass";
static String cfgKeyWiFi1SSID = "wifi1_ssid";
static String cfgKeyWiFi1Pass = "wifi1_pass";
static String cfgKeyWiFi2SSID = "wifi2_ssid";
static String cfgKeyWiFi2Pass = "wifi2_pass";
static String cfgKeyWiFiAPSSID = "ap_ssid";
static String cfgKeyWiFiAPPass = "ap_pass";
//
static String cfgKeyMQTTHost = "mqtt_host";
static String cfgKeyMQTTPort = "mqtt_port";
static String cfgKeyMQTTUser = "mqtt_user";
static String cfgKeyMQTTPass = "mqtt_pass";
static String cfgKeyMQTTTopic = "mqtt_topic";
//
static String cfgKeyTXFreq = "tx_freq";
static String cfgKeyTXBaud = "tx_baud";
static String cfgKeyTXDeviation = "tx_dev";
static String cfgKeyTXTune = "tx_tune";
static String cfgKeyTXPower = "tx_power";
static String cfgKeyTXFlagEmptyQueue = "tx_empty_queue";
//
static String cfgKeyTimeInterval = "time_interval";
static String cfgKeyTimeEnable = "time_enable";
static String cfgKeyTimeFunction = "time_fun";
static String cfgKeyTimeMode = "time_mode";
static String cfgKeyTimeZone = "time_zone";
static String cfgKeyTimeRIC = "time_ric";
//
static String cfgKeyDWDInterval = "dwd_interval";
static String cfgKeyDWDEnable = "dwd_enable";
static String cfgKeyDWDRegion = "dwd_region";
static String cfgKeyDWDFunction = "dwd_fun";
//
static String cfgKeyIdleInterval = "idle_interval";
static String cfgKeyIdleEnable = "idle_enable";
static String cfgKeyIdleMode = "idle_mode";
//
static String cfgKeyMoWaSInterval = "mowas_interval";
static String cfgKeyMoWaSEnable = "mowas_enable";
static String cfgKeyMoWaSRegion = "mowas_region";
static String cfgKeyMoWaSFunction = "mowas_fun";
//
// static String cfgKeyDWDWXInterval = "dwdwx_interval";
static String cfgKeyDWDWXEnable = "dwdwx_enable";
static String cfgKeyDWDWXLatitude = "dwdwx_lat";
static String cfgKeyDWDWXLongitude = "dwdwx_lng";
static String cfgKeyDWDWXFunction = "dwdwx_fun";
//
static String cfgKeyBroadcastRIC = "broadcast_ric";
//
static String cfgKeyFlagPOCSAG_German = "pocsag_german";
static String cfgKeyFlagWebserverProtect = "webserver_protect";
static String cfgKeyDeviceName = "device_name";
static String cfgKeyOLEDTimeout = "oled_timeout";
//
static String cfgValEmpty = "";
typedef struct {
byte version;
char wifi1_ssid[33];
char wifi1_pass[65];
char wifi2_ssid[33];
char wifi2_pass[65];
char ap_ssid[33];
char ap_pass[65];
//
float tx_freq;
float tx_dev;
int tx_baud;
int tx_tune;
int tx_power;
//
char mqtt_host[63];
uint16_t mqtt_port;
char mqtt_user[63];
char mqtt_pass[63];
char mqtt_topic[63];
//
bool tx_empty_queue;
// brodcasts
int broadcast_ric;
// dwd
int dwd_interval;
bool dwd_enable;
char dwd_region[8];
int dwd_fun;
// mowas
int mowas_interval;
bool mowas_enable;
char mowas_region[32];
int mowas_fun;
//time
int time_interval;
bool time_enable;
int time_ric;
int time_fun;
int time_mode;
char time_zone[33];
//idle
bool idle_enable;
int idle_interval;
int idle_mode;
// umlauts
bool pocsag_german;
// device name
char device_name[33];
// oled
int oled_timeout;
bool webserver_protect;
// dwd-wx
// int dwdwx_interval;
bool dwdwx_enable;
float dwdwx_lat;
float dwdwx_lng;
int dwdwx_fun;
} cfg_t;
void setup_storage(cfg_t *out);
void read_config(cfg_t *out);
void write_config();
void create_default_config();
// contacts
void create_default_contactlist();
String contacts_tostring();
void contacts_write(String data);
//
String cfg_tostring(void);
void cfg_adjust(String key, bool val);
void cfg_adjust(String key, int val);
void cfg_adjust(String key, float val);
void cfg_adjust(String key, String value);
void cfg_startTransaction();
void cfg_write();
#endif