Clean up temperature msg fields (#24272)

* remove temp field from airspeed.msg, adjust temp selection

* temp-sensor hirarchy: airspeed, ext. baro, default value

* directly use diff-press or baro temp in true-airspeed  calc

* improve clarity

* add enum for temperature source in VehicleAirData.msg
This commit is contained in:
Marco Hauswirth
2025-02-18 13:23:10 +01:00
committed by GitHub
parent 90b2290700
commit d2cbe10243
13 changed files with 50 additions and 58 deletions
-1
View File
@@ -2669,7 +2669,6 @@ MavlinkReceiver::handle_message_hil_state_quaternion(mavlink_message_t *msg)
airspeed.timestamp_sample = timestamp_sample;
airspeed.indicated_airspeed_m_s = hil_state.ind_airspeed * 1e-2f;
airspeed.true_airspeed_m_s = hil_state.true_airspeed * 1e-2f;
airspeed.air_temperature_celsius = 15.f;
airspeed.timestamp = hrt_absolute_time();
_airspeed_pub.publish(airspeed);
}
+1 -1
View File
@@ -193,7 +193,7 @@ private:
msg.abs_pressure = air_data.baro_pressure_pa;
msg.diff_pressure = differential_pressure.differential_pressure_pa;
msg.pressure_alt = air_data.baro_alt_meter;
msg.temperature = air_data.baro_temp_celcius;
msg.temperature = air_data.ambient_temperature;
msg.fields_updated = fields_updated;
mavlink_msg_highres_imu_send_struct(_mavlink->get_channel(), &msg);
+12 -1
View File
@@ -57,6 +57,7 @@
#include <uORB/topics/vehicle_status.h>
#include <uORB/topics/failsafe_flags.h>
#include <uORB/topics/health_report.h>
#include <uORB/topics/vehicle_air_data.h>
#include <px4_platform_common/events.h>
@@ -521,6 +522,7 @@ private:
update_gps();
update_vehicle_status();
update_wind();
update_vehicle_air_data();
}
void update_airspeed()
@@ -529,7 +531,6 @@ private:
if (_airspeed_sub.update(&airspeed)) {
_airspeed.add_value(airspeed.indicated_airspeed_m_s, _update_rate_filtered);
_temperature.add_value(airspeed.air_temperature_celsius, _update_rate_filtered);
}
}
@@ -610,6 +611,15 @@ private:
}
}
void update_vehicle_air_data()
{
vehicle_air_data_s air_data;
if (_vehicle_air_data_sub.update(&air_data)) {
_temperature.add_value(air_data.ambient_temperature, _update_rate_filtered);
}
}
void set_default_values(mavlink_high_latency2_t &msg) const
{
msg.airspeed = 0;
@@ -659,6 +669,7 @@ private:
uORB::Subscription _tecs_status_sub{ORB_ID(tecs_status)};
uORB::Subscription _wind_sub{ORB_ID(wind)};
uORB::Subscription _health_report_sub{ORB_ID(health_report)};
uORB::Subscription _vehicle_air_data_sub{ORB_ID(vehicle_air_data)};
SimpleAnalyzer _airspeed;
SimpleAnalyzer _airspeed_sp;