|
|
@@ -2004,7 +2004,7 @@ char* over_channel_power_history_to_json(GlobalPowerInfo* _globalPowerInfo,Globa
|
|
|
/// @brief 返回监控总信息
|
|
|
/// @param _over_back_sts_info
|
|
|
/// @return
|
|
|
-char* over_all_pwr_monitor_Tree_AC_to_json(_OverAllPwrAckInfo* _over_all_pwr_back_info_L1,_OverAllPwrAckInfo* _over_all_pwr_back_info_L2,_OverAllPwrAckInfo* _over_all_pwr_back_info_L3)
|
|
|
+char* over_all_pwr_monitor_Tree_AC_to_json(_OverAllPwrAckInfo* _over_all_pwr_back_info_L1,_OverAllPwrAckInfo* _over_all_pwr_back_info_L2,_OverAllPwrAckInfo* _over_all_pwr_back_info_L3,_OverAllPwrAckInfo* _over_all_pwr_back_info_all)
|
|
|
{
|
|
|
char* str = NULL;
|
|
|
char temp[64] = {0};
|
|
|
@@ -2062,8 +2062,25 @@ char* over_all_pwr_monitor_Tree_AC_to_json(_OverAllPwrAckInfo* _over_all_pwr_bac
|
|
|
|
|
|
sprintf(temp,"%0.3f",1.0);
|
|
|
cJSON_AddStringToObject(data_filed,"productPowerFactorMaximum",temp);
|
|
|
+ //计算L1有功功率和无功功率
|
|
|
+ float FactorTemp = _over_all_pwr_back_info_L1->factor;
|
|
|
+ float PowerTemp = _over_all_pwr_back_info_L1->power;
|
|
|
+ float ReaPowerTemp = 0;
|
|
|
+ float AppPowerTemp = 0;
|
|
|
+ if (FactorTemp < 0.005 || FactorTemp > 1)
|
|
|
+ {
|
|
|
+ FactorTemp = 1.0;
|
|
|
+ }
|
|
|
+ AppPowerTemp= PowerTemp / FactorTemp;
|
|
|
+ ReaPowerTemp= AppPowerTemp- PowerTemp;
|
|
|
+
|
|
|
+ sprintf(temp,"%0.3f",ReaPowerTemp/1000.0);
|
|
|
+ cJSON_AddStringToObject(data_filed,"productReactivePower",temp);
|
|
|
+ sprintf(temp,"%0.3f",AppPowerTemp/1000.0);
|
|
|
+ cJSON_AddStringToObject(data_filed,"productApparentPower",temp);
|
|
|
|
|
|
cJSON_AddItemToObject(data_root_array, "data", data_filed);
|
|
|
+
|
|
|
//第二条记录
|
|
|
cJSON* data_filed1= cJSON_CreateObject();
|
|
|
|
|
|
@@ -2107,8 +2124,25 @@ char* over_all_pwr_monitor_Tree_AC_to_json(_OverAllPwrAckInfo* _over_all_pwr_bac
|
|
|
|
|
|
sprintf(temp,"%0.3f",1.0);
|
|
|
cJSON_AddStringToObject(data_filed1,"productPowerFactorMaximum",temp);
|
|
|
+ //计算L2有功功率和无功功率
|
|
|
+ float FactorTemp1 = _over_all_pwr_back_info_L2->factor;
|
|
|
+ float PowerTemp1 = _over_all_pwr_back_info_L2->power;
|
|
|
+ float ReaPowerTemp1 = 0;
|
|
|
+ float AppPowerTemp1 = 0;
|
|
|
+ if (FactorTemp1 < 0.005 || FactorTemp1 > 1)
|
|
|
+ {
|
|
|
+ FactorTemp1 = 1.0;
|
|
|
+ }
|
|
|
+ AppPowerTemp1= PowerTemp1 / FactorTemp1;
|
|
|
+ ReaPowerTemp1= AppPowerTemp1- PowerTemp1;
|
|
|
+
|
|
|
+ sprintf(temp,"%0.3f",ReaPowerTemp1/1000.0);
|
|
|
+ cJSON_AddStringToObject(data_filed1,"productReactivePower",temp);
|
|
|
+ sprintf(temp,"%0.3f",AppPowerTemp1/1000.0);
|
|
|
+ cJSON_AddStringToObject(data_filed1,"productApparentPower",temp);
|
|
|
|
|
|
cJSON_AddItemToObject(data_root_array, "data", data_filed1);
|
|
|
+
|
|
|
//第三条记录
|
|
|
cJSON* data_filed2= cJSON_CreateObject();
|
|
|
|
|
|
@@ -2152,9 +2186,89 @@ char* over_all_pwr_monitor_Tree_AC_to_json(_OverAllPwrAckInfo* _over_all_pwr_bac
|
|
|
|
|
|
sprintf(temp,"%0.3f",1.0);
|
|
|
cJSON_AddStringToObject(data_filed2,"productPowerFactorMaximum",temp);
|
|
|
+ // 计算L3有功功率和无功功率
|
|
|
+ float FactorTemp2 = _over_all_pwr_back_info_L3->factor;
|
|
|
+ float PowerTemp2 = _over_all_pwr_back_info_L3->power;
|
|
|
+ float ReaPowerTemp2 = 0;
|
|
|
+ float AppPowerTemp2 = 0;
|
|
|
+ if (FactorTemp2 < 0.005 || FactorTemp2 > 1)
|
|
|
+ {
|
|
|
+ FactorTemp2 = 1.0;
|
|
|
+ }
|
|
|
+ AppPowerTemp2 = PowerTemp2/ FactorTemp2;
|
|
|
+ ReaPowerTemp2 = AppPowerTemp2 - PowerTemp2;
|
|
|
+
|
|
|
+ sprintf(temp, "%0.3f", ReaPowerTemp2 / 1000.0);
|
|
|
+ cJSON_AddStringToObject(data_filed2, "productReactivePower", temp);
|
|
|
+ sprintf(temp, "%0.3f", AppPowerTemp2 / 1000.0);
|
|
|
+ cJSON_AddStringToObject(data_filed2, "productApparentPower", temp);
|
|
|
|
|
|
cJSON_AddItemToObject(data_root_array, "data", data_filed2);
|
|
|
|
|
|
+ //第四条记录 all
|
|
|
+ cJSON* data_filed3= cJSON_CreateObject();
|
|
|
+
|
|
|
+ if (_over_all_pwr_back_info_all->product_id == 0) {
|
|
|
+ sprintf(temp, "%s", _over_all_pwr_back_info_all->product_name);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sprintf(temp, "%s %d", _over_all_pwr_back_info_all->product_name, _over_all_pwr_back_info_all->product_id);
|
|
|
+ }
|
|
|
+ cJSON_AddStringToObject(data_filed3,"productName",temp);
|
|
|
+ //cJSON_AddStringToObject(data_filed2,"productNumber",_over_all_pwr_back_info_all->product_number);
|
|
|
+ cJSON_AddStringToObject(data_filed3,"productNumber","Smart PDU");
|
|
|
+ sprintf(temp,"%d",_over_all_pwr_back_info_all->product_id);
|
|
|
+ cJSON_AddStringToObject(data_filed3,"productId",temp);
|
|
|
+ cJSON_AddStringToObject(data_filed3,"productPhOrder","ALL");
|
|
|
+
|
|
|
+ sprintf(temp,"%0.3f",_over_all_pwr_back_info_all->voltage);
|
|
|
+ cJSON_AddStringToObject(data_filed3,"productVoltage",temp);
|
|
|
+
|
|
|
+ sprintf(temp,"%d",dm->_globalDevInfo.ptotal.voltage);
|
|
|
+ cJSON_AddStringToObject(data_filed3,"productVoltageMaximum",temp);
|
|
|
+
|
|
|
+ sprintf(temp,"%0.3f",_over_all_pwr_back_info_all->current);
|
|
|
+ cJSON_AddStringToObject(data_filed3,"productCurrent",temp);
|
|
|
+
|
|
|
+ sprintf(temp,"%d",dm->_globalDevInfo.ptotal.current);
|
|
|
+ cJSON_AddStringToObject(data_filed3,"productCurrentMaximum",temp);
|
|
|
+
|
|
|
+ sprintf(temp,"%0.3f",_over_all_pwr_back_info_all->power/1000);
|
|
|
+ cJSON_AddStringToObject(data_filed3,"productPower",temp);
|
|
|
+
|
|
|
+ sprintf(temp,"%d",dm->_globalDevInfo.ptotal.power);
|
|
|
+ cJSON_AddStringToObject(data_filed3,"productPowerMaximum",temp);
|
|
|
+
|
|
|
+ sprintf(temp,"%0.3f",_over_all_pwr_back_info_all->freq);
|
|
|
+ cJSON_AddStringToObject(data_filed3,"productPowerFreq",temp);
|
|
|
+ sprintf(temp,"%0.3f",_over_all_pwr_back_info_all->consumption);
|
|
|
+ cJSON_AddStringToObject(data_filed3,"productConsumption",temp);
|
|
|
+ sprintf(temp,"%0.3f",_over_all_pwr_back_info_all->factor);
|
|
|
+ cJSON_AddStringToObject(data_filed3,"productPowerFactor",temp);
|
|
|
+
|
|
|
+ sprintf(temp,"%0.3f",1.0);
|
|
|
+ cJSON_AddStringToObject(data_filed3,"productPowerFactorMaximum",temp);
|
|
|
+
|
|
|
+ // 计算all有功功率和无功功率
|
|
|
+ float FactorTemp3= _over_all_pwr_back_info_all->factor;
|
|
|
+ float PowerTemp3= _over_all_pwr_back_info_all->power;
|
|
|
+ float ReaPowerTemp3 = 0;
|
|
|
+ float AppPowerTemp3 = 0;
|
|
|
+ if (FactorTemp3 < 0.005 || FactorTemp3 > 1)
|
|
|
+ {
|
|
|
+ FactorTemp3 = 1.0;
|
|
|
+ }
|
|
|
+ AppPowerTemp3 = PowerTemp3/ FactorTemp3;
|
|
|
+ ReaPowerTemp3 = AppPowerTemp3 - PowerTemp3;
|
|
|
+
|
|
|
+ sprintf(temp, "%0.3f", ReaPowerTemp3/ 1000.0);
|
|
|
+ cJSON_AddStringToObject(data_filed3, "productReactivePower", temp);
|
|
|
+ sprintf(temp, "%0.3f", AppPowerTemp3 / 1000.0);
|
|
|
+ cJSON_AddStringToObject(data_filed3, "productApparentPower", temp);
|
|
|
+
|
|
|
+ cJSON_AddItemToObject(data_root_array, "data", data_filed3);
|
|
|
+
|
|
|
+
|
|
|
//添加汇总
|
|
|
cJSON_AddItemToObject(sdata_filed, "data", data_root_array);
|
|
|
cJSON_AddStringToObject(sdata_filed, "msg", language_Operation_Success[__globalDeviceManage._globalDevInfo.product.language]);
|
|
|
@@ -2216,7 +2330,7 @@ char* over_all_pwr_monitor_to_json(int phaseType,_OverAllPwrAckInfo* _over_all_p
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- cJSON_AddStringToObject(data_filed,"productPhOrder","All");
|
|
|
+ cJSON_AddStringToObject(data_filed,"productPhOrder","ALL");
|
|
|
}
|
|
|
|
|
|
sprintf(temp,"%0.3f",_over_all_pwr_back_info->voltage);
|
|
|
@@ -2247,7 +2361,7 @@ char* over_all_pwr_monitor_to_json(int phaseType,_OverAllPwrAckInfo* _over_all_p
|
|
|
sprintf(temp,"%0.3f",1.0);
|
|
|
cJSON_AddStringToObject(data_filed,"productPowerFactorMaximum",temp);
|
|
|
|
|
|
- /*
|
|
|
+
|
|
|
//计算有功功率和无功功率,暂时屏蔽,待需求确认,liyuezong 2025.08.30
|
|
|
float FactorTemp = _over_all_pwr_back_info->factor;
|
|
|
float PowerTemp = _over_all_pwr_back_info->power;
|
|
|
@@ -2264,7 +2378,6 @@ char* over_all_pwr_monitor_to_json(int phaseType,_OverAllPwrAckInfo* _over_all_p
|
|
|
cJSON_AddStringToObject(data_filed,"productReactivePower",temp);
|
|
|
sprintf(temp,"%0.3f",AppPowerTemp/1000.0);
|
|
|
cJSON_AddStringToObject(data_filed,"productApparentPower",temp);
|
|
|
- */
|
|
|
|
|
|
|
|
|
// cJSON_AddNumberToObject(data_filed,"productVoltage",_over_all_pwr_back_info->voltage);
|
|
|
@@ -2709,6 +2822,17 @@ char* over_chn_pwr_monitor_to_json(_OverChnPwrAckInfo* _over_chn_pwr_back_info)
|
|
|
cJSON_AddStringToObject(data_filed,"productChCurrent",temp);
|
|
|
sprintf(temp,"%0.3f",_chnPwrTemp->power);
|
|
|
cJSON_AddStringToObject(data_filed,"productChPower",temp);
|
|
|
+ float FactorTemp = _chnPwrTemp->factor;
|
|
|
+ float PowerTemp = _chnPwrTemp->power;
|
|
|
+ float AppPowerTemp = 0;
|
|
|
+ if (FactorTemp < 0.005 || FactorTemp > 1)
|
|
|
+ {
|
|
|
+ FactorTemp = 1.0;
|
|
|
+ }
|
|
|
+ AppPowerTemp = PowerTemp / FactorTemp;
|
|
|
+ sprintf(temp,"%0.3f",AppPowerTemp);
|
|
|
+ cJSON_AddStringToObject(data_filed, "productChApparentPower", temp);
|
|
|
+
|
|
|
sprintf(temp,"%0.3f",_chnPwrTemp->freq);
|
|
|
cJSON_AddStringToObject(data_filed,"productChPowerFreq",temp);
|
|
|
sprintf(temp,"%0.3f",_chnPwrTemp->consumption);
|
|
|
@@ -4533,6 +4657,25 @@ char* ws_over_status_ack_to_json(int type,_OverAllPwrAckInfo* _over_all_pwr_back
|
|
|
cJSON_AddStringToObject(data_filed,"productPowerFactor",temp);
|
|
|
sprintf(temp,"%0.3f",1.0);
|
|
|
cJSON_AddStringToObject(data_filed,"productPowerFactorMaximum",temp);
|
|
|
+
|
|
|
+ //计算有功功率和无功功率
|
|
|
+ float FactorTemp = _over_all_pwr_back_info->factor;
|
|
|
+ float PowerTemp = _over_all_pwr_back_info->power;
|
|
|
+ float ReaPowerTemp = 0;
|
|
|
+ float AppPowerTemp = 0;
|
|
|
+ if (FactorTemp < 0.005 || FactorTemp > 1)
|
|
|
+ {
|
|
|
+ FactorTemp = 1.0;
|
|
|
+ }
|
|
|
+ AppPowerTemp= PowerTemp / FactorTemp;
|
|
|
+ ReaPowerTemp= AppPowerTemp- PowerTemp;
|
|
|
+
|
|
|
+ sprintf(temp,"%0.3f",ReaPowerTemp/1000.0);
|
|
|
+ cJSON_AddStringToObject(data_filed,"productReactivePower",temp);
|
|
|
+ sprintf(temp,"%0.3f",AppPowerTemp/1000.0);
|
|
|
+ cJSON_AddStringToObject(data_filed,"productApparentPower",temp);
|
|
|
+
|
|
|
+
|
|
|
cJSON_AddItemToObject(sub_data_root_array, "data", data_filed);
|
|
|
//添加汇总
|
|
|
cJSON_AddItemToObject(sdata_filed, "data", sub_data_root_array);
|
|
|
@@ -4600,7 +4743,19 @@ char* ws_chn_status_ack_to_json(int type,_OverChnPwrAckInfo* _over_chn_pwr_back_
|
|
|
cJSON_AddStringToObject(data_filed,"productChCurrent",temp);
|
|
|
sprintf(temp,"%0.3f",_chnPwrTemp->power);
|
|
|
cJSON_AddStringToObject(data_filed,"productChPower",temp);
|
|
|
- sprintf(temp,"%0.3f",_chnPwrTemp->freq);
|
|
|
+
|
|
|
+ float FactorTemp = _chnPwrTemp->factor;
|
|
|
+ float PowerTemp = _chnPwrTemp->power;
|
|
|
+ float AppPowerTemp = 0;
|
|
|
+ if (FactorTemp < 0.005 || FactorTemp > 1)
|
|
|
+ {
|
|
|
+ FactorTemp = 1.0;
|
|
|
+ }
|
|
|
+ AppPowerTemp = PowerTemp / FactorTemp;
|
|
|
+ sprintf(temp,"%0.3f",AppPowerTemp);
|
|
|
+ cJSON_AddStringToObject(data_filed, "productApparentPower", temp);
|
|
|
+
|
|
|
+ sprintf(temp, "%0.3f", _chnPwrTemp->freq);
|
|
|
cJSON_AddStringToObject(data_filed,"productChPowerFreq",temp);
|
|
|
sprintf(temp,"%0.3f",_chnPwrTemp->consumption);
|
|
|
cJSON_AddStringToObject(data_filed,"productChConsumption",temp);
|