|
@@ -2487,8 +2487,16 @@ static void* sensor_thread(void* arg)
|
|
|
_globalSensorMangerTemp->Cur_sensor_info=_globalSensorInfo;
|
|
_globalSensorMangerTemp->Cur_sensor_info=_globalSensorInfo;
|
|
|
|
|
|
|
|
Max_Temprature= _globalSensorInfo.val1*100>Max_Temprature? _globalSensorInfo.val1*100:Max_Temprature;
|
|
Max_Temprature= _globalSensorInfo.val1*100>Max_Temprature? _globalSensorInfo.val1*100:Max_Temprature;
|
|
|
|
|
+ for(int i = 0 ; i < NOARTH_MAX_SENSOR;i++) //最多4个
|
|
|
|
|
+ {
|
|
|
|
|
+ if(_globalSensorMangerTemp->sensor_addr == sen.serser_addr[i])
|
|
|
|
|
+ {
|
|
|
|
|
+ set_sensor_val_modbus(_globalDeviceManager,&_globalSensorInfo,i);
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- set_sensor_val_modbus(_globalDeviceManager,&_globalSensorInfo,_globalSensorMangerTemp->sensor_addr);
|
|
|
|
|
|
|
+ //set_sensor_val_modbus(_globalDeviceManager,&_globalSensorInfo,_globalSensorMangerTemp->sensor_addr);
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
|
|
|
|
@@ -2496,6 +2504,8 @@ static void* sensor_thread(void* arg)
|
|
|
case SENSOR_TYPE_LEAK://泄漏传感器
|
|
case SENSOR_TYPE_LEAK://泄漏传感器
|
|
|
{
|
|
{
|
|
|
sensor_dat_t sdat;
|
|
sensor_dat_t sdat;
|
|
|
|
|
+ bool alarmflag=false;
|
|
|
|
|
+ int alarmType=-1;
|
|
|
ret = sensor_get_data(SENSOR_TYPE_LEAK, SENSOR_TYPE_LEAK_XWDC01A, _globalSensorMangerTemp->sensor_addr, 0, &sdat);
|
|
ret = sensor_get_data(SENSOR_TYPE_LEAK, SENSOR_TYPE_LEAK_XWDC01A, _globalSensorMangerTemp->sensor_addr, 0, &sdat);
|
|
|
if (ret == -1){
|
|
if (ret == -1){
|
|
|
_globalSensorMangerTemp->sensor_check_count++;
|
|
_globalSensorMangerTemp->sensor_check_count++;
|
|
@@ -2515,9 +2525,15 @@ static void* sensor_thread(void* arg)
|
|
|
}
|
|
}
|
|
|
else {
|
|
else {
|
|
|
_globalSensorMangerTemp->sensor_status = 0;
|
|
_globalSensorMangerTemp->sensor_status = 0;
|
|
|
|
|
+ _globalSensorMangerTemp->sensor_check_count = 0;
|
|
|
|
|
+ if (sdat.flag == 1 && _globalSensorMangerTemp->Cur_sensor_info.val1 != 1)
|
|
|
|
|
+ {
|
|
|
|
|
+ alarmflag = true;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
_globalSensorInfo.val1 = sdat.flag;
|
|
_globalSensorInfo.val1 = sdat.flag;
|
|
|
_globalSensorInfo.val2 = 0.0f;
|
|
_globalSensorInfo.val2 = 0.0f;
|
|
|
- _globalSensorMangerTemp->sensor_check_count = 0;
|
|
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
_globalSensorMangerTemp->Cur_sensor_info=_globalSensorInfo;
|
|
_globalSensorMangerTemp->Cur_sensor_info=_globalSensorInfo;
|
|
|
for(int i = 0 ; i < NOARTH_MAX_SENSOR;i++) //最多4个
|
|
for(int i = 0 ; i < NOARTH_MAX_SENSOR;i++) //最多4个
|
|
@@ -2528,6 +2544,21 @@ static void* sensor_thread(void* arg)
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ if (alarmflag){
|
|
|
|
|
+ dev_sensor_Alarm_send_message(&__globalDeviceManage, _globalSensorMangerTemp, -1);
|
|
|
|
|
+ time_t now;
|
|
|
|
|
+ time(&now);
|
|
|
|
|
+ t = localtime(&now);
|
|
|
|
|
+ _globalSensorMangerTemp->Cur_sensor_info.product_log_time = now;
|
|
|
|
|
+ ret = dev_insert_sensor_info(_globalDeviceManager->db, &_globalSensorMangerTemp->Cur_sensor_info, &nSaveIndex);
|
|
|
|
|
+ if (ret != 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ log_e("sensor_temp_write database error.");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
//set_sensor_val_modbus(_globalDeviceManager,&_globalSensorInfo,_globalSensorMangerTemp->sensor_addr);
|
|
//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);
|
|
//printf("_______SENSOR_TYPE_LEAK: addr:%d, %d, %d, ____%f\n", _globalSensorMangerTemp->sensor_addr, ret, sdat.flag, sensor_info.val1);
|