소스 검색

modbus寄存器bug!!!

liyi 2 년 전
부모
커밋
80388a8298
3개의 변경된 파일과 23개의 추가작업 그리고 15개의 파일을 삭제
  1. 3 3
      pro/src/app.c
  2. 17 11
      pro/src/cascade_slave.c
  3. 3 1
      pro/src/common.h

+ 3 - 3
pro/src/app.c

@@ -1166,8 +1166,8 @@ void* sensor_thread(void* arg)
                 if(_globalDeviceManager->_globalDevInfo.product_pwr_type == SmartPDU_AC ||
                 _globalDeviceManager->_globalDevInfo.product_pwr_type == SmartPDU_DC)
                 {
-                    _globalDeviceManager->single_mmap->total_temp.temperature = _globalSensorInfo.val1 *100;
-                    _globalDeviceManager->single_mmap->total_temp.humidity = _globalSensorInfo.val2 *100;
+                    _globalDeviceManager->single_mmap->temperature = _globalSensorInfo.val1 *100;
+                    _globalDeviceManager->single_mmap->humidity = _globalSensorInfo.val2 *100;
                 }else
                 {
                     if (_globalDeviceManager->triphasic_mmap)
@@ -2298,7 +2298,7 @@ int _global_device_manage_init(GlobalDeviceManager* _globalDeviceManager)
     appweb_init();
 
     cascade_init();
-    netswitch_init();
+    //netswitch_init();
 
     //通知smartUPG,app已经运行起来
     upg_init();

+ 17 - 11
pro/src/cascade_slave.c

@@ -10,10 +10,11 @@
 #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 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 CHN_SET_OPEN_DLA_REG        (5000)
 #define CHN_SET_CLOSE_DLA_REG       (5064)
 #define CHN_SET_SWITCH_STA_REG      (5128)
@@ -31,7 +32,8 @@ enum {
     DS_R_DEV_CHN = 0,
     DS_R_OUT_INFO,
     DS_R_IN_TOTAL,
-    DS_R_TEMP_HUM,
+    DS_R_TEMP,
+    DS_R_HUM,
     DS_R_SWITCH_STA,
     DS_R_OPEN_DELAY,
     DS_R_CLOSE_DELAY,
@@ -90,7 +92,8 @@ 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_TEMP          ]{.offset = TEM_REG                 },
+    [DS_R_HUM           ]{.offset = 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       },
@@ -146,7 +149,8 @@ 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_HUM         ].addr = &mgr->single_mmap->total_temp;
+        modbus_single[DS_R_TEMP             ].addr = &mgr->single_mmap->temperature;
+        modbus_single[DS_R_HUM              ].addr= &mgr->single_mmap->humidity;
         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;
@@ -259,14 +263,16 @@ void cascade_slave_read(uint32_t addr,uint32_t lenth)
             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_TEMP,TYPE_U16);
+        case 4390:
+            slave_read(sh,addr,lenth,DS_R_HUM,TYPE_U16);
+        case 4391 ... 4454:
             slave_read(sh,addr,lenth,DS_R_SWITCH_STA,TYPE_U16);
         break;
-        case 4454 ... 4517:
+        case 4455 ... 4518:
             slave_read(sh,addr,lenth,DS_R_OPEN_DELAY,TYPE_U16);
         break;
-        case 4518 ... 4581:
+        case 4519 ... 4582:
             slave_read(sh,addr,lenth,DS_R_CLOSE_DELAY,TYPE_U16);
         break;
         case 5000 ... 5063:

+ 3 - 1
pro/src/common.h

@@ -740,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];