diff --git a/src/modules/uavcan/sensors/baro.cpp b/src/modules/uavcan/sensors/baro.cpp index 8198d1d994..50655d9180 100644 --- a/src/modules/uavcan/sensors/baro.cpp +++ b/src/modules/uavcan/sensors/baro.cpp @@ -46,9 +46,7 @@ UavcanBarometerBridge::UavcanBarometerBridge(uavcan::INode &node) : _sub_air_pressure_data(node), _sub_air_temperature_data(node), _reports(nullptr) -{ - last_temperature = 0.0f; -} +{ } int UavcanBarometerBridge::init() { @@ -154,7 +152,7 @@ int UavcanBarometerBridge::ioctl(struct file *filp, int cmd, unsigned long arg) void UavcanBarometerBridge::air_temperature_sub_cb(const uavcan::ReceivedDataStructure &msg) { - last_temperature = msg.static_temperature; + last_temperature_kelvin = msg.static_temperature; } void UavcanBarometerBridge::air_pressure_sub_cb(const @@ -163,7 +161,7 @@ void UavcanBarometerBridge::air_pressure_sub_cb(const baro_report report; report.timestamp = msg.getMonotonicTimestamp().toUSec(); - report.temperature = last_temperature; + report.temperature = last_temperature_kelvin - 273.15F; report.pressure = msg.static_pressure / 100.0F; // Convert to millibar report.error_count = 0; diff --git a/src/modules/uavcan/sensors/baro.hpp b/src/modules/uavcan/sensors/baro.hpp index 98dc5cf42f..4024cb156b 100644 --- a/src/modules/uavcan/sensors/baro.hpp +++ b/src/modules/uavcan/sensors/baro.hpp @@ -77,6 +77,6 @@ private: uavcan::Subscriber _sub_air_temperature_data; unsigned _msl_pressure = 101325; RingBuffer *_reports; - float last_temperature; + float last_temperature_kelvin = 0.0; };