From 2d2bfa28f334d5163b0c56978d94ecc73b22ea76 Mon Sep 17 00:00:00 2001 From: Timothy Yin Date: Fri, 9 May 2025 01:32:23 +0800 Subject: [PATCH] fix: remove cJSON on FillBuf --- .idea/workspace.xml | 42 ++++++++++++--------- Core/Src/OneNet.c | 89 ++++++++++++++++++++++++++++++--------------- Core/Src/freertos.c | 2 +- 3 files changed, 85 insertions(+), 48 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 42d385c..2483fed 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -29,22 +29,10 @@ - + - - - - - - - - - - - - @@ -1098,19 +1102,21 @@ - file://$PROJECT_DIR$/Core/Src/OneNet.c - 66 + 97 file://$PROJECT_DIR$/Core/Src/OneNet.c - 163 + 194 diff --git a/Core/Src/OneNet.c b/Core/Src/OneNet.c index 231554e..3d88679 100644 --- a/Core/Src/OneNet.c +++ b/Core/Src/OneNet.c @@ -61,44 +61,75 @@ _Bool OneNet_DevLink(void) unsigned char OneNet_FillBuf(char* buf) { - cJSON* packet = cJSON_CreateObject(); + char text[48]; - char packet_id[16]; - sprintf(packet_id, "%d", uwTick); - cJSON_AddItemToObject(packet, "id", cJSON_CreateString(packet_id)); + strcpy(buf, "{\"id\":\"1743082944\",\"params\":{"); - cJSON* params = cJSON_CreateObject(); - cJSON* valueObj = cJSON_CreateObject(); + memset(text, 0, sizeof(text)); + sprintf(text, "\"volt\":{\"value\":%.2f},", IM_Volt * 0.0001); + strcat(buf, text); - cJSON_AddItemToObject(valueObj, "value", cJSON_CreateNumber(IM_Volt * 0.0001)); - cJSON_AddItemToObject(params, "volt", valueObj); + memset(text, 0, sizeof(text)); + sprintf(text, "\"current\":{\"value\":%.2f},", IM_Curr * 0.0001); + strcat(buf, text); - valueObj = cJSON_CreateObject(); - cJSON_AddItemToObject(valueObj, "value", cJSON_CreateNumber(IM_Curr * 0.0001)); - cJSON_AddItemToObject(params, "current", valueObj); + memset(text, 0, sizeof(text)); + sprintf(text, "\"watt_P\":{\"value\":%.2f},", IM_Power * 0.0001); + strcat(buf, text); - valueObj = cJSON_CreateObject(); - cJSON_AddItemToObject(valueObj, "value", cJSON_CreateNumber(IM_Power * 0.0001)); - cJSON_AddItemToObject(params, "watt_P", valueObj); + memset(text, 0, sizeof(text)); + sprintf(text, "\"energy\":{\"value\":%.3f},", IM_Energy * 0.0001); + strcat(buf, text); - valueObj = cJSON_CreateObject(); - cJSON_AddItemToObject(valueObj, "value", cJSON_CreateNumber(IM_Energy * 0.0001)); - cJSON_AddItemToObject(params, "energy", valueObj); + memset(text, 0, sizeof(text)); + sprintf(text, "\"ic_id\":{\"value\":\"%s\"},", IC_CARD_ID); + strcat(buf, text); - valueObj = cJSON_CreateObject(); - cJSON_AddItemToObject(valueObj, "value", cJSON_CreateString(IC_CARD_ID)); - cJSON_AddItemToObject(params, "ic_id", valueObj); + memset(text, 0, sizeof(text)); + sprintf(text, "\"output\":{\"value\":%s}", + HAL_GPIO_ReadPin(RELAY1_GPIO_Port, RELAY1_Pin) == GPIO_PIN_RESET ? "true" : "false"); + strcat(buf, text); - valueObj = cJSON_CreateObject(); - cJSON_AddItemToObject(valueObj, "value", cJSON_CreateBool(HAL_GPIO_ReadPin(RELAY1_GPIO_Port, RELAY1_Pin) == GPIO_PIN_RESET)); - cJSON_AddItemToObject(params, "output", valueObj); + strcat(buf, "}}"); - cJSON_AddItemToObject(packet, "params", params); - - const char* json_str = cJSON_Print(packet); - strcpy(buf, json_str); - - cJSON_Delete(packet); + // cJSON* packet = cJSON_CreateObject(); + // + // char packet_id[16]; + // sprintf(packet_id, "%d", uwTick); + // cJSON_AddItemToObject(packet, "id", cJSON_CreateString(packet_id)); + // + // cJSON* params = cJSON_CreateObject(); + // cJSON* valueObj = cJSON_CreateObject(); + // + // cJSON_AddItemToObject(valueObj, "value", cJSON_CreateNumber(IM_Volt * 0.0001)); + // cJSON_AddItemToObject(params, "volt", valueObj); + // + // valueObj = cJSON_CreateObject(); + // cJSON_AddItemToObject(valueObj, "value", cJSON_CreateNumber(IM_Curr * 0.0001)); + // cJSON_AddItemToObject(params, "current", valueObj); + // + // valueObj = cJSON_CreateObject(); + // cJSON_AddItemToObject(valueObj, "value", cJSON_CreateNumber(IM_Power * 0.0001)); + // cJSON_AddItemToObject(params, "watt_P", valueObj); + // + // valueObj = cJSON_CreateObject(); + // cJSON_AddItemToObject(valueObj, "value", cJSON_CreateNumber(IM_Energy * 0.0001)); + // cJSON_AddItemToObject(params, "energy", valueObj); + // + // valueObj = cJSON_CreateObject(); + // cJSON_AddItemToObject(valueObj, "value", cJSON_CreateString(IC_CARD_ID)); + // cJSON_AddItemToObject(params, "ic_id", valueObj); + // + // valueObj = cJSON_CreateObject(); + // cJSON_AddItemToObject(valueObj, "value", cJSON_CreateBool(HAL_GPIO_ReadPin(RELAY1_GPIO_Port, RELAY1_Pin) == GPIO_PIN_RESET)); + // cJSON_AddItemToObject(params, "output", valueObj); + // + // cJSON_AddItemToObject(packet, "params", params); + // + // const char* json_str = cJSON_Print(packet); + // strcpy(buf, json_str); + // + // cJSON_Delete(packet); return strlen(buf); } diff --git a/Core/Src/freertos.c b/Core/Src/freertos.c index bcff0f2..a1865ea 100644 --- a/Core/Src/freertos.c +++ b/Core/Src/freertos.c @@ -324,7 +324,7 @@ void Display_IM1281B(void) char buffer[16]; - snprintf(buffer, sizeof(buffer), "%.2fV ", IM_Volt * 0.0001); + snprintf(buffer, sizeof(buffer), "%.1f ", IM_Volt * 0.0001); OLED_ShowString(16, 5, buffer, 12); snprintf(buffer, sizeof(buffer), "%.2fA ", IM_Curr * 0.0001);