Kaynağa Gözat

解决阈值设置的bug

guohui 1 yıl önce
ebeveyn
işleme
3de01ac444
4 değiştirilmiş dosya ile 39 ekleme ve 30 silme
  1. 4 4
      pro/src/appweb_handle.c
  2. 2 2
      pro/src/paras.c
  3. 32 23
      pro/src/switch_ctrl.c
  4. 1 1
      pro/src/switch_ctrl.h

+ 4 - 4
pro/src/appweb_handle.c

@@ -2972,7 +2972,7 @@ char* setThresholdToCh(_AlarmRequestInfo* _alarm_request_info,int nChID)
                                                     _globalPowerMangerSaveTemp->product_ch_type,
                                                     _pTreeACPowerMangerTemp->product_saddr,
                                                     _pTreeACPowerMangerTemp->product_ch_addr,
-                                                    _globalPowerMangerSaveTemp);
+                                                    _globalPowerMangerSaveTemp, 0);
         }
     }
     else
@@ -2981,7 +2981,7 @@ char* setThresholdToCh(_AlarmRequestInfo* _alarm_request_info,int nChID)
                                                 _globalPowerMangerSaveTemp->product_ch_type,
                                                 _globalPowerMangerSaveTemp->product_saddr,
                                                 _globalPowerMangerSaveTemp->product_ch_addr,
-                                                _globalPowerMangerSaveTemp);
+                                                _globalPowerMangerSaveTemp, 0);
     }
 
     if (ret < 0)
@@ -3300,7 +3300,7 @@ static void alarmProtect(void *conn)
                                                         _globalPowerMangerSaveTemp->product_ch_type,
                                                         _pTreeACPowerMangerTemp->product_saddr,
                                                         _pTreeACPowerMangerTemp->product_ch_addr,
-                                                        _globalPowerMangerSaveTemp);
+                                                        _globalPowerMangerSaveTemp, 1);
             }
         }
         else
@@ -3309,7 +3309,7 @@ static void alarmProtect(void *conn)
             _globalPowerMangerSaveTemp->product_ch_type, 
             _globalPowerMangerSaveTemp->product_saddr, 
             _globalPowerMangerSaveTemp->product_ch_addr,
-            _globalPowerMangerSaveTemp);
+            _globalPowerMangerSaveTemp, 0);
         }
 
         if (ret<0)

+ 2 - 2
pro/src/paras.c

@@ -2608,7 +2608,7 @@ static int proc_power(char *path, int op, GlobalPowerManger *power)
                         tmp->_PowerInfo = pwr._PowerInfo;
                         r = g_switch_set_all_single_threshold(&dm->_globalRelaySampManger,
                                                     tmp->product_ch_type, tmp->product_saddr,
-                                                    tmp->product_ch_addr, tmp);
+                                                    tmp->product_ch_addr, tmp, 0);
                     }
                 }
 
@@ -2903,7 +2903,7 @@ static int proc_power3(char *path, int op, GlobalTreeACManager *power)
                                                     pwr.product_ch_type,
                                                     tmp->product_saddr,
                                                     tmp->product_ch_addr,
-                                                    &pwr);
+                                                    &pwr, 0);
                     }
                 }
 

+ 32 - 23
pro/src/switch_ctrl.c

@@ -1033,7 +1033,7 @@ int g_switch_set_all_ctrl(void* manger,int ntype,int saddr,unsigned short sts)
     return 1;
 }
 
-int g_switch_set_all_single_threshold(void* manger,int ntype,int saddr,char chn,GlobalPowerManger* _globalPowerMangerTemp)
+int g_switch_set_all_single_threshold(void* manger,int ntype,int saddr,char chn,GlobalPowerManger* _globalPowerMangerTemp, int setCh)
 {
     int ret =0;   
     int sts=_globalPowerMangerTemp->_PowerInfo.status;
@@ -1060,7 +1060,9 @@ int g_switch_set_all_single_threshold(void* manger,int ntype,int saddr,char chn,
             if (_global_over_manager->product_pwrcon_upper_enable == 1)
                 sts |= ENABLE_P_UP;
         ret = g_switch_set_ac_alarm_ctrl(manger, saddr, (chn - 1), _global_over_manager);
-        return g_switch_set_ac_single_s_chn_ctrl(manger, saddr, (chn - 1), sts);
+        if(setCh) {
+            ret = g_switch_set_ac_single_s_chn_ctrl(manger, saddr, (chn - 1), sts);
+        }
     }
     break;
     case DC_OUT_TYPE:
@@ -1076,8 +1078,9 @@ int g_switch_set_all_single_threshold(void* manger,int ntype,int saddr,char chn,
         ret = g_switch_set_dcpdu_max_power_threshold(manger, saddr, (chn - 1), _global_over_manager);
         ret = g_switch_set_dcpdu_max_pwrcon_threshold(manger, saddr, (chn - 1), _global_over_manager);
 
-        ret = g_switch_set_dcpdu_alarm_ctrl(manger, saddr, (chn - 1), _global_over_manager);
-        return ret;
+        if(setCh) {
+            ret = g_switch_set_dcpdu_alarm_ctrl(manger, saddr, (chn - 1), _global_over_manager);
+        }
     }
     break;
     case TREE_AC_TYPE:
@@ -1085,12 +1088,13 @@ int g_switch_set_all_single_threshold(void* manger,int ntype,int saddr,char chn,
         if (chn == 0)
         {
             ret = g_switch_set_t_ac_in_threshold(manger, saddr, _global_over_manager);
-            ret = g_switch_set_t_ac_alarm_ctrl(manger, saddr, (chn - 1), _global_over_manager);
-            if (ret < 0)
-            {
-                log_e("Threshold AlarmCtrl Set Error=%s", modbus_strerror(errno));
+            if(setCh) {
+                ret = g_switch_set_t_ac_alarm_ctrl(manger, saddr, (chn - 1), _global_over_manager);
+                if (ret < 0)
+                {
+                    log_e("Threshold AlarmCtrl Set Error=%s", modbus_strerror(errno));
+                }
             }
-            return ret;
         }
         else
         {
@@ -1119,11 +1123,15 @@ int g_switch_set_all_single_threshold(void* manger,int ntype,int saddr,char chn,
             {
                 log_e("Threshold Set Error=%s", modbus_strerror(errno));
             }
-            ret = g_switch_set_t_ac_alarm_ctrl(manger, saddr, (chn - 1), _global_over_manager);
-            if (ret < 0)
-            {
-                log_e("Threshold AlarmCtrl Set Error=%s", modbus_strerror(errno));
+
+            if(setCh) {
+                ret = g_switch_set_t_ac_alarm_ctrl(manger, saddr, (chn - 1), _global_over_manager);
+                if (ret < 0)
+                {
+                    log_e("Threshold AlarmCtrl Set Error=%s", modbus_strerror(errno));
+                }
             }
+
             if (_global_over_manager->product_vol_upper_enable == 1)
                 sts |= ENABLE_TAC_V_UP;
             if (_global_over_manager->product_vol_lower_enable == 1)
@@ -1134,16 +1142,17 @@ int g_switch_set_all_single_threshold(void* manger,int ntype,int saddr,char chn,
                 sts |= ENABLE_TAC_W_UP;
             if (_global_over_manager->product_pwrcon_upper_enable == 1)
                 sts |= ENABLE_TAC_P_UP;
-            if (__globalDeviceManage._globalDevInfo.product.pwr_type == SmartPDU_Tree_AC_One)
-            {
-                return g_switch_set_t_ac_phchn_ctrl(manger, saddr, (chn - 1), sts);
-            }
-            else
-            {
-                return g_switch_set_t_ac_chn_ctrl(manger, saddr, (chn - 1), sts);
-            }
 
-            return ret;
+            if(setCh) {
+                if (__globalDeviceManage._globalDevInfo.product.pwr_type == SmartPDU_Tree_AC_One)
+                {
+                    ret = g_switch_set_t_ac_phchn_ctrl(manger, saddr, (chn - 1), sts);
+                }
+                else
+                {
+                    ret = g_switch_set_t_ac_chn_ctrl(manger, saddr, (chn - 1), sts);
+                }
+            }
         }
     }
     break;
@@ -1155,7 +1164,7 @@ int g_switch_set_all_single_threshold(void* manger,int ntype,int saddr,char chn,
         break;
     }
 
-    return 1;
+    return ret;
 }
 int g_switch_get_all_out_info(void* manger,int ntype,int saddr,int nNumb,PowerInfo* _power,PowerWarningInfo* _warning)
 {

+ 1 - 1
pro/src/switch_ctrl.h

@@ -192,7 +192,7 @@ int g_switch_set_all_start_time_delay(void* manger,int ntype,int saddr,unsigned
 int g_switch_set_all_stop_time_delay(void* manger,int ntype,int saddr,unsigned char chn,unsigned int time);
 int g_switch_set_all_chn_ctrl(void* manger, GlobalPowerManger* _globalPowerMangerTemp,int saddr,unsigned char chn,unsigned short sts,bool isgroup);
 int g_switch_set_all_ctrl(void* manger,int ntype,int saddr,unsigned short sts);
-int g_switch_set_all_single_threshold(void* manger,int ntype,int saddr,char chn,GlobalPowerManger* _globalPowerMangerTemp);
+int g_switch_set_all_single_threshold(void* manger,int ntype,int saddr,char chn,GlobalPowerManger* _globalPowerMangerTemp, int setCh);
 int g_switch_get_all_out_info(void* manger,int ntype,int saddr,int nNumb,PowerInfo* _power,PowerWarningInfo* _warning);
 int g_switch_get_all_reset(void* manger,int ntype,int saddr);
 //未实现