|
@@ -1966,6 +1966,16 @@ static void* sensor_thread(void* arg)
|
|
|
}
|
|
}
|
|
|
if(sen.count > 0)
|
|
if(sen.count > 0)
|
|
|
qsort(sen.serser_addr,sen.count,sizeof(uint8_t),compare_uint8_s);
|
|
qsort(sen.serser_addr,sen.count,sizeof(uint8_t),compare_uint8_s);
|
|
|
|
|
+
|
|
|
|
|
+ //_globalDeviceManager->g_modebus_read.temprature = 0;
|
|
|
|
|
+ // _globalDeviceManager->g_modebus_read.humidity = 0;
|
|
|
|
|
+ // _globalDeviceManager->g_modebus_read.fCO2 = 0;
|
|
|
|
|
+
|
|
|
|
|
+ uint32_t Max_Temprature=0;
|
|
|
|
|
+ uint32_t Max_Temprature2=0;
|
|
|
|
|
+ uint32_t Max_humi=0;
|
|
|
|
|
+ uint32_t Max_CO2=0;
|
|
|
|
|
+
|
|
|
lock_s_hold(LOCK_ID_SENSOR);
|
|
lock_s_hold(LOCK_ID_SENSOR);
|
|
|
list_for_each_entry(_globalSensorMangerTemp, &_globalDeviceManager->_globalSensorManger.list, list)
|
|
list_for_each_entry(_globalSensorMangerTemp, &_globalDeviceManager->_globalSensorManger.list, list)
|
|
|
{
|
|
{
|
|
@@ -2040,8 +2050,10 @@ static void* sensor_thread(void* arg)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
_globalSensorMangerTemp->Cur_sensor_info=_globalSensorInfo;
|
|
_globalSensorMangerTemp->Cur_sensor_info=_globalSensorInfo;
|
|
|
- _globalDeviceManager->g_modebus_read.temprature=temperature*100;
|
|
|
|
|
- _globalDeviceManager->g_modebus_read.humidity=humidity*100;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ Max_Temprature= _globalSensorInfo.val1*100>Max_Temprature? _globalSensorInfo.val1*100:Max_Temprature;
|
|
|
|
|
+ Max_humi= _globalSensorInfo.val2*100>Max_humi? _globalSensorInfo.val2*100:Max_humi;
|
|
|
|
|
+
|
|
|
for(int i =0 ; i < NOARTH_MAX_SENSOR;i++) //最多4个
|
|
for(int i =0 ; i < NOARTH_MAX_SENSOR;i++) //最多4个
|
|
|
{
|
|
{
|
|
|
if(_globalSensorMangerTemp->sensor_addr == sen.serser_addr[i])
|
|
if(_globalSensorMangerTemp->sensor_addr == sen.serser_addr[i])
|
|
@@ -2134,7 +2146,9 @@ static void* sensor_thread(void* arg)
|
|
|
_globalSensorMangerTemp->sensor_check_count = 0;
|
|
_globalSensorMangerTemp->sensor_check_count = 0;
|
|
|
}
|
|
}
|
|
|
_globalSensorMangerTemp->Cur_sensor_info = _globalSensorInfo;
|
|
_globalSensorMangerTemp->Cur_sensor_info = _globalSensorInfo;
|
|
|
- _globalDeviceManager->g_modebus_read.fCO2=CO2*100;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ Max_CO2 = _globalSensorInfo.val1 * 100 > Max_CO2 ? _globalSensorInfo.val1 * 100 : Max_CO2;
|
|
|
|
|
+
|
|
|
for(int i = 0 ; i < NOARTH_MAX_SENSOR;i++) //最多4个
|
|
for(int i = 0 ; i < NOARTH_MAX_SENSOR;i++) //最多4个
|
|
|
{
|
|
{
|
|
|
if(_globalSensorMangerTemp->sensor_addr == sen.serser_addr[i])
|
|
if(_globalSensorMangerTemp->sensor_addr == sen.serser_addr[i])
|
|
@@ -2187,6 +2201,9 @@ static void* sensor_thread(void* arg)
|
|
|
_globalSensorMangerTemp->sensor_check_count = 0;
|
|
_globalSensorMangerTemp->sensor_check_count = 0;
|
|
|
}
|
|
}
|
|
|
_globalSensorMangerTemp->Cur_sensor_info=_globalSensorInfo;
|
|
_globalSensorMangerTemp->Cur_sensor_info=_globalSensorInfo;
|
|
|
|
|
+
|
|
|
|
|
+ Max_Temprature= _globalSensorInfo.val1*100>Max_Temprature? _globalSensorInfo.val1*100:Max_Temprature;
|
|
|
|
|
+
|
|
|
set_sensor_val_modbus(_globalDeviceManager,&_globalSensorInfo,_globalSensorMangerTemp->sensor_addr);
|
|
set_sensor_val_modbus(_globalDeviceManager,&_globalSensorInfo,_globalSensorMangerTemp->sensor_addr);
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
@@ -2276,8 +2293,10 @@ static void* sensor_thread(void* arg)
|
|
|
// log_d("sensor val:%0.2f %0.2f\n",temperature,humidity);
|
|
// log_d("sensor val:%0.2f %0.2f\n",temperature,humidity);
|
|
|
// printf("get temperature=%f humidity=%f\n",temperature,humidity);
|
|
// printf("get temperature=%f humidity=%f\n",temperature,humidity);
|
|
|
_globalSensorMangerTemp->Cur_sensor_info=_globalSensorInfo;
|
|
_globalSensorMangerTemp->Cur_sensor_info=_globalSensorInfo;
|
|
|
- _globalDeviceManager->g_modebus_read.temprature=temperature*100;
|
|
|
|
|
- _globalDeviceManager->g_modebus_read.temprature2=temperature2*100;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ Max_Temprature= _globalSensorInfo.val1*100>Max_Temprature? _globalSensorInfo.val1*100:Max_Temprature;
|
|
|
|
|
+ Max_Temprature2= _globalSensorInfo.val2*100>Max_Temprature2? _globalSensorInfo.val2*100:Max_Temprature2;
|
|
|
|
|
+
|
|
|
for(int i = 0 ; i < NOARTH_MAX_SENSOR;i++) //最多4个
|
|
for(int i = 0 ; i < NOARTH_MAX_SENSOR;i++) //最多4个
|
|
|
{
|
|
{
|
|
|
if(_globalSensorMangerTemp->sensor_addr == sen.serser_addr[i])
|
|
if(_globalSensorMangerTemp->sensor_addr == sen.serser_addr[i])
|
|
@@ -2326,6 +2345,12 @@ static void* sensor_thread(void* arg)
|
|
|
else usleep(1000);
|
|
else usleep(1000);
|
|
|
}
|
|
}
|
|
|
lock_s_release(LOCK_ID_SENSOR);
|
|
lock_s_release(LOCK_ID_SENSOR);
|
|
|
|
|
+
|
|
|
|
|
+ _globalDeviceManager->g_modebus_read.temprature = Max_Temprature;
|
|
|
|
|
+ _globalDeviceManager->g_modebus_read.temprature2 = Max_Temprature2;
|
|
|
|
|
+ _globalDeviceManager->g_modebus_read.humidity = Max_humi;
|
|
|
|
|
+ _globalDeviceManager->g_modebus_read.fCO2 = Max_CO2;
|
|
|
|
|
+
|
|
|
sleep(1);
|
|
sleep(1);
|
|
|
}
|
|
}
|
|
|
#endif
|
|
#endif
|