fix: remove cJSON on FillBuf

This commit is contained in:
2025-05-09 01:32:23 +08:00
parent 2f2a508788
commit 2d2bfa28f3
3 changed files with 85 additions and 48 deletions

View File

@ -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);
}

View File

@ -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);