diff --git a/msg/differential_pressure.msg b/msg/differential_pressure.msg index 10fb9eb88e..d76ab32c4c 100644 --- a/msg/differential_pressure.msg +++ b/msg/differential_pressure.msg @@ -1,5 +1,4 @@ uint64 error_count # Number of errors detected by driver float32 differential_pressure_raw_pa # Raw differential pressure reading (may be negative) float32 differential_pressure_filtered_pa # Low pass filtered differential pressure reading -float32 max_differential_pressure_pa # Maximum differential pressure reading float32 temperature # Temperature provided by sensor, -1000.0f if unknown diff --git a/src/drivers/airspeed/airspeed.cpp b/src/drivers/airspeed/airspeed.cpp index 367605f72a..0eced5d27e 100644 --- a/src/drivers/airspeed/airspeed.cpp +++ b/src/drivers/airspeed/airspeed.cpp @@ -80,7 +80,6 @@ Airspeed::Airspeed(int bus, int address, unsigned conversion_interval, const char *path) : I2C("Airspeed", path, bus, address, 100000), _reports(nullptr), - _max_differential_pressure_pa(0), _sensor_ok(false), _last_published_sensor_ok(true), /* initialize differently to force publication */ _measure_ticks(0), diff --git a/src/drivers/airspeed/airspeed.h b/src/drivers/airspeed/airspeed.h index b6f596507c..c4679e8130 100644 --- a/src/drivers/airspeed/airspeed.h +++ b/src/drivers/airspeed/airspeed.h @@ -127,7 +127,6 @@ protected: void update_status(); work_s _work; - float _max_differential_pressure_pa; bool _sensor_ok; bool _last_published_sensor_ok; uint32_t _measure_ticks; diff --git a/src/drivers/ets_airspeed/ets_airspeed.cpp b/src/drivers/ets_airspeed/ets_airspeed.cpp index a3604c5b20..ad0a724f13 100644 --- a/src/drivers/ets_airspeed/ets_airspeed.cpp +++ b/src/drivers/ets_airspeed/ets_airspeed.cpp @@ -171,18 +171,12 @@ ETSAirspeed::collect() // The raw value still should be compensated for the known offset diff_pres_pa_raw -= _diff_pres_offset; - // Track maximum differential pressure measured (so we can work out top speed). - if (diff_pres_pa_raw > _max_differential_pressure_pa) { - _max_differential_pressure_pa = diff_pres_pa_raw; - } - report.error_count = perf_event_count(_comms_errors); // XXX we may want to smooth out the readings to remove noise. report.differential_pressure_filtered_pa = diff_pres_pa_raw; report.differential_pressure_raw_pa = diff_pres_pa_raw; report.temperature = -1000.0f; - report.max_differential_pressure_pa = _max_differential_pressure_pa; if (_airspeed_pub != nullptr && !(_pub_blocked)) { /* publish it */ diff --git a/src/drivers/ms4525_airspeed/ms4525_airspeed.cpp b/src/drivers/ms4525_airspeed/ms4525_airspeed.cpp index ae868d084d..ca66dfaf8f 100644 --- a/src/drivers/ms4525_airspeed/ms4525_airspeed.cpp +++ b/src/drivers/ms4525_airspeed/ms4525_airspeed.cpp @@ -234,9 +234,6 @@ MEASAirspeed::collect() // correct for 5V rail voltage if possible voltage_correction(diff_press_pa_raw, temperature); - // the raw value still should be compensated for the known offset - diff_press_pa_raw -= _diff_pres_offset; - /* With the above calculation the MS4525 sensor will produce a positive number when the top port is used as a dynamic port @@ -245,18 +242,11 @@ MEASAirspeed::collect() struct differential_pressure_s report; - /* track maximum differential pressure measured (so we can work out top speed). */ - if (diff_press_pa_raw > _max_differential_pressure_pa) { - _max_differential_pressure_pa = diff_press_pa_raw; - } - report.timestamp = hrt_absolute_time(); report.error_count = perf_event_count(_comms_errors); report.temperature = temperature; - report.differential_pressure_filtered_pa = _filter.apply(diff_press_pa_raw); - - report.differential_pressure_raw_pa = diff_press_pa_raw; - report.max_differential_pressure_pa = _max_differential_pressure_pa; + report.differential_pressure_filtered_pa = _filter.apply(diff_press_pa_raw) - _diff_pres_offset; + report.differential_pressure_raw_pa = diff_press_pa_raw - _diff_pres_offset; if (_airspeed_pub != nullptr && !(_pub_blocked)) { /* publish it */ diff --git a/src/drivers/ms5525_airspeed/MS5525.cpp b/src/drivers/ms5525_airspeed/MS5525.cpp index e5d518f4c0..8d06330b82 100644 --- a/src/drivers/ms5525_airspeed/MS5525.cpp +++ b/src/drivers/ms5525_airspeed/MS5525.cpp @@ -244,26 +244,17 @@ MS5525::collect() const float diff_press_PSI = P * 0.0001f; // 1 PSI = 6894.76 Pascals - const float PSI_to_Pa = 6894.757f; - float diff_press_pa_raw = diff_press_PSI * PSI_to_Pa; + static constexpr float PSI_to_Pa = 6894.757f; + const float diff_press_pa_raw = diff_press_PSI * PSI_to_Pa; const float temperature_c = TEMP * 0.01f; - // the raw value still should be compensated for the known offset - diff_press_pa_raw -= _diff_pres_offset; - - /* track maximum differential pressure measured (so we can work out top speed). */ - if (diff_press_pa_raw > _max_differential_pressure_pa) { - _max_differential_pressure_pa = diff_press_pa_raw; - } - differential_pressure_s diff_pressure = { .timestamp = hrt_absolute_time(), .error_count = perf_event_count(_comms_errors), - .differential_pressure_raw_pa = diff_press_pa_raw, - .differential_pressure_filtered_pa = _filter.apply(diff_press_pa_raw), - .max_differential_pressure_pa = _max_differential_pressure_pa, - .temperature = temperature_c + .differential_pressure_raw_pa = diff_press_pa_raw - _diff_pres_offset, + .differential_pressure_filtered_pa = _filter.apply(diff_press_pa_raw) - _diff_pres_offset, + .temperature = temperature_c, }; if (_airspeed_pub != nullptr && !(_pub_blocked)) { diff --git a/src/drivers/sdp3x_airspeed/SDP3X.cpp b/src/drivers/sdp3x_airspeed/SDP3X.cpp index b267025fd1..dbaee460cd 100644 --- a/src/drivers/sdp3x_airspeed/SDP3X.cpp +++ b/src/drivers/sdp3x_airspeed/SDP3X.cpp @@ -134,25 +134,15 @@ SDP3X::collect() float diff_press_pa_raw = static_cast(P) / static_cast(_scale); float temperature_c = temp / static_cast(SDP3X_SCALE_TEMPERATURE); - // the raw value still should be compensated for the known offset - diff_press_pa_raw -= _diff_pres_offset; - differential_pressure_s report; - // track maximum differential pressure measured (so we can work out top speed). - if (diff_press_pa_raw > _max_differential_pressure_pa) { - _max_differential_pressure_pa = diff_press_pa_raw; - } - report.timestamp = hrt_absolute_time(); report.error_count = perf_event_count(_comms_errors); report.temperature = temperature_c; - report.differential_pressure_filtered_pa = _filter.apply(diff_press_pa_raw); - report.differential_pressure_raw_pa = diff_press_pa_raw; - report.max_differential_pressure_pa = _max_differential_pressure_pa; + report.differential_pressure_filtered_pa = _filter.apply(diff_press_pa_raw) - _diff_pres_offset; + report.differential_pressure_raw_pa = diff_press_pa_raw - _diff_pres_offset; if (_airspeed_pub != nullptr && !(_pub_blocked)) { - // publish it orb_publish(ORB_ID(differential_pressure), _airspeed_pub, &report); } diff --git a/src/modules/sdlog2/sdlog2.c b/src/modules/sdlog2/sdlog2.c index ea3b335527..2a1fceb69f 100644 --- a/src/modules/sdlog2/sdlog2.c +++ b/src/modules/sdlog2/sdlog2.c @@ -2040,7 +2040,6 @@ int sdlog2_thread_main(int argc, char *argv[]) log_msg.body.log_DPRS.error_count = buf.diff_pres.error_count; log_msg.body.log_DPRS.differential_pressure_raw_pa = buf.diff_pres.differential_pressure_raw_pa; log_msg.body.log_DPRS.differential_pressure_filtered_pa = buf.diff_pres.differential_pressure_filtered_pa; - log_msg.body.log_DPRS.max_differential_pressure_pa = buf.diff_pres.max_differential_pressure_pa; log_msg.body.log_DPRS.temperature = buf.diff_pres.temperature; LOGBUFFER_WRITE_AND_COUNT(DPRS); } diff --git a/src/modules/sdlog2/sdlog2_messages.h b/src/modules/sdlog2/sdlog2_messages.h index 9628c4c123..c054e1d0e0 100644 --- a/src/modules/sdlog2/sdlog2_messages.h +++ b/src/modules/sdlog2/sdlog2_messages.h @@ -629,7 +629,6 @@ struct log_DPRS_s { uint64_t error_count; float differential_pressure_raw_pa; float differential_pressure_filtered_pa; - float max_differential_pressure_pa; float temperature; }; diff --git a/src/platforms/posix/drivers/airspeedsim/airspeedsim.cpp b/src/platforms/posix/drivers/airspeedsim/airspeedsim.cpp index d126154d85..6b166c6a17 100644 --- a/src/platforms/posix/drivers/airspeedsim/airspeedsim.cpp +++ b/src/platforms/posix/drivers/airspeedsim/airspeedsim.cpp @@ -75,7 +75,6 @@ AirspeedSim::AirspeedSim(int bus, int address, unsigned conversion_interval, con VDev("AIRSPEEDSIM", path), _reports(nullptr), _retries(0), - _max_differential_pressure_pa(0), _sensor_ok(false), _last_published_sensor_ok(true), /* initialize differently to force publication */ _measure_ticks(0), diff --git a/src/platforms/posix/drivers/airspeedsim/airspeedsim.h b/src/platforms/posix/drivers/airspeedsim/airspeedsim.h index 751cbb735c..49f115a2d1 100644 --- a/src/platforms/posix/drivers/airspeedsim/airspeedsim.h +++ b/src/platforms/posix/drivers/airspeedsim/airspeedsim.h @@ -123,7 +123,6 @@ protected: void update_status(); struct work_s _work; - float _max_differential_pressure_pa; bool _sensor_ok; bool _last_published_sensor_ok; unsigned _measure_ticks; diff --git a/src/platforms/posix/drivers/airspeedsim/meas_airspeed_sim.cpp b/src/platforms/posix/drivers/airspeedsim/meas_airspeed_sim.cpp index 808128447a..e82ce1807f 100644 --- a/src/platforms/posix/drivers/airspeedsim/meas_airspeed_sim.cpp +++ b/src/platforms/posix/drivers/airspeedsim/meas_airspeed_sim.cpp @@ -194,18 +194,11 @@ MEASAirspeedSim::collect() struct differential_pressure_s report; - /* track maximum differential pressure measured (so we can work out top speed). */ - if (diff_press_pa_raw > _max_differential_pressure_pa) { - _max_differential_pressure_pa = diff_press_pa_raw; - } - report.timestamp = hrt_absolute_time(); report.error_count = perf_event_count(_comms_errors); report.temperature = temperature; - report.differential_pressure_filtered_pa = _filter.apply(diff_press_pa_raw); - + report.differential_pressure_filtered_pa = _filter.apply(diff_press_pa_raw); report.differential_pressure_raw_pa = diff_press_pa_raw; - report.max_differential_pressure_pa = _max_differential_pressure_pa; if (_airspeed_pub != nullptr && !(_pub_blocked)) { /* publish it */ @@ -281,18 +274,6 @@ MEASAirspeedSim::cycle() USEC2TICK(CONVERSION_INTERVAL)); } -/** - correct for 5V rail voltage if the system_power ORB topic is - available - - See http://uav.tridgell.net/MS4525/MS4525-offset.png for a graph of - offset versus voltage for 3 sensors - */ -void -MEASAirspeedSim::voltage_correction(float &diff_press_pa, float &temperature) -{ -} - /** * Local functions in support of the shell command. */