#include "./SYSTEM/sys/sys.h"
#include "./SYSTEM/usart/usart.h"
#include "./SYSTEM/delay/delay.h"
//#include "./BSP/LED/led.h"
//#include "./USMART/usmart.h"
//#include "./BSP/KEY/key.h"
#include "./BSP/SRAM/sram.h"
#include "./MALLOC/malloc.h"
#include "freertos_demo.h"
//#include "./BSP/RS485/rs485.h"
//#include "./BSP/MODBUS_MASTER/master.h"
#include "cJSON.h"
//#include "test.c"
#include <stdio.h>
#include <stdlib.h>
#include "FreeRTOS.h"
int main (int argc, const char * argv[])
{
// int i=0;
HAL_Init(); /* 初始化HAL库 */
sys_stm32_clock_init(336, 8, 2, 7); /* 设置时钟,168Mhz */
delay_init(168);
usart_init(115200); /* 延时初始化 */
char* response_str = NULL;
cJSON* main_root = cJSON_CreateObject();
cJSON_AddStringToObject(main_root, "IP", "192.168.1.44");
cJSON* main_m_root=cJSON_CreateArray();
cJSON_AddItemToObject(main_root,"data",main_m_root);
//温度 1
cJSON* obj1=cJSON_CreateObject();
cJSON_AddItemToArray(main_m_root,obj1);
cJSON_AddStringToObject(obj1, "channel", "1");
cJSON_AddStringToObject(obj1, "type", "4");
cJSON* se1_root=cJSON_CreateObject();
cJSON_AddStringToObject(se1_root, "statue", "1");
cJSON_AddStringToObject(se1_root, "value", "4");
cJSON_AddItemToObject(obj1, "info", se1_root);
//湿度 2
cJSON* obj2=cJSON_CreateObject();
cJSON_AddItemToArray(main_m_root,obj2);
cJSON_AddStringToObject(obj2, "channel", "2");
cJSON_AddStringToObject(obj2, "type", "5");
cJSON* se2_root=cJSON_CreateObject();
cJSON_AddStringToObject(se2_root, "statue", "1");
cJSON_AddStringToObject(se2_root, "value", "4");
cJSON_AddItemToObject(obj2, "info", se2_root);
//噪音 3
cJSON* obj3=cJSON_CreateObject();
cJSON_AddItemToArray(main_m_root,obj3);
cJSON_AddStringToObject(obj3, "channel", "3");
cJSON_AddStringToObject(obj3, "type", "9");
cJSON* se3_root=cJSON_CreateObject();
cJSON_AddStringToObject(se3_root, "statue", "1");
cJSON_AddStringToObject(se3_root, "value", "4");
cJSON_AddItemToObject(obj3, "info", se3_root);
//烟感 4
cJSON* obj4=cJSON_CreateObject();
cJSON_AddItemToArray(main_m_root,obj4);
cJSON_AddStringToObject(obj4, "channel", "4");
cJSON_AddStringToObject(obj4, "type", "1");
cJSON* se4_root=cJSON_CreateObject();
cJSON_AddStringToObject(se4_root, "statue", "1");
cJSON_AddStringToObject(se4_root, "value", "4");
cJSON_AddItemToObject(obj4, "info", se4_root);
//红外报警 5
cJSON* obj5=cJSON_CreateObject();
cJSON_AddItemToArray(main_m_root,obj5);
cJSON_AddStringToObject(obj5, "channel", "5");
cJSON_AddStringToObject(obj5, "type", "6");
cJSON* se5_root=cJSON_CreateObject();
cJSON_AddStringToObject(se5_root, "statue", "1");
cJSON_AddStringToObject(se5_root, "value", "4");
cJSON_AddItemToObject(obj5, "info", se5_root);
//空开网关 6
cJSON* obj6=cJSON_CreateObject();
cJSON_AddItemToArray(main_m_root,obj6);
cJSON_AddStringToObject(obj6, "channel", "6");
cJSON_AddStringToObject(obj6, "type", "8");
cJSON_AddStringToObject(obj6, "value", "");
cJSON* th_root=cJSON_CreateArray();
cJSON_AddItemToObject(obj6,"airinfo",th_root);
cJSON* obj6_1=cJSON_CreateObject();
cJSON_AddItemToArray(th_root,obj6_1);
cJSON_AddStringToObject(obj6_1, "channel", "1");
cJSON_AddStringToObject(obj6_1, "voltage", "380");
cJSON_AddStringToObject(obj6_1, "leakage", "1");
cJSON_AddStringToObject(obj6_1, "power", "380");
cJSON_AddStringToObject(obj6_1, "temperature", "30");
cJSON_AddStringToObject(obj6_1, "electric", "500");
cJSON_AddStringToObject(obj6_1, "electric", "3520");
cJSON_AddStringToObject(obj6_1, "disjunctor", "1");
cJSON* obj6_1_param=cJSON_CreateObject();
//a
cJSON* obj6_1_param_a=cJSON_CreateObject();
cJSON_AddStringToObject(obj6_1_param_a, "voltage", "220");
cJSON_AddStringToObject(obj6_1_param_a, "power", "200");
cJSON_AddStringToObject(obj6_1_param_a, "temperature", "31");
cJSON_AddStringToObject(obj6_1_param_a, "electric", "450");
cJSON_AddItemToObject(obj6_1_param, "a", obj6_1_param_a);
//b
cJSON* obj6_1_param_b=cJSON_CreateObject();
cJSON_AddStringToObject(obj6_1_param_b, "voltage", "220");
cJSON_AddStringToObject(obj6_1_param_b, "power", "200");
cJSON_AddStringToObject(obj6_1_param_b, "temperature", "31");
cJSON_AddStringToObject(obj6_1_param_b, "electric", "450");
cJSON_AddItemToObject(obj6_1_param, "b", obj6_1_param_b);
//c
cJSON* obj6_1_param_c=cJSON_CreateObject();
cJSON_AddStringToObject(obj6_1_param_c, "voltage", "220");
cJSON_AddStringToObject(obj6_1_param_c, "power", "200");
cJSON_AddStringToObject(obj6_1_param_c, "temperature", "31");
cJSON_AddStringToObject(obj6_1_param_c, "electric", "450");
cJSON_AddItemToObject(obj6_1_param, "c", obj6_1_param_c);
cJSON_AddItemToObject(obj6_1, "param", obj6_1_param);
while (1)
{
printf("Free heap size: %d\n", xPortGetFreeHeapSize());
if (main_root == NULL) {
printf("Failed to allocate memory for cJSON object.\n");
continue;
}
// response_str= cJSON_PrintBuffered(main_root, 2048, 1); // 预分配512字节
response_str= cJSON_Print(main_root); // 预分配512字节
if (response_str == NULL) {
printf("Failed to print JSON string.\n");
cJSON_Delete(main_root);
continue;
}
response_str = cJSON_Print(main_root);
printf("%s\n",response_str);
free(response_str);
printf("Free heap size: %d\n", xPortGetFreeHeapSize());
}
// return 0;
}
//————————————————
执行一遍后输出Failed to print JSON string.如何解决?
最新发布