added type VAR_IPADDR

This commit is contained in:
Bogdan Pilyugin 2023-07-31 11:02:00 +02:00
parent e689f4a2e1
commit 155c2469cb
3 changed files with 15 additions and 4 deletions

View File

@ -33,6 +33,7 @@ typedef enum{
VAR_BOOL = 0, VAR_BOOL = 0,
VAR_INT, VAR_INT,
VAR_STRING, VAR_STRING,
VAR_IPADDR,
VAR_FUNCT VAR_FUNCT
} rest_var_types; } rest_var_types;

View File

@ -25,6 +25,7 @@
#include <SysConfiguration.h> #include <SysConfiguration.h>
#include <webguiapp.h> #include <webguiapp.h>
#include "esp_wifi.h" #include "esp_wifi.h"
#include "esp_netif.h"
extern SYS_CONFIG SysConfig; extern SYS_CONFIG SysConfig;
@ -67,7 +68,11 @@ const rest_var_t ConfigVariables[] =
{ 4, "time", &funct_time, VAR_FUNCT, 0, 0 }, { 4, "time", &funct_time, VAR_FUNCT, 0, 0 },
{ 5, "addone", &funct_addone, VAR_FUNCT, 0, 0 }, { 5, "addone", &funct_addone, VAR_FUNCT, 0, 0 },
{ 6, "wifiscan", &funct_wifiscan, VAR_FUNCT, 0, 0 }, { 6, "wifiscan", &funct_wifiscan, VAR_FUNCT, 0, 0 },
{ 7, "wifiscanres", &funct_wifiscanres, VAR_FUNCT, 0, 0 } { 7, "wifiscanres", &funct_wifiscanres, VAR_FUNCT, 0, 0 },
{ 8, "wifi-sta-ip", &SysConfig.wifiSettings.InfIPAddr, VAR_IPADDR, 0, 0 },
{ 9, "wifi-ap-ip", &SysConfig.wifiSettings.ApIPAddr, VAR_IPADDR, 0, 0 },
{ 9, "wifi-sta-mask", &SysConfig.wifiSettings.InfMask, VAR_IPADDR, 0, 0 },
{ 9, "wifi-sta-gw", &SysConfig.wifiSettings.InfGateway, VAR_IPADDR, 0, 0 }
}; };
@ -108,6 +113,9 @@ esp_err_t SetConfVar(char *name, char *val, rest_var_types *tp)
return ESP_ERR_INVALID_ARG; return ESP_ERR_INVALID_ARG;
strcpy(V->ref, val); strcpy(V->ref, val);
break; break;
case VAR_IPADDR:
esp_netif_str_to_ip4(val, (esp_ip4_addr_t*) (V->ref));
break;
case VAR_FUNCT: case VAR_FUNCT:
((void (*)(char*)) (V->ref))(val); ((void (*)(char*)) (V->ref))(val);
break; break;
@ -141,7 +149,9 @@ esp_err_t GetConfVar(char *name, char *val, rest_var_types *tp)
case VAR_STRING: case VAR_STRING:
strcpy(val, (char*) V->ref); strcpy(val, (char*) V->ref);
break; break;
case VAR_IPADDR:
esp_ip4addr_ntoa((const esp_ip4_addr_t*) V->ref, val, 16);
break;
case VAR_FUNCT: case VAR_FUNCT:
((void (*)(char*)) (V->ref))(val); ((void (*)(char*)) (V->ref))(val);
break; break;

View File

@ -149,7 +149,7 @@ static sys_error_code SysPayloadTypeVarsHandler(data_message_t *MSG)
else else
strcpy(VarValue, esp_err_to_name(res)); strcpy(VarValue, esp_err_to_name(res));
jwObj_string("name", VarName); jwObj_string("name", VarName);
if (tp == VAR_STRING) if (tp == VAR_STRING || tp == VAR_IPADDR)
jwObj_string("val", VarValue); jwObj_string("val", VarValue);
else else
jwObj_raw("val", VarValue); jwObj_raw("val", VarValue);
@ -161,7 +161,7 @@ static sys_error_code SysPayloadTypeVarsHandler(data_message_t *MSG)
if (res != ESP_OK) if (res != ESP_OK)
strcpy(VarValue, esp_err_to_name(res)); strcpy(VarValue, esp_err_to_name(res));
jwObj_string("name", VarName); jwObj_string("name", VarName);
if (tp == VAR_STRING) if (tp == VAR_STRING || tp == VAR_IPADDR)
jwObj_string("val", VarValue); jwObj_string("val", VarValue);
else else
jwObj_raw("val", VarValue); jwObj_raw("val", VarValue);