Procházet zdrojové kódy

1、更新双火线控制板功率因数计算

liyuezong před 1 rokem
rodič
revize
2893ea978b
1 změnil soubory, kde provedl 34 přidání a 16 odebrání
  1. 34 16
      pro/src/app.c

+ 34 - 16
pro/src/app.c

@@ -156,34 +156,52 @@ static void* power_thread(void* arg)
                                                     _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerWarninginfo);
                 }
                 //计算控制板每相输入总功率因数
-                for (size_t p= 0;p < 3; p++)
+
+                for (size_t p = 0; p < 3; p++)
                 {
-                    float nYGPower=0;
-                    float nSZPower=0;
-                    for (size_t s = 0; s< AC_SINGLE_S_MAX_CHN_NUM; s++)
+                    float nYGPower = 0;
+                    float nSZPower = 0;
+                    for (size_t s = 0; s < AC_SINGLE_S_MAX_CHN_NUM; s++)
                     {
-                        if (s%3==p)
+                        if (_globalDeviceManager->pCtrlBoard[i].product_type == TREE_AC_TYPE)
                         {
-                            nSZPower += _globalDeviceManager->pCtrlBoard[i]._PowerInfo[s].power;
-                            nYGPower += _globalDeviceManager->pCtrlBoard[i]._PowerInfo[s].power* _globalDeviceManager->pCtrlBoard[i]._PowerInfo[s].factor;
+                            if (s % 3 == p)
+                            {
+                                nSZPower += _globalDeviceManager->pCtrlBoard[i]._PowerInfo[s].power;
+                                nYGPower += _globalDeviceManager->pCtrlBoard[i]._PowerInfo[s].power * _globalDeviceManager->pCtrlBoard[i]._PowerInfo[s].factor;
+                            }
+                        }
+                        else if (_globalDeviceManager->pCtrlBoard[i].product_type == DOUBLE_AC_TYPE)
+                        {
+                            if (_globalDeviceManager->pCtrlBoard[i].nLeft_phType == p && s < 4)
+                            {
+                                nSZPower += _globalDeviceManager->pCtrlBoard[i]._PowerInfo[s].power;
+                                nYGPower += _globalDeviceManager->pCtrlBoard[i]._PowerInfo[s].power * _globalDeviceManager->pCtrlBoard[i]._PowerInfo[s].factor;
+                            }
+                            if (_globalDeviceManager->pCtrlBoard[i].nRight_phType == p && (s >= 4 && s < 8))
+                            {
+                                nSZPower += _globalDeviceManager->pCtrlBoard[i]._PowerInfo[s].power;
+                                nYGPower += _globalDeviceManager->pCtrlBoard[i]._PowerInfo[s].power * _globalDeviceManager->pCtrlBoard[i]._PowerInfo[s].factor;
+                            }
                         }
                     }
-                    if (nSZPower>0)
+                    if (nSZPower > 0)
                     {
-                        _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[p].factor = nYGPower/nSZPower;
+                        _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[p].factor = nYGPower / nSZPower;
                     }
-                   else  _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[p].factor = 0;
-                    
-                    if (_globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[p].factor>1)
+                    else
+                        _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[p].factor = 0;
+
+                    if (_globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[p].factor > 1)
                     {
-                        _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[p].factor=1;
+                        _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[p].factor = 1;
                     }
-                    else if (_globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[p].factor<0)
+                    else if (_globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[p].factor < 0)
                     {
-                       _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[p].factor=0;
+                        _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[p].factor = 0;
                     }
                 }
-                
+
                 ret = g_switch_set_t_ac_alarm_missing_ph(&_globalDeviceManager->_globalRelaySampManger,
                                                          _globalDeviceManager->pCtrlBoard[i].product_saddr,
                                                          _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger.product_MissingPH);