Просмотр исходного кода

西安三相读不出温度值!

liyi лет назад: 2
Родитель
Сommit
5de83900da
3 измененных файлов с 986 добавлено и 978 удалено
  1. 2 2
      pro/src/app.c
  2. 17 11
      pro/src/cascade_slave.c
  3. 967 965
      pro/src/common.h

+ 2 - 2
pro/src/app.c

@@ -1166,8 +1166,8 @@ void* sensor_thread(void* arg)
                 if(_globalDeviceManager->_global_device_info->product_pwr_type == SmartPDU_AC ||
                 _globalDeviceManager->_global_device_info->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)

+ 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:

Разница между файлами не показана из-за своего большого размера
+ 967 - 965
pro/src/common.h