Преглед изворни кода

1、修改三项每相频率统计错误;2、修改耗电量复位bug

liyuezong пре 2 година
родитељ
комит
31e9acdc64
3 измењених фајлова са 22 додато и 21 уклоњено
  1. 7 5
      pro/src/app.c
  2. 14 16
      pro/src/appweb_handle.c
  3. 1 0
      pro/src/switch_ctrl.c

+ 7 - 5
pro/src/app.c

@@ -576,11 +576,12 @@ void* power_thread(void* arg)
                         memcpy(&_globalTACWarningInfo,&_globalDeviceManager->_all_ctrl_board[_pTreeACPowerMangerTemp->product_saddr]._PowerWarninginfo[_pTreeACPowerMangerTemp->product_ch_addr - 1],sizeof(PowerWarningInfo));
                         gettimeofday(&tv, NULL);
                         // t = localtime(&tv.tv_sec);
+                         _globalDeviceManager->_all_ctrl_board[_pTreeACPowerMangerTemp->product_saddr]._globalPowerInManger._PowerInfo[k].freq=_globalDeviceManager->_all_ctrl_board[_pTreeACPowerMangerTemp->product_saddr]._globalPowerInManger._PowerInfo[k].freq> _pTreeACPowerMangerTemp->_PowerInfo.freq?_globalDeviceManager->_all_ctrl_board[_pTreeACPowerMangerTemp->product_saddr]._globalPowerInManger._PowerInfo[k].freq:_pTreeACPowerMangerTemp->_PowerInfo.freq;
                         //计算总三项总数据
                         _globalPowerInfo._power_info.voltage = _pTreeACPowerMangerTemp->_PowerInfo.voltage;
                         _globalPowerInfo._power_info.current += _pTreeACPowerMangerTemp->_PowerInfo.current;
                         _globalPowerInfo._power_info.power += _pTreeACPowerMangerTemp->_PowerInfo.power;
-                        _globalPowerInfo._power_info.freq = _pTreeACPowerMangerTemp->_PowerInfo.freq;
+                        _globalPowerInfo._power_info.freq =_globalPowerInfo._power_info.freq> _pTreeACPowerMangerTemp->_PowerInfo.freq?_globalPowerInfo._power_info.freq:_pTreeACPowerMangerTemp->_PowerInfo.freq;
                         _globalPowerInfo._power_info.consumption += _pTreeACPowerMangerTemp->_PowerInfo.consumption;
                         _globalPowerInfo._power_info.factor = _pTreeACPowerMangerTemp->_PowerInfo.factor > _globalPowerInfo._power_info.factor ? _pTreeACPowerMangerTemp->_PowerInfo.factor : _globalPowerInfo._power_info.factor;
                         if (__globalDeviceManage.triphasic_mmap)
@@ -891,10 +892,11 @@ void* power_thread(void* arg)
                     }
                     _pTreeACPowerMangerTemp->_PowerInfo.current += _globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger._PowerInfo[nTreeACType].current;
                     _pTreeACPowerMangerTemp->_PowerInfo.power += _globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger._PowerInfo[nTreeACType].power;
-                    if (_globalTotalPowerInfo._power_info.freq != 0)
-                    {
-                        _pTreeACPowerMangerTemp->_PowerInfo.freq = _globalTotalPowerInfo._power_info.freq;
-                    }
+                   // if (_globalTotalPowerInfo._power_info.freq != 0)
+                  //  {
+                     //   _pTreeACPowerMangerTemp->_PowerInfo.freq = _globalTotalPowerInfo._power_info.freq;
+                   // }
+                     _pTreeACPowerMangerTemp->_PowerInfo.freq =  _globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger._PowerInfo[nTreeACType].freq> _pTreeACPowerMangerTemp->_PowerInfo.freq? _globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger._PowerInfo[nTreeACType].freq: _pTreeACPowerMangerTemp->_PowerInfo.freq;
                     _pTreeACPowerMangerTemp->_PowerInfo.consumption += _globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger._PowerInfo[nTreeACType].consumption;
                     _pTreeACPowerMangerTemp->_PowerInfo.factor = _globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger._PowerInfo[nTreeACType].factor;
                 }

+ 14 - 16
pro/src/appweb_handle.c

@@ -1785,28 +1785,26 @@ static void channelStatusMonitoring(void* conn)
             _globalPowerMangerTemp=NULL;
             list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
             {
-                if (_over_chn_pwr_request.productChId == g_pwr_ch_id)
-                {
-                    break;
-                }
-            }
-            if (_globalPowerMangerTemp != NULL)
-            {
-                if (__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One
-                    ||__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One_B|| __globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_Tree)
-                {
-                    GlobalTreeACManager *_globalTACManager = NULL;
-                    list_for_each_entry(_globalTACManager, &_globalPowerMangerTemp->list_Tree_AC, list_Tree_AC)
+                    if (g_pwr_ch_id != _globalPowerMangerTemp->product_ch_id)
                     {
-                        if (g_switch_set_t_ac_phchn_reset(&__globalDeviceManage._globalRelaySampManger, _globalTACManager->product_saddr, _globalTACManager->product_ch_addr) < 0)
+                        continue;
+                    }
+                    if (__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One || __globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One_B || __globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_Tree)
+                    {
+                        GlobalTreeACManager *_globalTACManager = NULL;
+                        list_for_each_entry(_globalTACManager, &_globalPowerMangerTemp->list_Tree_AC, list_Tree_AC)
                         {
-                            log_e("Error: phchn_reset");
+                            if (g_switch_set_t_ac_phchn_reset(&__globalDeviceManage._globalRelaySampManger, _globalTACManager->product_saddr, _globalTACManager->product_ch_addr-1) < 0)
+                            {
+                                log_e("Error: phchn_reset");
+                            }
+                            usleep(100000);//延时50ms,等待控制板串口写完
                         }
                     }
-                 }
+                    break;
             }
             pCHlist = strtok_r(NULL, ",", &pCHListSave);
-            usleep(30000);//延时50ms,等待控制板串口写完
+
         }
         char log_buff[256];
         sprintf(log_buff, "Reset power consumption!");

+ 1 - 0
pro/src/switch_ctrl.c

@@ -2175,6 +2175,7 @@ int g_switch_get_t_ac_in_info(void* manger,int saddr,PowerInfo* _power,PowerWarn
         _power[i].power = value / 1000.0;
         value = (data_temp[19+Index] << 16) + data_temp[18+Index];
         _power[i].consumption = value / 1000.0;
+        _power[i].freq=0;
     }    
 
     offset = _SWITCH_T_AC_IN_ERROR;