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

解决启动时获取不到ip的问题
解决不报警问题

guohui пре 1 година
родитељ
комит
cbc6310bf5
2 измењених фајлова са 40 додато и 3 уклоњено
  1. 39 3
      pro/src/switch_ctrl.c
  2. 1 0
      pro/src/sys.c

+ 39 - 3
pro/src/switch_ctrl.c

@@ -1049,7 +1049,20 @@ int g_switch_set_all_single_threshold(void* manger,int ntype,int saddr,char chn,
     case AC_SINGLE_B_TYPE:
     {
         ret = g_switch_set_ac_single_threshold(manger, saddr, (chn - 1), _global_over_manager);
-        if(setCh)  ret = g_switch_set_ac_alarm_ctrl(manger, saddr, (chn - 1), _global_over_manager);
+            if (_global_over_manager->product_vol_upper_enable == 1)
+                sts |= ENABLE_V_UP;
+            if (_global_over_manager->product_vol_lower_enable == 1)
+                sts |= ENABLE_V_DOWN;
+            if (_global_over_manager->product_cur_upper_enable == 1)
+                sts |= ENABLE_A_UP;
+            if (_global_over_manager->product_pwr_upper_enable == 1)
+                sts |= ENABLE_W_UP;
+            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);
+        if(setCh) {
+            ret = g_switch_set_ac_single_s_chn_ctrl(manger, saddr, (chn - 1), sts);
+        }
     }
     break;
     case DC_OUT_TYPE:
@@ -1065,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);
 
-        if(setCh)  ret = g_switch_set_dcpdu_alarm_ctrl(manger, saddr, (chn - 1), _global_over_manager);
-        
+        if(setCh) {
+            ret = g_switch_set_dcpdu_alarm_ctrl(manger, saddr, (chn - 1), _global_over_manager);
+        }
     }
     break;
     case TREE_AC_TYPE:
@@ -1117,6 +1131,28 @@ int g_switch_set_all_single_threshold(void* manger,int ntype,int saddr,char chn,
                     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)
+                sts |= ENABLE_TAC_V_DOWN;
+            if (_global_over_manager->product_cur_upper_enable == 1)
+                sts |= ENABLE_TAC_A_UP;
+            if (_global_over_manager->product_pwr_upper_enable == 1)
+                sts |= ENABLE_TAC_W_UP;
+            if (_global_over_manager->product_pwrcon_upper_enable == 1)
+                sts |= ENABLE_TAC_P_UP;
+
+            if(setCh) {
+                if (__globalDeviceManage._globalDevInfo.product.pwr_type == SmartPDU_Tree_AC_Tree)
+                {
+                    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;

+ 1 - 0
pro/src/sys.c

@@ -1525,6 +1525,7 @@ int sys_init(void)
     init_hash_table();
     
     //ui_init();
+    nic_restart(DFLT_NIC);
     thread_start(THREAD_ID_POLLING, polling_thread, NULL);
 
     return 0;