diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2013-09-12 09:26:30 +0200 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2013-09-12 09:26:30 +0200 |
commit | c9b8a019eaae6ee7daf11835602059199369544e (patch) | |
tree | ce2e955a31a8f469ff6342c75f9774930110f20e /src/drivers/meas_airspeed | |
parent | 7257642371f52a96c8d891795d090119437ea933 (diff) | |
parent | 5ece19f66aeb299206c1e1e585df2b43d0ed2160 (diff) | |
download | px4-firmware-c9b8a019eaae6ee7daf11835602059199369544e.tar.gz px4-firmware-c9b8a019eaae6ee7daf11835602059199369544e.tar.bz2 px4-firmware-c9b8a019eaae6ee7daf11835602059199369544e.zip |
Merge branch 'master' of github.com:PX4/Firmware into status_monitoring
Diffstat (limited to 'src/drivers/meas_airspeed')
-rw-r--r-- | src/drivers/meas_airspeed/meas_airspeed.cpp | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/src/drivers/meas_airspeed/meas_airspeed.cpp b/src/drivers/meas_airspeed/meas_airspeed.cpp index b1cb2b3d8..03d7bbfb9 100644 --- a/src/drivers/meas_airspeed/meas_airspeed.cpp +++ b/src/drivers/meas_airspeed/meas_airspeed.cpp @@ -199,27 +199,23 @@ MEASAirspeed::collect() // Calculate differential pressure. As its centered around 8000 // and can go positive or negative, enforce absolute value uint16_t diff_press_pa = abs(dp_raw - (16384 / 2.0f)); - - _reports[_next_report].timestamp = hrt_absolute_time(); - _reports[_next_report].temperature = temperature; - _reports[_next_report].differential_pressure_pa = diff_press_pa; + struct differential_pressure_s report; // Track maximum differential pressure measured (so we can work out top speed). - if (diff_press_pa > _reports[_next_report].max_differential_pressure_pa) { - _reports[_next_report].max_differential_pressure_pa = diff_press_pa; + if (diff_press_pa > _max_differential_pressure_pa) { + _max_differential_pressure_pa = diff_press_pa; } - /* announce the airspeed if needed, just publish else */ - orb_publish(ORB_ID(differential_pressure), _airspeed_pub, &_reports[_next_report]); + report.timestamp = hrt_absolute_time(); + report.temperature = temperature; + report.differential_pressure_pa = diff_press_pa; + report.voltage = 0; + report.max_differential_pressure_pa = _max_differential_pressure_pa; - /* post a report to the ring - note, not locked */ - INCREMENT(_next_report, _num_reports); + /* announce the airspeed if needed, just publish else */ + orb_publish(ORB_ID(differential_pressure), _airspeed_pub, &report); - /* if we are running up against the oldest report, toss it */ - if (_next_report == _oldest_report) { - perf_count(_buffer_overflows); - INCREMENT(_oldest_report, _num_reports); - } + new_report(report); /* notify anyone waiting for data */ poll_notify(POLLIN); |