Ver código fonte

解决传感器页面显示问题

guohui 1 ano atrás
pai
commit
d1af7c7240
3 arquivos alterados com 12 adições e 7 exclusões
  1. 9 4
      pro/src/app.c
  2. 2 2
      pro/src/cascade_slave.c
  3. 1 1
      pro/src/sensor_handle.c

+ 9 - 4
pro/src/app.c

@@ -1549,6 +1549,9 @@ static void* sensor_thread(void* arg)
         lock_s_hold(LOCK_ID_SENSOR);
         list_for_each_entry(_globalSensorMangerTemp, &_globalDeviceManager->_globalSensorManger.list, list)
         {
+            _globalSensorInfo.val1 = 0.0f;
+            _globalSensorInfo.val2 = 0.0f;
+
             gettimeofday(&tv, &tz);
             t = localtime(&tv.tv_sec);
             sprintf(_globalSensorInfo.samp_time, "%04d-%02d-%02d %02d:%02d:%02d.%03ld",
@@ -1677,7 +1680,7 @@ static void* sensor_thread(void* arg)
                 else {
                     _globalSensorMangerTemp->sensor_status = 0;
                     _globalSensorInfo.val1 = sdat.val[0];
-                    _globalSensorInfo.val2 = -1;
+                    _globalSensorInfo.val2 = 0.0f;
                 }
                 _globalSensorMangerTemp->Cur_sensor_info=_globalSensorInfo;
                 set_sensor_val_modbus(_globalDeviceManager,&_globalSensorInfo,_globalSensorMangerTemp->sensor_addr);
@@ -1695,18 +1698,20 @@ static void* sensor_thread(void* arg)
                 else {
                     _globalSensorMangerTemp->sensor_status = 0;
                     _globalSensorInfo.val1 = sdat.flag;
-                    _globalSensorInfo.val2 = -1;
+                    _globalSensorInfo.val2 = 0.0f;
                 }
                 _globalSensorMangerTemp->Cur_sensor_info=_globalSensorInfo;
                 //set_sensor_val_modbus(_globalDeviceManager,&_globalSensorInfo,_globalSensorMangerTemp->sensor_addr);
+
+                //printf("_______SENSOR_TYPE_LEAK: addr:%d, %d, %d, ____%f\n", _globalSensorMangerTemp->sensor_addr, ret, sdat.flag, sensor_info.val1);
                 if(_globalDeviceManager->_globalDevInfo.product.pwr_type == SmartPDU_AC ||
                             _globalDeviceManager->_globalDevInfo.product.pwr_type == SmartPDU_DC)
                 {
-                    _globalDeviceManager->single_mmap->cas_sensor[_globalSensorMangerTemp->sensor_addr-1].s_1 = info->val;
+                    _globalDeviceManager->single_mmap->cas_sensor[_globalSensorMangerTemp->sensor_addr-1].s_1 = _globalSensorInfo.val1;
                     _globalDeviceManager->single_mmap->cas_sensor[_globalSensorMangerTemp->sensor_addr-1].s_2 = 0xFFFFFFFF;
                 }else
                 {
-                    _globalDeviceManager->triphasic_mmap->cas_sensor[_globalSensorMangerTemp->sensor_addr-1].s_1 = info->val;
+                    _globalDeviceManager->triphasic_mmap->cas_sensor[_globalSensorMangerTemp->sensor_addr-1].s_1 = _globalSensorInfo.val1;
                     _globalDeviceManager->triphasic_mmap->cas_sensor[_globalSensorMangerTemp->sensor_addr-1].s_2 = 0xFFFFFFFF;
                 }
             }

+ 2 - 2
pro/src/cascade_slave.c

@@ -189,8 +189,8 @@ int cascade_slave_init(void)
         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_R_SENSOR         ].addr = &mgr->triphasic_mmap->cas_sensor;
-        modbus_three[TREE_R_DRY            ].addr = &mgr->triphasic_mmap->d_node;
+        modbus_three[TREE_R_SENSOR          ].addr = &mgr->triphasic_mmap->cas_sensor[0];
+        modbus_three[TREE_R_DRY             ].addr = &mgr->triphasic_mmap->d_node;
 
         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;

+ 1 - 1
pro/src/sensor_handle.c

@@ -260,7 +260,7 @@ int sensor_get_data(int type, int subtype, int addr, int subaddr, sensor_dat_t *
         break;
     }
 
-    return r;
+    return 0;
 }