sensors: ensure angular velocity publication on selected sensor update

This commit is contained in:
Daniel Agar
2019-11-06 10:38:58 -05:00
committed by Julian Oes
parent 60343cc168
commit 06f20ad892
2 changed files with 11 additions and 8 deletions
@@ -171,11 +171,12 @@ void
VehicleAcceleration::Run()
{
// update corrections first to set _selected_sensor
SensorCorrectionsUpdate();
bool sensor_select_update = SensorCorrectionsUpdate();
sensor_accel_s sensor_data;
if (_sensor_sub[_selected_sensor].updated() || sensor_select_update) {
sensor_accel_s sensor_data;
_sensor_sub[_selected_sensor].copy(&sensor_data);
if (_sensor_sub[_selected_sensor].update(&sensor_data)) {
ParametersUpdate();
SensorBiasUpdate();
@@ -210,13 +210,14 @@ void
VehicleAngularVelocity::Run()
{
// update corrections first to set _selected_sensor
SensorCorrectionsUpdate();
bool sensor_select_update = SensorCorrectionsUpdate();
if (_sensor_control_available) {
// using sensor_gyro_control is preferred, but currently not all drivers (eg df_*) provide sensor_gyro_control
sensor_gyro_control_s sensor_data;
if (_sensor_control_sub[_selected_sensor].updated() || sensor_select_update) {
sensor_gyro_control_s sensor_data;
_sensor_control_sub[_selected_sensor].copy(&sensor_data);
if (_sensor_control_sub[_selected_sensor].update(&sensor_data)) {
ParametersUpdate();
SensorBiasUpdate();
@@ -239,9 +240,10 @@ VehicleAngularVelocity::Run()
} else {
// otherwise fallback to using sensor_gyro (legacy that will be removed)
sensor_gyro_s sensor_data;
if (_sensor_sub[_selected_sensor].updated() || sensor_select_update) {
sensor_gyro_s sensor_data;
_sensor_sub[_selected_sensor].copy(&sensor_data);
if (_sensor_sub[_selected_sensor].update(&sensor_data)) {
ParametersUpdate();
SensorBiasUpdate();