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

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

guohui лет назад: 2
Родитель
Сommit
ae4a079694
4 измененных файлов с 33 добавлено и 10 удалено
  1. 17 6
      pro/src/app.c
  2. 3 3
      pro/src/appweb_handle.c
  3. 11 1
      pro/src/sensor_handle.c
  4. 2 0
      pro/src/sensor_handle.h

+ 17 - 6
pro/src/app.c

@@ -344,7 +344,7 @@ void* power_thread(void* arg)
             
             memcpy(&_globalPowerWarningInfo,
             &_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerWarninginfo[(int)_globalPowerMangerTemp->product_ch_addr-1],
-            sizeof(PowerInfo));
+            sizeof(PowerWarningInfo));
             switch (_globalPowerMangerTemp->product_ch_type)
             {
               case AC_SINGLE_S_TYPE:
@@ -1108,8 +1108,7 @@ void* power_thread(void* arg)
         //动作
 
         //1ms
-            //sleep(1);
-        ///usleep(500*1000);  
+        usleep(5*1000);  
         //延时
         //usleep(samp_time*1000);
     }
@@ -1534,9 +1533,21 @@ void* sensor_thread(void* arg)
             break;
             case SENSOR_TYPE_GAS: // 气体
             {
-                    _globalSensorInfo.val1=0;
-                    _globalSensorInfo.val2=0;
-                    _globalSensorMangerTemp->Cur_sensor_info=_globalSensorInfo;
+                float CO2 = 0.0;
+                ret = _g_sensor_get_CO2_value((void *)&_globalDeviceManager->sensor_modbus_manager,
+                                              _globalSensorMangerTemp->sensor_addr,
+                                              &CO2);
+                if (ret == -1)
+                {
+                    _globalSensorMangerTemp->sensor_status = 1;
+                }
+                else
+                {
+                    _globalSensorMangerTemp->sensor_status = 0;
+                }
+                _globalSensorInfo.val1 = CO2;
+                _globalSensorInfo.val2 = 0;
+                _globalSensorMangerTemp->Cur_sensor_info = _globalSensorInfo;
             }
             break;
             case SENSOR_TYPE_AIR_PRESS: // 气流

+ 3 - 3
pro/src/appweb_handle.c

@@ -2481,17 +2481,17 @@ static void sensorStatusMonitoring(void* conn)
                 break;
                 case SENSOR_TYPE_SMOKE: // 烟雾传感器 1个值
                 {
-                    _overSensorBackInfoTemp->alarmStatus = (bool)_globalSensorInfoTemp->val1; // 1/0 报警未报警
+                    _overSensorBackInfoTemp->alarmStatus =! (bool)_globalSensorInfoTemp->val1; // 1/0 报警未报警
                 }
                 break;
                 case SENSOR_TYPE_WATER: // 水浸传感器
                 {
-                    _overSensorBackInfoTemp->waterImmersionState = (bool)_globalSensorInfoTemp->val1; // 1/0 报警未报警
+                    _overSensorBackInfoTemp->waterImmersionState =! (bool)_globalSensorInfoTemp->val1; // 1/0 报警未报警
                 }
                 break;
                 case SENSOR_TYPE_DOOR: // 门禁传感器 没有值
                 {
-                    _overSensorBackInfoTemp->accessControlStatus = (bool)_globalSensorInfoTemp->val1; // 1/0 报警未报警
+                    _overSensorBackInfoTemp->accessControlStatus =! (bool)_globalSensorInfoTemp->val1; // 1/0 报警未报警
                 }
                 break;
                 case SENSOR_TYPE_GAS: // 气体传感器 1个值

+ 11 - 1
pro/src/sensor_handle.c

@@ -116,7 +116,17 @@ int _gsensor_set_io_status(int saddr,unsigned char sts)
 
 // }
 
-
+int _g_sensor_get_CO2_value(void* manger,int saddr,float* temp)
+{
+    int ret = 0 ;
+    unsigned short data_temp[1] = {0};
+    ret = g_modbus_read_x_reg(manger,saddr,0,1,data_temp);
+    if(ret<=0)
+        return -1 ;
+    //解算气体浓度值
+    *temp = data_temp[0] ;
+    return 0;
+}
 
 
 

+ 2 - 0
pro/src/sensor_handle.h

@@ -10,5 +10,7 @@ int _g_sensor_get_D_temperature_value_ANDERSON(void* manger,int saddr,float* tem
 
 int _gsensor_get_io_status(int saddr,unsigned char* sts);
 
+int _g_sensor_get_CO2_value(void* manger,int saddr,float* temp);
+
 #endif