#include "json_handle.h" #include "log.h" #include cJSON* json_to_chn_pwr_status_monitor(const char* str,channel_power_request* chn_pwr_req) { int temp = 0 ; cJSON* cjson = NULL; cjson = cJSON_Parse(str); if(cjson==NULL) { LOG_E("Invalid JSON!"); return NULL; } cJSON* _cjson = cJSON_GetObjectItem(cjson,"type"); if(_cjson!=NULL) chn_pwr_req->type = _cjson->valuestring; _cjson = cJSON_GetObjectItem(cjson,"chnId"); if(_cjson!=NULL) chn_pwr_req->pro_ch_id = _cjson->valueint; _cjson = cJSON_GetObjectItem(cjson,"openInterval"); if(_cjson!=NULL) chn_pwr_req->open = _cjson->valueint; _cjson = cJSON_GetObjectItem(cjson,"closeInterval"); if(_cjson!=NULL) chn_pwr_req->close = _cjson->valueint; //chnVoltageMax _cjson = cJSON_GetObjectItem(cjson,"chnVoltageMax"); if(_cjson!=NULL) chn_pwr_req->v_max = (float)_cjson->valuedouble; _cjson = cJSON_GetObjectItem(cjson,"chnVoltageMin"); if(_cjson!=NULL) chn_pwr_req->v_min = (float)_cjson->valuedouble; _cjson = cJSON_GetObjectItem(cjson,"chnCurrentMAX"); if(_cjson!=NULL) chn_pwr_req->i_max = (float)_cjson->valuedouble; _cjson = cJSON_GetObjectItem(cjson,"chnPowerMAX"); if(_cjson!=NULL) chn_pwr_req->p_max = (float)_cjson->valuedouble; _cjson = cJSON_GetObjectItem(cjson,"chnConsumptionMAX"); if(_cjson!=NULL) chn_pwr_req->w_max = (float)_cjson->valuedouble; return cjson; } cJSON* json_to_all_pwr_status_monitor(const char* str,all_power_request* _over_all_pwr_request) { cJSON* cjson = NULL; cjson = cJSON_Parse(str); if(cjson==NULL) { LOG_E("Invalid JSON!"); return NULL; } cJSON* _cjson = cJSON_GetObjectItem(cjson,"type"); if(_cjson!=NULL) _over_all_pwr_request->type = _cjson->valuestring; _cjson = cJSON_GetObjectItem(cjson,"phId"); if(_cjson!=NULL) _over_all_pwr_request->ph_id = _cjson->valueint; _cjson = cJSON_GetObjectItem(cjson,"allVoltageMax"); if(_cjson!=NULL) _over_all_pwr_request->v_max = (float)_cjson->valuedouble; _cjson = cJSON_GetObjectItem(cjson,"allVoltageMin"); if(_cjson!=NULL) _over_all_pwr_request->v_min = (float)_cjson->valuedouble; _cjson = cJSON_GetObjectItem(cjson,"allCurrentMAX"); if(_cjson!=NULL) _over_all_pwr_request->i_max = (float)_cjson->valuedouble; _cjson = cJSON_GetObjectItem(cjson,"allPowerMAX"); if(_cjson!=NULL) _over_all_pwr_request->p_max = (float)_cjson->valuedouble; _cjson = cJSON_GetObjectItem(cjson,"allConsumptionMAX"); if(_cjson!=NULL) _over_all_pwr_request->w_max = (float)_cjson->valuedouble; return cjson; } cJSON* json_to_sensor_status_monitor(const char* str,sensor_request* _over_sensor_request) { cJSON* cjson = NULL; cjson = cJSON_Parse(str); if(cjson==NULL) { LOG_E("Invalid JSON!"); return NULL; } cJSON* _cjson = cJSON_GetObjectItem(cjson,"type"); if(_cjson!=NULL) _over_sensor_request->type = _cjson->valuestring; _cjson = cJSON_GetObjectItem(cjson,"sensorId"); if(_cjson!=NULL) _over_sensor_request->sensor_id = _cjson->valueint; _cjson = cJSON_GetObjectItem(cjson,"sensorMax"); if(_cjson!=NULL) _over_sensor_request->s_max = (float)_cjson->valuedouble; _cjson = cJSON_GetObjectItem(cjson,"sensorMin"); if(_cjson!=NULL) _over_sensor_request->s_max = (float)_cjson->valuedouble; return cjson; }