Преглед на файлове

将超限对象由指针改为结构实体

guohui преди 1 година
родител
ревизия
87288a96df
променени са 10 файла, в които са добавени 1199 реда и са изтрити 711 реда
  1. 16 29
      pro/src/app.c
  2. 64 64
      pro/src/appweb_handle.c
  3. 0 10
      pro/src/cascade.c
  4. 15 15
      pro/src/cascade_slave.c
  5. 31 24
      pro/src/common.c
  6. 4 3
      pro/src/common.h
  7. 20 20
      pro/src/json_handle.c
  8. 862 304
      pro/src/paras.c
  9. 135 135
      pro/src/sqlite_handle.c
  10. 52 107
      pro/src/switch_ctrl.c

+ 16 - 29
pro/src/app.c

@@ -670,10 +670,10 @@ static void* power_thread(void* arg)
                     //memset(&overmanager, 0, sizeof(overmanager));
                     //memcpy(_globalPowerMangerTemp->global_over_manager, &overmanager, sizeof(overmanager));
                     //ret = g_switch_get_dcpdu_threshold(&_globalDeviceManager->_globalRelaySampManger, _globalPowerMangerTemp->product_saddr, (_globalPowerMangerTemp->product_ch_addr-1), &overmanager);
-                    //_globalPowerMangerTemp->global_over_manager->product_vol_upper_threshold = overmanager.product_vol_upper_threshold;
-                    //_globalPowerMangerTemp->global_over_manager->product_vol_lower_threshold = overmanager.product_vol_lower_threshold;                        
-                    //_globalPowerMangerTemp->global_over_manager->product_cur_upper_threshold = overmanager.product_cur_upper_threshold;
-                    //_globalPowerMangerTemp->global_over_manager->product_cur_lower_threshold = overmanager.product_cur_lower_threshold;
+                    //_globalPowerMangerTemp->global_over_manager.product_vol_upper_threshold = overmanager.product_vol_upper_threshold;
+                    //_globalPowerMangerTemp->global_over_manager.product_vol_lower_threshold = overmanager.product_vol_lower_threshold;                        
+                    //_globalPowerMangerTemp->global_over_manager.product_cur_upper_threshold = overmanager.product_cur_upper_threshold;
+                    //_globalPowerMangerTemp->global_over_manager.product_cur_lower_threshold = overmanager.product_cur_lower_threshold;
                     //动作
                 }
                 break;           
@@ -912,11 +912,11 @@ static void* power_thread(void* arg)
                     ret = g_switch_get_t_ac_threshold(&_globalDeviceManager->_globalRelaySampManger, _globalPowerMangerTemp->product_saddr, (_globalPowerMangerTemp->product_ch_addr-1), &overmanager);
                     if (ret >= 0)
                     {
-                        _globalPowerMangerTemp->global_over_manager->product_vol_upper_threshold = overmanager.product_vol_upper_threshold;
-                        _globalPowerMangerTemp->global_over_manager->product_vol_lower_threshold = overmanager.product_vol_lower_threshold;
-                        _globalPowerMangerTemp->global_over_manager->product_cur_upper_threshold = overmanager.product_cur_upper_threshold;
-                        _globalPowerMangerTemp->global_over_manager->product_pwr_upper_threshold = overmanager.product_pwr_upper_threshold;
-                        _globalPowerMangerTemp->global_over_manager->product_pwrcon_upper_threshold = overmanager.product_pwrcon_upper_threshold;
+                        _globalPowerMangerTemp->global_over_manager.product_vol_upper_threshold = overmanager.product_vol_upper_threshold;
+                        _globalPowerMangerTemp->global_over_manager.product_vol_lower_threshold = overmanager.product_vol_lower_threshold;
+                        _globalPowerMangerTemp->global_over_manager.product_cur_upper_threshold = overmanager.product_cur_upper_threshold;
+                        _globalPowerMangerTemp->global_over_manager.product_pwr_upper_threshold = overmanager.product_pwr_upper_threshold;
+                        _globalPowerMangerTemp->global_over_manager.product_pwrcon_upper_threshold = overmanager.product_pwrcon_upper_threshold;
                     }
                     */
             }
@@ -2122,14 +2122,7 @@ int app_init(void)
 
     //打印参数
     //printf_global_device_info(&_globalDeviceManager->_globalDevInfo);
-
-    _globalDeviceManager->_globalPowerManger.global_over_manager = (GlobalOverManager*)malloc(sizeof(GlobalOverManager));
-    if(_globalDeviceManager->_globalPowerManger.global_over_manager==NULL)
-    {
-        log_e("_globalPowerManger->global_over_manager malloc error.\n");
-        return -1 ;       
-    } 
-    memset(_globalDeviceManager->_globalPowerManger.global_over_manager, 0, sizeof(GlobalOverManager));
+    
     //查询是否存在全部通道信息
     ret = dev_get_power_manage_info(_globalDeviceManager->db,
                                     _globalDeviceManager->_globalDevInfo.product.id,0,
@@ -2148,11 +2141,11 @@ int app_init(void)
         _globalDeviceManager->_globalPowerManger.product_ch_NF_status = 0;
         _globalDeviceManager->_globalPowerManger.product_ch_start_delay = 1000;     
         _globalDeviceManager->_globalPowerManger.product_ch_stop_delay = 1000;
-        _globalDeviceManager->_globalPowerManger.global_over_manager->product_cur_over_upper_threshold_ctrl =ALARM_CTRL_ALARM_ONLY;//默认超限只报警
-        _globalDeviceManager->_globalPowerManger.global_over_manager->product_pwr_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
-        _globalDeviceManager->_globalPowerManger.global_over_manager->product_pwrcon_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
-        _globalDeviceManager->_globalPowerManger.global_over_manager->product_vol_over_lower_threshold_ctrl= ALARM_CTRL_ALARM_ONLY;
-        _globalDeviceManager->_globalPowerManger.global_over_manager->product_vol_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
+        _globalDeviceManager->_globalPowerManger.global_over_manager.product_cur_over_upper_threshold_ctrl =ALARM_CTRL_ALARM_ONLY;//默认超限只报警
+        _globalDeviceManager->_globalPowerManger.global_over_manager.product_pwr_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
+        _globalDeviceManager->_globalPowerManger.global_over_manager.product_pwrcon_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
+        _globalDeviceManager->_globalPowerManger.global_over_manager.product_vol_over_lower_threshold_ctrl= ALARM_CTRL_ALARM_ONLY;
+        _globalDeviceManager->_globalPowerManger.global_over_manager.product_vol_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
 
         if(dev_insert_power_manage_info(_globalDeviceManager->db,
                                     _globalDeviceManager->_globalDevInfo.product.id,
@@ -2190,13 +2183,7 @@ int app_init(void)
                 return -1;
             }
             memset(_globalTACManager, 0, sizeof(GlobalTreeACManager));
-            _globalTACManager->global_over_manager = (GlobalOverManager *)malloc(sizeof(GlobalOverManager));
-            if (_globalTACManager->global_over_manager == NULL)
-            {
-                log_e("_globalTACManager->global_over_manager malloc error.\n");
-                return -1;
-            }
-            memset(_globalTACManager->global_over_manager, 0, sizeof(GlobalOverManager));
+            
             ret = dev_get_t_ac_power_manage_info(_globalDeviceManager->db,
                                                  _globalDeviceManager->_globalDevInfo.product.id, 0,0,
                                                  TreeACindex, // 1*8+j

+ 64 - 64
pro/src/appweb_handle.c

@@ -2786,74 +2786,74 @@ char* setThresholdToCh(_AlarmRequestInfo* _alarm_request_info,int nChID)
     // 更新参数,使能全部放在控制板上判断,表头不做判断,统一发1
     if (_alarm_request_info->_pwr_info.voltageUpperValue)
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_vol_upper_threshold = atof(_alarm_request_info->_pwr_info.voltageUpperValue);
+        _globalPowerMangerSaveTemp->global_over_manager.product_vol_upper_threshold = atof(_alarm_request_info->_pwr_info.voltageUpperValue);
     }
-     _globalPowerMangerSaveTemp->global_over_manager->product_vol_upper_enable = 1;
-    /*if (_globalPowerMangerSaveTemp->global_over_manager->product_vol_upper_threshold != 0)
+     _globalPowerMangerSaveTemp->global_over_manager.product_vol_upper_enable = 1;
+    /*if (_globalPowerMangerSaveTemp->global_over_manager.product_vol_upper_threshold != 0)
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_vol_upper_enable = 1;
+        _globalPowerMangerSaveTemp->global_over_manager.product_vol_upper_enable = 1;
     }
     else
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_vol_upper_enable = 0;
+        _globalPowerMangerSaveTemp->global_over_manager.product_vol_upper_enable = 0;
     }*/
 
     if (_alarm_request_info->_pwr_info.voltageDownValue)
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_vol_lower_threshold = atof(_alarm_request_info->_pwr_info.voltageDownValue);
+        _globalPowerMangerSaveTemp->global_over_manager.product_vol_lower_threshold = atof(_alarm_request_info->_pwr_info.voltageDownValue);
     }
-    _globalPowerMangerSaveTemp->global_over_manager->product_vol_lower_enable = 1;
-    /*if (_globalPowerMangerSaveTemp->global_over_manager->product_vol_lower_threshold != 0)
+    _globalPowerMangerSaveTemp->global_over_manager.product_vol_lower_enable = 1;
+    /*if (_globalPowerMangerSaveTemp->global_over_manager.product_vol_lower_threshold != 0)
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_vol_lower_enable = 1;
+        _globalPowerMangerSaveTemp->global_over_manager.product_vol_lower_enable = 1;
     }
     else
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_vol_lower_enable = 0;
+        _globalPowerMangerSaveTemp->global_over_manager.product_vol_lower_enable = 0;
     }*/
 
     if (_alarm_request_info->_pwr_info.currentUpperValue)
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_cur_upper_threshold = atof(_alarm_request_info->_pwr_info.currentUpperValue);
+        _globalPowerMangerSaveTemp->global_over_manager.product_cur_upper_threshold = atof(_alarm_request_info->_pwr_info.currentUpperValue);
     }
-    _globalPowerMangerSaveTemp->global_over_manager->product_cur_upper_enable = 1;
-    /*if (_globalPowerMangerSaveTemp->global_over_manager->product_cur_upper_threshold != 0)
+    _globalPowerMangerSaveTemp->global_over_manager.product_cur_upper_enable = 1;
+    /*if (_globalPowerMangerSaveTemp->global_over_manager.product_cur_upper_threshold != 0)
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_cur_upper_enable = 1;
+        _globalPowerMangerSaveTemp->global_over_manager.product_cur_upper_enable = 1;
     }
     else
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_cur_upper_enable = 0;
+        _globalPowerMangerSaveTemp->global_over_manager.product_cur_upper_enable = 0;
     }*/
 
     if (_alarm_request_info->_pwr_info.powerUpperValue)
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_pwr_upper_threshold = atof(_alarm_request_info->_pwr_info.powerUpperValue);
+        _globalPowerMangerSaveTemp->global_over_manager.product_pwr_upper_threshold = atof(_alarm_request_info->_pwr_info.powerUpperValue);
     }
-    _globalPowerMangerSaveTemp->global_over_manager->product_pwr_upper_enable = 1;
-    /*if (_globalPowerMangerSaveTemp->global_over_manager->product_pwr_upper_threshold != 0)
+    _globalPowerMangerSaveTemp->global_over_manager.product_pwr_upper_enable = 1;
+    /*if (_globalPowerMangerSaveTemp->global_over_manager.product_pwr_upper_threshold != 0)
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_pwr_upper_enable = 1;
+        _globalPowerMangerSaveTemp->global_over_manager.product_pwr_upper_enable = 1;
     }
     else
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_pwr_upper_enable = 0;
+        _globalPowerMangerSaveTemp->global_over_manager.product_pwr_upper_enable = 0;
     }*/
 
     if (_alarm_request_info->_pwr_info.alarmContentUpperValue)
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_pwrcon_upper_threshold = atof(_alarm_request_info->_pwr_info.alarmContentUpperValue);
+        _globalPowerMangerSaveTemp->global_over_manager.product_pwrcon_upper_threshold = atof(_alarm_request_info->_pwr_info.alarmContentUpperValue);
     }
-    _globalPowerMangerSaveTemp->global_over_manager->product_pwrcon_upper_enable = 1;
-   /* if (_globalPowerMangerSaveTemp->global_over_manager->product_pwrcon_upper_threshold != 0)
+    _globalPowerMangerSaveTemp->global_over_manager.product_pwrcon_upper_enable = 1;
+   /* if (_globalPowerMangerSaveTemp->global_over_manager.product_pwrcon_upper_threshold != 0)
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_pwrcon_upper_enable = 1;
+        _globalPowerMangerSaveTemp->global_over_manager.product_pwrcon_upper_enable = 1;
     }
     else
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_pwrcon_upper_enable = 0;
+        _globalPowerMangerSaveTemp->global_over_manager.product_pwrcon_upper_enable = 0;
     }*/
-    //_globalPowerMangerSaveTemp->global_over_manager->product_pwrcon_upper_enable = 1 ;
+    //_globalPowerMangerSaveTemp->global_over_manager.product_pwrcon_upper_enable = 1 ;
 
     char Alarm_Ctrl_type[16];
     memset(Alarm_Ctrl_type, 0, sizeof(Alarm_Ctrl_type));
@@ -2861,38 +2861,38 @@ char* setThresholdToCh(_AlarmRequestInfo* _alarm_request_info,int nChID)
 
     if (_alarm_request_info->_pwr_info.currentUpperAction && strcmp(_alarm_request_info->_pwr_info.currentUpperAction, Alarm_Ctrl_type) == 0)
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_cur_over_upper_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
+        _globalPowerMangerSaveTemp->global_over_manager.product_cur_over_upper_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
     }
     else
-        _globalPowerMangerSaveTemp->global_over_manager->product_cur_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
+        _globalPowerMangerSaveTemp->global_over_manager.product_cur_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
 
     if (_alarm_request_info->_pwr_info.voltageUpperAction && strcmp(_alarm_request_info->_pwr_info.voltageUpperAction, Alarm_Ctrl_type) == 0)
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_vol_over_upper_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
+        _globalPowerMangerSaveTemp->global_over_manager.product_vol_over_upper_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
     }
     else
-        _globalPowerMangerSaveTemp->global_over_manager->product_vol_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
+        _globalPowerMangerSaveTemp->global_over_manager.product_vol_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
 
     if (_alarm_request_info->_pwr_info.voltageDownAction && strcmp(_alarm_request_info->_pwr_info.voltageDownAction, Alarm_Ctrl_type) == 0)
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_vol_over_lower_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
+        _globalPowerMangerSaveTemp->global_over_manager.product_vol_over_lower_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
     }
     else
-        _globalPowerMangerSaveTemp->global_over_manager->product_vol_over_lower_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
+        _globalPowerMangerSaveTemp->global_over_manager.product_vol_over_lower_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
 
     if (_alarm_request_info->_pwr_info.powerUpperAction && strcmp(_alarm_request_info->_pwr_info.powerUpperAction, Alarm_Ctrl_type) == 0)
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_pwr_over_upper_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
+        _globalPowerMangerSaveTemp->global_over_manager.product_pwr_over_upper_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
     }
     else
-        _globalPowerMangerSaveTemp->global_over_manager->product_pwr_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
+        _globalPowerMangerSaveTemp->global_over_manager.product_pwr_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
 
     if (_alarm_request_info->_pwr_info.alarmContentUpperAction && strcmp(_alarm_request_info->_pwr_info.alarmContentUpperAction, Alarm_Ctrl_type) == 0)
     {
-        _globalPowerMangerSaveTemp->global_over_manager->product_pwrcon_over_upper_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
+        _globalPowerMangerSaveTemp->global_over_manager.product_pwrcon_over_upper_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
     }
     else
-        _globalPowerMangerSaveTemp->global_over_manager->product_pwrcon_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
+        _globalPowerMangerSaveTemp->global_over_manager.product_pwrcon_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
 
     if (__globalDeviceManage._globalDevInfo.product.pwr_type == SmartPDU_Tree_AC_Tree || __globalDeviceManage._globalDevInfo.product.pwr_type == SmartPDU_Tree_AC_One)
     {
@@ -2900,7 +2900,7 @@ char* setThresholdToCh(_AlarmRequestInfo* _alarm_request_info,int nChID)
         GlobalTreeACManager *_pTreeACPowerMangerTemp = NULL;
         list_for_each_entry(_pTreeACPowerMangerTemp, &_globalPowerMangerSaveTemp->list_Tree_AC, list_Tree_AC)
         {
-            memcpy(_pTreeACPowerMangerTemp->global_over_manager, _globalPowerMangerSaveTemp->global_over_manager, sizeof(GlobalOverManager));
+            _pTreeACPowerMangerTemp->global_over_manager = _globalPowerMangerSaveTemp->global_over_manager;
             ret = g_switch_set_all_single_threshold(&__globalDeviceManage._globalRelaySampManger,
                                                     _globalPowerMangerSaveTemp->product_ch_type,
                                                     _pTreeACPowerMangerTemp->product_saddr,
@@ -2934,7 +2934,7 @@ char* setThresholdToCh(_AlarmRequestInfo* _alarm_request_info,int nChID)
         GlobalTreeACManager *_pTreeACPowerMangerTemp = NULL;
         list_for_each_entry(_pTreeACPowerMangerTemp, &_globalPowerMangerSaveTemp->list_Tree_AC, list_Tree_AC)
         {
-            memcpy(_pTreeACPowerMangerTemp->global_over_manager, _globalPowerMangerSaveTemp->global_over_manager, sizeof(GlobalOverManager));
+            _pTreeACPowerMangerTemp->global_over_manager = _globalPowerMangerSaveTemp->global_over_manager;
             ret = dev_update_t_ac_power_manage_over_info(__globalDeviceManage.db, _pTreeACPowerMangerTemp);
         }
     }
@@ -3143,40 +3143,40 @@ static void alarmProtect(void *conn)
         //更新参数
         if (_alarm_request_info._pwr_info.voltageUpperValue)
         {
-            _globalPowerMangerSaveTemp->global_over_manager->product_vol_upper_threshold =atof(_alarm_request_info._pwr_info.voltageUpperValue);
+            _globalPowerMangerSaveTemp->global_over_manager.product_vol_upper_threshold =atof(_alarm_request_info._pwr_info.voltageUpperValue);
         }     
-        if (_globalPowerMangerSaveTemp->global_over_manager->product_vol_upper_threshold!=0){_globalPowerMangerSaveTemp->global_over_manager->product_vol_upper_enable = 1 ;
-        }else{_globalPowerMangerSaveTemp->global_over_manager->product_vol_upper_enable = 0;} 
+        if (_globalPowerMangerSaveTemp->global_over_manager.product_vol_upper_threshold!=0){_globalPowerMangerSaveTemp->global_over_manager.product_vol_upper_enable = 1 ;
+        }else{_globalPowerMangerSaveTemp->global_over_manager.product_vol_upper_enable = 0;} 
 
         if (_alarm_request_info._pwr_info.voltageDownValue)
         {
-            _globalPowerMangerSaveTemp->global_over_manager->product_vol_lower_threshold =atof(_alarm_request_info._pwr_info.voltageDownValue);
+            _globalPowerMangerSaveTemp->global_over_manager.product_vol_lower_threshold =atof(_alarm_request_info._pwr_info.voltageDownValue);
         }     
-        if (_globalPowerMangerSaveTemp->global_over_manager->product_vol_lower_threshold!=0){_globalPowerMangerSaveTemp->global_over_manager->product_vol_lower_enable  = 1 ;
-        }else{_globalPowerMangerSaveTemp->global_over_manager->product_vol_lower_enable  = 0 ;} 
+        if (_globalPowerMangerSaveTemp->global_over_manager.product_vol_lower_threshold!=0){_globalPowerMangerSaveTemp->global_over_manager.product_vol_lower_enable  = 1 ;
+        }else{_globalPowerMangerSaveTemp->global_over_manager.product_vol_lower_enable  = 0 ;} 
 
         if (_alarm_request_info._pwr_info.currentUpperValue)
         {
-            _globalPowerMangerSaveTemp->global_over_manager->product_cur_upper_threshold = atof(_alarm_request_info._pwr_info.currentUpperValue);
+            _globalPowerMangerSaveTemp->global_over_manager.product_cur_upper_threshold = atof(_alarm_request_info._pwr_info.currentUpperValue);
         }     
 
-        if (_globalPowerMangerSaveTemp->global_over_manager->product_cur_upper_threshold!=0){_globalPowerMangerSaveTemp->global_over_manager->product_cur_upper_enable = 1 ;
-        }else{_globalPowerMangerSaveTemp->global_over_manager->product_cur_upper_enable = 0 ;} 
+        if (_globalPowerMangerSaveTemp->global_over_manager.product_cur_upper_threshold!=0){_globalPowerMangerSaveTemp->global_over_manager.product_cur_upper_enable = 1 ;
+        }else{_globalPowerMangerSaveTemp->global_over_manager.product_cur_upper_enable = 0 ;} 
 
         if (_alarm_request_info._pwr_info.powerUpperValue)
         {
-            _globalPowerMangerSaveTemp->global_over_manager->product_pwr_upper_threshold = atof(_alarm_request_info._pwr_info.powerUpperValue);
+            _globalPowerMangerSaveTemp->global_over_manager.product_pwr_upper_threshold = atof(_alarm_request_info._pwr_info.powerUpperValue);
         }     
-        if (_globalPowerMangerSaveTemp->global_over_manager->product_pwr_upper_threshold!=0){_globalPowerMangerSaveTemp->global_over_manager->product_pwr_upper_enable = 1 ;
-        }else{_globalPowerMangerSaveTemp->global_over_manager->product_pwr_upper_enable = 0 ;} 
+        if (_globalPowerMangerSaveTemp->global_over_manager.product_pwr_upper_threshold!=0){_globalPowerMangerSaveTemp->global_over_manager.product_pwr_upper_enable = 1 ;
+        }else{_globalPowerMangerSaveTemp->global_over_manager.product_pwr_upper_enable = 0 ;} 
 
         if (_alarm_request_info._pwr_info.alarmContentUpperValue)
         {
-            _globalPowerMangerSaveTemp->global_over_manager->product_pwrcon_upper_threshold = atof(_alarm_request_info._pwr_info.alarmContentUpperValue);
+            _globalPowerMangerSaveTemp->global_over_manager.product_pwrcon_upper_threshold = atof(_alarm_request_info._pwr_info.alarmContentUpperValue);
         }      
-        if (_globalPowerMangerSaveTemp->global_over_manager->product_pwrcon_upper_threshold!=0){_globalPowerMangerSaveTemp->global_over_manager->product_pwrcon_upper_enable = 1 ;
-        }else{_globalPowerMangerSaveTemp->global_over_manager->product_pwrcon_upper_enable = 0 ;} 
-        //_globalPowerMangerSaveTemp->global_over_manager->product_pwrcon_upper_enable = 1 ;
+        if (_globalPowerMangerSaveTemp->global_over_manager.product_pwrcon_upper_threshold!=0){_globalPowerMangerSaveTemp->global_over_manager.product_pwrcon_upper_enable = 1 ;
+        }else{_globalPowerMangerSaveTemp->global_over_manager.product_pwrcon_upper_enable = 0 ;} 
+        //_globalPowerMangerSaveTemp->global_over_manager.product_pwrcon_upper_enable = 1 ;
 
         char Alarm_Ctrl_type[16];
         memset(Alarm_Ctrl_type, 0, sizeof(Alarm_Ctrl_type));
@@ -3184,38 +3184,38 @@ static void alarmProtect(void *conn)
 
         if (_alarm_request_info._pwr_info.currentUpperAction && strcmp(_alarm_request_info._pwr_info.currentUpperAction,Alarm_Ctrl_type) == 0)
         {
-            _globalPowerMangerSaveTemp->global_over_manager->product_cur_over_upper_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
+            _globalPowerMangerSaveTemp->global_over_manager.product_cur_over_upper_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
         }
         else
-            _globalPowerMangerSaveTemp->global_over_manager->product_cur_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
+            _globalPowerMangerSaveTemp->global_over_manager.product_cur_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
 
         if (_alarm_request_info._pwr_info.voltageUpperAction && strcmp(_alarm_request_info._pwr_info.voltageUpperAction, Alarm_Ctrl_type) == 0)
         {
-            _globalPowerMangerSaveTemp->global_over_manager->product_vol_over_upper_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
+            _globalPowerMangerSaveTemp->global_over_manager.product_vol_over_upper_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
         }
         else
-            _globalPowerMangerSaveTemp->global_over_manager->product_vol_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
+            _globalPowerMangerSaveTemp->global_over_manager.product_vol_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
 
         if (_alarm_request_info._pwr_info.voltageDownAction && strcmp(_alarm_request_info._pwr_info.voltageDownAction, Alarm_Ctrl_type) == 0)
         {
-            _globalPowerMangerSaveTemp->global_over_manager->product_vol_over_lower_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
+            _globalPowerMangerSaveTemp->global_over_manager.product_vol_over_lower_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
         }
         else
-            _globalPowerMangerSaveTemp->global_over_manager->product_vol_over_lower_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
+            _globalPowerMangerSaveTemp->global_over_manager.product_vol_over_lower_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
 
         if (_alarm_request_info._pwr_info.powerUpperAction && strcmp(_alarm_request_info._pwr_info.powerUpperAction, Alarm_Ctrl_type) == 0)
         {
-            _globalPowerMangerSaveTemp->global_over_manager->product_pwr_over_upper_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
+            _globalPowerMangerSaveTemp->global_over_manager.product_pwr_over_upper_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
         }
         else
-            _globalPowerMangerSaveTemp->global_over_manager->product_pwr_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
+            _globalPowerMangerSaveTemp->global_over_manager.product_pwr_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
 
         if (_alarm_request_info._pwr_info.alarmContentUpperAction && strcmp(_alarm_request_info._pwr_info.alarmContentUpperAction, Alarm_Ctrl_type) == 0)
         {
-            _globalPowerMangerSaveTemp->global_over_manager->product_pwrcon_over_upper_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
+            _globalPowerMangerSaveTemp->global_over_manager.product_pwrcon_over_upper_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
         }
         else
-            _globalPowerMangerSaveTemp->global_over_manager->product_pwrcon_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
+            _globalPowerMangerSaveTemp->global_over_manager.product_pwrcon_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
 
 
         if (__globalDeviceManage._globalDevInfo.product.pwr_type == SmartPDU_Tree_AC_Tree || __globalDeviceManage._globalDevInfo.product.pwr_type == SmartPDU_Tree_AC_One)

+ 0 - 10
pro/src/cascade.c

@@ -969,9 +969,6 @@ static int power_clear(cascade_handle_t *cas)
             }
 
             list_del(&tmp3->list_Tree_AC);
-            if(tmp3->global_over_manager) {
-                free(tmp3->global_over_manager);
-            }
             free(tmp3);
         }
     }
@@ -1059,13 +1056,6 @@ static int power_add(cascade_handle_t *cas)
                 goto quit;
             }
             memset(tmp3, 0, sizeof(GlobalTreeACManager));
-
-            tmp3->global_over_manager = (GlobalOverManager *)malloc(sizeof(GlobalOverManager));
-            if (tmp3->global_over_manager == NULL) {
-                log_e("tmp3->global_over_manager malloc error.\n");
-                goto quit;
-            }
-            memset(tmp3->global_over_manager, 0, sizeof(GlobalOverManager));
             
             tmp3->product_ch_addr = TreeACindex + 1;
             tmp3->product_id = info->prod.product_id;

+ 15 - 15
pro/src/cascade_slave.c

@@ -545,15 +545,15 @@ void cascade_slave_write(uint32_t addr, uint16_t val)
                             {
                                 if (val == 1)
                                 {
-                                    if (_globalPowerMangerTemp->global_over_manager->product_vol_upper_enable == 1)
+                                    if (_globalPowerMangerTemp->global_over_manager.product_vol_upper_enable == 1)
                                         val |= ENABLE_TAC_V_UP;
-                                    if (_globalPowerMangerTemp->global_over_manager->product_vol_lower_enable == 1)
+                                    if (_globalPowerMangerTemp->global_over_manager.product_vol_lower_enable == 1)
                                         val |= ENABLE_TAC_V_DOWN;
-                                    if (_globalPowerMangerTemp->global_over_manager->product_cur_upper_enable == 1)
+                                    if (_globalPowerMangerTemp->global_over_manager.product_cur_upper_enable == 1)
                                         val |= ENABLE_TAC_A_UP;
-                                    if (_globalPowerMangerTemp->global_over_manager->product_pwr_upper_enable == 1)
+                                    if (_globalPowerMangerTemp->global_over_manager.product_pwr_upper_enable == 1)
                                         val |= ENABLE_TAC_W_UP;
-                                    if (_globalPowerMangerTemp->global_over_manager->product_pwrcon_upper_enable == 1)
+                                    if (_globalPowerMangerTemp->global_over_manager.product_pwrcon_upper_enable == 1)
                                         val |= ENABLE_TAC_P_UP;
                                 }
                                 g_switch_set_ac_single_s_chn_ctrl(&__globalDeviceManage._globalRelaySampManger,  _globalPowerMangerTemp->product_saddr, 
@@ -566,15 +566,15 @@ void cascade_slave_write(uint32_t addr, uint16_t val)
                                 if (val == 1 && _globalTACManager->product_ph_outputStatus==1)
                                 {
                                     phsts=1;
-                                    if (_globalTACManager->global_over_manager->product_vol_upper_enable == 1)
+                                    if (_globalTACManager->global_over_manager.product_vol_upper_enable == 1)
                                         phsts |= ENABLE_TAC_V_UP;
-                                    if (_globalTACManager->global_over_manager->product_vol_lower_enable == 1)
+                                    if (_globalTACManager->global_over_manager.product_vol_lower_enable == 1)
                                         phsts |= ENABLE_TAC_V_DOWN;
-                                    if (_globalTACManager->global_over_manager->product_cur_upper_enable == 1)
+                                    if (_globalTACManager->global_over_manager.product_cur_upper_enable == 1)
                                         phsts |= ENABLE_TAC_A_UP;
-                                    if (_globalTACManager->global_over_manager->product_pwr_upper_enable == 1)
+                                    if (_globalTACManager->global_over_manager.product_pwr_upper_enable == 1)
                                         phsts |= ENABLE_TAC_W_UP;
-                                    if (_globalTACManager->global_over_manager->product_pwrcon_upper_enable == 1)
+                                    if (_globalTACManager->global_over_manager.product_pwrcon_upper_enable == 1)
                                         phsts |= ENABLE_TAC_P_UP;
                                 }else{
                                     phsts=0;
@@ -590,15 +590,15 @@ void cascade_slave_write(uint32_t addr, uint16_t val)
                         {
                             if (val == 1)
                             {
-                                if (_globalPowerMangerTemp->global_over_manager->product_vol_upper_enable == 1)
+                                if (_globalPowerMangerTemp->global_over_manager.product_vol_upper_enable == 1)
                                     val |= ENABLE_TAC_V_UP;
-                                if (_globalPowerMangerTemp->global_over_manager->product_vol_lower_enable == 1)
+                                if (_globalPowerMangerTemp->global_over_manager.product_vol_lower_enable == 1)
                                     val |= ENABLE_TAC_V_DOWN;
-                                if (_globalPowerMangerTemp->global_over_manager->product_cur_upper_enable == 1)
+                                if (_globalPowerMangerTemp->global_over_manager.product_cur_upper_enable == 1)
                                     val |= ENABLE_TAC_A_UP;
-                                if (_globalPowerMangerTemp->global_over_manager->product_pwr_upper_enable == 1)
+                                if (_globalPowerMangerTemp->global_over_manager.product_pwr_upper_enable == 1)
                                     val |= ENABLE_TAC_W_UP;
-                                if (_globalPowerMangerTemp->global_over_manager->product_pwrcon_upper_enable == 1)
+                                if (_globalPowerMangerTemp->global_over_manager.product_pwrcon_upper_enable == 1)
                                     val |= ENABLE_TAC_P_UP;
                             }
                             /*

+ 31 - 24
pro/src/common.c

@@ -59,30 +59,30 @@ void printf_global_power_manage_info(GlobalPowerManger* _globalPowerManger)
     printf("product_ch_start_delay:%d ", _globalPowerManger->product_ch_start_delay);
     printf("product_ch_stop_delay:%d ", _globalPowerManger->product_ch_stop_delay);
 
-    printf("product_vol_upper_enable:%d ", _globalPowerManger->global_over_manager->product_vol_upper_enable);
-    printf("product_vol_upper_threshold:%0.2f ", _globalPowerManger->global_over_manager->product_vol_upper_threshold);
-    printf("product_vol_over_upper_threshold_ctrl:%d ", _globalPowerManger->global_over_manager->product_vol_over_upper_threshold_ctrl);
-    printf("product_vol_over_upper_threshold_para:%d ", _globalPowerManger->global_over_manager->product_vol_over_upper_threshold_ctrl_para);
-
-    printf("product_vol_lower_enable:%d ", _globalPowerManger->global_over_manager->product_vol_lower_enable);
-    printf("product_vol_lower_threshold:%0.2f ", _globalPowerManger->global_over_manager->product_vol_lower_threshold);
-    printf("product_vol_over_lower_threshold_ctrl:%d ", _globalPowerManger->global_over_manager->product_vol_over_lower_threshold_ctrl);
-    printf("product_vol_over_lower_threshold_ctrl_para:%d ", _globalPowerManger->global_over_manager->product_vol_over_lower_threshold_ctrl_para);
-
-    printf("product_cur_upper_enable:%d ", _globalPowerManger->global_over_manager->product_cur_upper_enable);
-    printf("product_cur_upper_threshold:%0.2f ", _globalPowerManger->global_over_manager->product_cur_upper_threshold);
-    printf("product_cur_over_upper_threshold_ctrl:%d ", _globalPowerManger->global_over_manager->product_cur_over_upper_threshold_ctrl);
-    printf("product_cur_over_upper_threshold_ctrl_para:%d ", _globalPowerManger->global_over_manager->product_cur_over_upper_threshold_ctrl_para);
-
-    printf("product_pwr_upper_enable:%d ", _globalPowerManger->global_over_manager->product_pwr_upper_enable);
-    printf("product_pwr_upper_threshold:%0.2f ", _globalPowerManger->global_over_manager->product_pwr_upper_threshold);
-    printf("product_pwr_over_upper_threshold_ctrl:%d ", _globalPowerManger->global_over_manager->product_pwr_over_upper_threshold_ctrl);
-    printf("product_pwr_over_upper_threshold_ctrl_para:%d ", _globalPowerManger->global_over_manager->product_pwr_over_upper_threshold_ctrl_para);
-
-    printf("product_pwrcon_upper_enable:%d ", _globalPowerManger->global_over_manager->product_pwrcon_upper_enable);
-    printf("product_pwrcon_upper_threshold:%0.2f ", _globalPowerManger->global_over_manager->product_pwrcon_upper_threshold);
-    printf("product_pwrcon_over_upper_threshold_ctrl:%d ", _globalPowerManger->global_over_manager->product_pwrcon_over_upper_threshold_ctrl);
-    printf("product_pwrcon_over_upper_threshold_ctrl_para:%d ", _globalPowerManger->global_over_manager->product_pwrcon_over_upper_threshold_ctrl_para);
+    printf("product_vol_upper_enable:%d ", _globalPowerManger->global_over_manager.product_vol_upper_enable);
+    printf("product_vol_upper_threshold:%0.2f ", _globalPowerManger->global_over_manager.product_vol_upper_threshold);
+    printf("product_vol_over_upper_threshold_ctrl:%d ", _globalPowerManger->global_over_manager.product_vol_over_upper_threshold_ctrl);
+    printf("product_vol_over_upper_threshold_para:%d ", _globalPowerManger->global_over_manager.product_vol_over_upper_threshold_ctrl_para);
+
+    printf("product_vol_lower_enable:%d ", _globalPowerManger->global_over_manager.product_vol_lower_enable);
+    printf("product_vol_lower_threshold:%0.2f ", _globalPowerManger->global_over_manager.product_vol_lower_threshold);
+    printf("product_vol_over_lower_threshold_ctrl:%d ", _globalPowerManger->global_over_manager.product_vol_over_lower_threshold_ctrl);
+    printf("product_vol_over_lower_threshold_ctrl_para:%d ", _globalPowerManger->global_over_manager.product_vol_over_lower_threshold_ctrl_para);
+
+    printf("product_cur_upper_enable:%d ", _globalPowerManger->global_over_manager.product_cur_upper_enable);
+    printf("product_cur_upper_threshold:%0.2f ", _globalPowerManger->global_over_manager.product_cur_upper_threshold);
+    printf("product_cur_over_upper_threshold_ctrl:%d ", _globalPowerManger->global_over_manager.product_cur_over_upper_threshold_ctrl);
+    printf("product_cur_over_upper_threshold_ctrl_para:%d ", _globalPowerManger->global_over_manager.product_cur_over_upper_threshold_ctrl_para);
+
+    printf("product_pwr_upper_enable:%d ", _globalPowerManger->global_over_manager.product_pwr_upper_enable);
+    printf("product_pwr_upper_threshold:%0.2f ", _globalPowerManger->global_over_manager.product_pwr_upper_threshold);
+    printf("product_pwr_over_upper_threshold_ctrl:%d ", _globalPowerManger->global_over_manager.product_pwr_over_upper_threshold_ctrl);
+    printf("product_pwr_over_upper_threshold_ctrl_para:%d ", _globalPowerManger->global_over_manager.product_pwr_over_upper_threshold_ctrl_para);
+
+    printf("product_pwrcon_upper_enable:%d ", _globalPowerManger->global_over_manager.product_pwrcon_upper_enable);
+    printf("product_pwrcon_upper_threshold:%0.2f ", _globalPowerManger->global_over_manager.product_pwrcon_upper_threshold);
+    printf("product_pwrcon_over_upper_threshold_ctrl:%d ", _globalPowerManger->global_over_manager.product_pwrcon_over_upper_threshold_ctrl);
+    printf("product_pwrcon_over_upper_threshold_ctrl_para:%d ", _globalPowerManger->global_over_manager.product_pwrcon_over_upper_threshold_ctrl_para);
     printf("******************************** ");
 }
 
@@ -533,6 +533,13 @@ int get_time_str2(char *s, int len, time_t t)
     return snprintf(s, len, "%04d%02d%02d%02d%02d%02d", tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec);
 }
 
+int get_curtime_str(char *s, int len)
+{
+    time_t t=time(NULL);
+    struct tm *tm=localtime(&t);
+    return snprintf(s, len, "%04d%02d%02d%02d%02d%02d", tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec);
+}
+
 char* getUserNamebyToken(char* Token)
 {
     char* userName = NULL;

+ 4 - 3
pro/src/common.h

@@ -488,7 +488,7 @@ typedef struct
 
     char                samp_time[64];                           //采集时间
     PowerInfo           _PowerInfo;                              //存储最新的数据(兼容三项输入)
-    GlobalOverManager*  global_over_manager;                     //超限管理
+    GlobalOverManager   global_over_manager;                     //超限管理
     PowerWarningInfo    _PowerWarninginfo;                       //存储报警数据(兼容三项输入)  
     time_t              product_log_time;                           //存储最新时间   
     struct list_head    list_Tree_AC;                              //存储三项数据指针    
@@ -508,7 +508,7 @@ typedef struct
     unsigned short      product_ch_start_delay                     ;//通道延时 
     unsigned short      product_ch_stop_delay                      ;//通道延时
 
-    GlobalOverManager*  global_over_manager                        ;//超限管理
+    GlobalOverManager   global_over_manager                        ;//超限管理
     struct list_head    list_DS;                                    //定时设置      
     _PowerSXManage_t*   _PowerSXManage;                             //时序管理      
     PowerInfo           _PowerInfo;                                 //存储最新的数据     
@@ -526,7 +526,7 @@ typedef struct
     char                product_saddr                              ;//modbus地址记录                       
     char                product_saddr_name[32]                     ;//输入名称
     char                product_saddr_type                         ;//输入类型
-    GlobalOverManager*  global_over_manager                        ;//超限管理
+    GlobalOverManager   global_over_manager                        ;//超限管理
     PowerInfo           _PowerInfo[3];                              //存储最新的数据(兼容三项输入)
     PowerWarningInfo    _PowerWarninginfo[3];                       //存储报警数据(兼容三项输入)    
     time_t              product_log_time;                           //存储最新时间 
@@ -1120,6 +1120,7 @@ time_t mktime0(void);
 time_t mktime2(struct tm *t, int zone);
 int get_time_str(char *s, int len, time_t t);
 int get_time_str2(char *s, int len, time_t t);
+int get_curtime_str(char *s, int len);
 int get_bldtime(char *buf, int len);
 void print_time(char *s, struct tm *tm);
 void print_utc(char *s, time_t t);

+ 20 - 20
pro/src/json_handle.c

@@ -3389,46 +3389,46 @@ char* alarm_power_threshold_to_json(GlobalPowerManger* _globalPowerManger)
         cJSON_AddNumberToObject(data_filed,"dyType",1);
         sprintf(temp, "%d", _globalPowerMangerTemp->_PowerInfo.status);
         cJSON_AddStringToObject(data_filed,"productChStatus",temp);
-        sprintf(temp,"%0.2f",_globalPowerMangerTemp->global_over_manager->product_cur_upper_threshold);
+        sprintf(temp,"%0.2f",_globalPowerMangerTemp->global_over_manager.product_cur_upper_threshold);
         cJSON_AddStringToObject(data_filed,"currentUpperValue",temp);
-        sprintf(temp,"%0.2f",_globalPowerMangerTemp->global_over_manager->product_vol_upper_threshold); 
+        sprintf(temp,"%0.2f",_globalPowerMangerTemp->global_over_manager.product_vol_upper_threshold); 
         cJSON_AddStringToObject(data_filed,"voltageUpperValue",temp);
-        sprintf(temp,"%0.2f",_globalPowerMangerTemp->global_over_manager->product_vol_lower_threshold);
+        sprintf(temp,"%0.2f",_globalPowerMangerTemp->global_over_manager.product_vol_lower_threshold);
         cJSON_AddStringToObject(data_filed,"voltageDownValue",temp);
-        sprintf(temp,"%0.2f",_globalPowerMangerTemp->global_over_manager->product_pwr_upper_threshold);
+        sprintf(temp,"%0.2f",_globalPowerMangerTemp->global_over_manager.product_pwr_upper_threshold);
         cJSON_AddStringToObject(data_filed,"powerUpperValue",temp);
-        sprintf(temp,"%0.2f",_globalPowerMangerTemp->global_over_manager->product_pwrcon_upper_threshold);
+        sprintf(temp,"%0.2f",_globalPowerMangerTemp->global_over_manager.product_pwrcon_upper_threshold);
         cJSON_AddStringToObject(data_filed,"alarmContentUpperValue",temp);
 
-        if (_globalPowerMangerTemp->global_over_manager->product_cur_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
+        if (_globalPowerMangerTemp->global_over_manager.product_cur_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
         {
             cJSON_AddStringToObject(data_filed, "currentUpperAction",Closetemp);
         }
         else
             cJSON_AddStringToObject(data_filed, "currentUpperAction", Alarmtemp);
 
-        if (_globalPowerMangerTemp->global_over_manager->product_vol_over_upper_threshold_ctrl ==ALARM_CTRL_CLOSE_CH)
+        if (_globalPowerMangerTemp->global_over_manager.product_vol_over_upper_threshold_ctrl ==ALARM_CTRL_CLOSE_CH)
         {
             cJSON_AddStringToObject(data_filed, "voltageUpperAction", Closetemp);
         }
         else
             cJSON_AddStringToObject(data_filed, "voltageUpperAction", Alarmtemp);
 
-        if (_globalPowerMangerTemp->global_over_manager->product_vol_over_lower_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
+        if (_globalPowerMangerTemp->global_over_manager.product_vol_over_lower_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
         {
             cJSON_AddStringToObject(data_filed, "voltageDownAction",Closetemp );
         }
         else
             cJSON_AddStringToObject(data_filed, "voltageDownAction", Alarmtemp);
 
-        if (_globalPowerMangerTemp->global_over_manager->product_pwr_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
+        if (_globalPowerMangerTemp->global_over_manager.product_pwr_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
         {
             cJSON_AddStringToObject(data_filed, "powerUpperAction", Closetemp);
         }
         else
             cJSON_AddStringToObject(data_filed, "powerUpperAction", Alarmtemp);
 
-        if (_globalPowerMangerTemp->global_over_manager->product_pwrcon_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
+        if (_globalPowerMangerTemp->global_over_manager.product_pwrcon_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
         {
             cJSON_AddStringToObject(data_filed, "alarmContentUpperAction", Closetemp);
         }
@@ -3444,46 +3444,46 @@ char* alarm_power_threshold_to_json(GlobalPowerManger* _globalPowerManger)
         cJSON_AddStringToObject(data_filed,"productChId",temp);   
         cJSON_AddNumberToObject(data_filed,"dyType",_globalPowerManger->product_ch_id);
         cJSON_AddStringToObject(data_filed,"productChStatus","1");
-        sprintf(temp,"%0.2f",_globalPowerManger->global_over_manager->product_cur_upper_threshold);
+        sprintf(temp,"%0.2f",_globalPowerManger->global_over_manager.product_cur_upper_threshold);
         cJSON_AddStringToObject(data_filed,"currentUpperValue",temp);
-        sprintf(temp,"%0.2f",_globalPowerManger->global_over_manager->product_vol_upper_threshold);
+        sprintf(temp,"%0.2f",_globalPowerManger->global_over_manager.product_vol_upper_threshold);
         cJSON_AddStringToObject(data_filed,"voltageUpperValue",temp);
-        sprintf(temp,"%0.2f",_globalPowerManger->global_over_manager->product_vol_lower_threshold);
+        sprintf(temp,"%0.2f",_globalPowerManger->global_over_manager.product_vol_lower_threshold);
         cJSON_AddStringToObject(data_filed,"voltageDownValue",temp);
-        sprintf(temp,"%0.2f",_globalPowerManger->global_over_manager->product_pwr_upper_threshold);
+        sprintf(temp,"%0.2f",_globalPowerManger->global_over_manager.product_pwr_upper_threshold);
         cJSON_AddStringToObject(data_filed,"powerUpperValue",temp);
-        sprintf(temp,"%0.2f",_globalPowerManger->global_over_manager->product_pwrcon_upper_threshold);
+        sprintf(temp,"%0.2f",_globalPowerManger->global_over_manager.product_pwrcon_upper_threshold);
         cJSON_AddStringToObject(data_filed,"alarmContentUpperValue",temp);
 
-        if (_globalPowerManger->global_over_manager->product_cur_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
+        if (_globalPowerManger->global_over_manager.product_cur_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
         {
             cJSON_AddStringToObject(data_filed, "currentUpperAction",Closetemp);
         }
         else
             cJSON_AddStringToObject(data_filed, "currentUpperAction",Alarmtemp);
 
-        if (_globalPowerManger->global_over_manager->product_vol_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
+        if (_globalPowerManger->global_over_manager.product_vol_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
         {
             cJSON_AddStringToObject(data_filed, "voltageUpperAction", Closetemp);
         }
         else
             cJSON_AddStringToObject(data_filed, "voltageUpperAction", Alarmtemp);
 
-        if (_globalPowerManger->global_over_manager->product_vol_over_lower_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
+        if (_globalPowerManger->global_over_manager.product_vol_over_lower_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
         {
             cJSON_AddStringToObject(data_filed, "voltageDownAction", Closetemp);
         }
         else
             cJSON_AddStringToObject(data_filed, "voltageDownAction", Alarmtemp);
 
-        if (_globalPowerManger->global_over_manager->product_pwr_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
+        if (_globalPowerManger->global_over_manager.product_pwr_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
         {
             cJSON_AddStringToObject(data_filed, "powerUpperAction", Closetemp);
         }
         else
             cJSON_AddStringToObject(data_filed, "powerUpperAction", Alarmtemp);
 
-        if (_globalPowerManger->global_over_manager->product_pwrcon_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
+        if (_globalPowerManger->global_over_manager.product_pwrcon_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
         {
             cJSON_AddStringToObject(data_filed, "alarmContentUpperAction",Closetemp);
         }

Файловите разлики са ограничени, защото са твърде много
+ 862 - 304
pro/src/paras.c


+ 135 - 135
pro/src/sqlite_handle.c

@@ -1355,26 +1355,26 @@ int dev_insert_power_manage_info(sqlite3 *db,int product_id,int product_ch_id,Gl
                     _globalPowerChnManger->product_ch_status,
                     _globalPowerChnManger->product_ch_start_delay,
                     _globalPowerChnManger->product_ch_stop_delay,
-                    _globalPowerChnManger->global_over_manager->product_vol_upper_enable,
-                    _globalPowerChnManger->global_over_manager->product_vol_upper_threshold,
-                    _globalPowerChnManger->global_over_manager->product_vol_over_upper_threshold_ctrl,
-                    _globalPowerChnManger->global_over_manager->product_vol_over_upper_threshold_ctrl_para,
-                    _globalPowerChnManger->global_over_manager->product_vol_lower_enable,
-                    _globalPowerChnManger->global_over_manager->product_vol_lower_threshold,
-                    _globalPowerChnManger->global_over_manager->product_vol_over_lower_threshold_ctrl,
-                    _globalPowerChnManger->global_over_manager->product_vol_over_lower_threshold_ctrl_para,
-                    _globalPowerChnManger->global_over_manager->product_cur_upper_enable,
-                    _globalPowerChnManger->global_over_manager->product_cur_upper_threshold,
-                    _globalPowerChnManger->global_over_manager->product_cur_over_upper_threshold_ctrl,      
-                    _globalPowerChnManger->global_over_manager->product_cur_over_upper_threshold_ctrl_para,  
-                    _globalPowerChnManger->global_over_manager->product_pwr_upper_enable,
-                    _globalPowerChnManger->global_over_manager->product_pwr_upper_threshold,
-                    _globalPowerChnManger->global_over_manager->product_pwr_over_upper_threshold_ctrl, 
-                    _globalPowerChnManger->global_over_manager->product_pwr_over_upper_threshold_ctrl_para, 
-                    _globalPowerChnManger->global_over_manager->product_pwrcon_upper_enable,
-                    _globalPowerChnManger->global_over_manager->product_pwrcon_upper_threshold,
-                    _globalPowerChnManger->global_over_manager->product_pwrcon_over_upper_threshold_ctrl,   
-                    _globalPowerChnManger->global_over_manager->product_pwrcon_over_upper_threshold_ctrl_para,
+                    _globalPowerChnManger->global_over_manager.product_vol_upper_enable,
+                    _globalPowerChnManger->global_over_manager.product_vol_upper_threshold,
+                    _globalPowerChnManger->global_over_manager.product_vol_over_upper_threshold_ctrl,
+                    _globalPowerChnManger->global_over_manager.product_vol_over_upper_threshold_ctrl_para,
+                    _globalPowerChnManger->global_over_manager.product_vol_lower_enable,
+                    _globalPowerChnManger->global_over_manager.product_vol_lower_threshold,
+                    _globalPowerChnManger->global_over_manager.product_vol_over_lower_threshold_ctrl,
+                    _globalPowerChnManger->global_over_manager.product_vol_over_lower_threshold_ctrl_para,
+                    _globalPowerChnManger->global_over_manager.product_cur_upper_enable,
+                    _globalPowerChnManger->global_over_manager.product_cur_upper_threshold,
+                    _globalPowerChnManger->global_over_manager.product_cur_over_upper_threshold_ctrl,      
+                    _globalPowerChnManger->global_over_manager.product_cur_over_upper_threshold_ctrl_para,  
+                    _globalPowerChnManger->global_over_manager.product_pwr_upper_enable,
+                    _globalPowerChnManger->global_over_manager.product_pwr_upper_threshold,
+                    _globalPowerChnManger->global_over_manager.product_pwr_over_upper_threshold_ctrl, 
+                    _globalPowerChnManger->global_over_manager.product_pwr_over_upper_threshold_ctrl_para, 
+                    _globalPowerChnManger->global_over_manager.product_pwrcon_upper_enable,
+                    _globalPowerChnManger->global_over_manager.product_pwrcon_upper_threshold,
+                    _globalPowerChnManger->global_over_manager.product_pwrcon_over_upper_threshold_ctrl,   
+                    _globalPowerChnManger->global_over_manager.product_pwrcon_over_upper_threshold_ctrl_para,
                     _globalPowerChnManger->product_saddr,
                     _globalPowerChnManger->product_ch_addr
                     );
@@ -1436,45 +1436,45 @@ int dev_get_power_manage_info(sqlite3 *db,int product_id,int product_addr,int pr
     _globalPowerChnManger->_PowerSXManage->firingSortno = __globalSxIdx++;
     _globalPowerChnManger->_PowerSXManage->closeSortno = __globalSxIdx++;
     //获取电压超上限使能
-    _globalPowerChnManger->global_over_manager->product_vol_upper_enable = atoi(pResult[rowIndex*ncolumn+7]); 
+    _globalPowerChnManger->global_over_manager.product_vol_upper_enable = atoi(pResult[rowIndex*ncolumn+7]); 
     //获取电压上限范围
-    _globalPowerChnManger->global_over_manager->product_vol_upper_threshold = atof(pResult[rowIndex*ncolumn+8]);
+    _globalPowerChnManger->global_over_manager.product_vol_upper_threshold = atof(pResult[rowIndex*ncolumn+8]);
     //获取电压上限超限动作
-    _globalPowerChnManger->global_over_manager->product_vol_over_upper_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+9]);
+    _globalPowerChnManger->global_over_manager.product_vol_over_upper_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+9]);
     //获取电压上限超限关联参数
-    _globalPowerChnManger->global_over_manager->product_vol_over_upper_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+10]);
+    _globalPowerChnManger->global_over_manager.product_vol_over_upper_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+10]);
     //获取电压超下限使能
-    _globalPowerChnManger->global_over_manager->product_vol_lower_enable = atoi(pResult[rowIndex*ncolumn+11]); 
+    _globalPowerChnManger->global_over_manager.product_vol_lower_enable = atoi(pResult[rowIndex*ncolumn+11]); 
     //获取电压下限范围
-    _globalPowerChnManger->global_over_manager->product_vol_lower_threshold = atof(pResult[rowIndex*ncolumn+12]);
+    _globalPowerChnManger->global_over_manager.product_vol_lower_threshold = atof(pResult[rowIndex*ncolumn+12]);
     //获取电压下限超限动作
-    _globalPowerChnManger->global_over_manager->product_vol_over_lower_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+13]); 
+    _globalPowerChnManger->global_over_manager.product_vol_over_lower_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+13]); 
     //超限关联参数
-    _globalPowerChnManger->global_over_manager->product_vol_over_lower_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+14]);
+    _globalPowerChnManger->global_over_manager.product_vol_over_lower_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+14]);
     //获取电流超上限使能
-    _globalPowerChnManger->global_over_manager->product_cur_upper_enable = atoi(pResult[rowIndex*ncolumn+15]); 
+    _globalPowerChnManger->global_over_manager.product_cur_upper_enable = atoi(pResult[rowIndex*ncolumn+15]); 
     //获取电流上限范围
-    _globalPowerChnManger->global_over_manager->product_cur_upper_threshold = atof(pResult[rowIndex*ncolumn+16]);
+    _globalPowerChnManger->global_over_manager.product_cur_upper_threshold = atof(pResult[rowIndex*ncolumn+16]);
     //获取电流上限超限动作
-    _globalPowerChnManger->global_over_manager->product_cur_over_upper_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+17]); 
+    _globalPowerChnManger->global_over_manager.product_cur_over_upper_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+17]); 
     //超限关联参数
-    _globalPowerChnManger->global_over_manager->product_cur_over_upper_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+18]);
+    _globalPowerChnManger->global_over_manager.product_cur_over_upper_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+18]);
     //获取功耗超上限使能
-    _globalPowerChnManger->global_over_manager->product_pwr_upper_enable = atoi(pResult[rowIndex*ncolumn+19]); 
+    _globalPowerChnManger->global_over_manager.product_pwr_upper_enable = atoi(pResult[rowIndex*ncolumn+19]); 
     //获取功耗上限范围
-    _globalPowerChnManger->global_over_manager->product_pwr_upper_threshold = atof(pResult[rowIndex*ncolumn+20]);
+    _globalPowerChnManger->global_over_manager.product_pwr_upper_threshold = atof(pResult[rowIndex*ncolumn+20]);
     //获取功耗上限超限动作
-    _globalPowerChnManger->global_over_manager->product_pwr_over_upper_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+21]); 
+    _globalPowerChnManger->global_over_manager.product_pwr_over_upper_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+21]); 
     //超限关联参数
-    _globalPowerChnManger->global_over_manager->product_pwr_over_upper_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+22]);
+    _globalPowerChnManger->global_over_manager.product_pwr_over_upper_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+22]);
     //获取耗电量超上限使能
-    _globalPowerChnManger->global_over_manager->product_pwrcon_upper_enable = atoi(pResult[rowIndex*ncolumn+23]); 
+    _globalPowerChnManger->global_over_manager.product_pwrcon_upper_enable = atoi(pResult[rowIndex*ncolumn+23]); 
     //获取耗电量上限范围
-    _globalPowerChnManger->global_over_manager->product_pwrcon_upper_threshold = atof(pResult[rowIndex*ncolumn+24]);
+    _globalPowerChnManger->global_over_manager.product_pwrcon_upper_threshold = atof(pResult[rowIndex*ncolumn+24]);
     //获取耗电量上限超限动作
-    _globalPowerChnManger->global_over_manager->product_pwrcon_over_upper_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+25]); 
+    _globalPowerChnManger->global_over_manager.product_pwrcon_over_upper_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+25]); 
     //超限关联参数
-    _globalPowerChnManger->global_over_manager->product_pwrcon_over_upper_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+26]); 
+    _globalPowerChnManger->global_over_manager.product_pwrcon_over_upper_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+26]); 
     //获取板ID
     _globalPowerChnManger->product_saddr = atoi(pResult[rowIndex*ncolumn+27]); 
     //获取板TYPE
@@ -1505,26 +1505,26 @@ int dev_insert_t_ac_power_manage_info(sqlite3 *db,int product_id,int product_ch_
                     _globalPowerChnManger->product_ch_id,
                     _globalPowerChnManger->product_saddr,
                     _globalPowerChnManger->product_ch_addr,
-                    _globalPowerChnManger->global_over_manager->product_vol_upper_enable,
-                    _globalPowerChnManger->global_over_manager->product_vol_upper_threshold,
-                    _globalPowerChnManger->global_over_manager->product_vol_over_upper_threshold_ctrl,
-                    _globalPowerChnManger->global_over_manager->product_vol_over_upper_threshold_ctrl_para,
-                    _globalPowerChnManger->global_over_manager->product_vol_lower_enable,
-                    _globalPowerChnManger->global_over_manager->product_vol_lower_threshold,
-                    _globalPowerChnManger->global_over_manager->product_vol_over_lower_threshold_ctrl,
-                    _globalPowerChnManger->global_over_manager->product_vol_over_lower_threshold_ctrl_para,
-                    _globalPowerChnManger->global_over_manager->product_cur_upper_enable,
-                    _globalPowerChnManger->global_over_manager->product_cur_upper_threshold,
-                    _globalPowerChnManger->global_over_manager->product_cur_over_upper_threshold_ctrl,      
-                    _globalPowerChnManger->global_over_manager->product_cur_over_upper_threshold_ctrl_para,  
-                    _globalPowerChnManger->global_over_manager->product_pwr_upper_enable,
-                    _globalPowerChnManger->global_over_manager->product_pwr_upper_threshold,
-                    _globalPowerChnManger->global_over_manager->product_pwr_over_upper_threshold_ctrl, 
-                    _globalPowerChnManger->global_over_manager->product_pwr_over_upper_threshold_ctrl_para, 
-                    _globalPowerChnManger->global_over_manager->product_pwrcon_upper_enable,
-                    _globalPowerChnManger->global_over_manager->product_pwrcon_upper_threshold,
-                    _globalPowerChnManger->global_over_manager->product_pwrcon_over_upper_threshold_ctrl,   
-                    _globalPowerChnManger->global_over_manager->product_pwrcon_over_upper_threshold_ctrl_para,
+                    _globalPowerChnManger->global_over_manager.product_vol_upper_enable,
+                    _globalPowerChnManger->global_over_manager.product_vol_upper_threshold,
+                    _globalPowerChnManger->global_over_manager.product_vol_over_upper_threshold_ctrl,
+                    _globalPowerChnManger->global_over_manager.product_vol_over_upper_threshold_ctrl_para,
+                    _globalPowerChnManger->global_over_manager.product_vol_lower_enable,
+                    _globalPowerChnManger->global_over_manager.product_vol_lower_threshold,
+                    _globalPowerChnManger->global_over_manager.product_vol_over_lower_threshold_ctrl,
+                    _globalPowerChnManger->global_over_manager.product_vol_over_lower_threshold_ctrl_para,
+                    _globalPowerChnManger->global_over_manager.product_cur_upper_enable,
+                    _globalPowerChnManger->global_over_manager.product_cur_upper_threshold,
+                    _globalPowerChnManger->global_over_manager.product_cur_over_upper_threshold_ctrl,      
+                    _globalPowerChnManger->global_over_manager.product_cur_over_upper_threshold_ctrl_para,  
+                    _globalPowerChnManger->global_over_manager.product_pwr_upper_enable,
+                    _globalPowerChnManger->global_over_manager.product_pwr_upper_threshold,
+                    _globalPowerChnManger->global_over_manager.product_pwr_over_upper_threshold_ctrl, 
+                    _globalPowerChnManger->global_over_manager.product_pwr_over_upper_threshold_ctrl_para, 
+                    _globalPowerChnManger->global_over_manager.product_pwrcon_upper_enable,
+                    _globalPowerChnManger->global_over_manager.product_pwrcon_upper_threshold,
+                    _globalPowerChnManger->global_over_manager.product_pwrcon_over_upper_threshold_ctrl,   
+                    _globalPowerChnManger->global_over_manager.product_pwrcon_over_upper_threshold_ctrl_para,
                     _globalPowerChnManger->product_ph_outputType,
                     _globalPowerChnManger->product_ph_outputStatus
                     );
@@ -1577,45 +1577,45 @@ int dev_get_t_ac_power_manage_info(sqlite3 *db,int product_id,int product_addr,i
     //获取实际三相通道位置偏移
     _globalPowerChnManger->product_ch_addr = atoi(pResult[rowIndex*ncolumn+5]);     
     //获取电压超上限使能
-    _globalPowerChnManger->global_over_manager->product_vol_upper_enable = atoi(pResult[rowIndex*ncolumn+6]); 
+    _globalPowerChnManger->global_over_manager.product_vol_upper_enable = atoi(pResult[rowIndex*ncolumn+6]); 
     //获取电压上限范围
-    _globalPowerChnManger->global_over_manager->product_vol_upper_threshold = atof(pResult[rowIndex*ncolumn+7]);
+    _globalPowerChnManger->global_over_manager.product_vol_upper_threshold = atof(pResult[rowIndex*ncolumn+7]);
     //获取电压上限超限动作
-    _globalPowerChnManger->global_over_manager->product_vol_over_upper_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+8]);
+    _globalPowerChnManger->global_over_manager.product_vol_over_upper_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+8]);
     //获取电压上限超限关联参数
-    _globalPowerChnManger->global_over_manager->product_vol_over_upper_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+9]);
+    _globalPowerChnManger->global_over_manager.product_vol_over_upper_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+9]);
     //获取电压超下限使能
-    _globalPowerChnManger->global_over_manager->product_vol_lower_enable = atoi(pResult[rowIndex*ncolumn+10]); 
+    _globalPowerChnManger->global_over_manager.product_vol_lower_enable = atoi(pResult[rowIndex*ncolumn+10]); 
     //获取电压下限范围
-    _globalPowerChnManger->global_over_manager->product_vol_lower_threshold = atof(pResult[rowIndex*ncolumn+11]);
+    _globalPowerChnManger->global_over_manager.product_vol_lower_threshold = atof(pResult[rowIndex*ncolumn+11]);
     //获取电压下限超限动作
-    _globalPowerChnManger->global_over_manager->product_vol_over_lower_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+12]); 
+    _globalPowerChnManger->global_over_manager.product_vol_over_lower_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+12]); 
     //超限关联参数
-    _globalPowerChnManger->global_over_manager->product_vol_over_lower_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+13]);
+    _globalPowerChnManger->global_over_manager.product_vol_over_lower_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+13]);
     //获取电流超上限使能
-    _globalPowerChnManger->global_over_manager->product_cur_upper_enable = atoi(pResult[rowIndex*ncolumn+14]); 
+    _globalPowerChnManger->global_over_manager.product_cur_upper_enable = atoi(pResult[rowIndex*ncolumn+14]); 
     //获取电流上限范围
-    _globalPowerChnManger->global_over_manager->product_cur_upper_threshold = atof(pResult[rowIndex*ncolumn+15]);
+    _globalPowerChnManger->global_over_manager.product_cur_upper_threshold = atof(pResult[rowIndex*ncolumn+15]);
     //获取电流上限超限动作
-    _globalPowerChnManger->global_over_manager->product_cur_over_upper_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+16]); 
+    _globalPowerChnManger->global_over_manager.product_cur_over_upper_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+16]); 
     //超限关联参数
-    _globalPowerChnManger->global_over_manager->product_cur_over_upper_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+17]);
+    _globalPowerChnManger->global_over_manager.product_cur_over_upper_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+17]);
     //获取功耗超上限使能
-    _globalPowerChnManger->global_over_manager->product_pwr_upper_enable = atoi(pResult[rowIndex*ncolumn+18]); 
+    _globalPowerChnManger->global_over_manager.product_pwr_upper_enable = atoi(pResult[rowIndex*ncolumn+18]); 
     //获取功耗上限范围
-    _globalPowerChnManger->global_over_manager->product_pwr_upper_threshold = atof(pResult[rowIndex*ncolumn+19]);
+    _globalPowerChnManger->global_over_manager.product_pwr_upper_threshold = atof(pResult[rowIndex*ncolumn+19]);
     //获取功耗上限超限动作
-    _globalPowerChnManger->global_over_manager->product_pwr_over_upper_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+20]); 
+    _globalPowerChnManger->global_over_manager.product_pwr_over_upper_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+20]); 
     //超限关联参数
-    _globalPowerChnManger->global_over_manager->product_pwr_over_upper_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+21]);
+    _globalPowerChnManger->global_over_manager.product_pwr_over_upper_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+21]);
     //获取耗电量超上限使能
-    _globalPowerChnManger->global_over_manager->product_pwrcon_upper_enable = atoi(pResult[rowIndex*ncolumn+22]); 
+    _globalPowerChnManger->global_over_manager.product_pwrcon_upper_enable = atoi(pResult[rowIndex*ncolumn+22]); 
     //获取耗电量上限范围
-    _globalPowerChnManger->global_over_manager->product_pwrcon_upper_threshold = atof(pResult[rowIndex*ncolumn+23]);
+    _globalPowerChnManger->global_over_manager.product_pwrcon_upper_threshold = atof(pResult[rowIndex*ncolumn+23]);
     //获取耗电量上限超限动作
-    _globalPowerChnManger->global_over_manager->product_pwrcon_over_upper_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+24]); 
+    _globalPowerChnManger->global_over_manager.product_pwrcon_over_upper_threshold_ctrl = atoi(pResult[rowIndex*ncolumn+24]); 
     //超限关联参数
-    _globalPowerChnManger->global_over_manager->product_pwrcon_over_upper_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+25]); 
+    _globalPowerChnManger->global_over_manager.product_pwrcon_over_upper_threshold_ctrl_para = atoi(pResult[rowIndex*ncolumn+25]); 
     
     _globalPowerChnManger->product_ph_outputType = atoi(pResult[rowIndex*ncolumn+26]); 
         
@@ -1688,26 +1688,26 @@ int dev_update_t_ac_power_manage_over_info(sqlite3 *db,GlobalTreeACManager* _glo
             product_ph_pwrcon_over_upper_threshold = %d,\
             product_ph_pwrcon_over_upper_threshold_para = %d\
             where product_ph_outputType=%d and product_ph_outputStatus=%d;",
-              _globalPowerChnManger->global_over_manager->product_vol_upper_enable,
-              _globalPowerChnManger->global_over_manager->product_vol_upper_threshold,
-              _globalPowerChnManger->global_over_manager->product_vol_over_upper_threshold_ctrl,
-              _globalPowerChnManger->global_over_manager->product_vol_over_upper_threshold_ctrl_para,
-              _globalPowerChnManger->global_over_manager->product_vol_lower_enable,
-              _globalPowerChnManger->global_over_manager->product_vol_lower_threshold,
-              _globalPowerChnManger->global_over_manager->product_vol_over_lower_threshold_ctrl,
-              _globalPowerChnManger->global_over_manager->product_vol_over_lower_threshold_ctrl_para,
-              _globalPowerChnManger->global_over_manager->product_cur_upper_enable,
-              _globalPowerChnManger->global_over_manager->product_cur_upper_threshold,
-              _globalPowerChnManger->global_over_manager->product_cur_over_upper_threshold_ctrl,
-              _globalPowerChnManger->global_over_manager->product_cur_over_upper_threshold_ctrl_para,
-              _globalPowerChnManger->global_over_manager->product_pwr_upper_enable,
-              _globalPowerChnManger->global_over_manager->product_pwr_upper_threshold,
-              _globalPowerChnManger->global_over_manager->product_pwr_over_upper_threshold_ctrl,
-              _globalPowerChnManger->global_over_manager->product_pwr_over_upper_threshold_ctrl_para,
-              _globalPowerChnManger->global_over_manager->product_pwrcon_upper_enable,
-              _globalPowerChnManger->global_over_manager->product_pwrcon_upper_threshold,
-              _globalPowerChnManger->global_over_manager->product_pwrcon_over_upper_threshold_ctrl,
-              _globalPowerChnManger->global_over_manager->product_pwrcon_over_upper_threshold_ctrl_para,
+              _globalPowerChnManger->global_over_manager.product_vol_upper_enable,
+              _globalPowerChnManger->global_over_manager.product_vol_upper_threshold,
+              _globalPowerChnManger->global_over_manager.product_vol_over_upper_threshold_ctrl,
+              _globalPowerChnManger->global_over_manager.product_vol_over_upper_threshold_ctrl_para,
+              _globalPowerChnManger->global_over_manager.product_vol_lower_enable,
+              _globalPowerChnManger->global_over_manager.product_vol_lower_threshold,
+              _globalPowerChnManger->global_over_manager.product_vol_over_lower_threshold_ctrl,
+              _globalPowerChnManger->global_over_manager.product_vol_over_lower_threshold_ctrl_para,
+              _globalPowerChnManger->global_over_manager.product_cur_upper_enable,
+              _globalPowerChnManger->global_over_manager.product_cur_upper_threshold,
+              _globalPowerChnManger->global_over_manager.product_cur_over_upper_threshold_ctrl,
+              _globalPowerChnManger->global_over_manager.product_cur_over_upper_threshold_ctrl_para,
+              _globalPowerChnManger->global_over_manager.product_pwr_upper_enable,
+              _globalPowerChnManger->global_over_manager.product_pwr_upper_threshold,
+              _globalPowerChnManger->global_over_manager.product_pwr_over_upper_threshold_ctrl,
+              _globalPowerChnManger->global_over_manager.product_pwr_over_upper_threshold_ctrl_para,
+              _globalPowerChnManger->global_over_manager.product_pwrcon_upper_enable,
+              _globalPowerChnManger->global_over_manager.product_pwrcon_upper_threshold,
+              _globalPowerChnManger->global_over_manager.product_pwrcon_over_upper_threshold_ctrl,
+              _globalPowerChnManger->global_over_manager.product_pwrcon_over_upper_threshold_ctrl_para,
               _globalPowerChnManger->product_ph_outputType,
               _globalPowerChnManger->product_ph_outputStatus);
     printf("select_sql:%s\n", select_sql);
@@ -1906,26 +1906,26 @@ int dev_update_power_manage_over_info(sqlite3 *db,int product_id,int product_ch_
                                                      "product_pwr_u_enable=%d,product_pwr_u_threshold=%0.2f,product_pwr_over_u_threshold_ctrl=%d,"
                                                      "product_pwr_over_u_threshold_para=%d,product_pwrcon_u_enable=%d,product_pwrcon_u_threshold=%0.2f,"
                                                      "product_pwrcon_over_u_threshold_ctrl=%d,product_pwrcon_over_u_threshold_para=%d WHERE product_ch_id=%d;",
-                        _globalPowerChnManger->global_over_manager->product_vol_upper_enable,
-                        _globalPowerChnManger->global_over_manager->product_vol_upper_threshold,
-                        _globalPowerChnManger->global_over_manager->product_vol_over_upper_threshold_ctrl,
-                        _globalPowerChnManger->global_over_manager->product_vol_over_upper_threshold_ctrl_para,
-                        _globalPowerChnManger->global_over_manager->product_vol_lower_enable,
-                        _globalPowerChnManger->global_over_manager->product_vol_lower_threshold,
-                        _globalPowerChnManger->global_over_manager->product_vol_over_lower_threshold_ctrl,
-                        _globalPowerChnManger->global_over_manager->product_vol_over_lower_threshold_ctrl_para,
-                        _globalPowerChnManger->global_over_manager->product_cur_upper_enable,
-                        _globalPowerChnManger->global_over_manager->product_cur_upper_threshold,
-                        _globalPowerChnManger->global_over_manager->product_cur_over_upper_threshold_ctrl,      
-                        _globalPowerChnManger->global_over_manager->product_cur_over_upper_threshold_ctrl_para,  
-                        _globalPowerChnManger->global_over_manager->product_pwr_upper_enable,
-                        _globalPowerChnManger->global_over_manager->product_pwr_upper_threshold,
-                        _globalPowerChnManger->global_over_manager->product_pwr_over_upper_threshold_ctrl, 
-                        _globalPowerChnManger->global_over_manager->product_pwr_over_upper_threshold_ctrl_para, 
-                        _globalPowerChnManger->global_over_manager->product_pwrcon_upper_enable,
-                        _globalPowerChnManger->global_over_manager->product_pwrcon_upper_threshold,
-                        _globalPowerChnManger->global_over_manager->product_pwrcon_over_upper_threshold_ctrl,   
-                        _globalPowerChnManger->global_over_manager->product_pwrcon_over_upper_threshold_ctrl_para,  
+                        _globalPowerChnManger->global_over_manager.product_vol_upper_enable,
+                        _globalPowerChnManger->global_over_manager.product_vol_upper_threshold,
+                        _globalPowerChnManger->global_over_manager.product_vol_over_upper_threshold_ctrl,
+                        _globalPowerChnManger->global_over_manager.product_vol_over_upper_threshold_ctrl_para,
+                        _globalPowerChnManger->global_over_manager.product_vol_lower_enable,
+                        _globalPowerChnManger->global_over_manager.product_vol_lower_threshold,
+                        _globalPowerChnManger->global_over_manager.product_vol_over_lower_threshold_ctrl,
+                        _globalPowerChnManger->global_over_manager.product_vol_over_lower_threshold_ctrl_para,
+                        _globalPowerChnManger->global_over_manager.product_cur_upper_enable,
+                        _globalPowerChnManger->global_over_manager.product_cur_upper_threshold,
+                        _globalPowerChnManger->global_over_manager.product_cur_over_upper_threshold_ctrl,      
+                        _globalPowerChnManger->global_over_manager.product_cur_over_upper_threshold_ctrl_para,  
+                        _globalPowerChnManger->global_over_manager.product_pwr_upper_enable,
+                        _globalPowerChnManger->global_over_manager.product_pwr_upper_threshold,
+                        _globalPowerChnManger->global_over_manager.product_pwr_over_upper_threshold_ctrl, 
+                        _globalPowerChnManger->global_over_manager.product_pwr_over_upper_threshold_ctrl_para, 
+                        _globalPowerChnManger->global_over_manager.product_pwrcon_upper_enable,
+                        _globalPowerChnManger->global_over_manager.product_pwrcon_upper_threshold,
+                        _globalPowerChnManger->global_over_manager.product_pwrcon_over_upper_threshold_ctrl,   
+                        _globalPowerChnManger->global_over_manager.product_pwrcon_over_upper_threshold_ctrl_para,  
                         product_ch_id);
     //log_d("%s\n",select_sql);
     res = sqlite_SQL_RUN(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
@@ -3607,35 +3607,35 @@ int dev_Alarm_send_message(GlobalDeviceManager* globalDeviceManger,GlobalPowerMa
     {
     case WARNING_V_UP:
     {
-        alarm_action = __globalPowerTemp->global_over_manager->product_vol_over_upper_threshold_ctrl;
+        alarm_action = __globalPowerTemp->global_over_manager.product_vol_over_upper_threshold_ctrl;
         get_message_CtrlType(alarm_action,CtrlData);
         sprintf(AlarmText,"$通道$|%s |$%s$|$%s$| %s",__globalPowerTemp->product_ch_name,language_alarm_V[languagesID],language_alarm_Up[languagesID],CtrlData);
     }
         break;
     case WARNING_V_DOWN:
     {
-        alarm_action = __globalPowerTemp->global_over_manager->product_vol_over_lower_threshold_ctrl;
+        alarm_action = __globalPowerTemp->global_over_manager.product_vol_over_lower_threshold_ctrl;
         get_message_CtrlType(alarm_action,CtrlData);
         sprintf(AlarmText,"$通道$|%s |$%s$|$%s$| %s",__globalPowerTemp->product_ch_name,language_alarm_V[languagesID],language_alarm_Down[languagesID],CtrlData);
     }
         break;
     case WARNING_A_UP:
     {
-        alarm_action = __globalPowerTemp->global_over_manager->product_cur_over_upper_threshold_ctrl;
+        alarm_action = __globalPowerTemp->global_over_manager.product_cur_over_upper_threshold_ctrl;
         get_message_CtrlType(alarm_action,CtrlData);
         sprintf(AlarmText,"$通道$|%s |$%s$|$%s$| %s",__globalPowerTemp->product_ch_name,language_alarm_A[languagesID],language_alarm_Up[languagesID],CtrlData);
     }        
         break;
     case WARNING_W_UP:
     {
-        alarm_action = __globalPowerTemp->global_over_manager->product_pwr_over_upper_threshold_ctrl;
+        alarm_action = __globalPowerTemp->global_over_manager.product_pwr_over_upper_threshold_ctrl;
         get_message_CtrlType(alarm_action,CtrlData);
         sprintf(AlarmText,"$通道$|%s |$%s$|$%s$| %s",__globalPowerTemp->product_ch_name,language_alarm_W[languagesID],language_alarm_Up[languagesID],CtrlData);
     }
         break;
     case WARNING_P_UP:
     {
-        alarm_action = __globalPowerTemp->global_over_manager->product_pwrcon_over_upper_threshold_ctrl;
+        alarm_action = __globalPowerTemp->global_over_manager.product_pwrcon_over_upper_threshold_ctrl;
         get_message_CtrlType(alarm_action,CtrlData);
         sprintf(AlarmText,"$通道$|%s |$%s$|$%s$| %s",__globalPowerTemp->product_ch_name,language_alarm_P[languagesID],language_alarm_Up[languagesID],CtrlData);
     }
@@ -3696,7 +3696,7 @@ int dev_Alarm_send_message(GlobalDeviceManager* globalDeviceManger,GlobalPowerMa
         {
         case WARNING_V_UP:
         {
-            if (__globalPowerTemp->global_over_manager->product_vol_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
+            if (__globalPowerTemp->global_over_manager.product_vol_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
             {
                 ret = g_switch_set_all_chn_ctrl(&globalDeviceManger->_globalRelaySampManger, __globalPowerTemp,
                                                 __globalPowerTemp->product_saddr,
@@ -3707,7 +3707,7 @@ int dev_Alarm_send_message(GlobalDeviceManager* globalDeviceManger,GlobalPowerMa
         break;
         case WARNING_V_DOWN:
         {
-            if (__globalPowerTemp->global_over_manager->product_vol_over_lower_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
+            if (__globalPowerTemp->global_over_manager.product_vol_over_lower_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
             {
                 ret = g_switch_set_all_chn_ctrl(&globalDeviceManger->_globalRelaySampManger, __globalPowerTemp,
                                                 __globalPowerTemp->product_saddr,
@@ -3718,7 +3718,7 @@ int dev_Alarm_send_message(GlobalDeviceManager* globalDeviceManger,GlobalPowerMa
         break;
         case WARNING_A_UP:
         {
-            if (__globalPowerTemp->global_over_manager->product_cur_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
+            if (__globalPowerTemp->global_over_manager.product_cur_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
             {
                 ret = g_switch_set_all_chn_ctrl(&globalDeviceManger->_globalRelaySampManger, __globalPowerTemp,
                                                 __globalPowerTemp->product_saddr,
@@ -3729,7 +3729,7 @@ int dev_Alarm_send_message(GlobalDeviceManager* globalDeviceManger,GlobalPowerMa
         break;
         case WARNING_W_UP:
         {
-            if (__globalPowerTemp->global_over_manager->product_pwr_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
+            if (__globalPowerTemp->global_over_manager.product_pwr_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
             {
                 ret = g_switch_set_all_chn_ctrl(&globalDeviceManger->_globalRelaySampManger, __globalPowerTemp,
                                                 __globalPowerTemp->product_saddr,
@@ -3740,7 +3740,7 @@ int dev_Alarm_send_message(GlobalDeviceManager* globalDeviceManger,GlobalPowerMa
         break;
         case WARNING_P_UP:
         {
-            if (__globalPowerTemp->global_over_manager->product_pwrcon_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
+            if (__globalPowerTemp->global_over_manager.product_pwrcon_over_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
             {
                 ret = g_switch_set_all_chn_ctrl(&globalDeviceManger->_globalRelaySampManger, __globalPowerTemp,
                                                 __globalPowerTemp->product_saddr,
@@ -3780,35 +3780,35 @@ int dev_Alarm_T_AC_message(GlobalDeviceManager* globalDeviceManger, GlobalTreeAC
     {
     case ENABLE_TAC_V_UP:
     {
-        alarm_action = __globalPowerTemp->global_over_manager->product_vol_over_upper_threshold_ctrl;
+        alarm_action = __globalPowerTemp->global_over_manager.product_vol_over_upper_threshold_ctrl;
         get_message_CtrlType(alarm_action,CtrlData);
         sprintf(AlarmText, "$通道$|CH%d%c |$%s$|$%s$| %s", __globalPowerTemp->product_ch_id, 'A' + __globalPowerTemp->product_ph_type, language_alarm_V[languagesID], language_alarm_Up[languagesID],CtrlData);
     }
     break;
     case ENABLE_TAC_V_DOWN:
     {
-        alarm_action = __globalPowerTemp->global_over_manager->product_vol_over_lower_threshold_ctrl;
+        alarm_action = __globalPowerTemp->global_over_manager.product_vol_over_lower_threshold_ctrl;
         get_message_CtrlType(alarm_action,CtrlData);
         sprintf(AlarmText, "$通道$|CH%d%c |$%s$|$%s$| %s", __globalPowerTemp->product_ch_id, 'A' + __globalPowerTemp->product_ph_type, language_alarm_V[languagesID], language_alarm_Down[languagesID],CtrlData);
     }
     break;
     case ENABLE_TAC_A_UP:
     {
-        alarm_action = __globalPowerTemp->global_over_manager->product_cur_over_upper_threshold_ctrl;
+        alarm_action = __globalPowerTemp->global_over_manager.product_cur_over_upper_threshold_ctrl;
         get_message_CtrlType(alarm_action,CtrlData);
         sprintf(AlarmText, "$通道$|CH%d%c |$%s$|$%s$| %s", __globalPowerTemp->product_ch_id, 'A' + __globalPowerTemp->product_ph_type, language_alarm_A[languagesID], language_alarm_Up[languagesID],CtrlData);
     }
     break;
     case ENABLE_TAC_W_UP:
     {
-        alarm_action = __globalPowerTemp->global_over_manager->product_pwr_over_upper_threshold_ctrl;
+        alarm_action = __globalPowerTemp->global_over_manager.product_pwr_over_upper_threshold_ctrl;
         get_message_CtrlType(alarm_action,CtrlData);
         sprintf(AlarmText, "$通道$|CH%d%c |$%s$|$%s$| %s", __globalPowerTemp->product_ch_id, 'A' + __globalPowerTemp->product_ph_type, language_alarm_W[languagesID], language_alarm_Up[languagesID],CtrlData);
     }
     break;
     case ENABLE_TAC_P_UP:
     {
-        alarm_action = __globalPowerTemp->global_over_manager->product_pwrcon_over_upper_threshold_ctrl;
+        alarm_action = __globalPowerTemp->global_over_manager.product_pwrcon_over_upper_threshold_ctrl;
         get_message_CtrlType(alarm_action,CtrlData);
         sprintf(AlarmText, "$通道$|CH%d%c |$%s$|$%s$| %s", __globalPowerTemp->product_ch_id, 'A' + __globalPowerTemp->product_ph_type, language_alarm_P[languagesID], language_alarm_Up[languagesID],CtrlData);
     }

+ 52 - 107
pro/src/switch_ctrl.c

@@ -818,15 +818,15 @@ int g_switch_set_all_chn_ctrl(void* manger,GlobalPowerManger* _globalPowerManger
     {
        /* if (sts == 1)*/
         {
-            if (_globalPowerMangerTemp->global_over_manager->product_vol_upper_enable == 1)
+            if (_globalPowerMangerTemp->global_over_manager.product_vol_upper_enable == 1)
                 sts |= ENABLE_V_UP;
-            if (_globalPowerMangerTemp->global_over_manager->product_vol_lower_enable == 1)
+            if (_globalPowerMangerTemp->global_over_manager.product_vol_lower_enable == 1)
                 sts |= ENABLE_V_DOWN;
-            if (_globalPowerMangerTemp->global_over_manager->product_cur_upper_enable == 1)
+            if (_globalPowerMangerTemp->global_over_manager.product_cur_upper_enable == 1)
                 sts |= ENABLE_A_UP;
-            if (_globalPowerMangerTemp->global_over_manager->product_pwr_upper_enable == 1)
+            if (_globalPowerMangerTemp->global_over_manager.product_pwr_upper_enable == 1)
                 sts |= ENABLE_W_UP;
-            if (_globalPowerMangerTemp->global_over_manager->product_pwrcon_upper_enable == 1)
+            if (_globalPowerMangerTemp->global_over_manager.product_pwrcon_upper_enable == 1)
                 sts |= ENABLE_P_UP;
         }
         return g_switch_set_ac_single_s_chn_ctrl(manger, saddr, (chn - 1), sts);
@@ -837,11 +837,11 @@ int g_switch_set_all_chn_ctrl(void* manger,GlobalPowerManger* _globalPowerManger
     {
         if (sts==1)
         {
-            if(_globalPowerMangerTemp->global_over_manager->product_vol_upper_enable==1)sts|=ENABLE_V_UP;
-            if(_globalPowerMangerTemp->global_over_manager->product_vol_lower_enable==1)sts|=ENABLE_V_DOWN;
-            if(_globalPowerMangerTemp->global_over_manager->product_cur_upper_enable==1)sts|=ENABLE_A_UP;
-            if(_globalPowerMangerTemp->global_over_manager->product_pwr_upper_enable==1)sts|=ENABLE_W_UP;
-            if(_globalPowerMangerTemp->global_over_manager->product_pwrcon_upper_enable==1)sts|=ENABLE_P_UP;
+            if(_globalPowerMangerTemp->global_over_manager.product_vol_upper_enable==1)sts|=ENABLE_V_UP;
+            if(_globalPowerMangerTemp->global_over_manager.product_vol_lower_enable==1)sts|=ENABLE_V_DOWN;
+            if(_globalPowerMangerTemp->global_over_manager.product_cur_upper_enable==1)sts|=ENABLE_A_UP;
+            if(_globalPowerMangerTemp->global_over_manager.product_pwr_upper_enable==1)sts|=ENABLE_W_UP;
+            if(_globalPowerMangerTemp->global_over_manager.product_pwrcon_upper_enable==1)sts|=ENABLE_P_UP;
         }
         return g_switch_set_ac_single_b_chn_ctrl(manger,saddr,(chn-1),sts);
     }
@@ -874,15 +874,15 @@ int g_switch_set_all_chn_ctrl(void* manger,GlobalPowerManger* _globalPowerManger
                 if (/*sts == 1&&*/_globalTACManager->product_ph_outputStatus==1)
                 {
                     phsts=sts;
-                    if (_globalTACManager->global_over_manager->product_vol_upper_enable == 1)
+                    if (_globalTACManager->global_over_manager.product_vol_upper_enable == 1)
                         phsts |= ENABLE_TAC_V_UP;
-                    if (_globalTACManager->global_over_manager->product_vol_lower_enable == 1)
+                    if (_globalTACManager->global_over_manager.product_vol_lower_enable == 1)
                         phsts |= ENABLE_TAC_V_DOWN;
-                    if (_globalTACManager->global_over_manager->product_cur_upper_enable == 1)
+                    if (_globalTACManager->global_over_manager.product_cur_upper_enable == 1)
                         phsts |= ENABLE_TAC_A_UP;
-                    if (_globalTACManager->global_over_manager->product_pwr_upper_enable == 1)
+                    if (_globalTACManager->global_over_manager.product_pwr_upper_enable == 1)
                         phsts |= ENABLE_TAC_W_UP;
-                    if (_globalTACManager->global_over_manager->product_pwrcon_upper_enable == 1)
+                    if (_globalTACManager->global_over_manager.product_pwrcon_upper_enable == 1)
                         phsts |= ENABLE_TAC_P_UP;
                 }else{
                     phsts=0;
@@ -905,15 +905,15 @@ int g_switch_set_all_chn_ctrl(void* manger,GlobalPowerManger* _globalPowerManger
         {
             //if (sts == 1)
             {
-                if (_globalPowerMangerTemp->global_over_manager->product_vol_upper_enable == 1)
+                if (_globalPowerMangerTemp->global_over_manager.product_vol_upper_enable == 1)
                     sts |= ENABLE_TAC_V_UP;
-                if (_globalPowerMangerTemp->global_over_manager->product_vol_lower_enable == 1)
+                if (_globalPowerMangerTemp->global_over_manager.product_vol_lower_enable == 1)
                     sts |= ENABLE_TAC_V_DOWN;
-                if (_globalPowerMangerTemp->global_over_manager->product_cur_upper_enable == 1)
+                if (_globalPowerMangerTemp->global_over_manager.product_cur_upper_enable == 1)
                     sts |= ENABLE_TAC_A_UP;
-                if (_globalPowerMangerTemp->global_over_manager->product_pwr_upper_enable == 1)
+                if (_globalPowerMangerTemp->global_over_manager.product_pwr_upper_enable == 1)
                     sts |= ENABLE_TAC_W_UP;
-                if (_globalPowerMangerTemp->global_over_manager->product_pwrcon_upper_enable == 1)
+                if (_globalPowerMangerTemp->global_over_manager.product_pwrcon_upper_enable == 1)
                     sts |= ENABLE_TAC_P_UP;
             }
             /*
@@ -960,11 +960,11 @@ int g_switch_set_all_ctrl(void* manger,int ntype,int saddr,unsigned short sts)
         {
             if(_globalPowerMangerTemp->product_saddr != saddr)continue;
             int nchAddr=_globalPowerMangerTemp->product_ch_addr-1;
-            if(_globalPowerMangerTemp->global_over_manager->product_vol_upper_enable==1)switch_ctrl[nchAddr]|=ENABLE_V_UP;
-            if(_globalPowerMangerTemp->global_over_manager->product_vol_lower_enable==1)switch_ctrl[nchAddr]|=ENABLE_V_DOWN;
-            if(_globalPowerMangerTemp->global_over_manager->product_cur_upper_enable==1)switch_ctrl[nchAddr]|=ENABLE_A_UP;
-            if(_globalPowerMangerTemp->global_over_manager->product_pwr_upper_enable==1)switch_ctrl[nchAddr]|=ENABLE_W_UP;
-            if(_globalPowerMangerTemp->global_over_manager->product_pwrcon_upper_enable==1)switch_ctrl[nchAddr]|=ENABLE_P_UP;
+            if(_globalPowerMangerTemp->global_over_manager.product_vol_upper_enable==1)switch_ctrl[nchAddr]|=ENABLE_V_UP;
+            if(_globalPowerMangerTemp->global_over_manager.product_vol_lower_enable==1)switch_ctrl[nchAddr]|=ENABLE_V_DOWN;
+            if(_globalPowerMangerTemp->global_over_manager.product_cur_upper_enable==1)switch_ctrl[nchAddr]|=ENABLE_A_UP;
+            if(_globalPowerMangerTemp->global_over_manager.product_pwr_upper_enable==1)switch_ctrl[nchAddr]|=ENABLE_W_UP;
+            if(_globalPowerMangerTemp->global_over_manager.product_pwrcon_upper_enable==1)switch_ctrl[nchAddr]|=ENABLE_P_UP;
             int nStatus=switch_ctrl[nchAddr]&BIT_00;
             if(nStatus==1)
             {
@@ -985,11 +985,11 @@ int g_switch_set_all_ctrl(void* manger,int ntype,int saddr,unsigned short sts)
         {
             if(_globalPowerMangerTemp->product_saddr != saddr)continue;
             int nchAddr=_globalPowerMangerTemp->product_ch_addr-1;
-            if(_globalPowerMangerTemp->global_over_manager->product_vol_upper_enable==1)switch_ctrl[nchAddr]|=ENABLE_V_UP;
-            if(_globalPowerMangerTemp->global_over_manager->product_vol_lower_enable==1)switch_ctrl[nchAddr]|=ENABLE_V_DOWN;
-            if(_globalPowerMangerTemp->global_over_manager->product_cur_upper_enable==1)switch_ctrl[nchAddr]|=ENABLE_A_UP;
-            if(_globalPowerMangerTemp->global_over_manager->product_pwr_upper_enable==1)switch_ctrl[nchAddr]|=ENABLE_W_UP;
-            if(_globalPowerMangerTemp->global_over_manager->product_pwrcon_upper_enable==1)switch_ctrl[nchAddr]|=ENABLE_P_UP;
+            if(_globalPowerMangerTemp->global_over_manager.product_vol_upper_enable==1)switch_ctrl[nchAddr]|=ENABLE_V_UP;
+            if(_globalPowerMangerTemp->global_over_manager.product_vol_lower_enable==1)switch_ctrl[nchAddr]|=ENABLE_V_DOWN;
+            if(_globalPowerMangerTemp->global_over_manager.product_cur_upper_enable==1)switch_ctrl[nchAddr]|=ENABLE_A_UP;
+            if(_globalPowerMangerTemp->global_over_manager.product_pwr_upper_enable==1)switch_ctrl[nchAddr]|=ENABLE_W_UP;
+            if(_globalPowerMangerTemp->global_over_manager.product_pwrcon_upper_enable==1)switch_ctrl[nchAddr]|=ENABLE_P_UP;
             int nStatus=switch_ctrl[nchAddr]&BIT_00;
             if(nStatus==1)
             {
@@ -1030,7 +1030,7 @@ int g_switch_set_all_single_threshold(void* manger,int ntype,int saddr,char chn,
 {
     int ret =0;   
     int sts=_globalPowerMangerTemp->_PowerInfo.status;
-    GlobalOverManager* _global_over_manager=_globalPowerMangerTemp->global_over_manager;
+    GlobalOverManager* _global_over_manager=&_globalPowerMangerTemp->global_over_manager;
     if (chn == 0)
     {
         ret = g_switch_set_t_ac_in_threshold(manger, 1, _global_over_manager);
@@ -1043,15 +1043,15 @@ 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 (_globalPowerMangerTemp->global_over_manager->product_vol_upper_enable == 1)
+            if (_globalPowerMangerTemp->global_over_manager.product_vol_upper_enable == 1)
                 sts |= ENABLE_V_UP;
-            if (_globalPowerMangerTemp->global_over_manager->product_vol_lower_enable == 1)
+            if (_globalPowerMangerTemp->global_over_manager.product_vol_lower_enable == 1)
                 sts |= ENABLE_V_DOWN;
-            if (_globalPowerMangerTemp->global_over_manager->product_cur_upper_enable == 1)
+            if (_globalPowerMangerTemp->global_over_manager.product_cur_upper_enable == 1)
                 sts |= ENABLE_A_UP;
-            if (_globalPowerMangerTemp->global_over_manager->product_pwr_upper_enable == 1)
+            if (_globalPowerMangerTemp->global_over_manager.product_pwr_upper_enable == 1)
                 sts |= ENABLE_W_UP;
-            if (_globalPowerMangerTemp->global_over_manager->product_pwrcon_upper_enable == 1)
+            if (_globalPowerMangerTemp->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);
@@ -1106,15 +1106,15 @@ 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 (_globalPowerMangerTemp->global_over_manager->product_vol_upper_enable == 1)
+            if (_globalPowerMangerTemp->global_over_manager.product_vol_upper_enable == 1)
                 sts |= ENABLE_TAC_V_UP;
-            if (_globalPowerMangerTemp->global_over_manager->product_vol_lower_enable == 1)
+            if (_globalPowerMangerTemp->global_over_manager.product_vol_lower_enable == 1)
                 sts |= ENABLE_TAC_V_DOWN;
-            if (_globalPowerMangerTemp->global_over_manager->product_cur_upper_enable == 1)
+            if (_globalPowerMangerTemp->global_over_manager.product_cur_upper_enable == 1)
                 sts |= ENABLE_TAC_A_UP;
-            if (_globalPowerMangerTemp->global_over_manager->product_pwr_upper_enable == 1)
+            if (_globalPowerMangerTemp->global_over_manager.product_pwr_upper_enable == 1)
                 sts |= ENABLE_TAC_W_UP;
-            if (_globalPowerMangerTemp->global_over_manager->product_pwrcon_upper_enable == 1)
+            if (_globalPowerMangerTemp->global_over_manager.product_pwrcon_upper_enable == 1)
                 sts |= ENABLE_TAC_P_UP;
             if (__globalDeviceManage._globalDevInfo.product.pwr_type == SmartPDU_Tree_AC_One)
             {
@@ -2501,16 +2501,10 @@ int power_clear(GlobalPowerManger *globalPowerManager)
         list_for_each_entry_safe(_pTreeACPowerPhData, pos1,&_globalPowerMangerTemp->list_Tree_AC, list_Tree_AC)
         {
             list_del(&_pTreeACPowerPhData->list_Tree_AC);
-            if(_pTreeACPowerPhData->global_over_manager) {
-                free(_pTreeACPowerPhData->global_over_manager);
-            }
             free(_pTreeACPowerPhData);
         }
         list_del(&_globalPowerMangerTemp->list);
-        if (_globalPowerMangerTemp->global_over_manager)
-        {
-            free(_globalPowerMangerTemp->global_over_manager);
-        }
+        
         if (_globalPowerMangerTemp->_PowerSXManage)
         {
             free(_globalPowerMangerTemp->_PowerSXManage);
@@ -2575,13 +2569,7 @@ int ResetChmData(int nCtrlType)
                         return -1;
                     }
                     memset(_globalPowerMangerTemp, 0, sizeof(GlobalPowerManger));
-                    _globalPowerMangerTemp->global_over_manager = (GlobalOverManager *)malloc(sizeof(GlobalOverManager));
-                    if (_globalPowerMangerTemp->global_over_manager == NULL)
-                    {
-                        // log_e("_globalPowerManger->global_over_manager malloc error.\n");
-                        return -1;
-                    }
-                    memset(_globalPowerMangerTemp->global_over_manager, 0, sizeof(GlobalOverManager));
+                    
                     // 查询是否由通道信息
                     ret = dev_get_power_manage_info(_globalDeviceManager->db,
                                                     _globalDeviceManager->_globalDevInfo.product.id,
@@ -2627,19 +2615,13 @@ int ResetChmData(int nCtrlType)
                         for (size_t indexT = 0; indexT < 3; indexT++)
                         {
                             _globalTACManager = (GlobalTreeACManager *)malloc(sizeof(GlobalTreeACManager));
-                            memset(_globalTACManager, 0, sizeof(GlobalTreeACManager));
                             if (_globalTACManager == NULL)
                             {
                                 log_e("_globalTACManager malloc error.\n");
                                 return -1;
                             }
-                            _globalTACManager->global_over_manager = (GlobalOverManager *)malloc(sizeof(GlobalOverManager));
-                            memset(_globalTACManager->global_over_manager, 0, sizeof(GlobalOverManager));
-                            if (_globalTACManager->global_over_manager == NULL)
-                            {
-                                log_e("_globalTACManager->global_over_manager malloc error.\n");
-                                return -1;
-                            }
+                            memset(_globalTACManager, 0, sizeof(GlobalTreeACManager));
+                            
                             ret = dev_get_t_ac_power_manage_info(_globalDeviceManager->db,
                                                                  _globalDeviceManager->_globalDevInfo.product.id, i,
                                                                   _globalPowerMangerTemp->product_ch_id, 
@@ -2735,13 +2717,7 @@ int ResetChmData(int nCtrlType)
                         return -1;
                     }
                     memset(_globalPowerMangerTemp, 0, sizeof(GlobalPowerManger));
-                    _globalPowerMangerTemp->global_over_manager = (GlobalOverManager *)malloc(sizeof(GlobalOverManager));
-                    if (_globalPowerMangerTemp->global_over_manager == NULL)
-                    {
-                        // log_e("_globalPowerManger->global_over_manager malloc error.\n");
-                        return -1;
-                    }
-                    memset(_globalPowerMangerTemp->global_over_manager, 0, sizeof(GlobalOverManager));
+                    
                     // 查询是否由通道信息
                     ret = dev_get_power_manage_info(_globalDeviceManager->db,
                                                     _globalDeviceManager->_globalDevInfo.product.id, i,
@@ -2795,14 +2771,7 @@ int ResetChmData(int nCtrlType)
                         return -1;
                     }
                     memset(_globalPowerMangerTemp, 0, sizeof(GlobalPowerManger));
-                    _globalPowerMangerTemp->global_over_manager = (GlobalOverManager *)malloc(sizeof(GlobalOverManager));
-                    if (_globalPowerMangerTemp->global_over_manager == NULL)
-                    {
-                        // log_e("_globalPowerManger->global_over_manager malloc error.\n");
-                        return -1;
-                    }
-
-                    memset(_globalPowerMangerTemp->global_over_manager, 0, sizeof(GlobalOverManager));
+                    
                     // 查询是否由通道信息
                     ret = dev_get_power_manage_info(_globalDeviceManager->db,
                                                     _globalDeviceManager->_globalDevInfo.product.id, i,
@@ -2874,13 +2843,7 @@ int ResetChmData(int nCtrlType)
                         }
                         memset(_globalPowerMangerTemp, 0, sizeof(GlobalPowerManger));
                         INIT_LIST_HEAD(&_globalPowerMangerTemp->list_Tree_AC);
-                        _globalPowerMangerTemp->global_over_manager = (GlobalOverManager *)malloc(sizeof(GlobalOverManager));
-                        if (_globalPowerMangerTemp->global_over_manager == NULL)
-                        {
-                            log_e("_globalPowerManger->global_over_manager malloc error.\n");
-                            return -1;
-                        }
-                        memset(_globalPowerMangerTemp->global_over_manager, 0, sizeof(GlobalOverManager));
+                        
                         // 查询是否由通道信息
                         ret = dev_get_power_manage_info(_globalDeviceManager->db,
                                                         _globalDeviceManager->_globalDevInfo.product.id, i,
@@ -2936,13 +2899,7 @@ int ResetChmData(int nCtrlType)
                                 log_e("_globalTACManager malloc error.\n");
                                 return -1;
                             }
-                            _globalTACManager->global_over_manager = (GlobalOverManager *)malloc(sizeof(GlobalOverManager));
-                            memset(_globalTACManager->global_over_manager, 0, sizeof(GlobalOverManager));
-                            if (_globalTACManager->global_over_manager == NULL)
-                            {
-                                log_e("_globalTACManager->global_over_manager malloc error.\n");
-                                return -1;
-                            }
+                            
                             ret = dev_get_t_ac_power_manage_info(_globalDeviceManager->db,
                                                                  _globalDeviceManager->_globalDevInfo.product.id, i,
                                                                 _globalPowerMangerTemp->product_ch_id, 
@@ -3010,13 +2967,7 @@ int ResetChmData(int nCtrlType)
                             }
                             memset(_globalPowerMangerTemp, 0, sizeof(GlobalPowerManger));
                             INIT_LIST_HEAD(&_globalPowerMangerTemp->list_Tree_AC);
-                            _globalPowerMangerTemp->global_over_manager = (GlobalOverManager *)malloc(sizeof(GlobalOverManager));
-                            if (_globalPowerMangerTemp->global_over_manager == NULL)
-                            {
-                                log_e("_globalPowerManger->global_over_manager malloc error.\n");
-                                return -1;
-                            }
-                            memset(_globalPowerMangerTemp->global_over_manager, 0, sizeof(GlobalOverManager));
+                            
                             // 查询是否由通道信息
                             ret = dev_get_power_manage_info(_globalDeviceManager->db,
                                                             _globalDeviceManager->_globalDevInfo.product.id, i,
@@ -3065,19 +3016,13 @@ int ResetChmData(int nCtrlType)
                         // 初始化三相子通道三进三出
                         GlobalTreeACManager *_globalTACManager = NULL;
                         _globalTACManager = (GlobalTreeACManager *)malloc(sizeof(GlobalTreeACManager));
-                        memset(_globalTACManager, 0, sizeof(GlobalTreeACManager));
                         if (_globalTACManager == NULL)
                         {
                             log_e("_globalTACManager malloc error.\n");
                             return -1;
                         }
-                        _globalTACManager->global_over_manager = (GlobalOverManager *)malloc(sizeof(GlobalOverManager));
-                        memset(_globalTACManager->global_over_manager, 0, sizeof(GlobalOverManager));
-                        if (_globalTACManager->global_over_manager == NULL)
-                        {
-                            log_e("_globalTACManager->global_over_manager malloc error.\n");
-                            return -1;
-                        }
+                        memset(_globalTACManager, 0, sizeof(GlobalTreeACManager));
+                        
                         ret = dev_get_t_ac_power_manage_info(_globalDeviceManager->db,
                                                              _globalDeviceManager->_globalDevInfo.product.id, i,
                                                               _globalPowerMangerTemp->product_ch_id, // 1*8+j