attached user defined variables

This commit is contained in:
Bogdan Pilyugin 2023-08-17 10:48:29 +02:00
parent e815020210
commit 4ec665e5d9
2 changed files with 46 additions and 8 deletions

View File

@ -35,9 +35,10 @@
#include "driver/spi_master.h" #include "driver/spi_master.h"
#include "UserCallbacks.h" #include "UserCallbacks.h"
#include "SysConfiguration.h"
esp_err_t spi_device_polling_transmit_synchronized(spi_device_handle_t handle, spi_transaction_t *trans_desc); esp_err_t spi_device_polling_transmit_synchronized(spi_device_handle_t handle, spi_transaction_t *trans_desc);
void SetAppVars( rest_var_t* appvars, int size);
bool GetUserAppNeedReset(void); bool GetUserAppNeedReset(void);
void SetUserAppNeedReset(bool res); void SetUserAppNeedReset(bool res);
void LogFile(char *fname, char *format, ...); void LogFile(char *fname, char *format, ...);

View File

@ -33,6 +33,15 @@
extern SYS_CONFIG SysConfig; extern SYS_CONFIG SysConfig;
rest_var_t *AppVars = NULL;
int AppVarsSize = 0;
void SetAppVars( rest_var_t* appvars, int size)
{
AppVars = appvars;
AppVarsSize = size;
}
static void PrintInterfaceState(char *argres, int rw, esp_netif_t *netif) static void PrintInterfaceState(char *argres, int rw, esp_netif_t *netif)
{ {
snprintf(argres, MAX_DYNVAR_LENGTH, snprintf(argres, MAX_DYNVAR_LENGTH,
@ -165,7 +174,9 @@ static void funct_wifiscanres(char *argres, int rw)
const int hw_rev = CONFIG_BOARD_HARDWARE_REVISION; const int hw_rev = CONFIG_BOARD_HARDWARE_REVISION;
const rest_var_t ConfigVariables[] =
const rest_var_t SystemVariables[] =
{ {
/*FUNCTIONS*/ /*FUNCTIONS*/
{ 0, "time", &funct_time, VAR_FUNCT, R, 0, 0 }, { 0, "time", &funct_time, VAR_FUNCT, R, 0, 0 },
@ -278,14 +289,28 @@ const rest_var_t ConfigVariables[] =
esp_err_t SetConfVar(char *name, char *val, rest_var_types *tp) esp_err_t SetConfVar(char *name, char *val, rest_var_types *tp)
{ {
rest_var_t *V = NULL; rest_var_t *V = NULL;
for (int i = 0; i < sizeof(ConfigVariables) / sizeof(rest_var_t); ++i) //Search for system variables
for (int i = 0; i < sizeof(SystemVariables) / sizeof(rest_var_t); ++i)
{ {
if (!strcmp(ConfigVariables[i].alias, name)) if (!strcmp(SystemVariables[i].alias, name))
{ {
V = (rest_var_t*) (&ConfigVariables[i]); V = (rest_var_t*) (&SystemVariables[i]);
break; break;
} }
} }
//Search for user variables
if(AppVars)
{
for (int i = 0; i < AppVarsSize; ++i)
{
if (!strcmp(AppVars[i].alias, name))
{
V = (rest_var_t*) (&AppVars[i]);
break;
}
}
}
if (!V) if (!V)
return ESP_ERR_NOT_FOUND; return ESP_ERR_NOT_FOUND;
if (V->varattr == R) if (V->varattr == R)
@ -340,14 +365,26 @@ esp_err_t SetConfVar(char *name, char *val, rest_var_types *tp)
esp_err_t GetConfVar(char *name, char *val, rest_var_types *tp) esp_err_t GetConfVar(char *name, char *val, rest_var_types *tp)
{ {
rest_var_t *V = NULL; rest_var_t *V = NULL;
for (int i = 0; i < sizeof(ConfigVariables) / sizeof(rest_var_t); ++i) for (int i = 0; i < sizeof(SystemVariables) / sizeof(rest_var_t); ++i)
{ {
if (!strcmp(ConfigVariables[i].alias, name)) if (!strcmp(SystemVariables[i].alias, name))
{ {
V = (rest_var_t*) (&ConfigVariables[i]); V = (rest_var_t*) (&SystemVariables[i]);
break; break;
} }
} }
//Search for user variables
if(AppVars)
{
for (int i = 0; i < AppVarsSize; ++i)
{
if (!strcmp(AppVars[i].alias, name))
{
V = (rest_var_t*) (&AppVars[i]);
break;
}
}
}
if (!V) if (!V)
return ESP_ERR_NOT_FOUND; return ESP_ERR_NOT_FOUND;
*tp = V->vartype; *tp = V->vartype;