disabled global control block for jWrite library

This commit is contained in:
Bogdan Pilyugin 2023-08-15 13:21:36 +02:00
parent 3a3ff79d20
commit 16386dc07a
5 changed files with 71 additions and 73 deletions

@ -1 +1 @@
Subproject commit 8bbe1c28dc69b8adadc1ab3aed989a38e1dc8996
Subproject commit cdb702a89b355fe86c971e5f0c5da1b376cd827b

View File

@ -989,8 +989,8 @@ void GenerateSystemSettingsJSONFile(void)
char *buf = malloc(2048);
if (!buf)
return;
jwOpen(buf, 2048, JW_OBJECT, JW_PRETTY);
struct jWriteControl jwc;
jwOpen(&jwc, buf, 2048, JW_OBJECT, JW_PRETTY);
for (int i = 0; i < (sizeof(HANDLERS_ARRAY) / sizeof(HANDLERS_ARRAY[0])); ++i)
{
char val[18];
@ -998,10 +998,10 @@ void GenerateSystemSettingsJSONFile(void)
strcat(val, "~");
strcat(val, HANDLERS_ARRAY[i].tag);
strcat(val, "~");
jwObj_string((char*) HANDLERS_ARRAY[i].tag, val);
jwObj_string(&jwc, (char*) HANDLERS_ARRAY[i].tag, val);
}
jwEnd();
jwClose();
jwEnd(&jwc);
jwClose(&jwc);
ESP_LOGI(TAG, "%s", buf);
free(buf);
}

View File

@ -58,9 +58,10 @@ static void mqtt1_user_event_handler(void *handler_args, esp_event_base_t base,
static void mqtt2_user_event_handler(void *handler_args, esp_event_base_t base, int32_t event_id, void *event_data);
void (*UserEventHandler)(int idx, void *handler_args, esp_event_base_t base, int32_t event_id, void *event_data);
static void* UserArg;
static void *UserArg;
void regUserEventHandler(
void (*event_handler)(int idx, void *handler_args, esp_event_base_t base, int32_t event_id, void *event_data), void* user_arg)
void (*event_handler)(int idx, void *handler_args, esp_event_base_t base, int32_t event_id, void *event_data),
void *user_arg)
{
UserEventHandler = event_handler;
UserArg = user_arg;
@ -138,23 +139,24 @@ mqtt_app_err_t PublicTestMQTT(int idx)
char tmp[10];
char resp[256];
char JSONMess[512];
jwOpen(JSONMess, MAX_ERROR_JSON, JW_OBJECT, JW_PRETTY);
struct jWriteControl jwc;
jwOpen(&jwc, JSONMess, MAX_ERROR_JSON, JW_OBJECT, JW_PRETTY);
time_t now;
time(&now);
jwObj_int("time", (unsigned int) now);
jwObj_string("event", "MQTT_TEST_MESSAGE)");
jwObj_int(&jwc, "time", (unsigned int) now);
jwObj_string(&jwc, "event", "MQTT_TEST_MESSAGE)");
strcpy(resp, "mqtt://");
strcat(resp, GetSysConf()->mqttStation[idx].ServerAddr);
itoa(GetSysConf()->mqttStation[idx].ServerPort, tmp, 10);
strcat(resp, ":");
strcat(resp, tmp);
jwObj_string("url", resp);
jwObj_string(&jwc, "url", resp);
ComposeTopic(resp, idx, "SYSTEM", "UPLINK");
jwObj_string("tx_topic", resp);
jwObj_string(&jwc, "tx_topic", resp);
ComposeTopic(resp, idx, "SYSTEM", "DWLINK");
jwObj_string("rx_topic", resp);
jwEnd();
jwClose();
jwObj_string(&jwc, "rx_topic", resp);
jwEnd(&jwc);
jwClose(&jwc);
char *buf = (char*) malloc(strlen(JSONMess) + 1);
if (buf)
{
@ -177,7 +179,6 @@ mqtt_app_err_t PublicTestMQTT(int idx)
}
}
static void mqtt_system_event_handler(int idx, void *handler_args, esp_event_base_t base, int32_t event_id,
void *event_data)
{
@ -462,6 +463,4 @@ static void mqtt2_user_event_handler(void *handler_args, esp_event_base_t base,
UserEventHandler(1, handler_args, base, event_id, event_data);
}
#endif

View File

@ -140,7 +140,7 @@ static void funct_wifiscanres(char *argres, int rw)
{
int arg = atoi(argres);
wifi_ap_record_t *Rec;
/*
char onerec[64];
strcpy(argres, "[");
for (int i = 0; i < arg; i++)
@ -155,7 +155,7 @@ static void funct_wifiscanres(char *argres, int rw)
strcat(argres, ",");
}
strcat(argres, "]");
/*
*/
struct jWriteControl jwc;
jwOpen(&jwc, argres, VAR_MAX_VALUE_LENGTH, JW_ARRAY, JW_COMPACT);
for (int i = 0; i < arg; i++)
@ -164,15 +164,13 @@ static void funct_wifiscanres(char *argres, int rw)
if (Rec)
{
jwArr_object(&jwc);
jwObj_string(&jwc,"ssid", (char*) Rec->ssid);
jwObj_int(&jwc,"rssi", Rec->rssi);
jwObj_int(&jwc,"ch", Rec->primary);
jwObj_string(&jwc, "ssid", (char*) Rec->ssid);
jwObj_int(&jwc, "rssi", Rec->rssi);
jwObj_int(&jwc, "ch", Rec->primary);
jwEnd(&jwc);
}
}
jwClose(&jwc);
*/
ESP_LOGI("REST", "%s", argres);
}

View File

@ -95,17 +95,17 @@ static sys_error_code SysPayloadTypeVarsHandler(data_message_t *MSG)
if (!(MSG->parsedData.msgType == DATA_MESSAGE_TYPE_COMMAND || MSG->parsedData.msgType == DATA_MESSAGE_TYPE_REQUEST))
return SYS_ERROR_PARSE_MSGTYPE;
jwOpen(MSG->outputDataBuffer, MSG->outputDataLength, JW_OBJECT, JW_COMPACT);
jwObj_object("data");
jwObj_int("msgid", MSG->parsedData.msgID);
struct jWriteControl jwc;
jwOpen(&jwc, MSG->outputDataBuffer, MSG->outputDataLength, JW_OBJECT, JW_COMPACT);
jwObj_object(&jwc, "data");
jwObj_int(&jwc, "msgid", MSG->parsedData.msgID);
char time[RFC3339_TIMESTAMP_LENGTH];
GetRFC3339Time(time);
jwObj_string("time", time);
jwObj_int("messtype", DATA_MESSAGE_TYPE_RESPONSE);
jwObj_int("payloadtype", 1);
jwObj_object("payload");
jwObj_object("variables");
jwObj_string(&jwc, "time", time);
jwObj_int(&jwc, "messtype", DATA_MESSAGE_TYPE_RESPONSE);
jwObj_int(&jwc, "payloadtype", 1);
jwObj_object(&jwc, "payload");
jwObj_object(&jwc, "variables");
jRead(MSG->inputDataBuffer, "{'data'{'payload'{'variables'", &result);
if (result.dataType == JREAD_OBJECT)
@ -148,9 +148,9 @@ static sys_error_code SysPayloadTypeVarsHandler(data_message_t *MSG)
}
//Response with actual data
if (tp == VAR_STRING || tp == VAR_IPADDR || tp == VAR_ERROR || tp == VAR_PASS)
jwObj_string(VarName, VarValue);
jwObj_string(&jwc, VarName, VarValue);
else
jwObj_raw(VarName, VarValue);
jwObj_raw(&jwc, VarName, VarValue);
}
free(VarValue);
@ -158,12 +158,12 @@ static sys_error_code SysPayloadTypeVarsHandler(data_message_t *MSG)
else
return SYS_ERROR_PARSE_VARIABLES;
jwEnd();
jwEnd();
jwEnd(&jwc);
jwEnd(&jwc);
GetSysErrorDetales((sys_error_code) MSG->err_code, &err_br, &err_desc);
jwObj_string("error", (char*) err_br);
jwObj_string("error_descr", (char*) err_desc);
jwEnd();
jwObj_string(&jwc, "error", (char*) err_br);
jwObj_string(&jwc, "error_descr", (char*) err_desc);
jwEnd(&jwc);
char *datap = strstr(MSG->outputDataBuffer, "\"data\":");
if (datap)
@ -177,12 +177,12 @@ static sys_error_code SysPayloadTypeVarsHandler(data_message_t *MSG)
#if REAST_API_DEBUG_MODE
ESP_LOGI(TAG, "SHA256 of DATA object is %s", sha_print);
#endif
jwObj_string("signature", (char*) sha_print);
jwObj_string(&jwc, "signature", (char*) sha_print);
}
else
return SYS_ERROR_SHA256_DATA;
jwEnd();
jwClose();
jwEnd(&jwc);
jwClose(&jwc);
jRead(MSG->inputDataBuffer, "{'data'{'payload'{'applytype'", &result);
if (result.elements == 1)
@ -303,19 +303,20 @@ esp_err_t SysServiceDataHandler(data_message_t *MSG)
MSG->err_code = (int) SysDataParser(MSG);
if (MSG->err_code)
{
jwOpen(MSG->outputDataBuffer, MSG->outputDataLength, JW_OBJECT, JW_PRETTY);
jwObj_int("msgid", MSG->parsedData.msgID);
struct jWriteControl jwc;
jwOpen(&jwc, MSG->outputDataBuffer, MSG->outputDataLength, JW_OBJECT, JW_PRETTY);
jwObj_int(&jwc, "msgid", MSG->parsedData.msgID);
char time[RFC3339_TIMESTAMP_LENGTH];
GetRFC3339Time(time);
jwObj_string("time", time);
jwObj_int("messtype", DATA_MESSAGE_TYPE_RESPONSE);
jwObj_string(&jwc, "time", time);
jwObj_int(&jwc, "messtype", DATA_MESSAGE_TYPE_RESPONSE);
const char *err_br;
const char *err_desc;
GetSysErrorDetales((sys_error_code) MSG->err_code, &err_br, &err_desc);
jwObj_string("error", (char*) err_br);
jwObj_string("error_descr", (char*) err_desc);
jwEnd();
jwClose();
jwObj_string(&jwc, "error", (char*) err_br);
jwObj_string(&jwc, "error_descr", (char*) err_desc);
jwEnd(&jwc);
jwClose(&jwc);
}
return ESP_OK;