added read write flag to the variables structure

This commit is contained in:
Bogdan Pilyugin 2023-08-08 16:49:29 +02:00
parent 14fe049a7d
commit d1ad7f5f97
2 changed files with 70 additions and 62 deletions

View File

@ -29,6 +29,9 @@
#include "esp_netif.h" #include "esp_netif.h"
#include "sdkconfig.h" #include "sdkconfig.h"
#define R (0)
#define RW (1)
typedef enum{ typedef enum{
VAR_ERROR = -1, VAR_ERROR = -1,
VAR_BOOL = 0, VAR_BOOL = 0,
@ -38,12 +41,15 @@ typedef enum{
VAR_FUNCT VAR_FUNCT
} rest_var_types; } rest_var_types;
typedef struct typedef struct
{ {
int id; int id;
char alias[32]; char alias[32];
void* ref; void* ref;
rest_var_types vartype; rest_var_types vartype;
int isWritable;
int minlen; int minlen;
int maxlen; int maxlen;
} rest_var_t; } rest_var_t;

View File

@ -52,74 +52,76 @@ static void funct_wifiscan(char *argres, int rw)
static void funct_wifiscanres(char *argres, int rw) static void funct_wifiscanres(char *argres, int rw)
{ {
int arg = atoi(argres); int arg = atoi(argres);
wifi_ap_record_t *R = GetWiFiAPRecord(arg); wifi_ap_record_t * Rec = GetWiFiAPRecord(arg);
if (!R) if (!Rec)
return; return;
snprintf(argres, MAX_DYNVAR_LENGTH, "{\"ssid\":\"%s\",\"rssi\":%i,\"ch\":%d}", R->ssid, R->rssi, snprintf(argres, MAX_DYNVAR_LENGTH, "{\"ssid\":\"%s\",\"rssi\":%i,\"ch\":%d}", Rec->ssid, Rec->rssi,
R->primary); Rec->primary);
} }
const rest_var_t ConfigVariables[] = const rest_var_t ConfigVariables[] =
{ {
/*FUNCTIONS*/ /*FUNCTIONS*/
{ 0, "time", &funct_time, VAR_FUNCT, 0, 0 }, { 0, "time", &funct_time, VAR_FUNCT, R, 0, 0 },
{ 0, "addone", &funct_addone, VAR_FUNCT, 0, 0 }, { 0, "addone", &funct_addone, VAR_FUNCT, R, 0, 0 },
{ 0, "wifi_scan", &funct_wifiscan, VAR_FUNCT, 0, 0 }, { 0, "wifi_scan", &funct_wifiscan, VAR_FUNCT, R, 0, 0 },
{ 0, "wifi_scan_res", &funct_wifiscanres, VAR_FUNCT, 0, 0 }, { 0, "wifi_scan_res", &funct_wifiscanres, VAR_FUNCT, R, 0, 0 },
/*CONSTANTS*/
{ 0, "firm_vers", CONFIG_IDF_TARGET_ARCH, VAR_STRING, R, 1, 64 },
/*VARIABLES*/ /*VARIABLES*/
{ 0, "net_bios_name", &SysConfig.NetBIOSName, VAR_STRING, 3, 31 }, { 0, "net_bios_name", &SysConfig.NetBIOSName, VAR_STRING, RW, 3, 31 },
{ 0, "sys_name", &SysConfig.SysName, VAR_STRING, 3, 31 }, { 0, "sys_name", &SysConfig.SysName, VAR_STRING, RW, 3, 31 },
{ 0, "sys_pass", &SysConfig.SysPass, VAR_STRING, 3, 31 }, { 0, "sys_pass", &SysConfig.SysPass, VAR_STRING,RW, 3, 31 },
{ 0, "ota_url", &SysConfig.OTAURL, VAR_STRING, 3, 128 }, { 0, "ota_url", &SysConfig.OTAURL, VAR_STRING,RW, 3, 128 },
{ 0, "ota_auto_int", &SysConfig.OTAAutoInt, VAR_INT, 0, 65535 }, { 0, "ota_auto_int", &SysConfig.OTAAutoInt, VAR_INT,RW, 0, 65535 },
{ 0, "ser_num", &SysConfig.SN, VAR_STRING, 10, 10 }, { 0, "ser_num", &SysConfig.SN, VAR_STRING,RW, 10, 10 },
{ 0, "dev_id", &SysConfig.ID, VAR_STRING, 8, 8 }, { 0, "dev_id", &SysConfig.ID, VAR_STRING,RW, 8, 8 },
{ 0, "color_scheme", &SysConfig.ColorSheme, VAR_INT, 1, 2 }, { 0, "color_scheme", &SysConfig.ColorSheme, VAR_INT,RW, 1, 2 },
{ 0, "ota_enab", &SysConfig.Flags1.bIsOTAEnabled, VAR_BOOL, 0, 1 }, { 0, "ota_enab", &SysConfig.Flags1.bIsOTAEnabled, VAR_BOOL,RW, 0, 1 },
{ 0, "res_ota_enab", &SysConfig.Flags1.bIsResetOTAEnabled, VAR_BOOL, 0, 1 }, { 0, "res_ota_enab", &SysConfig.Flags1.bIsResetOTAEnabled, VAR_BOOL,RW, 0, 1 },
{ 0, "led_enab", &SysConfig.Flags1.bIsLedsEnabled, VAR_BOOL, 0, 1 }, { 0, "led_enab", &SysConfig.Flags1.bIsLedsEnabled, VAR_BOOL,RW, 0, 1 },
{ 0, "lora_confirm", &SysConfig.Flags1.bIsLoRaConfirm, VAR_BOOL, 0, 1 }, { 0, "lora_confirm", &SysConfig.Flags1.bIsLoRaConfirm, VAR_BOOL,RW, 0, 1 },
{ 0, "tcp_confirm", &SysConfig.Flags1.bIsTCPConfirm, VAR_BOOL, 0, 1 }, { 0, "tcp_confirm", &SysConfig.Flags1.bIsTCPConfirm, VAR_BOOL,RW, 0, 1 },
{ 0, "sntp_timezone", &SysConfig.sntpClient.TimeZone, VAR_INT, 0, 23 }, { 0, "sntp_timezone", &SysConfig.sntpClient.TimeZone, VAR_INT,RW, 0, 23 },
{ 0, "sntp_serv1", &SysConfig.sntpClient.SntpServerAdr, VAR_STRING, 3, 32 }, { 0, "sntp_serv1", &SysConfig.sntpClient.SntpServerAdr, VAR_STRING,RW, 3, 32 },
{ 0, "sntp_serv2", &SysConfig.sntpClient.SntpServer2Adr, VAR_STRING, 3, 32 }, { 0, "sntp_serv2", &SysConfig.sntpClient.SntpServer2Adr, VAR_STRING,RW, 3, 32 },
{ 0, "sntp_serv3", &SysConfig.sntpClient.SntpServer3Adr, VAR_STRING, 3, 32 }, { 0, "sntp_serv3", &SysConfig.sntpClient.SntpServer3Adr, VAR_STRING,RW, 3, 32 },
{ 0, "sntp_enab", &SysConfig.sntpClient.Flags1.bIsGlobalEnabled, VAR_BOOL, 0, 1 }, { 0, "sntp_enab", &SysConfig.sntpClient.Flags1.bIsGlobalEnabled, VAR_BOOL,RW, 0, 1 },
#if CONFIG_WEBGUIAPP_MQTT_ENABLE #if CONFIG_WEBGUIAPP_MQTT_ENABLE
{ 0, "mqtt_1_serv", &SysConfig.mqttStation[0].ServerAddr, VAR_STRING, 3, 63 }, { 0, "mqtt_1_serv", &SysConfig.mqttStation[0].ServerAddr, VAR_STRING,RW, 3, 63 },
{ 0, "mqtt_1_port", &SysConfig.mqttStation[0].ServerPort, VAR_INT, 1, 65534 }, { 0, "mqtt_1_port", &SysConfig.mqttStation[0].ServerPort, VAR_INT,RW, 1, 65534 },
{ 0, "mqtt_1_syst", &SysConfig.mqttStation[0].SystemName, VAR_STRING, 3, 31 }, { 0, "mqtt_1_syst", &SysConfig.mqttStation[0].SystemName, VAR_STRING,RW, 3, 31 },
{ 0, "mqtt_1_group", &SysConfig.mqttStation[0].GroupName, VAR_STRING, 3, 31 }, { 0, "mqtt_1_group", &SysConfig.mqttStation[0].GroupName, VAR_STRING,RW, 3, 31 },
{ 0, "mqtt_1_clid", &SysConfig.mqttStation[0].ClientID, VAR_STRING, 3, 31 }, { 0, "mqtt_1_clid", &SysConfig.mqttStation[0].ClientID, VAR_STRING,RW, 3, 31 },
{ 0, "mqtt_1_uname", &SysConfig.mqttStation[0].UserName, VAR_STRING, 3, 31 }, { 0, "mqtt_1_uname", &SysConfig.mqttStation[0].UserName, VAR_STRING,RW, 3, 31 },
{ 0, "mqtt_1_pass", &SysConfig.mqttStation[0].UserPass, VAR_STRING, 3, 31 }, { 0, "mqtt_1_pass", &SysConfig.mqttStation[0].UserPass, VAR_STRING,RW, 3, 31 },
#if CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM == 2 #if CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM == 2
{ 0, "mqtt_2_serv", &SysConfig.mqttStation[1].ServerAddr, VAR_STRING, 3, 63 }, { 0, "mqtt_2_serv", &SysConfig.mqttStation[1].ServerAddr, VAR_STRING,RW, 3, 63 },
{ 0, "mqtt_2_port", &SysConfig.mqttStation[1].ServerPort, VAR_INT, 1, 65534 }, { 0, "mqtt_2_port", &SysConfig.mqttStation[1].ServerPort, VAR_INT,RW, 1, 65534 },
{ 0, "mqtt_2_syst", &SysConfig.mqttStation[1].SystemName, VAR_STRING, 3, 31 }, { 0, "mqtt_2_syst", &SysConfig.mqttStation[1].SystemName, VAR_STRING,RW, 3, 31 },
{ 0, "mqtt_2_group", &SysConfig.mqttStation[1].GroupName, VAR_STRING, 3, 31 }, { 0, "mqtt_2_group", &SysConfig.mqttStation[1].GroupName, VAR_STRING,RW, 3, 31 },
{ 0, "mqtt_2_clid", &SysConfig.mqttStation[1].ClientID, VAR_STRING, 3, 31 }, { 0, "mqtt_2_clid", &SysConfig.mqttStation[1].ClientID, VAR_STRING,RW, 3, 31 },
{ 0, "mqtt_2_uname", &SysConfig.mqttStation[1].UserName, VAR_STRING, 3, 31 }, { 0, "mqtt_2_uname", &SysConfig.mqttStation[1].UserName, VAR_STRING,RW, 3, 31 },
{ 0, "mqtt_2_pass", &SysConfig.mqttStation[1].UserPass, VAR_STRING, 3, 31 }, { 0, "mqtt_2_pass", &SysConfig.mqttStation[1].UserPass, VAR_STRING,RW, 3, 31 },
#endif #endif
#endif #endif
#if CONFIG_WEBGUIAPP_ETHERNET_ENABLE #if CONFIG_WEBGUIAPP_ETHERNET_ENABLE
{ 0, "eth_ip", &SysConfig.wifiSettings.InfIPAddr, VAR_IPADDR, 0, 0 }, { 0, "eth_ip", &SysConfig.wifiSettings.InfIPAddr, VAR_IPADDR,RW, 0, 0 },
{ 0, "eth_mask", &SysConfig.wifiSettings.InfMask, VAR_IPADDR, 0, 0 }, { 0, "eth_mask", &SysConfig.wifiSettings.InfMask, VAR_IPADDR,RW, 0, 0 },
{ 0, "eth_gw", &SysConfig.wifiSettings.InfGateway, VAR_IPADDR, 0, 0 }, { 0, "eth_gw", &SysConfig.wifiSettings.InfGateway, VAR_IPADDR,RW, 0, 0 },
{ 0, "eth_dns1", &SysConfig.wifiSettings.DNSAddr1, VAR_IPADDR, 0, 0 }, { 0, "eth_dns1", &SysConfig.wifiSettings.DNSAddr1, VAR_IPADDR,RW, 0, 0 },
{ 0, "eth_dns2", &SysConfig.wifiSettings.DNSAddr2, VAR_IPADDR, 0, 0 }, { 0, "eth_dns2", &SysConfig.wifiSettings.DNSAddr2, VAR_IPADDR,RW, 0, 0 },
{ 0, "eth_dns3", &SysConfig.wifiSettings.DNSAddr3, VAR_IPADDR, 0, 0 }, { 0, "eth_dns3", &SysConfig.wifiSettings.DNSAddr3, VAR_IPADDR,RW, 0, 0 },
@ -127,22 +129,22 @@ const rest_var_t ConfigVariables[] =
#endif #endif
#if CONFIG_WEBGUIAPP_WIFI_ENABLE #if CONFIG_WEBGUIAPP_WIFI_ENABLE
{ 0, "wifi_mode", &SysConfig.wifiSettings.WiFiMode, VAR_INT, 1, 3 }, { 0, "wifi_mode", &SysConfig.wifiSettings.WiFiMode, VAR_INT,RW, 1, 3 },
{ 0, "wifi_sta_ip", &SysConfig.wifiSettings.InfIPAddr, VAR_IPADDR, 0, 0 }, { 0, "wifi_sta_ip", &SysConfig.wifiSettings.InfIPAddr, VAR_IPADDR,RW, 0, 0 },
{ 0, "wifi_sta_mask", &SysConfig.wifiSettings.InfMask, VAR_IPADDR, 0, 0 }, { 0, "wifi_sta_mask", &SysConfig.wifiSettings.InfMask, VAR_IPADDR,RW, 0, 0 },
{ 0, "wifi_sta_gw", &SysConfig.wifiSettings.InfGateway, VAR_IPADDR, 0, 0 }, { 0, "wifi_sta_gw", &SysConfig.wifiSettings.InfGateway, VAR_IPADDR,RW, 0, 0 },
{ 0, "wifi_ap_ip", &SysConfig.wifiSettings.ApIPAddr, VAR_IPADDR, 0, 0 }, { 0, "wifi_ap_ip", &SysConfig.wifiSettings.ApIPAddr, VAR_IPADDR,RW, 0, 0 },
{ 0, "wifi_dns1", &SysConfig.wifiSettings.DNSAddr1, VAR_IPADDR, 0, 0 }, { 0, "wifi_dns1", &SysConfig.wifiSettings.DNSAddr1, VAR_IPADDR,RW, 0, 0 },
{ 0, "wifi_dns2", &SysConfig.wifiSettings.DNSAddr2, VAR_IPADDR, 0, 0 }, { 0, "wifi_dns2", &SysConfig.wifiSettings.DNSAddr2, VAR_IPADDR,RW, 0, 0 },
{ 0, "wifi_dns3", &SysConfig.wifiSettings.DNSAddr3, VAR_IPADDR, 0, 0 }, { 0, "wifi_dns3", &SysConfig.wifiSettings.DNSAddr3, VAR_IPADDR,RW, 0, 0 },
{ 0, "wifi_sta_ssid", &SysConfig.wifiSettings.InfSSID, VAR_STRING, 3, 31 }, { 0, "wifi_sta_ssid", &SysConfig.wifiSettings.InfSSID, VAR_STRING,RW, 3, 31 },
{ 0, "wifi_sta_key", &SysConfig.wifiSettings.InfSecurityKey, VAR_STRING, 8, 31 }, { 0, "wifi_sta_key", &SysConfig.wifiSettings.InfSecurityKey, VAR_STRING,RW, 8, 31 },
{ 0, "wifi_ap_ssid", &SysConfig.wifiSettings.ApSSID, VAR_STRING, 3, 31 }, { 0, "wifi_ap_ssid", &SysConfig.wifiSettings.ApSSID, VAR_STRING,RW, 3, 31 },
{ 0, "wifi_ap_key", &SysConfig.wifiSettings.ApSecurityKey, VAR_STRING, 8, 31 }, { 0, "wifi_ap_key", &SysConfig.wifiSettings.ApSecurityKey, VAR_STRING,RW, 8, 31 },
{ 0, "wifi_enab", &SysConfig.wifiSettings.Flags1.bIsWiFiEnabled, VAR_BOOL, 0, 1 }, { 0, "wifi_enab", &SysConfig.wifiSettings.Flags1.bIsWiFiEnabled, VAR_BOOL,RW, 0, 1 },
{ 0, "wifi_isdhcp", &SysConfig.wifiSettings.Flags1.bIsDHCPEnabled, VAR_BOOL, 0, 1 }, { 0, "wifi_isdhcp", &SysConfig.wifiSettings.Flags1.bIsDHCPEnabled, VAR_BOOL,RW, 0, 1 },
{ 0, "wifi_power", &SysConfig.wifiSettings.MaxPower, VAR_INT, 0, 80 }, { 0, "wifi_power", &SysConfig.wifiSettings.MaxPower, VAR_INT,RW, 0, 80 },
#endif #endif
#if CONFIG_WEBGUIAPP_GPRS_ENABLE #if CONFIG_WEBGUIAPP_GPRS_ENABLE