mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-11-01 06:11:35 +08:00
Move changes regarding the filtered airspeed consistently across sensors, use actual air temperature instead of board temperature
This commit is contained in:
@@ -176,11 +176,14 @@ ETSAirspeed::collect()
|
|||||||
_max_differential_pressure_pa = diff_pres_pa;
|
_max_differential_pressure_pa = diff_pres_pa;
|
||||||
}
|
}
|
||||||
|
|
||||||
// XXX we may want to smooth out the readings to remove noise.
|
|
||||||
differential_pressure_s report;
|
differential_pressure_s report;
|
||||||
report.timestamp = hrt_absolute_time();
|
report.timestamp = hrt_absolute_time();
|
||||||
report.error_count = perf_event_count(_comms_errors);
|
report.error_count = perf_event_count(_comms_errors);
|
||||||
report.differential_pressure_pa = (float)diff_pres_pa;
|
report.differential_pressure_pa = (float)diff_pres_pa;
|
||||||
|
|
||||||
|
// XXX we may want to smooth out the readings to remove noise.
|
||||||
|
report.differential_pressure_filtered_pa = (float)diff_pres_pa;
|
||||||
|
report.temperature = -1000.0f;
|
||||||
report.voltage = 0;
|
report.voltage = 0;
|
||||||
report.max_differential_pressure_pa = _max_differential_pressure_pa;
|
report.max_differential_pressure_pa = _max_differential_pressure_pa;
|
||||||
|
|
||||||
|
|||||||
@@ -1031,10 +1031,12 @@ Sensors::diff_pres_poll(struct sensor_combined_s &raw)
|
|||||||
raw.differential_pressure_timestamp = _diff_pres.timestamp;
|
raw.differential_pressure_timestamp = _diff_pres.timestamp;
|
||||||
raw.differential_pressure_filtered_pa = _diff_pres.differential_pressure_filtered_pa;
|
raw.differential_pressure_filtered_pa = _diff_pres.differential_pressure_filtered_pa;
|
||||||
|
|
||||||
|
float air_temperature_celcius = (_diff_pres.temperature > -300.0f) ? _diff_pres.temperature : (raw.baro_temp_celcius - PCB_TEMP_ESTIMATE_DEG);
|
||||||
|
|
||||||
_airspeed.timestamp = _diff_pres.timestamp;
|
_airspeed.timestamp = _diff_pres.timestamp;
|
||||||
_airspeed.indicated_airspeed_m_s = calc_indicated_airspeed(_diff_pres.differential_pressure_filtered_pa);
|
_airspeed.indicated_airspeed_m_s = calc_indicated_airspeed(_diff_pres.differential_pressure_filtered_pa);
|
||||||
_airspeed.true_airspeed_m_s = calc_true_airspeed(_diff_pres.differential_pressure_filtered_pa + raw.baro_pres_mbar * 1e2f,
|
_airspeed.true_airspeed_m_s = calc_true_airspeed(_diff_pres.differential_pressure_filtered_pa + raw.baro_pres_mbar * 1e2f,
|
||||||
raw.baro_pres_mbar * 1e2f, raw.baro_temp_celcius - PCB_TEMP_ESTIMATE_DEG);
|
raw.baro_pres_mbar * 1e2f, air_temperature_celcius);
|
||||||
|
|
||||||
/* announce the airspeed if needed, just publish else */
|
/* announce the airspeed if needed, just publish else */
|
||||||
if (_airspeed_pub > 0) {
|
if (_airspeed_pub > 0) {
|
||||||
@@ -1239,6 +1241,8 @@ Sensors::adc_poll(struct sensor_combined_s &raw)
|
|||||||
|
|
||||||
_diff_pres.timestamp = t;
|
_diff_pres.timestamp = t;
|
||||||
_diff_pres.differential_pressure_pa = diff_pres_pa;
|
_diff_pres.differential_pressure_pa = diff_pres_pa;
|
||||||
|
_diff_pres.differential_pressure_filtered_pa = diff_pres_pa;
|
||||||
|
_diff_pres.temperature = -1000.0f;
|
||||||
_diff_pres.voltage = voltage;
|
_diff_pres.voltage = voltage;
|
||||||
|
|
||||||
/* announce the airspeed if needed, just publish else */
|
/* announce the airspeed if needed, just publish else */
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ struct differential_pressure_s {
|
|||||||
float differential_pressure_filtered_pa; /**< Low pass filtered differential pressure reading */
|
float differential_pressure_filtered_pa; /**< Low pass filtered differential pressure reading */
|
||||||
float max_differential_pressure_pa; /**< Maximum differential pressure reading */
|
float max_differential_pressure_pa; /**< Maximum differential pressure reading */
|
||||||
float voltage; /**< Voltage from analog airspeed sensors (voltage divider already compensated) */
|
float voltage; /**< Voltage from analog airspeed sensors (voltage divider already compensated) */
|
||||||
float temperature; /**< Temperature provided by sensor */
|
float temperature; /**< Temperature provided by sensor, -1000.0f if unknown */
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user