From 16386dc07a179419a9df94805ab18565f77d6183 Mon Sep 17 00:00:00 2001 From: bogdan Date: Tue, 15 Aug 2023 13:21:36 +0200 Subject: [PATCH] disabled global control block for jWrite library --- extlibs/jReadWrite | 2 +- src/HTTPPrintSystem.c | 10 ++++---- src/MQTT.c | 25 ++++++++++---------- src/RestApiHandler.c | 52 ++++++++++++++++++++-------------------- src/SysComm.c | 55 ++++++++++++++++++++++--------------------- 5 files changed, 71 insertions(+), 73 deletions(-) diff --git a/extlibs/jReadWrite b/extlibs/jReadWrite index 8bbe1c2..cdb702a 160000 --- a/extlibs/jReadWrite +++ b/extlibs/jReadWrite @@ -1 +1 @@ -Subproject commit 8bbe1c28dc69b8adadc1ab3aed989a38e1dc8996 +Subproject commit cdb702a89b355fe86c971e5f0c5da1b376cd827b diff --git a/src/HTTPPrintSystem.c b/src/HTTPPrintSystem.c index 8c8754b..4f8240d 100644 --- a/src/HTTPPrintSystem.c +++ b/src/HTTPPrintSystem.c @@ -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); } diff --git a/src/MQTT.c b/src/MQTT.c index d8dc297..e918a3e 100644 --- a/src/MQTT.c +++ b/src/MQTT.c @@ -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 diff --git a/src/RestApiHandler.c b/src/RestApiHandler.c index 907d6c4..884bba5 100644 --- a/src/RestApiHandler.c +++ b/src/RestApiHandler.c @@ -140,39 +140,37 @@ 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++) - { - Rec = GetWiFiAPRecord(i); - if (!Rec) - return; - snprintf(onerec, MAX_DYNVAR_LENGTH, "{\"ssid\":\"%s\",\"rssi\":%i,\"ch\":%d}", Rec->ssid, Rec->rssi, - Rec->primary); - strcat(argres, onerec); - if (i < arg - 1) - strcat(argres, ","); - } - strcat(argres, "]"); /* - struct jWriteControl jwc; - jwOpen(&jwc, argres, VAR_MAX_VALUE_LENGTH, JW_ARRAY, JW_COMPACT); + char onerec[64]; + strcpy(argres, "["); for (int i = 0; i < arg; i++) { Rec = GetWiFiAPRecord(i); - if (Rec) - { - jwArr_object(&jwc); - jwObj_string(&jwc,"ssid", (char*) Rec->ssid); - jwObj_int(&jwc,"rssi", Rec->rssi); - jwObj_int(&jwc,"ch", Rec->primary); - jwEnd(&jwc); + if (!Rec) + return; + snprintf(onerec, MAX_DYNVAR_LENGTH, "{\"ssid\":\"%s\",\"rssi\":%i,\"ch\":%d}", Rec->ssid, Rec->rssi, + Rec->primary); + strcat(argres, onerec); + if (i < arg - 1) + strcat(argres, ","); } - } - jwClose(&jwc); + strcat(argres, "]"); */ - ESP_LOGI("REST", "%s", argres); + struct jWriteControl jwc; + jwOpen(&jwc, argres, VAR_MAX_VALUE_LENGTH, JW_ARRAY, JW_COMPACT); + for (int i = 0; i < arg; i++) + { + Rec = GetWiFiAPRecord(i); + if (Rec) + { + jwArr_object(&jwc); + jwObj_string(&jwc, "ssid", (char*) Rec->ssid); + jwObj_int(&jwc, "rssi", Rec->rssi); + jwObj_int(&jwc, "ch", Rec->primary); + jwEnd(&jwc); + } + } + jwClose(&jwc); } diff --git a/src/SysComm.c b/src/SysComm.c index 2cdd0ff..ad3c69d 100644 --- a/src/SysComm.c +++ b/src/SysComm.c @@ -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;