Air quality sensor
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
esp-airsensor/main/settings.h

102 lines
3.3 KiB

//
// Created by MightyPork on 2018/11/18.
//
#ifndef CSPEMU_SETTINGS_H
#define CSPEMU_SETTINGS_H
#include <stdint.h>
#include <stdbool.h>
#include <nvs.h>
#include <driver/uart.h>
#include <sdkconfig.h>
#include <bsec2.h>
#define CONSOLE_TELNET_PORT CONFIG_CONSOLE_TELNET_PORT
#define CONSOLE_PW_LEN CONFIG_CONSOLE_PW_LEN
#define USE_CAPTIVE_PORTAL 0
extern nvs_handle g_nvs_storage;
#define NTP_SRV_LEN 32
#define DEF_NTP_SRV "pool.ntp.org"
#define CO2_CALIB_DEF ({0,0,0,0,0})
/* type , name , suffix , defval , generate load/save funcs
* , , save fn - use 'none' if unused to avoid build errors
* , , , save fn var prefix */
#define SETTINGS_XTABLE() \
X(bool , wifi_enabled , , 1 , true , bool , &) /* ssid and pass are stored in flash by SDK funcs */ \
X(bool , sta_enabled , , 1 , true , bool , &) \
X(bool , ap_enabled , , 0 , true , bool , &) \
X(bool , console_echo , , 1 , true , bool , &) /* Console modes */ \
X(bool , console_ansi , , 1 , true , bool , &) \
X(char , console_pw, [CONSOLE_PW_LEN], "" , false , none , ) \
X(bool , ntp_enable , , 1 , true , bool , &) \
X(char , ntp_srv ,[NTP_SRV_LEN], DEF_NTP_SRV , false, none , ) \
X(uint16_t , co2_calib ,[5], {}, false, none , ) \
X(uint8_t , bsec_state ,[BSEC_MAX_STATE_BLOB_SIZE], {}, false, none , ) \
X(bool , dhcp_wd_enable , , 1 , true , bool , &) \
X(bool , dhcp_enable , , 1 , true , bool , &) \
X(uint32_t , static_ip , , 0 , true , u32 , &) \
X(uint32_t , static_ip_mask , , 0x00ffffff , true , u32 , &) /* 255.255.255.0 */ \
X(uint32_t , static_ip_gw , , 0x0100a8c0 , true , u32 , &) /* 192.168.0.1 */ \
X(uint32_t , ap_ip , , 0x0100a8c0 , true , u32 , &) /* 192.168.0.1 */ \
X(uint32_t , static_dns , , 0x08080808 , true , u32 , &) /* 8.8.8.8 */
enum settings_key_enum {
#undef X
#define X(pre,name,post,def,gen_nvs,nvs_format,save_prefix) \
SETTINGS_##name,
SETTINGS_ALL,
SETTINGS_XTABLE() // unfortunately the last bit is lowercase
};
/**
* Init the NVS namespace
*/
void settings_init(void);
/**
* Load settings from the NVS
*/
void settings_load(void);
/**
* Save the settings object to NVS
*/
void settings_persist(enum settings_key_enum what);
/**
* Load default rtable into the settings struct
* (called when the saved config is rejected by CSP)
*/
void settings_load_default_rtable(void);
/**
* Save the current CSP rtable into the settings object (can then be persisted)
*/
void cspemu_settings_store_rtable(void);
extern struct cspemu_settings g_Settings;
extern struct cspemu_globals g_State;
struct cspemu_globals {
bool wifi_inited;
};
struct cspemu_settings {
#undef X
#define X(pre,name,post,def,gen_nvs,nvs_format,save_prefix) \
pre name post;
SETTINGS_XTABLE()
};
uint16_t app_get_bootcount();
#endif //CSPEMU_SETTINGS_H