From 5b4b779ae1c0be09b79ae8591dc41dc8ce15bc40 Mon Sep 17 00:00:00 2001 From: bogdan Date: Fri, 28 Jul 2023 16:13:55 +0200 Subject: [PATCH] added function rest api type --- include/SysConfiguration.h | 3 ++- src/RestApiHandler.c | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/include/SysConfiguration.h b/include/SysConfiguration.h index 30d6793..5e8bc7d 100644 --- a/include/SysConfiguration.h +++ b/include/SysConfiguration.h @@ -32,7 +32,8 @@ typedef enum{ VAR_BOOL = 0, VAR_INT, - VAR_STRING + VAR_STRING, + VAR_FUNCT } rest_var_types; typedef struct diff --git a/src/RestApiHandler.c b/src/RestApiHandler.c index e2a0f37..35f0a76 100644 --- a/src/RestApiHandler.c +++ b/src/RestApiHandler.c @@ -27,12 +27,21 @@ extern SYS_CONFIG SysConfig; +static void get_time(char *argres) +{ + time_t now; + time(&now); + snprintf(argres, MAX_DYNVAR_LENGTH, "%d", (int) now); +} + const rest_var_t ConfigVariables[] = { { 0, "netname", &SysConfig.NetBIOSName, VAR_STRING, 3, 31 }, { 1, "otaurl", &SysConfig.OTAURL, VAR_STRING, 3, 128 }, { 2, "ledenab", &SysConfig.Flags1.bIsLedsEnabled, VAR_BOOL, 0, 1 }, - { 3, "otaint", &SysConfig.OTAAutoInt, VAR_INT, 0, 65535 } + { 3, "otaint", &SysConfig.OTAAutoInt, VAR_INT, 0, 65535 }, + { 4, "time", &get_time, VAR_FUNCT, 0, 65535 } + }; esp_err_t SetConfVar(char *name, char *val) @@ -71,6 +80,9 @@ esp_err_t SetConfVar(char *name, char *val) return ESP_ERR_INVALID_ARG; strcpy(V->ref, val); break; + case VAR_FUNCT: + ((void (*)(char*)) (V->ref))(val); + break; } return ESP_OK; @@ -101,6 +113,10 @@ esp_err_t GetConfVar(char *name, char *val) strcpy(val, (char*) V->ref); break; + case VAR_FUNCT: + ((void (*)(char*)) (V->ref))(val); + break; + } val = V->ref;