diff --git a/app_protocols/transmit_disfection_protocol b/app_protocols/transmit_disfection_protocol index 0edd82d..c1c23f5 160000 --- a/app_protocols/transmit_disfection_protocol +++ b/app_protocols/transmit_disfection_protocol @@ -1 +1 @@ -Subproject commit 0edd82d824736ca1d4d2f113a382204e702709bc +Subproject commit c1c23f522c5daa18dc89587ff25310d526aa2ca3 diff --git a/ucomponents/hmp110/hmp110.cpp b/ucomponents/hmp110/hmp110.cpp index a162cd2..ad04dac 100644 --- a/ucomponents/hmp110/hmp110.cpp +++ b/ucomponents/hmp110/hmp110.cpp @@ -20,7 +20,6 @@ bool HMP110::readReg03(uint8_t slaveAddr, uint16_t regAddr, uint16_t* regVal, in bool ret = m_modbusBlockHost->readReg03(slaveAddr, regAddr, regVal, overtimems); // ZLOGI(TAG, "=============== END%d", ret); - return ret; } bool HMP110::readReg03Muti(uint8_t slaveAddr, uint16_t regAddr, uint16_t* regVal, int regNum, int overtimems) { // @@ -72,19 +71,22 @@ bool HMP110::read_reg(int32_t add, uint16_t* val, size_t len) { } bool HMP110::read_sensor_data(hmp110_sensordata_t* sensordata) { - uint16_t buf[7]; - bool suc = readReg03Muti(m_id, 0x0100, buf, 7, 300); + static_assert(sizeof(hmp110_sensordata_t) == 14 * 2, "sizeof(hmp110_sensordata_t) != 14*2"); + uint16_t buf[14]; + bool suc = readReg03Muti(m_id, 0x0100, buf, 14, 300); if (!suc) { return false; } - sensordata->rh = buf[0]; - sensordata->temp = buf[1]; - sensordata->df_ptemp = buf[2]; - sensordata->ah = buf[3]; - sensordata->mr = buf[4]; - sensordata->wet_bulb_temp = buf[5]; - sensordata->enthalpy = buf[6]; + memset(sensordata, 0, sizeof(hmp110_sensordata_t)); + memcpy(sensordata, buf, sizeof(hmp110_sensordata_t)); + // sensordata->rh = buf[0]; + // sensordata->temp = buf[1]; + // sensordata->df_ptemp = buf[2]; + // sensordata->ah = buf[3]; + // sensordata->mr = buf[4]; + // sensordata->wet_bulb_temp = buf[5]; + // sensordata->enthalpy = buf[6]; return true; } diff --git a/ucomponents/hmp110/hmp110.hpp b/ucomponents/hmp110/hmp110.hpp index 2aed003..eeb7e89 100644 --- a/ucomponents/hmp110/hmp110.hpp +++ b/ucomponents/hmp110/hmp110.hpp @@ -14,14 +14,22 @@ class HMP110 { #pragma pack(1) typedef struct { - int16_t rh; // Relative humidity %RH * 10 - int16_t temp; // Temperature °C * 10 - int16_t df_ptemp; // Dew/frost point temperature °C * 10 - int16_t ah; // Absolute humidity g/m3 * 10 - int16_t mr; // Mixing ratio g/kg * 10 - int16_t wet_bulb_temp; // Wet-bulb temperature °C * 10 - int16_t enthalpy; // Enthalpy kJ/kg * 10 + int16_t rh; // 257 Relative humidity %RH * 10 + int16_t temp; // 258 Temperature °C * 10 + int16_t placeholder0; // 259 + int16_t placeholder1; // 260 + int16_t df_ptemp; // 261 Dew/frost point temperature °C * 10 + int16_t placeholder2; // 262 + int16_t placeholder3; // 263 + int16_t ah; // 264 Absolute humidity g/m3 * 10 + int16_t mr; // 265 Mixing ratio g/kg * 10 + int16_t wet_bulb_temp; // 266 Wet-bulb temperature °C * 10 + int16_t placeholder4; // 267 + int16_t placeholder5; // 268 + int16_t placeholder6; // 269 + int16_t enthalpy; // 270 Enthalpy kJ/kg * 10 } hmp110_sensordata_t; + #pragma pack() private: diff --git a/usrc/module/h2o2_sensor.cpp b/usrc/module/h2o2_sensor.cpp index bd7feca..5706618 100644 --- a/usrc/module/h2o2_sensor.cpp +++ b/usrc/module/h2o2_sensor.cpp @@ -77,11 +77,16 @@ int32_t H2O2Sensor::h2o2_sensor_data(report_h2o2_data_t* readdata) { } else { readdata->sensor_error = 1; } - readdata->h2o2 = h2o2adcToPPM(h2o2adcData); - readdata->h2o2adc = h2o2adcData; - readdata->rh = sensordata.rh; - readdata->temp = sensordata.temp; - readdata->rs = 0; + readdata->h2o2 = h2o2adcToPPM(h2o2adcData); + readdata->h2o2adc = h2o2adcData; + readdata->rh = sensordata.rh; + readdata->temp = sensordata.temp; + readdata->df_ptemp = sensordata.df_ptemp; + readdata->ah = sensordata.ah; + readdata->mr = sensordata.mr; + readdata->wet_bulb_temp = sensordata.wet_bulb_temp; + readdata->enthalpy = sensordata.enthalpy; + readdata->rs = 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, //