changed rest api payload variables structure
This commit is contained in:
parent
7f59cd0904
commit
933beaef55
|
|
@ -30,6 +30,7 @@
|
||||||
#include "sdkconfig.h"
|
#include "sdkconfig.h"
|
||||||
|
|
||||||
typedef enum{
|
typedef enum{
|
||||||
|
VAR_ERROR = -1,
|
||||||
VAR_BOOL = 0,
|
VAR_BOOL = 0,
|
||||||
VAR_INT,
|
VAR_INT,
|
||||||
VAR_STRING,
|
VAR_STRING,
|
||||||
|
|
@ -97,7 +98,7 @@ typedef struct
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
char ServerAddr[64];
|
char ServerAddr[64];
|
||||||
uint16_t ServerPort;
|
int ServerPort;
|
||||||
char SystemName[32];
|
char SystemName[32];
|
||||||
char GroupName[32];
|
char GroupName[32];
|
||||||
char ClientID[32];
|
char ClientID[32];
|
||||||
|
|
@ -133,7 +134,7 @@ typedef struct
|
||||||
#if CONFIG_WEBGUIAPP_WIFI_ENABLE
|
#if CONFIG_WEBGUIAPP_WIFI_ENABLE
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint8_t WiFiMode;
|
int WiFiMode;
|
||||||
esp_ip4_addr_t InfIPAddr; // IP address in infrastructure(INF) mode
|
esp_ip4_addr_t InfIPAddr; // IP address in infrastructure(INF) mode
|
||||||
esp_ip4_addr_t InfMask; // network mask in INF mode
|
esp_ip4_addr_t InfMask; // network mask in INF mode
|
||||||
esp_ip4_addr_t InfGateway; // gateway IP in INF mode
|
esp_ip4_addr_t InfGateway; // gateway IP in INF mode
|
||||||
|
|
@ -152,8 +153,8 @@ typedef struct
|
||||||
|
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
bool bIsDHCPEnabled :1;
|
bool bIsDHCPEnabled;
|
||||||
bool bIsWiFiEnabled :1;
|
bool bIsWiFiEnabled;
|
||||||
} Flags1; // Flag structure
|
} Flags1; // Flag structure
|
||||||
uint8_t MaxPower;
|
uint8_t MaxPower;
|
||||||
} wifiSettings;
|
} wifiSettings;
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
#include "jWrite.h"
|
#include "jWrite.h"
|
||||||
|
|
||||||
#define EXPECTED_MAX_DATA_RESPONSE_SIZE (4096)
|
#define EXPECTED_MAX_DATA_RESPONSE_SIZE (4096)
|
||||||
#define VAR_MAX_NAME_LENGTH 16
|
#define VAR_MAX_NAME_LENGTH 32
|
||||||
#define VAR_MAX_VALUE_LENGTH 128
|
#define VAR_MAX_VALUE_LENGTH 128
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
|
|
|
||||||
|
|
@ -61,29 +61,93 @@ static void funct_wifiscanres(char *argres)
|
||||||
|
|
||||||
const rest_var_t ConfigVariables[] =
|
const rest_var_t ConfigVariables[] =
|
||||||
{
|
{
|
||||||
{ 0, "netname", &SysConfig.NetBIOSName, VAR_STRING, 3, 31 },
|
/*FUNCTIONS*/
|
||||||
{ 0, "otaurl", &SysConfig.OTAURL, VAR_STRING, 3, 128 },
|
|
||||||
{ 0, "ledenab", &SysConfig.Flags1.bIsLedsEnabled, VAR_BOOL, 0, 1 },
|
|
||||||
{ 0, "otaint", &SysConfig.OTAAutoInt, VAR_INT, 0, 65535 },
|
|
||||||
{ 0, "time", &funct_time, VAR_FUNCT, 0, 0 },
|
{ 0, "time", &funct_time, VAR_FUNCT, 0, 0 },
|
||||||
{ 0, "addone", &funct_addone, VAR_FUNCT, 0, 0 },
|
{ 0, "addone", &funct_addone, VAR_FUNCT, 0, 0 },
|
||||||
|
{ 0, "wifi_scan", &funct_wifiscan, VAR_FUNCT, 0, 0 },
|
||||||
|
{ 0, "wifi_scan_res", &funct_wifiscanres, VAR_FUNCT, 0, 0 },
|
||||||
|
|
||||||
{ 0, "wifiscan", &funct_wifiscan, VAR_FUNCT, 0, 0 },
|
/*VARIABLES*/
|
||||||
{ 0, "wifiscanres", &funct_wifiscanres, VAR_FUNCT, 0, 0 },
|
{ 0, "net_bios_name", &SysConfig.NetBIOSName, VAR_STRING, 3, 31 },
|
||||||
|
{ 0, "sys_name", &SysConfig.SysName, VAR_STRING, 3, 31 },
|
||||||
|
{ 0, "sys_pass", &SysConfig.SysPass, VAR_STRING, 3, 31 },
|
||||||
|
|
||||||
{ 0, "wifi-mode", &SysConfig.wifiSettings.WiFiMode, VAR_INT, 0, 0 },
|
{ 0, "ota_url", &SysConfig.OTAURL, VAR_STRING, 3, 128 },
|
||||||
{ 0, "wifi-sta-ip", &SysConfig.wifiSettings.InfIPAddr, VAR_IPADDR, 0, 0 },
|
{ 0, "ota_auto_int", &SysConfig.OTAAutoInt, VAR_INT, 0, 65535 },
|
||||||
{ 0, "wifi-sta-mask", &SysConfig.wifiSettings.InfMask, VAR_IPADDR, 0, 0 },
|
|
||||||
{ 0, "wifi-sta-gw", &SysConfig.wifiSettings.InfGateway, VAR_IPADDR, 0, 0 },
|
|
||||||
{ 0, "wifi-ap-ip", &SysConfig.wifiSettings.ApIPAddr, VAR_IPADDR, 0, 0 },
|
|
||||||
{ 0, "wifi-dns1", &SysConfig.wifiSettings.DNSAddr1, VAR_IPADDR, 0, 0 },
|
|
||||||
{ 0, "wifi-dns2", &SysConfig.wifiSettings.DNSAddr2, VAR_IPADDR, 0, 0 },
|
|
||||||
{ 0, "wifi-dns3", &SysConfig.wifiSettings.DNSAddr3, VAR_IPADDR, 0, 0 },
|
|
||||||
{ 0, "wifi-sta-ssid", &SysConfig.wifiSettings.InfSSID, VAR_STRING, 3, 31 },
|
|
||||||
{ 0, "wifi-sta-key", &SysConfig.wifiSettings.InfSSID, VAR_STRING, 8, 31 },
|
|
||||||
{ 0, "wifi-ap-ssid", &SysConfig.wifiSettings.InfSSID, VAR_STRING, 3, 31 },
|
|
||||||
{ 0, "wifi-ap-key", &SysConfig.wifiSettings.InfSSID, VAR_STRING, 8, 31 },
|
|
||||||
|
|
||||||
|
{ 0, "ser_num", &SysConfig.SN, VAR_STRING, 10, 10 },
|
||||||
|
{ 0, "dev_id", &SysConfig.ID, VAR_STRING, 8, 8 },
|
||||||
|
{ 0, "color_scheme", &SysConfig.ColorSheme, VAR_INT, 1, 2 },
|
||||||
|
|
||||||
|
{ 0, "ota_enab", &SysConfig.Flags1.bIsOTAEnabled, VAR_BOOL, 0, 1 },
|
||||||
|
{ 0, "res_ota_enab", &SysConfig.Flags1.bIsResetOTAEnabled, VAR_BOOL, 0, 1 },
|
||||||
|
{ 0, "led_enab", &SysConfig.Flags1.bIsLedsEnabled, VAR_BOOL, 0, 1 },
|
||||||
|
{ 0, "lora_confirm", &SysConfig.Flags1.bIsLoRaConfirm, VAR_BOOL, 0, 1 },
|
||||||
|
{ 0, "tcp_confirm", &SysConfig.Flags1.bIsTCPConfirm, VAR_BOOL, 0, 1 },
|
||||||
|
|
||||||
|
{ 0, "sntp_timezone", &SysConfig.sntpClient.TimeZone, VAR_INT, 0, 23 },
|
||||||
|
{ 0, "sntp_serv1", &SysConfig.sntpClient.SntpServerAdr, VAR_STRING, 3, 32 },
|
||||||
|
{ 0, "sntp_serv2", &SysConfig.sntpClient.SntpServer2Adr, VAR_STRING, 3, 32 },
|
||||||
|
{ 0, "sntp_serv3", &SysConfig.sntpClient.SntpServer3Adr, VAR_STRING, 3, 32 },
|
||||||
|
{ 0, "sntp_enab", &SysConfig.sntpClient.Flags1.bIsGlobalEnabled, VAR_BOOL, 0, 1 },
|
||||||
|
|
||||||
|
#if CONFIG_WEBGUIAPP_MQTT_ENABLE
|
||||||
|
{ 0, "mqtt_1_serv", &SysConfig.mqttStation[0].ServerAddr, VAR_STRING, 3, 63 },
|
||||||
|
{ 0, "mqtt_1_port", &SysConfig.mqttStation[0].ServerPort, VAR_INT, 1, 65534 },
|
||||||
|
{ 0, "mqtt_1_syst", &SysConfig.mqttStation[0].SystemName, VAR_STRING, 3, 31 },
|
||||||
|
{ 0, "mqtt_1_group", &SysConfig.mqttStation[0].GroupName, VAR_STRING, 3, 31 },
|
||||||
|
{ 0, "mqtt_1_clid", &SysConfig.mqttStation[0].ClientID, VAR_STRING, 3, 31 },
|
||||||
|
{ 0, "mqtt_1_uname", &SysConfig.mqttStation[0].UserName, VAR_STRING, 3, 31 },
|
||||||
|
{ 0, "mqtt_1_pass", &SysConfig.mqttStation[0].UserPass, VAR_STRING, 3, 31 },
|
||||||
|
|
||||||
|
#if CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM == 2
|
||||||
|
{ 0, "mqtt_2_serv", &SysConfig.mqttStation[1].ServerAddr, VAR_STRING, 3, 63 },
|
||||||
|
{ 0, "mqtt_2_port", &SysConfig.mqttStation[1].ServerPort, VAR_INT, 1, 65534 },
|
||||||
|
{ 0, "mqtt_2_syst", &SysConfig.mqttStation[1].SystemName, VAR_STRING, 3, 31 },
|
||||||
|
{ 0, "mqtt_2_group", &SysConfig.mqttStation[1].GroupName, VAR_STRING, 3, 31 },
|
||||||
|
{ 0, "mqtt_2_clid", &SysConfig.mqttStation[1].ClientID, VAR_STRING, 3, 31 },
|
||||||
|
{ 0, "mqtt_2_uname", &SysConfig.mqttStation[1].UserName, VAR_STRING, 3, 31 },
|
||||||
|
{ 0, "mqtt_2_pass", &SysConfig.mqttStation[1].UserPass, VAR_STRING, 3, 31 },
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG_WEBGUIAPP_ETHERNET_ENABLE
|
||||||
|
{ 0, "eth-ip", &SysConfig.wifiSettings.InfIPAddr, VAR_IPADDR, 0, 0 },
|
||||||
|
{ 0, "eth-mask", &SysConfig.wifiSettings.InfMask, VAR_IPADDR, 0, 0 },
|
||||||
|
{ 0, "eth-gw", &SysConfig.wifiSettings.InfGateway, VAR_IPADDR, 0, 0 },
|
||||||
|
{ 0, "eth-dns1", &SysConfig.wifiSettings.DNSAddr1, VAR_IPADDR, 0, 0 },
|
||||||
|
{ 0, "eth-dns2", &SysConfig.wifiSettings.DNSAddr2, VAR_IPADDR, 0, 0 },
|
||||||
|
{ 0, "eth-dns3", &SysConfig.wifiSettings.DNSAddr3, VAR_IPADDR, 0, 0 },
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG_WEBGUIAPP_WIFI_ENABLE
|
||||||
|
{ 0, "wifi_mode", &SysConfig.wifiSettings.WiFiMode, VAR_INT, 1, 3 },
|
||||||
|
{ 0, "wifi_sta_ip", &SysConfig.wifiSettings.InfIPAddr, VAR_IPADDR, 0, 0 },
|
||||||
|
{ 0, "wifi_sta_mask", &SysConfig.wifiSettings.InfMask, VAR_IPADDR, 0, 0 },
|
||||||
|
{ 0, "wifi_sta_gw", &SysConfig.wifiSettings.InfGateway, VAR_IPADDR, 0, 0 },
|
||||||
|
{ 0, "wifi_ap_ip", &SysConfig.wifiSettings.ApIPAddr, VAR_IPADDR, 0, 0 },
|
||||||
|
{ 0, "wifi_dns1", &SysConfig.wifiSettings.DNSAddr1, VAR_IPADDR, 0, 0 },
|
||||||
|
{ 0, "wifi_dns2", &SysConfig.wifiSettings.DNSAddr2, VAR_IPADDR, 0, 0 },
|
||||||
|
{ 0, "wifi_dns3", &SysConfig.wifiSettings.DNSAddr3, VAR_IPADDR, 0, 0 },
|
||||||
|
{ 0, "wifi_sta_ssid", &SysConfig.wifiSettings.InfSSID, VAR_STRING, 3, 31 },
|
||||||
|
{ 0, "wifi_sta_key", &SysConfig.wifiSettings.InfSecurityKey, VAR_STRING, 8, 31 },
|
||||||
|
{ 0, "wifi_ap_ssid", &SysConfig.wifiSettings.ApSSID, VAR_STRING, 3, 31 },
|
||||||
|
{ 0, "wifi_ap_key", &SysConfig.wifiSettings.ApSecurityKey, VAR_STRING, 8, 31 },
|
||||||
|
|
||||||
|
{ 0, "wifi_enab", &SysConfig.wifiSettings.Flags1.bIsWiFiEnabled, VAR_BOOL, 0, 1 },
|
||||||
|
{ 0, "wifi_isdhcp", &SysConfig.wifiSettings.Flags1.bIsDHCPEnabled, VAR_BOOL, 0, 1 },
|
||||||
|
{ 0, "wifi_power", &SysConfig.wifiSettings.MaxPower, VAR_INT, 0, 80 },
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG_WEBGUIAPP_GPRS_ENABLE
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -130,6 +194,8 @@ esp_err_t SetConfVar(char *name, char *val, rest_var_types *tp)
|
||||||
case VAR_FUNCT:
|
case VAR_FUNCT:
|
||||||
((void (*)(char*)) (V->ref))(val);
|
((void (*)(char*)) (V->ref))(val);
|
||||||
break;
|
break;
|
||||||
|
case VAR_ERROR:
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
|
|
@ -152,7 +218,7 @@ esp_err_t GetConfVar(char *name, char *val, rest_var_types *tp)
|
||||||
switch (V->vartype)
|
switch (V->vartype)
|
||||||
{
|
{
|
||||||
case VAR_BOOL:
|
case VAR_BOOL:
|
||||||
strcpy(val, *((bool*) V->ref) ? "1" : "0");
|
strcpy(val, *((bool*) V->ref) ? "true" : "false");
|
||||||
break;
|
break;
|
||||||
case VAR_INT:
|
case VAR_INT:
|
||||||
itoa(*((int*) V->ref), val, 10);
|
itoa(*((int*) V->ref), val, 10);
|
||||||
|
|
@ -166,7 +232,8 @@ esp_err_t GetConfVar(char *name, char *val, rest_var_types *tp)
|
||||||
case VAR_FUNCT:
|
case VAR_FUNCT:
|
||||||
((void (*)(char*)) (V->ref))(val);
|
((void (*)(char*)) (V->ref))(val);
|
||||||
break;
|
break;
|
||||||
|
case VAR_ERROR:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//val = V->ref;
|
//val = V->ref;
|
||||||
|
|
|
||||||
|
|
@ -125,48 +125,48 @@ static sys_error_code SysPayloadTypeVarsHandler(data_message_t *MSG)
|
||||||
jwObj_int("messtype", DATA_MESSAGE_TYPE_RESPONSE);
|
jwObj_int("messtype", DATA_MESSAGE_TYPE_RESPONSE);
|
||||||
jwObj_int("payloadtype", 1);
|
jwObj_int("payloadtype", 1);
|
||||||
jwObj_object("payload");
|
jwObj_object("payload");
|
||||||
jwObj_array("variables");
|
jwObj_object("variables");
|
||||||
|
|
||||||
jRead(MSG->inputDataBuffer, "{'data'{'payload'{'variables'", &result);
|
jRead(MSG->inputDataBuffer, "{'data'{'payload'{'variables'", &result);
|
||||||
if (result.dataType == JREAD_ARRAY)
|
if (result.dataType == JREAD_OBJECT)
|
||||||
{ //Write variables
|
{ //Write variables
|
||||||
for (int i = 0; i < result.elements; ++i)
|
for (int i = 0; i < result.elements; ++i)
|
||||||
{
|
{
|
||||||
jRead_string(MSG->inputDataBuffer, "{'data'{'payload'{'variables'[*{'name'", VarName,
|
jRead_string(MSG->inputDataBuffer, "{'data'{'payload'{'variables'{*", VarName,
|
||||||
VAR_MAX_NAME_LENGTH,
|
VAR_MAX_NAME_LENGTH,
|
||||||
&i);
|
&i);
|
||||||
jRead_string(MSG->inputDataBuffer, "{'data'{'payload'{'variables'[*{'val'", VarValue,
|
const char parsevar[] = "{'data'{'payload'{'variables'{'";
|
||||||
VAR_MAX_VALUE_LENGTH,
|
char expr[sizeof(parsevar) + VAR_MAX_NAME_LENGTH];
|
||||||
&i);
|
strcpy(expr, parsevar);
|
||||||
|
strcat(expr, VarName);
|
||||||
|
strcat(expr, "'");
|
||||||
|
|
||||||
|
jRead_string(MSG->inputDataBuffer, expr, VarValue, VAR_MAX_VALUE_LENGTH, &i);
|
||||||
|
|
||||||
ESP_LOGI(TAG, "Got write variable %s:%s", VarName, VarValue);
|
ESP_LOGI(TAG, "Got write variable %s:%s", VarName, VarValue);
|
||||||
jwArr_object();
|
|
||||||
|
esp_err_t res = ESP_ERR_INVALID_ARG;
|
||||||
|
rest_var_types tp = VAR_ERROR;
|
||||||
if (MSG->parsedData.msgType == DATA_MESSAGE_TYPE_COMMAND)
|
if (MSG->parsedData.msgType == DATA_MESSAGE_TYPE_COMMAND)
|
||||||
{ //Write variables
|
{ //Write variables
|
||||||
rest_var_types tp;
|
res = SetConfVar(VarName, VarValue, &tp);
|
||||||
esp_err_t res = SetConfVar(VarName, VarValue, &tp);
|
|
||||||
if (res == ESP_OK)
|
if (res == ESP_OK)
|
||||||
GetConfVar(VarName, VarValue, &tp);
|
GetConfVar(VarName, VarValue, &tp);
|
||||||
else
|
else
|
||||||
strcpy(VarValue, esp_err_to_name(res));
|
strcpy(VarValue, esp_err_to_name(res));
|
||||||
jwObj_string("name", VarName);
|
|
||||||
if (tp == VAR_STRING || tp == VAR_IPADDR)
|
|
||||||
jwObj_string("val", VarValue);
|
|
||||||
else
|
|
||||||
jwObj_raw("val", VarValue);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ //Read variables
|
{ //Read variables
|
||||||
rest_var_types tp;
|
res = GetConfVar(VarName, VarValue, &tp);
|
||||||
esp_err_t res = GetConfVar(VarName, VarValue, &tp);
|
|
||||||
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);
|
|
||||||
if (tp == VAR_STRING || tp == VAR_IPADDR)
|
|
||||||
jwObj_string("val", VarValue);
|
|
||||||
else
|
|
||||||
jwObj_raw("val", VarValue);
|
|
||||||
}
|
}
|
||||||
jwEnd();
|
//Response with actual data
|
||||||
|
if (tp == VAR_STRING || tp == VAR_IPADDR || tp == VAR_ERROR)
|
||||||
|
jwObj_string(VarName, VarValue);
|
||||||
|
else
|
||||||
|
jwObj_raw(VarName, VarValue);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user