json_handle.c 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. #include "json_handle.h"
  2. #include "log.h"
  3. #include <rtthread.h>
  4. cJSON* json_to_chn_pwr_status_monitor(const char* str,channel_power_request* chn_pwr_req)
  5. {
  6. int temp = 0 ;
  7. cJSON* cjson = NULL;
  8. cjson = cJSON_Parse(str);
  9. if(cjson==NULL)
  10. {
  11. LOG_E("Invalid JSON!");
  12. return NULL;
  13. }
  14. cJSON* _cjson = cJSON_GetObjectItem(cjson,"type");
  15. if(_cjson!=NULL)
  16. chn_pwr_req->type = _cjson->valuestring;
  17. _cjson = cJSON_GetObjectItem(cjson,"chnId");
  18. if(_cjson!=NULL)
  19. chn_pwr_req->pro_ch_id = _cjson->valueint;
  20. _cjson = cJSON_GetObjectItem(cjson,"openInterval");
  21. if(_cjson!=NULL)
  22. chn_pwr_req->open = _cjson->valueint;
  23. _cjson = cJSON_GetObjectItem(cjson,"closeInterval");
  24. if(_cjson!=NULL)
  25. chn_pwr_req->close = _cjson->valueint;
  26. //chnVoltageMax
  27. _cjson = cJSON_GetObjectItem(cjson,"chnVoltageMax");
  28. if(_cjson!=NULL)
  29. chn_pwr_req->v_max = (float)_cjson->valuedouble;
  30. _cjson = cJSON_GetObjectItem(cjson,"chnVoltageMin");
  31. if(_cjson!=NULL)
  32. chn_pwr_req->v_min = (float)_cjson->valuedouble;
  33. _cjson = cJSON_GetObjectItem(cjson,"chnCurrentMAX");
  34. if(_cjson!=NULL)
  35. chn_pwr_req->i_max = (float)_cjson->valuedouble;
  36. _cjson = cJSON_GetObjectItem(cjson,"chnPowerMAX");
  37. if(_cjson!=NULL)
  38. chn_pwr_req->p_max = (float)_cjson->valuedouble;
  39. _cjson = cJSON_GetObjectItem(cjson,"chnConsumptionMAX");
  40. if(_cjson!=NULL)
  41. chn_pwr_req->w_max = (float)_cjson->valuedouble;
  42. return cjson;
  43. }
  44. cJSON* json_to_all_pwr_status_monitor(const char* str,all_power_request* _over_all_pwr_request)
  45. {
  46. cJSON* cjson = NULL;
  47. cjson = cJSON_Parse(str);
  48. if(cjson==NULL)
  49. {
  50. LOG_E("Invalid JSON!");
  51. return NULL;
  52. }
  53. cJSON* _cjson = cJSON_GetObjectItem(cjson,"type");
  54. if(_cjson!=NULL)
  55. _over_all_pwr_request->type = _cjson->valuestring;
  56. _cjson = cJSON_GetObjectItem(cjson,"phId");
  57. if(_cjson!=NULL)
  58. _over_all_pwr_request->ph_id = _cjson->valueint;
  59. _cjson = cJSON_GetObjectItem(cjson,"allVoltageMax");
  60. if(_cjson!=NULL)
  61. _over_all_pwr_request->v_max = (float)_cjson->valuedouble;
  62. _cjson = cJSON_GetObjectItem(cjson,"allVoltageMin");
  63. if(_cjson!=NULL)
  64. _over_all_pwr_request->v_min = (float)_cjson->valuedouble;
  65. _cjson = cJSON_GetObjectItem(cjson,"allCurrentMAX");
  66. if(_cjson!=NULL)
  67. _over_all_pwr_request->i_max = (float)_cjson->valuedouble;
  68. _cjson = cJSON_GetObjectItem(cjson,"allPowerMAX");
  69. if(_cjson!=NULL)
  70. _over_all_pwr_request->p_max = (float)_cjson->valuedouble;
  71. _cjson = cJSON_GetObjectItem(cjson,"allConsumptionMAX");
  72. if(_cjson!=NULL)
  73. _over_all_pwr_request->w_max = (float)_cjson->valuedouble;
  74. return cjson;
  75. }
  76. cJSON* json_to_sensor_status_monitor(const char* str,sensor_request* _over_sensor_request)
  77. {
  78. cJSON* cjson = NULL;
  79. cjson = cJSON_Parse(str);
  80. if(cjson==NULL)
  81. {
  82. LOG_E("Invalid JSON!");
  83. return NULL;
  84. }
  85. cJSON* _cjson = cJSON_GetObjectItem(cjson,"type");
  86. if(_cjson!=NULL)
  87. _over_sensor_request->type = _cjson->valuestring;
  88. _cjson = cJSON_GetObjectItem(cjson,"sensorId");
  89. if(_cjson!=NULL)
  90. _over_sensor_request->sensor_id = _cjson->valueint;
  91. _cjson = cJSON_GetObjectItem(cjson,"sensorMax");
  92. if(_cjson!=NULL)
  93. _over_sensor_request->s_max = (float)_cjson->valuedouble;
  94. _cjson = cJSON_GetObjectItem(cjson,"sensorMin");
  95. if(_cjson!=NULL)
  96. _over_sensor_request->s_max = (float)_cjson->valuedouble;
  97. return cjson;
  98. }