ソースを参照

Merge branch 'master' of http://jiecheng2024.tpddns.cn:3000/liyuezong/SmartPDCode

guohui 2 年 前
親
コミット
22334c674f
共有5 個のファイルを変更した、31 個の追加 と 33 個の削除を含む
  1. 2 2
      pro/src/app.c
  2. 3 3
      pro/src/appweb_handle.c
  3. 8 3
      pro/src/breaker_detection.c
  4. 16 22
      pro/src/cascade_slave.c
  5. 2 3
      pro/src/common.h

+ 2 - 2
pro/src/app.c

@@ -1170,8 +1170,8 @@ void* sensor_thread(void* arg)
                 if(_globalDeviceManager->_globalDevInfo.product_pwr_type == SmartPDU_AC ||
                 _globalDeviceManager->_globalDevInfo.product_pwr_type == SmartPDU_DC)
                 {
-                    _globalDeviceManager->single_mmap->temperature = _globalSensorInfo.val1 *100;
-                    _globalDeviceManager->single_mmap->humidity = _globalSensorInfo.val2 *100;
+                    _globalDeviceManager->single_mmap->total_temp.temperature = _globalSensorInfo.val1 *100;
+                    _globalDeviceManager->single_mmap->total_temp.humidity = _globalSensorInfo.val2 *100;
                 }else
                 {
                     if (_globalDeviceManager->triphasic_mmap)

+ 3 - 3
pro/src/appweb_handle.c

@@ -1321,7 +1321,7 @@ static void channelStatusMonitoring(void* conn)
 #endif
 
         int product_chn_id = 0 ;
-        log_i("channel status request:open");
+        log_i("channel status request:listDlTotalQuery");
         product_chn_id = _over_chn_pwr_request.productChId;
         log_d("productChId:%d",product_chn_id);
 
@@ -1352,7 +1352,7 @@ static void channelStatusMonitoring(void* conn)
 #endif
 
        int product_chn_id = 0 ;
-        log_i("channel status request:open");
+        log_i("channel status request:listGlTotalQuery");
         product_chn_id = _over_chn_pwr_request.productChId;
         log_d("productChId:%d",product_chn_id);
 
@@ -1383,7 +1383,7 @@ static void channelStatusMonitoring(void* conn)
         #endif
 
         int product_chn_id = 0 ;
-        log_i("channel status request:open");
+        log_i("channel status request:listHdlTotalQuery");
         product_chn_id = _over_chn_pwr_request.productChId;
         log_d("productChId:%d",product_chn_id);
 

+ 8 - 3
pro/src/breaker_detection.c

@@ -119,7 +119,6 @@ int breaker_485_get_chn_status(void* manger,int saddr,int channel,unsigned short
     ret = g_modbus_read_reg(manger,saddr,channel,&data_temp);
     if(ret<=0)
     {
-        printf("erriiiirrr!!!\n");
         return -1 ;
     }
         
@@ -179,6 +178,11 @@ void* breaker_scanner_thread(void* argv)
     {
         ret = breaker_485_get_chn_status((void*)&gm->_globalRelaySampManger,
                 BREADER_485_ADDR+i,BREADER_485_ADDR_CHN_REG,&value);
+        if(ret < 0)
+        {
+            ret = breaker_485_get_chn_status((void*)&gm->_globalRelaySampManger,
+                BREADER_485_ADDR+i,BREADER_485_ADDR_CHN_REG,&value);
+        }
         if(ret == 0)
         {
             breaker_scanner.breaker_flag[i] = 1;
@@ -191,7 +195,8 @@ void* breaker_scanner_thread(void* argv)
 
     while(h->quit==0)
     {
-        if((count % 10) == 1)
+        //改为启动的时候和web端手动添加开关的时候,检测一次开关控制板在不在线,其他时候就不扫描了
+      /*  if((count % 10) == 1)
         {
             for(int i = 0; i < BREAKER_BOARD_MAX; i++)
             {
@@ -205,7 +210,7 @@ void* breaker_scanner_thread(void* argv)
                     breaker_scanner.breaker_flag[i] = 0;
                 }
             }
-        }
+        }*/
 
         for(int i = 0; i < BREAKER_BOARD_MAX; i++)
         {

+ 16 - 22
pro/src/cascade_slave.c

@@ -9,12 +9,11 @@
 
 #define DEV_CHN_REG                 (4000)  
 #define OUT_INFO_REG                (4001)     
-#define IN_TOTAL_REG                (4385)  
-#define TEM_REG                     (4389)     
-#define HUMAN_REG                   (4390)
-#define CHN_SWITCH_REG              (4391)
-#define CHN_OPEN_DLA_REG            (4455)
-#define CHN_CLOSE_DLA_REG           (4519)
+#define IN_TOTAL_REG                (4768)  
+#define TEM_HUMAN_REG               (4777)       
+#define CHN_SWITCH_REG              (4779)
+#define CHN_OPEN_DLA_REG            (4843)
+#define CHN_CLOSE_DLA_REG           (4907)
 #define CHN_SET_OPEN_DLA_REG        (5000)
 #define CHN_SET_CLOSE_DLA_REG       (5064)
 #define CHN_SET_SWITCH_STA_REG      (5128)
@@ -32,8 +31,7 @@ enum {
     DS_R_DEV_CHN = 0,
     DS_R_OUT_INFO,
     DS_R_IN_TOTAL,
-    DS_R_TEMP,
-    DS_R_HUM,
+    DS_R_TEMP_HUM,
     DS_R_SWITCH_STA,
     DS_R_OPEN_DELAY,
     DS_R_CLOSE_DELAY,
@@ -92,8 +90,7 @@ 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          ]{.offset = TEM_REG                 },
-    [DS_R_HUM           ]{.offset = HUMAN_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       },
@@ -149,8 +146,7 @@ int cascade_slave_init(void)
         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             ].addr = &mgr->single_mmap->temperature;
-        modbus_single[DS_R_HUM              ].addr= &mgr->single_mmap->humidity;
+        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;
@@ -210,7 +206,7 @@ static void slave_read(slave_handle_t *sh, uint32_t addr,int num,uint32_t reg_ty
             {
                 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);
+                base_addr = base_addr + (addr - modbus_single[reg_type].offset) / 2;
                 uint32_t *map_addr = (uint32_t *)&(sh->map->tab_registers[step]);
                 if(num < 126)
                 {
@@ -256,23 +252,21 @@ void cascade_slave_read(uint32_t addr,uint32_t lenth)
         case 4000:
             slave_read(sh,addr,lenth,DS_R_DEV_CHN,TYPE_U16);
         break;
-        case 4001 ... 4384:
+        case 4001 ... 4768:
             slave_read(sh,addr,lenth,DS_R_OUT_INFO,TYPE_U32);
         break;
-        case 4385 ... 4388:
+        case 4769 ... 4776:
             slave_read(sh,addr,lenth,DS_R_IN_TOTAL,TYPE_U32);
         break;
-        case 4389:
-            slave_read(sh,addr,lenth,DS_R_TEMP,TYPE_U16);
-        case 4390:
-            slave_read(sh,addr,lenth,DS_R_HUM,TYPE_U16);
-        case 4391 ... 4454:
+        case 4777 ... 4778:
+            slave_read(sh,addr,lenth,DS_R_TEMP_HUM,TYPE_U16);
+        case 4779 ... 4842:
             slave_read(sh,addr,lenth,DS_R_SWITCH_STA,TYPE_U16);
         break;
-        case 4455 ... 4518:
+        case 4843 ... 4906:
             slave_read(sh,addr,lenth,DS_R_OPEN_DELAY,TYPE_U16);
         break;
-        case 4519 ... 4582:
+        case 4907 ... 4970:
             slave_read(sh,addr,lenth,DS_R_CLOSE_DELAY,TYPE_U16);
         break;
         case 5000 ... 5063:

+ 2 - 3
pro/src/common.h

@@ -741,9 +741,8 @@ typedef struct cascade_single_mmap{
     uint32_t total_current;
     uint32_t total_power;
     uint32_t total_consumer;
-    //temp_hum_t total_temp;
-    uint16_t temperature;
-    uint16_t humidity;
+    temp_hum_t total_temp;
+
     uint16_t chn_status[64];
     uint16_t open_delay[64];
     uint16_t close_delay[64];