|
|
@ -20,14 +20,16 @@ void H2O2SensorDriver::initialize(UART_HandleTypeDef* huart, ADC_HandleTypeDef* |
|
|
|
m_H2O2Adc.initialize("H2O2Adc", hadc, adcChannel); |
|
|
|
m_HMP110.init(&m_ModbusBlockHost); |
|
|
|
|
|
|
|
m_detectId = 240; |
|
|
|
if (m_HMP110.ping(1)) { |
|
|
|
ZLOGI(TAG, "H2O2 HMP110 Sensor detect id: 1"); |
|
|
|
m_detectId = 1; |
|
|
|
} |
|
|
|
if (m_HMP110.ping(240)) { |
|
|
|
m_detectId = 240; |
|
|
|
} |
|
|
|
m_HMP110.setid(m_detectId); |
|
|
|
ZLOGI(TAG, "H2O2 HMP110 Sensor detect id: %d", m_detectId); |
|
|
|
// ZLOGI(TAG, "H2O2 HMP110 Sensor detect id: %d", m_detectId);
|
|
|
|
|
|
|
|
osThreadDef(H2O2CaptureThread, c_onH2O2CaptureThread, osPriorityNormal, 0, 1024); |
|
|
|
H2O2CaptureThreadId = osThreadCreate(osThread(H2O2CaptureThread), this); |
|
|
@ -62,19 +64,24 @@ int32_t H2O2SensorDriver::h2o2_sensor_data(report_h2o2_data_t* readdata) { |
|
|
|
h2o2adcData = m_H2O2Adc.getCacheVal(); |
|
|
|
m_HMP110.read_cache_sensor_data(&sensordata); |
|
|
|
|
|
|
|
readdata->sensor_error = m_HMP110.read_cache_errorcode() != 0; |
|
|
|
readdata->h2o2 = h2o2adcToPPM(h2o2adcData); |
|
|
|
readdata->humid = sensordata.rh; |
|
|
|
readdata->temp = sensordata.temp; |
|
|
|
readdata->saturation = 0; |
|
|
|
ZLOGI(TAG, "ppm:%d, rh:%d, temp:%d, df_ptemp:%d, ah:%d, mr:%d, wbt:%d, eh:%d", //
|
|
|
|
readdata->h2o2, //
|
|
|
|
sensordata.rh, //
|
|
|
|
sensordata.temp, //
|
|
|
|
sensordata.df_ptemp, //
|
|
|
|
sensordata.ah, //
|
|
|
|
sensordata.mr, //
|
|
|
|
sensordata.wet_bulb_temp, //
|
|
|
|
if (m_detectId > 0) { |
|
|
|
readdata->sensor_error = m_HMP110.read_cache_errorcode() != 0; |
|
|
|
} else { |
|
|
|
readdata->sensor_error = 1; |
|
|
|
} |
|
|
|
readdata->h2o2 = h2o2adcToPPM(h2o2adcData); |
|
|
|
readdata->humid = sensordata.rh; |
|
|
|
readdata->temp = sensordata.temp; |
|
|
|
readdata->saturation = 0; |
|
|
|
ZLOGI(TAG, "ppm:%d(adc:%d), rh:%d, temp:%d, df_ptemp:%d, ah:%d, mr:%d, wbt:%d, eh:%d", //
|
|
|
|
readdata->h2o2, //
|
|
|
|
h2o2adcData, //
|
|
|
|
sensordata.rh, //
|
|
|
|
sensordata.temp, //
|
|
|
|
sensordata.df_ptemp, //
|
|
|
|
sensordata.ah, //
|
|
|
|
sensordata.mr, //
|
|
|
|
sensordata.wet_bulb_temp, //
|
|
|
|
sensordata.enthalpy); |
|
|
|
return 0; |
|
|
|
} |
|
|
@ -82,9 +89,7 @@ int32_t H2O2SensorDriver::h2o2_sensor_data(report_h2o2_data_t* readdata) { |
|
|
|
void H2O2SensorDriver::onH2O2CaptureThread() { |
|
|
|
while (1) { |
|
|
|
osDelay(1000); |
|
|
|
if (m_detectId > 0) { |
|
|
|
m_H2O2Adc.updateAdcValToCache(); |
|
|
|
m_HMP110.updateSensorDataAndErrorcode(); |
|
|
|
} |
|
|
|
m_H2O2Adc.updateAdcValToCache(); |
|
|
|
m_HMP110.updateSensorDataAndErrorcode(); |
|
|
|
} |
|
|
|
} |