Przeglądaj źródła

modbus读取温度湿度bug

liyi 2 lat temu
rodzic
commit
e83d2ee5a0
3 zmienionych plików z 103 dodań i 4040 usunięć
  1. 80 2399
      pro/src/app.c
  2. 20 670
      pro/src/cascade_slave.c
  3. 3 971
      pro/src/common.h

Plik diff jest za duży
+ 80 - 2399
pro/src/app.c


+ 20 - 670
pro/src/cascade_slave.c

@@ -1,4 +1,3 @@
-<<<<<<< HEAD
 #include "modbus.h"
 #include "common.h"
 #include "list.h"
@@ -138,8 +137,8 @@ int cascade_slave_init(void)
     slave_handle_t *sh=&slHandle;
     GlobalDeviceManager* mgr=get_dm();
 
-    if(mgr->_global_device_info->product_pwr_type == SmartPDU_AC ||
-        mgr->_global_device_info->product_pwr_type == SmartPDU_DC)       // single AC
+    if(mgr->_globalDevInfo.product_pwr_type == SmartPDU_AC ||
+        mgr->_globalDevInfo.product_pwr_type == SmartPDU_DC)       // single AC
     {
         if(sh->map)
         {
@@ -192,9 +191,9 @@ int cascade_slave_init(void)
 static void slave_read(slave_handle_t *sh, uint32_t addr,int num,uint32_t reg_type,uint32_t type)
 {
     GlobalDeviceManager* mgr=get_dm();
-
-    if(mgr->_global_device_info->product_pwr_type == SmartPDU_AC || 
-            mgr->_global_device_info->product_pwr_type == SmartPDU_DC){    
+  
+    if(mgr->_globalDevInfo.product_pwr_type == SmartPDU_AC || 
+            mgr->_globalDevInfo.product_pwr_type == SmartPDU_DC){    
         if(addr >= DEV_CHN_REG && addr <= ALL_SET_SWITCH_REG)
         {
             if(type == TYPE_U16)
@@ -332,9 +331,9 @@ void cascade_slave_write(uint32_t addr, uint16_t val)
     slave_handle_t *sh=&slHandle;
     GlobalDeviceManager* mgr=get_dm();
     uint16_t buff[128] = {0};
-
-    if(mgr->_global_device_info->product_pwr_type == SmartPDU_AC 
-            || mgr->_global_device_info->product_pwr_type == SmartPDU_DC)   
+ 
+    if(mgr->_globalDevInfo.product_pwr_type == SmartPDU_AC 
+            || mgr->_globalDevInfo.product_pwr_type == SmartPDU_DC)   
     {
         switch(addr)
         {
@@ -348,7 +347,7 @@ void cascade_slave_write(uint32_t addr, uint16_t val)
                             break;
                         if((start_chn+1) == _globalPowerMangerTemp->product_ch_id)
                         {
-                            if(mgr->_global_device_info->product_pwr_type == SmartPDU_AC){
+                            if(mgr->_globalDevInfo.product_pwr_type == SmartPDU_AC){
                                 _globalPowerMangerTemp->product_ch_start_delay=val;
                                 g_switch_set_ac_single_s_start_time_delay(&__globalDeviceManage._globalRelaySampManger,_globalPowerMangerTemp->product_saddr,
                                                 _globalPowerMangerTemp->product_ch_addr,val);
@@ -379,7 +378,7 @@ void cascade_slave_write(uint32_t addr, uint16_t val)
                             break;
                         if((start_chn+1) == _globalPowerMangerTemp->product_ch_id)
                         {
-                            if(mgr->_global_device_info->product_pwr_type == SmartPDU_AC){
+                            if(mgr->_globalDevInfo.product_pwr_type == SmartPDU_AC){
                                   _globalPowerMangerTemp->product_ch_stop_delay=val;
                                 g_switch_set_ac_single_s_stop_time_delay(&__globalDeviceManage._globalRelaySampManger,_globalPowerMangerTemp->product_saddr,
                                                 _globalPowerMangerTemp->product_ch_addr,val);
@@ -460,9 +459,9 @@ void cascade_slave_write(uint32_t addr, uint16_t val)
                         int ret = 0;
 
                         _globalPowerMangerTemp->product_ch_start_delay = val;
-                        if (__globalDeviceManage._global_device_info->product_pwr_type == SmartPDU_Tree_AC_Tree
-                        ||__globalDeviceManage._global_device_info->product_pwr_type == SmartPDU_Tree_AC_One
-                        ||__globalDeviceManage._global_device_info->product_pwr_type == SmartPDU_Tree_AC_One_B
+                        if (__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_Tree
+                        ||__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One
+                        ||__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One_B
                         )
                         {
                             printf("hwllo every one stop time !!!!\n");
@@ -500,9 +499,9 @@ void cascade_slave_write(uint32_t addr, uint16_t val)
                         int ret = 0;
 
                         _globalPowerMangerTemp->product_ch_stop_delay = val;
-                        if (__globalDeviceManage._global_device_info->product_pwr_type == SmartPDU_Tree_AC_Tree
-                        ||__globalDeviceManage._global_device_info->product_pwr_type == SmartPDU_Tree_AC_One
-                        ||__globalDeviceManage._global_device_info->product_pwr_type == SmartPDU_Tree_AC_One_B)
+                        if (__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_Tree
+                        ||__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One
+                        ||__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One_B)
                         {
                             ret = g_switch_set_t_ac_stop_time_delay(&__globalDeviceManage._globalRelaySampManger, 
                                                         _globalPowerMangerTemp->product_saddr, (_globalPowerMangerTemp->product_ch_addr - 1) * 3, val / 1000);
@@ -544,9 +543,9 @@ void cascade_slave_write(uint32_t addr, uint16_t val)
                         {
                             t_ac_CtrlType=_globalTACManager->product_ph_outputType;
                         }
-                        if (t_ac_CtrlType == 2&&(__globalDeviceManage._global_device_info->product_pwr_type == SmartPDU_Tree_AC_Tree
-                        ||__globalDeviceManage._global_device_info->product_pwr_type == SmartPDU_Tree_AC_One
-                        ||__globalDeviceManage._global_device_info->product_pwr_type == SmartPDU_Tree_AC_One_B))
+                        if (t_ac_CtrlType == 2&&(__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_Tree
+                        ||__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One
+                        ||__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One_B))
                         {
                             if(_globalPowerMangerTemp->product_ch_type == AC_SINGLE_S_TYPE || _globalPowerMangerTemp->product_ch_type == AC_SINGLE_B_TYPE)
                             {
@@ -613,7 +612,7 @@ void cascade_slave_write(uint32_t addr, uint16_t val)
                                 sts |= ENABLE_TAC_STIME;
                                 sts |= ENABLE_TAC_ETIME;
                             }*/
-                            if (__globalDeviceManage._global_device_info->product_pwr_type == SmartPDU_Tree_AC_One)
+                            if (__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One)
                             {
                                 g_switch_set_t_ac_phchn_ctrl(&__globalDeviceManage._globalRelaySampManger,
                                                                 _globalPowerMangerTemp->product_saddr,
@@ -652,652 +651,3 @@ void cascade_slave_write(uint32_t addr, uint16_t val)
         }
     }
 }
-=======
-#include "modbus.h"
-#include "common.h"
-#include "list.h"
-#include "switch_ctrl.h"
-#include "cascade.h"
-#include "sqlite_handle.h"
-
-
-
-#define DEV_CHN_REG                 (4000)  
-#define OUT_INFO_REG                (4001)     
-#define IN_TOTAL_REG                (4385)  
-#define TEM_HUMAN_REG               (4389)       
-#define CHN_SWITCH_REG              (4390)
-#define CHN_OPEN_DLA_REG            (4454)
-#define CHN_CLOSE_DLA_REG           (4518)
-#define CHN_SET_OPEN_DLA_REG        (5000)
-#define CHN_SET_CLOSE_DLA_REG       (5064)
-#define CHN_SET_SWITCH_STA_REG      (5128)
-#define ALL_SET_SWITCH_REG          (5192)
-
-
-
-enum{
-    TYPE_U16,
-    TYPE_U32
-};
-
-
-enum {
-    DS_R_DEV_CHN = 0,
-    DS_R_OUT_INFO,
-    DS_R_IN_TOTAL,
-    DS_R_TEMP_HUM,
-    DS_R_SWITCH_STA,
-    DS_R_OPEN_DELAY,
-    DS_R_CLOSE_DELAY,
-    DS_W_OPEN_DELAY,
-    DS_W_CLOSE_DELAY,
-    DS_W_CHN_SWITCH_STA,
-    DS_W_ALL_CHN_STA
-};
-
-
-#define TREE_DEV_CHN_REG                (6000)  
-#define TREE_INPUT_A_REG                (6001)     
-#define TREE_INPUT_B_REG                (6009)  
-#define TREE_INPUT_C_REG                (6017)       
-#define TREE_CHN_TOTAL_REG              (6025)
-#define TREE_CHN_PH_REG                 (6665)
-#define TREE_TEMP_HUM_REG               (8585)
-#define TREE_CHN_SWITCH_STA_REG         (8587)
-#define TREE_CHN_OPEN_DLA_REG           (8651)
-#define TREE_CHN_CLOSE_DLA_REG          (8715)
-#define TREE_CHN_SET_OPEN_DLA_REG       (9000)
-#define TREE_CHN_SET_CLOSE_DLA_REG      (9064)
-#define TREE_CHN_SET_SWITCH_STA_REG     (9128)
-#define TREE_ALL_SET_SWITCH_REG         (9192)
-
-enum {
-    TREE_R_DEV_CHN,
-    TREE_R_INPUT_ALL_A,
-    TREE_R_INPUT_ALL_B,
-    TREE_R_INPUT_ALL_C,
-    TREE_R_CHN_TOTAL,
-    TREE_R_CHN_PH_INFO,
-    TREE_R_TEMP_HUM,
-    TREE_R_SWITCH_STA,
-    TREE_R_OPEN_DELAY,
-    TREE_R_CLOSE_DELAY,
-    TREE_W_OPEN_DELAY,
-    TREE_W_CLOSE_DELAY,
-    TREE_W_CHN_SWITCH_STA,
-    TREE_W_ALL_CHN_STA
-};
-
-
-
-
-static inline GlobalDeviceManager* get_dm(void)
-{
-    return &__globalDeviceManage;
-}
-static inline GlobalDeviceManager* get_dm2(void)
-{
-    return &__globalDeviceManage2;
-}
-
-static mmap_modbus_t modbus_single[] = {
-    [DS_R_DEV_CHN       ]{.offset = DEV_CHN_REG             },
-    [DS_R_OUT_INFO      ]{.offset = OUT_INFO_REG            },
-    [DS_R_IN_TOTAL      ]{.offset = IN_TOTAL_REG            },
-    [DS_R_TEMP_HUM      ]{.offset = TEM_HUMAN_REG           },
-    [DS_R_SWITCH_STA    ]{.offset = CHN_SWITCH_REG          },
-    [DS_R_OPEN_DELAY    ]{.offset = CHN_OPEN_DLA_REG        },
-    [DS_R_CLOSE_DELAY   ]{.offset = CHN_CLOSE_DLA_REG       },
-    [DS_W_OPEN_DELAY    ]{.offset = CHN_SET_OPEN_DLA_REG    },
-    [DS_W_CLOSE_DELAY   ]{.offset = CHN_SET_CLOSE_DLA_REG   },
-    [DS_W_CHN_SWITCH_STA]{.offset = CHN_SET_SWITCH_STA_REG  },
-    [DS_W_ALL_CHN_STA   ]{.offset = ALL_SET_SWITCH_REG      },
-};
-
-static mmap_modbus_t modbus_three[] = {
-    [TREE_R_DEV_CHN         ]{.offset = TREE_DEV_CHN_REG},
-    [TREE_R_INPUT_ALL_A     ]{.offset = TREE_INPUT_A_REG       },
-    [TREE_R_INPUT_ALL_B     ]{.offset = TREE_INPUT_B_REG       },
-    [TREE_R_INPUT_ALL_C     ]{.offset = TREE_INPUT_C_REG       },
-    [TREE_R_CHN_TOTAL       ]{.offset = TREE_CHN_TOTAL_REG     },
-    [TREE_R_CHN_PH_INFO     ]{.offset = TREE_CHN_PH_REG        },
-    [TREE_R_TEMP_HUM        ]{.offset = TREE_TEMP_HUM_REG      },
-    [TREE_R_SWITCH_STA      ]{.offset = TREE_CHN_SWITCH_STA_REG},
-    [TREE_R_OPEN_DELAY      ]{.offset = TREE_CHN_OPEN_DLA_REG  },
-    [TREE_R_CLOSE_DELAY     ]{.offset = TREE_CHN_CLOSE_DLA_REG },
-    [TREE_W_OPEN_DELAY      ]{.offset = TREE_CHN_SET_OPEN_DLA_REG},
-    [TREE_W_CLOSE_DELAY     ]{.offset = TREE_CHN_SET_CLOSE_DLA_REG},
-    [TREE_W_CHN_SWITCH_STA  ]{.offset = TREE_CHN_SET_SWITCH_STA_REG},
-    [TREE_W_ALL_CHN_STA     ]{.offset = TREE_ALL_SET_SWITCH_REG }
-};
-
-typedef struct { 
-    modbus_mapping_t    *map;
-}slave_handle_t;
-
-static slave_handle_t slHandle;
-
-
-modbus_mapping_t    *cascade_slave_map()
-{
-    return slHandle.map;
-}
-
-int cascade_slave_init(void)
-{
-    slave_handle_t *sh=&slHandle;
-    GlobalDeviceManager* mgr=get_dm();
-
-    if(mgr->_globalDevInfo.product_pwr_type == SmartPDU_AC ||
-        mgr->_globalDevInfo.product_pwr_type == SmartPDU_DC)       // single AC
-    {
-        if(sh->map)
-        {
-            free(sh->map);
-            sh->map = NULL;
-        }
-        sh->map = modbus_mapping_new_start_address(0,0,0,0,DEV_CHN_REG,5000,0,0);     //3000 ge
-        modbus_single[DS_R_DEV_CHN          ].addr = &mgr->single_mmap->dev_chn;
-        modbus_single[DS_R_OUT_INFO         ].addr = &mgr->single_mmap->all_ch;
-        modbus_single[DS_R_IN_TOTAL         ].addr = &mgr->single_mmap->total_valtage;
-        modbus_single[DS_R_TEMP_HUM         ].addr = &mgr->single_mmap->total_temp;
-        modbus_single[DS_R_SWITCH_STA       ].addr = &mgr->single_mmap->chn_status; 
-        modbus_single[DS_R_OPEN_DELAY       ].addr = &mgr->single_mmap->open_delay;
-        modbus_single[DS_R_CLOSE_DELAY      ].addr = &mgr->single_mmap->close_delay;
-        modbus_single[DS_W_OPEN_DELAY       ].addr = &mgr->single_mmap->set_chn_open_delay;
-        modbus_single[DS_W_CLOSE_DELAY      ].addr = &mgr->single_mmap->set_chn_close_delay;
-        modbus_single[DS_W_CHN_SWITCH_STA   ].addr = &mgr->single_mmap->set_chn_switch_status;
-        modbus_single[DS_W_ALL_CHN_STA      ].addr = &mgr->single_mmap->set_chn_all_switch_status;
-        printf("single dc address init 4000\n");
-    }else
-    {
-        if(sh->map)
-        {
-            free(sh->map);
-            sh->map = NULL;
-        }
-        sh->map =  modbus_mapping_new_start_address(0,0,0,0,TREE_DEV_CHN_REG,7000,0,0);
-        modbus_three[TREE_R_DEV_CHN         ].addr = &mgr->triphasic_mmap->dev_chn;
-        modbus_three[TREE_R_INPUT_ALL_A     ].addr = &mgr->triphasic_mmap->i_total.pw_i_total[0];
-        modbus_three[TREE_R_INPUT_ALL_B     ].addr = &mgr->triphasic_mmap->i_total.pw_i_total[1];
-        modbus_three[TREE_R_INPUT_ALL_C     ].addr = &mgr->triphasic_mmap->i_total.pw_i_total[2];
-        modbus_three[TREE_R_CHN_TOTAL       ].addr = &mgr->triphasic_mmap->chn_info;
-        modbus_three[TREE_R_CHN_PH_INFO     ].addr = &mgr->triphasic_mmap->pw_o_chn;
-        modbus_three[TREE_R_TEMP_HUM        ].addr = &mgr->triphasic_mmap->temperature;
-        modbus_three[TREE_R_SWITCH_STA      ].addr = &mgr->triphasic_mmap->chn_status;
-        modbus_three[TREE_R_OPEN_DELAY      ].addr = &mgr->triphasic_mmap->open_delay;
-        modbus_three[TREE_R_CLOSE_DELAY     ].addr = &mgr->triphasic_mmap->close_delay;
-        modbus_three[TREE_W_OPEN_DELAY      ].addr = &mgr->triphasic_mmap->set_chn_open_delay;
-        modbus_three[TREE_W_CLOSE_DELAY     ].addr = &mgr->triphasic_mmap->set_chn_close_delay;
-        modbus_three[TREE_W_CHN_SWITCH_STA  ].addr = &mgr->triphasic_mmap->set_chn_switch_status;
-        modbus_three[TREE_W_ALL_CHN_STA     ].addr = &mgr->triphasic_mmap->set_chn_all_switch_status;
-        printf("triphasic address init 6000\n");
-        //return -1;
-    }
-    return 0;
-}
-
-
-static void slave_read(slave_handle_t *sh, uint32_t addr,int num,uint32_t reg_type,uint32_t type)
-{
-    GlobalDeviceManager* mgr=get_dm();
-  
-    if(mgr->_globalDevInfo.product_pwr_type == SmartPDU_AC || 
-            mgr->_globalDevInfo.product_pwr_type == SmartPDU_DC){    
-        if(addr >= DEV_CHN_REG && addr <= ALL_SET_SWITCH_REG)
-        {
-            if(type == TYPE_U16)
-            {
-                uint16_t *base_addr = (uint16_t *)modbus_single[reg_type].addr;
-                uint32_t step = addr - sh->map->start_registers;
-                base_addr = base_addr + (addr - modbus_single[reg_type].offset);
-                uint16_t *map_addr = (uint16_t *)&(sh->map->tab_registers[step]);
-                if(num < 126)
-                {
-                    memcpy(map_addr, base_addr,2*num);
-                }
-            }else
-            {
-                uint32_t *base_addr = (uint32_t *)modbus_single[reg_type].addr;
-                uint32_t step = addr - sh->map->start_registers;
-                base_addr = base_addr + (addr - modbus_single[reg_type].offset);
-                uint32_t *map_addr = (uint32_t *)&(sh->map->tab_registers[step]);
-                if(num < 126)
-                {
-                    memcpy(map_addr, base_addr,2*num);
-                }
-            }
-        }
-    }else
-    {
-        if(addr >= TREE_DEV_CHN_REG && addr <= TREE_ALL_SET_SWITCH_REG) {
-            if(type == TYPE_U16)
-            {
-                uint16_t *base_addr = (uint16_t *)modbus_three[reg_type].addr;
-                uint32_t step = addr - sh->map->start_registers;
-                base_addr = base_addr + (addr - modbus_three[reg_type].offset);
-                uint16_t *map_addr = (uint16_t *)&(sh->map->tab_registers[step]);
-                if(num < 126)
-                {
-                    memcpy(map_addr, base_addr,2*num);
-                }
-            }else
-            {
-                uint32_t *base_addr = (uint32_t *)modbus_three[reg_type].addr;
-                uint32_t step = addr - sh->map->start_registers;
-                base_addr = base_addr + (addr - modbus_three[reg_type].offset) / 2;
-                uint32_t *map_addr = (uint32_t *)&(sh->map->tab_registers[step]);
-                if(num < 126)
-                {
-                    memcpy(map_addr, base_addr,2*num);
-                }
-            }
-        }
-    }
-}
-
-
-void cascade_slave_read(uint32_t addr,uint32_t lenth)
-{
-    slave_handle_t *sh=&slHandle;
-
-    switch (addr)
-    {
-        case 4000:
-            slave_read(sh,addr,lenth,DS_R_DEV_CHN,TYPE_U16);
-        break;
-        case 4001 ... 4384:
-            slave_read(sh,addr,lenth,DS_R_OUT_INFO,TYPE_U32);
-        break;
-        case 4385 ... 4388:
-            slave_read(sh,addr,lenth,DS_R_IN_TOTAL,TYPE_U32);
-        break;
-        case 4389:
-            slave_read(sh,addr,lenth,DS_R_TEMP_HUM,TYPE_U16);
-        case 4390 ... 4453:
-            slave_read(sh,addr,lenth,DS_R_SWITCH_STA,TYPE_U16);
-        break;
-        case 4454 ... 4517:
-            slave_read(sh,addr,lenth,DS_R_OPEN_DELAY,TYPE_U16);
-        break;
-        case 4518 ... 4581:
-            slave_read(sh,addr,lenth,DS_R_CLOSE_DELAY,TYPE_U16);
-        break;
-        case 5000 ... 5063:
-            slave_read(sh,addr,lenth,DS_W_OPEN_DELAY,TYPE_U16);
-        break;
-        case 5064 ... 5127:
-            slave_read(sh,addr,lenth,DS_W_OPEN_DELAY,TYPE_U16);
-        break;
-        case 5128 ... 5191:
-            slave_read(sh,addr,lenth,DS_W_CHN_SWITCH_STA,TYPE_U16);
-        break;
-        case 5192 :
-            slave_read(sh,addr,lenth,DS_W_ALL_CHN_STA,TYPE_U16);
-        break;
-
-        // triple
-        case 6000:
-            slave_read(sh,addr,lenth,TREE_R_DEV_CHN,TYPE_U16);
-        break;
-        case 6001 ... 6008:
-            slave_read(sh,addr,lenth,TREE_R_INPUT_ALL_A,TYPE_U32);
-        break;
-        case 6009 ... 6016:
-            slave_read(sh,addr,lenth,TREE_R_INPUT_ALL_B,TYPE_U32);
-        break;
-        case 6017 ... 6024:
-            slave_read(sh,addr,lenth,TREE_R_INPUT_ALL_C,TYPE_U32);
-        break;
-        case 6025 ... 6664:
-            slave_read(sh,addr,lenth,TREE_R_CHN_TOTAL,TYPE_U32);
-        break;
-        case 6665 ... 8584:
-            slave_read(sh,addr,lenth,TREE_R_CHN_PH_INFO,TYPE_U32);
-        break;
-        case 8585 ... 8586:
-            slave_read(sh,addr,lenth,TREE_R_TEMP_HUM,TYPE_U16);
-        break;
-        case 8587 ... 8650:
-            slave_read(sh,addr,lenth,TREE_R_SWITCH_STA,TYPE_U16);
-        break;
-        case 8651 ... 8714:
-            slave_read(sh,addr,lenth,TREE_R_OPEN_DELAY,TYPE_U16);
-        break;
-        case 8715 ... 8778:
-            slave_read(sh,addr,lenth,TREE_R_CLOSE_DELAY,TYPE_U16);
-        break;
-
-        default:
-        break;
-    }
-}
-
-
-void cascade_slave_write(uint32_t addr, uint16_t val)
-{
-    slave_handle_t *sh=&slHandle;
-    GlobalDeviceManager* mgr=get_dm();
-    uint16_t buff[128] = {0};
- 
-    if(mgr->_globalDevInfo.product_pwr_type == SmartPDU_AC 
-            || mgr->_globalDevInfo.product_pwr_type == SmartPDU_DC)   
-    {
-        switch(addr)
-        {
-            case 5000 ... 5063:
-            {
-                int start_chn = addr - modbus_single[DS_W_OPEN_DELAY].offset;
-                GlobalPowerManger* _globalPowerMangerTemp = NULL ;
-                list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
-                {
-                    if(_globalPowerMangerTemp==NULL)
-                            break;
-                        if((start_chn+1) == _globalPowerMangerTemp->product_ch_id)
-                        {
-                            if(mgr->_globalDevInfo.product_pwr_type == SmartPDU_AC){
-                                _globalPowerMangerTemp->product_ch_start_delay=val;
-                                g_switch_set_ac_single_s_start_time_delay(&__globalDeviceManage._globalRelaySampManger,_globalPowerMangerTemp->product_saddr,
-                                                _globalPowerMangerTemp->product_ch_addr,val);
-                            }else
-                            {
-                                _globalPowerMangerTemp->product_ch_start_delay=val;
-                                g_switch_set_dcpdu_start_time_delay(&__globalDeviceManage._globalRelaySampManger,_globalPowerMangerTemp->product_saddr,
-                                        _globalPowerMangerTemp->product_ch_addr,val/1000);
-                            }
-                            if (dev_update_power_manage_genera_info(__globalDeviceManage.db, _globalPowerMangerTemp->product_id, _globalPowerMangerTemp->product_ch_id, _globalPowerMangerTemp) != 0)
-                            {
-                                log_e("update pwr general data err.");
-                            }
-                            printf("val = %d start_chn = %d\n",val,start_chn);
-                          //  *(uint16_t *)((uint16_t*)(modbus_single[6].addr) + start_chn) = val;
-                            break;
-                        }                    
-                }
-            }
-            break;
-            case 5064 ... 5127:
-            {
-                 int start_chn = addr - modbus_single[DS_W_CLOSE_DELAY].offset;
-                GlobalPowerManger* _globalPowerMangerTemp = NULL ;
-                list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
-                {
-                    if(_globalPowerMangerTemp==NULL)
-                            break;
-                        if((start_chn+1) == _globalPowerMangerTemp->product_ch_id)
-                        {
-                            if(mgr->_globalDevInfo.product_pwr_type == SmartPDU_AC){
-                                  _globalPowerMangerTemp->product_ch_stop_delay=val;
-                                g_switch_set_ac_single_s_stop_time_delay(&__globalDeviceManage._globalRelaySampManger,_globalPowerMangerTemp->product_saddr,
-                                                _globalPowerMangerTemp->product_ch_addr,val);
-                            }else
-                            {
-                                  _globalPowerMangerTemp->product_ch_stop_delay=val;
-                                g_switch_set_dcpdu_stop_time_delay(&__globalDeviceManage._globalRelaySampManger,_globalPowerMangerTemp->product_saddr,
-                                        _globalPowerMangerTemp->product_ch_addr,val/1000);
-                            }
-                            if (dev_update_power_manage_genera_info(__globalDeviceManage.db, _globalPowerMangerTemp->product_id, _globalPowerMangerTemp->product_ch_id, _globalPowerMangerTemp) != 0)
-                            {
-                                log_e("update pwr general data err.");
-                            }
-                            printf("val = %d",val);
-                            //*(uint16_t *)((uint16_t*)(modbus_single[7].addr) + start_chn) = val;
-                            //printf("modbus_single[7].addr = %d ",modbus_single[7].addr);
-                            break;
-                        }                    
-                }
-            }
-            break;
-            case 5128 ... 5191:
-            {
-                int start_chn = addr - modbus_single[DS_W_CHN_SWITCH_STA].offset;
-                GlobalPowerManger* _globalPowerMangerTemp = NULL ;
-                if (val == 0 || val == 1)
-                {
-                    list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
-                    {
-                        if (_globalPowerMangerTemp == NULL)
-                            break;
-                        if ((start_chn + 1) == _globalPowerMangerTemp->product_ch_id)
-                        {
-                            int ret = g_switch_set_all_chn_ctrl(&__globalDeviceManage._globalRelaySampManger, _globalPowerMangerTemp,
-                                                                _globalPowerMangerTemp->product_saddr,
-                                                                _globalPowerMangerTemp->product_ch_addr,
-                                                                val, false);
-                            //  printf("ret = %d 0x%x\n",ret,val);
-                            *(uint16_t *)((uint16_t *)(modbus_single[DS_W_CHN_SWITCH_STA].addr) + start_chn) = val;
-                            break;
-                        }
-                    }
-                }
-            }
-            break;
-            case 5192:
-            {
-                if (val == 0 || val == 1)
-                {
-                    GlobalPowerManger *_globalPowerMangerTemp = NULL;
-                    list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
-                    {
-                        if (_globalPowerMangerTemp == NULL)
-                            break;
-                        int rec = g_switch_set_all_ctrl(&__globalDeviceManage._globalRelaySampManger, _globalPowerMangerTemp->product_ch_type, _globalPowerMangerTemp->product_saddr, val);
-                        // printf("rec = %d 0x%x\n",rec,val);
-                    }
-                    *(uint16_t *)(modbus_single[DS_W_ALL_CHN_STA].addr) = val;
-                }
-            }
-            break;
-            
-            default:
-            break;
-        }
-    }else{
-        switch(addr)
-        {
-            case 9000 ... 9063:
-            {
-                int start_chn = addr - modbus_three[TREE_W_OPEN_DELAY].offset;
-                GlobalPowerManger* _globalPowerMangerTemp = NULL ;
-                list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list){
-                    if(_globalPowerMangerTemp==NULL)
-                            break;
-                    if((start_chn+1) == _globalPowerMangerTemp->product_ch_id)
-                    {
-                        int ret = 0;
-
-                        _globalPowerMangerTemp->product_ch_start_delay = val;
-                        if (__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_Tree
-                        ||__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One
-                        ||__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One_B
-                        )
-                        {
-                            printf("hwllo every one stop time !!!!\n");
-                            ret = g_switch_set_t_ac_start_time_delay(&__globalDeviceManage._globalRelaySampManger, 
-                                                        _globalPowerMangerTemp->product_saddr, (_globalPowerMangerTemp->product_ch_addr - 1) * 3, val / 1000);
-                            ret = g_switch_set_t_ac_start_time_delay(&__globalDeviceManage._globalRelaySampManger, 
-                                                        _globalPowerMangerTemp->product_saddr, (_globalPowerMangerTemp->product_ch_addr - 1) * 3 + 1, val / 1000);
-                            ret = g_switch_set_t_ac_start_time_delay(&__globalDeviceManage._globalRelaySampManger, 
-                                                        _globalPowerMangerTemp->product_saddr, (_globalPowerMangerTemp->product_ch_addr - 1) * 3 + 2, val / 1000);
-                        }
-                        else
-                        {
-                            ret = g_switch_set_t_ac_start_time_delay(&__globalDeviceManage._globalRelaySampManger, 
-                                                        _globalPowerMangerTemp->product_saddr, (_globalPowerMangerTemp->product_ch_addr - 1) * 3, val / 1000);
-                        }
-                        if (dev_update_power_manage_genera_info(__globalDeviceManage.db, _globalPowerMangerTemp->product_id, _globalPowerMangerTemp->product_ch_id, _globalPowerMangerTemp) != 0)
-                        {
-                            log_e("update pwr general data err.");
-                        }
-                        break;
-                    }
-                }
-            }
-            break;
-            case 9064 ... 9127:
-            {
-                int start_chn = addr - modbus_three[TREE_W_CLOSE_DELAY].offset;
-                GlobalPowerManger* _globalPowerMangerTemp = NULL ;
-                list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
-                {
-                    if(_globalPowerMangerTemp==NULL)
-                            break;
-                    if((start_chn+1) == _globalPowerMangerTemp->product_ch_id)
-                    {
-                        int ret = 0;
-
-                        _globalPowerMangerTemp->product_ch_stop_delay = val;
-                        if (__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_Tree
-                        ||__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One
-                        ||__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One_B)
-                        {
-                            ret = g_switch_set_t_ac_stop_time_delay(&__globalDeviceManage._globalRelaySampManger, 
-                                                        _globalPowerMangerTemp->product_saddr, (_globalPowerMangerTemp->product_ch_addr - 1) * 3, val / 1000);
-                            ret = g_switch_set_t_ac_stop_time_delay(&__globalDeviceManage._globalRelaySampManger, 
-                                                        _globalPowerMangerTemp->product_saddr, (_globalPowerMangerTemp->product_ch_addr - 1) * 3 + 1, val / 1000);
-                            ret = g_switch_set_t_ac_stop_time_delay(&__globalDeviceManage._globalRelaySampManger, 
-                                                        _globalPowerMangerTemp->product_saddr, (_globalPowerMangerTemp->product_ch_addr - 1) * 3 + 2, val / 1000);
-                        }
-                        else
-                        {
-                            ret = g_switch_set_t_ac_stop_time_delay(&__globalDeviceManage._globalRelaySampManger, 
-                                                        _globalPowerMangerTemp->product_saddr, (_globalPowerMangerTemp->product_ch_addr - 1) * 3, val / 1000);
-                        }
-                        if (dev_update_power_manage_genera_info(__globalDeviceManage.db, _globalPowerMangerTemp->product_id, _globalPowerMangerTemp->product_ch_id, _globalPowerMangerTemp) != 0)
-                        {
-                            log_e("update pwr general data err.");
-                        }
-                        break;
-                    }
-                }
-            }
-            break;
-            case 9128 ... 9191:
-            {
-                int start_chn = addr - modbus_three[TREE_W_CHN_SWITCH_STA].offset;
-                GlobalPowerManger* _globalPowerMangerTemp = NULL ;
-                list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list){
-                    if(_globalPowerMangerTemp==NULL)
-                            break;
-                    if((start_chn+1) == _globalPowerMangerTemp->product_ch_id)
-                    {
-                        int t_ac_CtrlType=0;
-                        int nRet = 0;
-                        
-                        _globalPowerMangerTemp->product_ch_status = val;
-
-                        GlobalTreeACManager *_globalTACManager = NULL;
-                        list_for_each_entry(_globalTACManager, &_globalPowerMangerTemp->list_Tree_AC, list_Tree_AC)
-                        {
-                            t_ac_CtrlType=_globalTACManager->product_ph_outputType;
-                        }
-                        if (t_ac_CtrlType == 2&&(__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_Tree
-                        ||__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One
-                        ||__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One_B))
-                        {
-                            if(_globalPowerMangerTemp->product_ch_type == AC_SINGLE_S_TYPE || _globalPowerMangerTemp->product_ch_type == AC_SINGLE_B_TYPE)
-                            {
-                                if (val == 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)
-                                        val |= ENABLE_TAC_V_DOWN;
-                                    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)
-                                        val |= ENABLE_TAC_W_UP;
-                                    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, 
-                                                (_globalPowerMangerTemp->product_ch_addr- 1), val);
-                                break;
-                            }
-                            unsigned short phsts=0;
-                            list_for_each_entry(_globalTACManager, &_globalPowerMangerTemp->list_Tree_AC, list_Tree_AC)
-                            {
-                                if (val == 1 && _globalTACManager->product_ph_outputStatus==1)
-                                {
-                                    phsts=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)
-                                        phsts |= ENABLE_TAC_V_DOWN;
-                                    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)
-                                        phsts |= ENABLE_TAC_W_UP;
-                                    if (_globalTACManager->global_over_manager->product_pwrcon_upper_enable == 1)
-                                        phsts |= ENABLE_TAC_P_UP;
-                                }else{
-                                    phsts=0;
-                                }
-                                nRet= g_switch_set_t_ac_phchn_ctrl(&__globalDeviceManage._globalRelaySampManger,
-                                                     _globalTACManager->product_saddr, 
-                                                     _globalTACManager->product_ch_addr - 1, 
-                                                     phsts);
-                            }
-                            break;
-                        }else
-                        {
-                            if (val == 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)
-                                    val |= ENABLE_TAC_V_DOWN;
-                                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)
-                                    val |= ENABLE_TAC_W_UP;
-                                if (_globalPowerMangerTemp->global_over_manager->product_pwrcon_upper_enable == 1)
-                                    val |= ENABLE_TAC_P_UP;
-                            }
-                            /*
-                            if (isgroup)
-                            {
-                                sts |= ENABLE_TAC_STIME;
-                                sts |= ENABLE_TAC_ETIME;
-                            }*/
-                            if (__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One)
-                            {
-                                g_switch_set_t_ac_phchn_ctrl(&__globalDeviceManage._globalRelaySampManger,
-                                                                _globalPowerMangerTemp->product_saddr,
-                                                                _globalPowerMangerTemp->product_ch_addr - 1,
-                                                                val);
-                            }else{
-                                g_switch_set_t_ac_chn_ctrl(&__globalDeviceManage._globalRelaySampManger,
-                                                                _globalPowerMangerTemp->product_saddr,
-                                                                _globalPowerMangerTemp->product_ch_addr - 1,
-                                                                val);
-                            }
-                        }
-                    }
-                }
-            }
-            break;
-            case 9192:
-            {
-                if (val == 0 || val == 1)
-                {
-                    GlobalPowerManger *_globalPowerMangerTemp = NULL;
-                    list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
-                    {
-                        if (_globalPowerMangerTemp == NULL)
-                            break;
-
-                        _globalPowerMangerTemp->product_ch_status = val;
-                        int rec = g_switch_set_all_ctrl(&__globalDeviceManage._globalRelaySampManger, _globalPowerMangerTemp->product_ch_type, _globalPowerMangerTemp->product_saddr, val);
-                        // printf("rec = %d 0x%x\n",rec,val);
-                    }
-                }
-            }
-            break;
-            default:
-            break;
-        }
-    }
-}
->>>>>>> 1a6c6a9ecc73b46498b40e3ded858f5abe7996e9

+ 3 - 971
pro/src/common.h

@@ -1,972 +1,3 @@
-<<<<<<< HEAD
-#ifndef __COMMON_H_
-#define __COMMON_H_
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <stdbool.h>
-#include "sqlite3.h"
-#include "pthread.h"
-#include "list.h"
-#include "modbus_handle.h"
-#include "elog.h"
-#include "mongoose.h"
-#include "ntpclient.h"
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include "pduMIB_form.h"
-#include "pduMIB_scalar.h"
-#include "pduMIB_trap.h"
-#include "language_hashmap.h"
-#include "hlw8110_habdle.h"
-#include "language_common.h"
-#include <sys/shm.h>
-#include "cfg.h"
-
-
-#define MAX_RELAY_CHN       100
-
-//是否在OS环境下运行
-#define OS_HANDWARE 1
-
-#define WEB_ROOT            "../web"
-#define PARAS_FILE          "pduParas"
-
-#define DATABASE_NAME       "pdu_dat.db"
-#define DATABASE_BAK_NAME   "pdu_dat_bak.db"
-#define SNMP_MIB_NAME       "pduMIB"
-
-//高配表头串口定义-----------------------------------------------
-//控制板通信串口
-#define INTERL_MODBUS_PORT "/dev/ttyAS5"
-#define INTERL_MODBUS_BAUD 115200
-//表头级联通讯串口
-#define CASCADE_MODBUS_PORT     "/dev/ttyAS4"
-#define CASCADE_MODBUS_BAUD     115200
-//传感器通信串口
-#define INTERL_SENSOR_MODBUS_PORT "/dev/ttyAS2"
-#define INTERL_SENSOR_MODBUS_BAUD 9600
-
-
-
-#define IMAGE_PATH          "image"
-#define LOGO_FILE           "logo.png"
-#define QRCODE_FILE         "qrcode.png"
-
-
-#define AC_SINGLE_S_CUR_CHN_NUM 8
-#define AC_SINGLE_B_CUR_CHN_NUM 4
-
-#define AC_SINGLE_S_MAX_CHN_NUM 10  	//单个控制板最大数量
-#define AC_SINGLE_S_MAX_ADDRESS_NUM 16  //控制板最大数量
-
-#define AC_MAX_VOLTAGE_VAL 400
-#define AC_MAX_CURRENT_VAL 100
-#define AC_MAX_POWER_VAL 100
-
-enum
-{
-	TOTAL_VOLTAGE_TYPE 			= 0,//统计电压类型
-	TOTAL_CURRENT_TYPE 			= 1,//统计电流类型
-	TOTAL_POWER_TYPE 			= 2,//统计功率类型
-	TOTAL_POWER_CONS_TYPE 		= 3 //统计耗电量类型
-};
-
-enum
-{
-	POWER_MERITORIOUS_TYPE 			= 0,//有功功率类型
-	POWER_REACTIVE_TYPE 			= 1,//无功功率类型
-	POWER_APPARENT_TYPE 			= 2 //视在功率类型
-};
-
-enum
-{
-    SENSOR_TYPE_TEMPERATURE = 0 , //温度传感器
-    SENSOR_TYPE_SMOKE       = 1 , //烟雾传感器
-    SENSOR_TYPE_WATER       = 2 , //水浸传感器
-    SENSOR_TYPE_DOOR        = 3 , //门禁传感器
-    SENSOR_TYPE_GAS         = 4 , //气体传感器
-    SENSOR_TYPE_AIR_PRESS   = 5   //气体、气压传感器
-};
-enum
-{
-    SENSOR_VAL1_UPPER = 0,
-    SENSOR_VAL1_LOWER = 1,
-    SENSOR_VAL2_UPPER = 2,
-    SENSOR_VAL2_LOWER = 3,
-
-};
-
-enum
-{
-    SENSOR_TYPE_VALUE = 0 , //传感器类型0、4、5
-    SENSOR_TYPE_LIST =1     //传感器类型1、2、3
-};
-
-/// @brief 板子类型
-enum MODBUS_BOARD_TYPE
-{
-    AC_SINGLE_S_TYPE=1,
-    AC_SINGLE_B_TYPE,
-    AC_MULTI_S_TYPE,
-    AC_MULTI_B_TYPE,
-    DC_OUT_TYPE,
-    DC_IN_TYPE,
-    DCPDU_TYPE,
-    TREE_AC_TYPE,   //三相进三项出
-};
-
-enum AppProductType
-{
-    SmartPDU_AC=0,
-    SmartPDU_DC=1,
-    SmartPDU_Tree_AC_Tree=3,
-    SmartPDU_Tree_AC_One=4,
-    SmartPDU_Tree_AC_One_B=5,    
-};
-
-/// @brief 三相网页数据
-static char* g_product_t_ac_type_str[3] = {
-    "L1",
-    "L2",
-    "L3",
-};
-/// @brief 按位标记
-enum BIT_CTRL
-{
-    BIT_00 = 1 ,
-    BIT_01 = 2 ,
-    BIT_02 = 4 ,
-    BIT_03 = 8 ,
-    BIT_04 = 16,
-    BIT_05 = 32,
-    BIT_06 = 64,
-    BIT_07 = 128,
-    BIT_08 = 256,
-    BIT_09 = 512,
-    BIT_10 = 1024,
-    BIT_11 = 2048,
-    BIT_12 = 4096,
-    BIT_13 = 8192,
-    BIT_14 = 16384,
-    BIT_15 = 32768,
-};
-/// @brief 使能位
-enum ENABLE_BIT_CTRL
-{
-    ENABLE_V_UP     = 2 ,
-    ENABLE_V_DOWN   = 8 ,
-    ENABLE_A_UP     = 32,
-    ENABLE_W_UP     = 128,
-    ENABLE_P_UP     = 512,
-    ENABLE_ALL_UP   = BIT_11,
-    ENABLE_ALL_DOWN = BIT_12,
-};
-/// @brief 使能位三项
-enum ENABLE_TreeAC_CTRL
-{
-    ENABLE_TAC_V_UP     = 1,
-    ENABLE_TAC_V_DOWN   = 2,
-    ENABLE_TAC_A_UP     = 4,
-    ENABLE_TAC_W_UP     = 8,
-    ENABLE_TAC_P_UP     = 16,
-    ENABLE_TAC_STIME    = 32,
-    ENABLE_TAC_ETIME    = 64,
-};
-/// @brief 报警位
-enum WARNING_BIT_CTRL
-{
-    WARNING_V_UP     = 4 ,
-    WARNING_V_DOWN   = 16 ,
-    WARNING_A_UP     = 64, 
-    WARNING_W_UP     = 256,
-    WARNING_P_UP     = 1024,
-};
-
-/// @brief 报警动作
-enum ALARM_CTRL
-{
-    ALARM_CTRL_CLOSE_CH     = 1 ,
-    ALARM_CTRL_ALARM_ONLY     = 2 ,
-    ALARM_CTRL_CLOSE_ALLCH     = 3 ,
-};
-
-///////////////////////////////////////////////////////////////////////////////////
-typedef struct {
-    int             id;
-    int             up;
-    char            ip[48];
-    char            mac[24];
-    char            desc[128];
-}port_info_t;
-typedef struct {
-    #define SW_PORT_MAX         24      //28
-    #define SW_PORT_START       99329
-    port_info_t     port[SW_PORT_MAX];
-}netswitch_info_t;
-
-///////////////////////////////////////////////////////////////////////////////////
-//modbus信息管理
-typedef struct
-{
-    bool            product_modbus_type ;       //modbus模式
-    unsigned int    product_modbus_baud ;       //波特率
-    unsigned char   product_modbus_addr         ;//从Modbus地址信息
-    char            product_relay_ctrl_port[32] ;//继电器modbus控制端口
-}ModbusInfo_t;
-
-typedef struct
-{
-    int           mode;    						//1: static  0: dhcp
-    char          ip_address[64] ; 				//ip地址
-    char          mask[64]; 					//子网掩码
-    char          gateway[64]; 					//网关
-    char          dns1[64];    					//dns1
-    char          dns2[64];    					//dns2
-}NetworkInfo_t;
-
-
-/// @brief 用户登录
-typedef struct
-{
-    char user_name[64];
-    char user_password[64];
-    char user_uuid[64];
-    char user_token[64];
-    struct list_head list;
-}_User_Log;
-//设备总体管理表
-typedef struct
-{
-    int             product_id                  ;//产品ID 
-    char            product_number[16]          ;//产品编号    
-    char            product_name[32]            ;//产品名称
-    char            product_status[32]          ;//产品状态
-    unsigned char   product_type                ;//产品类型
-    unsigned char   product_pwr_type            ;//电源类型
-    char            product_version[8]          ;//软件版本
-    unsigned char   product_language            ;//多国语言
-    unsigned char   product_count               ;//级联设备数
-    unsigned short  product_samp_time           ;//采集周期 单位ms
-    unsigned short  product_save_time           ;//采集周期 单位ms
-    ModbusInfo_t    _modbus_info                ;//继电器控制端口
-    NetworkInfo_t   _network_info ;             ;//网络信息
-    ModbusInfo_t    _gmodbus_info               ;//级联端口      
-}GlobalDeviceInfo;
-///////////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////////
-//自定义共享内存类
-typedef struct
-{
-    //电源数据
-    int bPDUSet;
-    int nSelectPowerCH;
-    int nMaxCh;
-    float fV;
-    float fA;
-    float fW;
-    float fF;
-    float fS;
-    int nStatus;
-    //传感器数据
-    int nSelectSensor;
-    float fT;//温度
-    float fH;//湿度
-} smartPDU_shm_data;
-
-///////////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////////
-//超限管理表
-typedef struct
-{
-    char            product_vol_upper_enable                   ;//电压上限使能
-    float           product_vol_upper_threshold                ;//电压上限值
-    char            product_vol_over_upper_threshold_ctrl      ;//电压超限动作
-    char            product_vol_over_upper_threshold_ctrl_para ;//电压超限关联参数
-    char            product_vol_lower_enable                   ;//电压下限使能
-    float           product_vol_lower_threshold                ;//电压下限值
-    char            product_vol_over_lower_threshold_ctrl      ;//电压超限动作 
-    char            product_vol_over_lower_threshold_ctrl_para ;//电压超限动作   
-    char            product_cur_upper_enable                   ;//电流下限使能
-    float           product_cur_upper_threshold                ;//电流下限值
-    float           product_cur_lower_threshold;                //
-    char            product_cur_over_upper_threshold_ctrl      ;//电流超限动作 
-    char            product_cur_over_upper_threshold_ctrl_para ;//电流超限动作   
-    char            product_pwr_upper_enable                   ;//功率上限使能
-    float           product_pwr_upper_threshold                ;//功率上限值
-    char            product_pwr_over_upper_threshold_ctrl      ;//功率超限动作 
-    char            product_pwr_over_upper_threshold_ctrl_para ;//功率超限动作      
-    char            product_pwrcon_upper_enable                ;//耗电量上限使能
-    float           product_pwrcon_upper_threshold             ;//耗电量上限值
-    char            product_pwrcon_over_upper_threshold_ctrl   ;//耗电量超限动作   
-    char            product_pwrcon_over_upper_threshold_ctrl_para   ;//耗电量超限动作   
-}GlobalOverManager;
-
-
-/// @brief 定时管理
-typedef struct
-{
-    char                set_date[16]; //设置日期
-    char                ds_date[16]; //设置时间
-    char                ds_time[16]; //设置时间
-    int                 set_stats;    //状态
-    int                 ds_is_triggered;   //是否已触发
-    struct list_head    list;   
-}_PowerDSManage_t;
-
-
-typedef struct
-{
-    int                 firingSortno;   //启动序号
-    int                 closeSortno;    //关闭序号 
-}_PowerSXManage_t;
-
-typedef struct
-{
-    int                 product_id;
-    int                 mode;
-    char*               ntpName;
-    char*               ntpaddress;
-    int                 port;
-    char*               time;
-    int                 weekday;
-    int                 tzone;
-}NTPManager;
-NTPManager _globalNTPManager;
-
-typedef struct
-{
-    int                 product_id;
-    int                 mode;
-    int                 version;
-    char*               public;
-    int                 trapmode;
-}SNMPManager;
-SNMPManager _globalSNMPManager;
-
-//分组管理
-typedef struct
-{
-    int                 product_id;
-    int                 GroupID;
-    char               GroupName[64];
-    char               GroupChList[512];
-    struct list_head    list;  
-}GroupInfo;
-
-
-//电源部分
-typedef struct 
-{
-    float           voltage                                     ;//电压
-    float           current                                     ;//电流
-    float           power                                       ;//功率
-    float           freq                                        ;//频率
-    float           consumption                                 ;//耗电量
-    float           factor                                      ;//功率因素    
-    unsigned short  status                                      ;//开关状态     
-    unsigned short  NF_status                                   ;//零线状态
-    
-    port_info_t     port;                                       //
-}PowerInfo;
-
-//电源部分报警信息
-typedef struct 
-{
-    bool           w_voltage_up                                  ;//电压上限报警
-    bool           w_voltage_down                                ;//电压下限报警
-    bool           w_current                                     ;//电流上限报警
-    bool           w_power                                       ;//功率
-    bool           w_consumption                                 ;//耗电量
-    bool           w_phase_loss                                  ;//缺相报警              
-}PowerWarningInfo;
-
-//三项数据
-typedef struct
-{
-    int product_id;
-    int product_ch_id;
-    int product_ph_id;
-    int product_ph_type;//0:A相 1:B相 2:C相                
-    int product_saddr;
-    int product_ch_addr;
-    int product_ph_outputType;//三相控制方式1,三项2单项
-    int product_ph_outputStatus;//该相是否输出,1输出2不输出
-    PowerInfo           _PowerInfo;                              //存储最新的数据(兼容三项输入)
-    GlobalOverManager*  global_over_manager                        ;//超限管理
-    PowerWarningInfo    _PowerWarninginfo;                       //存储报警数据(兼容三项输入)  
-    time_t              product_log_time;                           //存储最新时间   
-    struct list_head    list_Tree_AC;                              //存储三项数据指针    
-}GlobalTreeACManager;
-//电源通道管理总表(输出)
-typedef struct 
-{
-    int                 product_id                                 ;//产品ID
-    //20240225 add
-    char                product_saddr                              ;//modbus地址记录                       
-    char                product_ch_id                              ;//通道号
-    char                product_ch_addr                            ;//通道号实际地址
-    char                product_ch_name[32]                        ;//通道名称
-    char                product_ch_type                            ;//通道类型
-    char                product_ch_status                          ;//通道状态
-    char                product_ch_NF_status                          ;//通道零线状态(三相)
-    unsigned short      product_ch_start_delay                     ;//通道延时 
-    unsigned short      product_ch_stop_delay                      ;//通道延时
-
-    GlobalOverManager*  global_over_manager                        ;//超限管理
-    struct list_head    list_DS;                                    //定时设置      
-    _PowerSXManage_t*   _PowerSXManage;                             //时序管理      
-    PowerInfo           _PowerInfo;                                 //存储最新的数据     
-    PowerWarningInfo    _PowerWarninginfo ;                         //存储报警数据     
-    time_t              product_log_time;                           //存储最新时间     
-    struct list_head    list_Tree_AC;                              //存储三项数据指针
-    struct list_head    list;  
-}   GlobalPowerManger;
-
-//电源通道管理总表(输入)
-typedef struct 
-{
-    int                 product_id                                 ;//产品ID
-    //20240225 add
-    char                product_saddr                              ;//modbus地址记录                       
-    char                product_saddr_name[32]                     ;//输入名称
-    char                product_saddr_type                         ;//输入类型
-    GlobalOverManager*  global_over_manager                        ;//超限管理
-    PowerInfo           _PowerInfo[3];                              //存储最新的数据(兼容三项输入)
-    PowerWarningInfo    _PowerWarninginfo[3];                       //存储报警数据(兼容三项输入)    
-    time_t              product_log_time;                           //存储最新时间                                        
-}GlobalPowerInManger;
-
-//电源控制板计数
-typedef struct 
-{
-    char                product_saddr                              ;//modbus地址记录                       
-    int                 product_number;                             //数量
-    int                 product_type;                               //类型
-    PowerInfo           _PowerInfo[AC_SINGLE_S_MAX_CHN_NUM];        //存储最新的数据     
-    PowerWarningInfo    _PowerWarninginfo[AC_SINGLE_S_MAX_CHN_NUM] ;//存储报警数据     
-    struct list_head    list;  //存储具有的通道指针
-    GlobalPowerInManger _globalPowerInManger;                       //总输入数据
-}GlobalPowerCtrlBoard;
-///////////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////////
-
-//电源信息统计
-typedef struct
-{
-	float ydata[60];    //value
-    char  xAxis[60][32];//时间点
-}GetTotalInfo;
-
-//系统总数信息
-typedef struct
-{
-    int channel_total  ;//通道总数
-    int warn_total     ;//告警总数
-    int sensor_total   ;//传感器总数
-    int log_total      ;//运行日志总数
-}SystemTotalInfo;
-
-//功率趋势接口
-typedef struct
-{
-    float  ydata[3][60]     ;//0:有功功率;1:无功功率;2:视在功率;
-    char   xAxis[60][32]    ;//时间点      
-}PowerTrendInfo;
-
-///////////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////////
-
-
-//电源监控
-typedef struct 
-{
-    int             product_id                                  ;//产品ID
-    char            product_ch_id                               ;//电源通道
-    unsigned short  product_status                              ;//当前状态
-    PowerInfo       _power_info                                 ;//采集值
-    char            samp_time[64]                               ;//采集时间
-    GetTotalInfo	_total_voltage								;//统计电压
-	GetTotalInfo	_total_current								;//统计电流
-	GetTotalInfo	_total_power								;//统计功率
-	GetTotalInfo	_total_consumption							;//统计耗电量
-    SystemTotalInfo _system_total_info                          ;//系统总数信息
-    PowerTrendInfo  _power_trend_info                           ;//功率趋势图
-    struct list_head list;
-}GlobalPowerInfo;
-///////////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////////
-
-
-///////////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////////
-//传感器值
-typedef struct
-{
-    char            samp_time[64]                               ;//采集时间
-    int             product_id                                  ;//产品ID
-    char            sensor_id                                   ;//传感器ID
-    float           val1                                        ;//值1
-    float           val2                                        ;//值2
-    time_t          product_log_time;                           //存储最新时间     
-    struct list_head list;
-}GlobalSensorInfo;
-
-typedef struct
-{
-    bool                sensor_val1_upper_enabled ;//
-    float               sensor_val1_upper_threshold;
-    char                sensor_val1_upper_threshold_ctrl;
-    char                sensor_val1_upper_threshold_ctrl_para;
-    bool                sensor_val1_lower_enabled ;//
-    float               sensor_val1_lower_threshold;
-    char                sensor_val1_lower_threshold_ctrl;
-    char                sensor_val1_lower_threshold_ctrl_para;
-    bool                sensor_val2_upper_enabled ;//
-    float               sensor_val2_upper_threshold;
-    char                sensor_val2_upper_threshold_ctrl;
-    char                sensor_val2_upper_threshold_ctrl_para;
-    bool                sensor_val2_lower_enabled ;//
-    float               sensor_val2_lower_threshold;
-    char                sensor_val2_lower_threshold_ctrl;
-    char                sensor_val2_lower_threshold_ctrl_para;
-}GlobalSensorOverManage;
-
-//传感器报警状态表
-typedef struct
-{   
-    bool                sensor_val1_upper;
-    bool                sensor_val1_lower;
-    bool                sensor_val2_upper;
-    bool                sensor_val2_lower;
-}GlobalSensorOverInfo;
-//传感器管理总表
-typedef struct 
-{
-    int                 product_id                                 ;//产品ID    
-    char                sensor_id                                  ;//传感器ID
-    char                sensor_type                                ;//传感器类型
-    char                sensor_interface_type;                     //接口类型
-    char                sensor_name[64]                            ;//传感器名称
-    char                sensor_port_name[32]                       ;//传感器端口号
-    int                 sensor_baud                                ;//波特率
-    char                sensor_addr                                ;//modbus地址
-    int                sensor_status                              ;//传感器状态
-    char                sensor_val_count                           ;//传感器值个数
-    int                 sensor_node_number                         ;//节点号
-    GlobalSensorInfo Cur_sensor_info ;
-    GlobalSensorOverManage*  over_manager                          ;//超限管理   
-    GlobalSensorOverInfo warning_status;//报警状态
-    struct list_head    list;   
-}GlobalSensorManger;
-///////////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////////
-
-
-
-///////////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////////
-///温湿度数据信息管理
-typedef struct
-{
-    float  temperature;
-    float   humidity;
-}SenorTempVal;
-
-
-//采集KB值
-typedef struct 
-{
-    float   voltage_k;//电压K
-    float   voltage_b;//电压B
-    float   current_k;//电流K
-    float   current_b;//电流B
-}SwitchKbVal;
-///////////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////////
-
-//SMTP管理
-typedef struct
-{
-    int                 idx;
-    char*               receive_account;
-    char*               receive_account_info;
-    struct list_head    list;
-}SMTPreceiveAccount;
-
-typedef struct 
-{
-    int                 product_id;
-    int                 mode;    				//状态
-    char*               account;                //用户账号
-    char*               password; 		        //用户密码
-    char*               server; 			    //服务器
-    int                 port;    		        //端口
-    char                auth[16];    			//认证方式
-    SMTPreceiveAccount* receive_account;        //接收账号列表
-
-}SMTPManager;
-SMTPManager globalSMTPManager;
-
-typedef struct 
-{
-    int                 product_id;
-    int                 userID;    				//用户ID
-    char*               userName;                //用户名-登录
-    char*               userPW; 		        //用户密码
-    char*               nickName; 			    //用户名称
-    int                 roleID;    		        //角色ID
-    char*               createTime;             //用户创建时间     
-    struct list_head    list;
-
-}UserInfo;
-
-typedef struct 
-{
-    int                 product_id;
-    int                 roleID;    				//角色ID
-    char*               roleName;               //角色名称
-    int                 roleLevel; 		        //角色等级
-    char*               roleAuthority; 			//角色权限
-    int                 roleSort;    		    //显示顺序
-    char*               createTime;             //创建时间     
-    struct list_head    list;
-
-}RoleInfo;
-
-typedef struct MenuAuthority{
-    bool PowerEnabled;
-    bool SensorEnabled;
-    bool AlarmEnabled;
-    bool LogEnabled;
-    bool UserInfoEnabled;
-    bool CommEnabled;
-    bool ServiceEnabled;
-    bool MaintenanceEnabled;
-
-    //1、电源监控菜单
-    bool MonitorallEnabled;
-    bool ChannelstatusEnabled;
-    bool SwitchtatusEnabled;
-    bool MonitorhistoryEnabled;
-    //2、传感器管理菜单
-    bool SensorStatusEnabled;
-    bool SensorHistorylEnabled;
-    //3、告警管理菜单
-    bool XtjgEnabled;
-    bool YzszEnabled;
-    //4、日志信息菜单
-    bool CzrzEnabled;
-    bool YxrzEnabled;
-    //5、用户管理菜单
-    bool UserEnabled;
-    bool RoleEnabled;
-    bool MenuEnabled;
-    //6、通信管理菜单
-    bool WkszEnabled;
-    bool RsszEnabled;
-    //7、服务管理菜单
-    bool SmtpszEnabled;
-    bool SnmpszEnabled;
-    bool MqszEnabled;
-    bool NtpszEnabled;
-    bool DsszEnabled;
-    bool SxszEnabled;
-    bool FzszEnabled;
-     //8、设备维护菜单
-    bool SbcqEnabled;
-    bool GjsjEnabled;
-    bool HhccszEnabled;
-    bool PzdrdcEnabled;
-    bool ShfwEnabled;
-    bool GysbEnabled;
-}MenuAuthority;
-
-
-typedef struct CascadeDevices{
-    int                 product_id;     //级联设备ID modbus地址
-    int                 type;           //
-    char                device_name[20];    //接连设备名;
-    float               valtage;            //485
-    float               current;
-    float               power;
-    float               factor;
-    float               freq;
-    float               consumption;
-}CascadeDevices;
-
-struct modbus_slave_read_reg{
-    uint16_t deveice_type;              //设备类型
-    uint16_t slave_addr;                //设备地址
-    uint32_t voltage;                   //当前电压
-    uint32_t current;                   //当前电流
-    uint32_t power;                     //当前功率
-    uint32_t consumption_cur;           //耗电量
-    uint32_t freq;                      //频率
-    uint32_t factor;                    //功率因素
-    uint32_t temprature;                //温度值
-    uint32_t humidity;                  //湿度值
-    uint32_t warning;                   //告警
-    uint16_t power_supplay_status;      //供电状态
-    uint16_t sencor_status;             //传感器状态
-
-//    uint32_t Warinfo;
-//    uint16_t sercor_type;
-};
-
-
-
-typedef struct cascade_pw_info{
-    uint32_t           voltage                                     ;//电压
-    uint32_t           current                                     ;//电流
-    uint32_t           power                                       ;//功率
-    uint32_t           freq                                        ;//频率
-    uint32_t           consumption                                 ;//耗电量
-    uint32_t           factor                                      ;//功率因素 
-}cascade_single_chn_info;     //siggle hell 
-
-typedef struct temp_hum{
-    uint16_t temperature;
-    uint16_t humidity;
-}temp_hum_t;
-
-#pragma pack (1)
-typedef struct cascade_single_mmap{
-    uint16_t dev_chn;
-    cascade_single_chn_info all_ch[128];
-    uint32_t total_valtage;
-    uint32_t total_current;
-    uint32_t total_power;
-    //temp_hum_t total_temp;
-    uint16_t temperature;
-    uint16_t humidity;
-    uint16_t chn_status[64];
-    uint16_t open_delay[64];
-    uint16_t close_delay[64];
-    uint16_t reservers[29];
-    uint16_t set_chn_open_delay[64];
-    uint16_t set_chn_close_delay[64];
-    uint16_t set_chn_switch_status[64];
-    uint16_t set_chn_all_switch_status;
-}cascade_single_mmap_t;
-
-#pragma pack ()
-
-
-#pragma pack (1)
-
-
-#define MAX_CHN  64
-
-typedef struct cascade_triphasic_pw_out{
-    uint32_t o_voltage;
-    uint32_t o_current;
-    uint32_t o_power;
-    uint32_t o_consumption;
-    uint32_t o_status;
-}cascade_triphasic_pw_out_t;
-
-
-typedef struct cascade_triphasic_pw_o_chn{
-    cascade_triphasic_pw_out_t chn[3];        // A B C
-}cascade_triphasic_pw_o_chn_t;
-
-
-typedef struct cascade_triphasic_pw_in{
-    uint32_t i_total_voltage;
-    uint32_t i_total_current;
-    uint32_t i_total_power;
-    uint32_t i_total_consumption;
-}cascade_triphasic_pw_in_t;
-
-typedef struct cascade_triphasic_pw_i_total{
-    cascade_triphasic_pw_in_t pw_i_total[3];   // A  B  C
-}cascade_triphasic_pw_i_total_t;
-
-typedef struct cascade_triphasic_chn_info{
-    uint32_t chn_power;
-    uint32_t chn_freq;
-    uint32_t chn_consumption;
-    uint32_t chn_factor;
-    uint32_t chn_type;
-}cascade_triphasic_chn_info_t;
-
-
-typedef struct cascade_triphasic_mmap{
-    uint16_t dev_chn;
-    cascade_triphasic_pw_i_total_t i_total;
-    cascade_triphasic_chn_info_t chn_info[MAX_CHN];
-    cascade_triphasic_pw_o_chn_t pw_o_chn[MAX_CHN];
-    uint16_t temperature;
-    uint16_t humidity;
-    uint16_t chn_status[MAX_CHN];
-    uint16_t open_delay[MAX_CHN];
-    uint16_t close_delay[MAX_CHN];
-    uint16_t set_chn_open_delay[MAX_CHN];
-    uint16_t set_chn_close_delay[MAX_CHN];
-    uint16_t set_chn_switch_status[MAX_CHN];
-    uint16_t set_chn_all_switch_status;
-}cascade_triphasic_mmap_t;
-
-
-
-
-#pragma pack ()
-
-struct modbus_slave_write_reg{
-    uint16_t      voltage_high_enable:1;           //电压高阈值检测使能
-    uint16_t       voltage_low_enable:1;            //电压低阈值检测使能
-    uint16_t           current_enable:1;            //电流阈值使能
-    uint16_t             power_enable:1;            //功率阈值使能
-    uint16_t   consumption_cur_enable:1;            //功耗阈值使能
-    uint32_t    voltage_upper_threshold;            //
-    uint32_t    voltage_lower_threshold;
-    uint32_t    current_upper_threshold;
-    uint32_t      power_upper_threshold;
-    uint32_t      consumption_threshold;
-};
-enum 
-{
-    DI,
-    RS485
-};
-
-enum{
-    SWITCH_CONNETCTED,
-    SWITCH_DISCONNETCTED,
-    SWITCH_OFFLINE
-};
-
-
-#define SWITCH_CHN_1_SET        (1<<0)
-#define SWITCH_CHN_2_SET        (1<<1)
-#define SWITCH_CHN_3_SET        (1<<2)
-#define SWITCH_CHN_4_SET        (1<<3)
-#define SWITCH_CHN_5_SET        (1<<4)
-#define SWITCH_CHN_6_SET        (1<<5)
-#define SWITCH_CHN_DI_1_SET     (1<<6)
-#define SWITCH_CHN_DI_2_SET     (1<<7)
-
-
-typedef struct breaker_switch_sta{     
-    uint16_t status;
-    uint16_t gather;
-    char com[30];
-    uint8_t product_name[256];
-}breaker_switch_sta_t;
-
-typedef struct GlobalBreakerManger{
-    uint32_t all_count;
-    uint32_t online_count;
-    uint32_t mask;
-    uint8_t saddr;
-    void *manager;
-    breaker_switch_sta_t sta[8];        // 6 + 2
-    pthread_mutex_t b_mutex;
-}GlobalBreakerManger;
-
-
-typedef struct GlobalBreakerManager{
-    uint32_t        product_id;
-    uint32_t        breaker_id;
-    uint32_t        breaker_chn;
-    uint32_t        breaker_status;
-    uint32_t        breaker_gather_addr;
-    char            breaker_switch_name[128];
-    char            breaker_com[64];
-    char            breaker_gather_type[64];
-    char            breaker_chns_name[128];
-    struct  list_head  list;
-}GlobalBreakerManager;
-
-//设备总体管理
-typedef struct
-{
-    sqlite3*            db;             //数据库接口
-    pthread_mutex_t     dbThreadlock;        //写入线程锁 
-    pthread_t           appweb_thread;  //appweb线程
-    pthread_t           dev_samp_thread;//电源采集与控制线程
-    pthread_t           dev_update_thread;//电源采集与控制线程
-
-    pthread_t           io_thread;  //IO采集线程
-    pthread_t           sensor_thread; //传感器采集现成
-    bool                dev_samp_flag ; //电源采集线程标志
-    GlobalDeviceInfo*   _global_device_info;    //设备管理信息
-    GlobalPowerManger  _globalPowerManger;      //电源管理表
-    GlobalSensorManger _globalSensorManger;     //传感器管理表  
-    Modbus_Manger      sensor_modbus_manager;  //通信接口管理
-    unsigned int        useSlaveCount ;         //有效地址
-    Modbus_Manger       _globalRelaySampManger; //内部继电器使用
-    
-    unsigned char       uart_init_flag[6] ; //
-
-    bool                 ws_isok; //ws准备好
-    struct mg_connection *ws_client;   //websocket管理信息
-    HashTable*           _global_alarmLanguage; //全局的报警映射
-    int                 nTreeACLshow; //三项总数据显示L1=0,L2=1,L3=2
-    pthread_t           snmp_agent_thread;//SNMP代理线程
-    bool                _ReloadChm_flag; //重新加载端口数据
-    GlobalPowerCtrlBoard _all_ctrl_board[MAX_CHN_COUNT]; //所有控制板
-    LowConf*            _RS485LowConfData;//485Data
-      //传感器
-    struct modbus_slave_read_reg g_modebus_read;
-    struct modbus_slave_write_reg g_modebus_write;
-    smartPDU_shm_data* g_shm_Data;
-    pthread_mutex_t     _power_ds;        //定时器锁 
-    pthread_mutex_t     _power_update;        //数据刷新锁
-    pthread_mutex_t     _sensor_update;        //传感器刷新锁
-	pthread_mutex_t     _breaker_mutex;         // breaker info
-    cascade_single_mmap_t *single_mmap;
-    cascade_triphasic_mmap_t *triphasic_mmap;	
-	GlobalBreakerManager g_new_global_breaker;
-}GlobalDeviceManager;
-
-extern GlobalDeviceManager __globalDeviceManage;
-extern GlobalDeviceManager __globalDeviceManage2;
-
-extern NTPClient* globalNTPclient;
-extern unsigned long __globalSxIdx;
-
-extern _User_Log _GlobalUserLoginInfo;//全局用户登录信息
-extern UserInfo _GlobalUserInfoNew;////最近登录的信息
-extern char _GlobalUserToken[64];////最近登录的信息
-extern MenuAuthority _GlobalMenuAuthority;////角色菜单权限
-
-void initLogger(void);
-
-//打印设备信息结构
-void printf_global_device_info(GlobalDeviceInfo* _globalDeviceInfo);
-//打印设备超限电源管理
-void printf_global_power_manage_info(GlobalPowerManger* _globalPowerManger);
-//打印设备超限电源通道管理
-//void printf_global_power_chn_manage_info(GlobalPowerChnManger* _globalPowerChnManger);
-
-void printf_power_info(GlobalPowerInfo* _globalPowerInfo);
-
-
-int getTotalMemorySize(unsigned int* totalSize);
-char* getLocalIpAddress(char* dev);
-char* get_mac_address(const char *iface_name) ;
-void get_disk_occupy(char ** reused);
-int set_local_timeandzone(struct tm* t, int zone);
-char* getUserNamebyToken(char* Token);
-int is_process_running(const char *process_name);
-bool CheckLoginStatus(char* Token);
-
-// 辅助函数:判断是否是闰年  
-int is_leap_year(int year);  
-// 辅助函数:获取某月的天数  
-int days_in_month(int year, int month);
-// 函数:增加一天到日期  
-void add_day_to_date(char *date_str, int *year, int *month, int *day);
-
-void SetMenuAuthority(int RoleID);
-
-=======
 #ifndef __COMMON_H_
 #define __COMMON_H_
 
@@ -1709,7 +740,9 @@ typedef struct cascade_single_mmap{
     uint32_t total_valtage;
     uint32_t total_current;
     uint32_t total_power;
-    temp_hum_t total_temp;
+    //temp_hum_t total_temp;
+    uint16_t temperature;
+    uint16_t humidity;
     uint16_t chn_status[64];
     uint16_t open_delay[64];
     uint16_t close_delay[64];
@@ -1932,5 +965,4 @@ void add_day_to_date(char *date_str, int *year, int *month, int *day);
 
 void SetMenuAuthority(int RoleID);
 
->>>>>>> 1a6c6a9ecc73b46498b40e3ded858f5abe7996e9
 #endif