diff options
author | Thomas Gubler <thomasgubler@gmail.com> | 2014-12-18 14:46:31 +0100 |
---|---|---|
committer | Thomas Gubler <thomasgubler@gmail.com> | 2014-12-18 14:46:31 +0100 |
commit | e18065081af0dbbbf50aaba30cc0b14621c7b29b (patch) | |
tree | 1b52d79cdac6f3326dbdd491da94ccd5d5c1289c /src/modules/mc_att_control | |
parent | 6e874bed50d6d8a13a3b7f9b883697cb2718d27b (diff) | |
download | px4-firmware-e18065081af0dbbbf50aaba30cc0b14621c7b29b.tar.gz px4-firmware-e18065081af0dbbbf50aaba30cc0b14621c7b29b.tar.bz2 px4-firmware-e18065081af0dbbbf50aaba30cc0b14621c7b29b.zip |
is_vtol flag in vehicle_status
Getting rid of the autostart based checks if the system is a vtol
Fixes #1503
Diffstat (limited to 'src/modules/mc_att_control')
-rw-r--r-- | src/modules/mc_att_control/mc_att_control_main.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/modules/mc_att_control/mc_att_control_main.cpp b/src/modules/mc_att_control/mc_att_control_main.cpp index 0702e6378..d864feb25 100644 --- a/src/modules/mc_att_control/mc_att_control_main.cpp +++ b/src/modules/mc_att_control/mc_att_control_main.cpp @@ -285,6 +285,8 @@ MulticopterAttitudeControl::MulticopterAttitudeControl() : _att_sp_pub(-1), _v_rates_sp_pub(-1), _actuators_0_pub(-1), + _rates_sp_id(ORB_ID(vehicle_rates_setpoint)), + _actuators_id(ORB_ID(actuator_controls_0)), _actuators_0_circuit_breaker_enabled(false), @@ -348,15 +350,6 @@ MulticopterAttitudeControl::MulticopterAttitudeControl() : /* fetch initial parameter values */ parameters_update(); - // set correct uORB ID, depending on if vehicle is VTOL or not - if (_params.autostart_id >= 13000 && _params.autostart_id <= 13999) { /* VTOL airframe?*/ - _rates_sp_id = ORB_ID(mc_virtual_rates_setpoint); - _actuators_id = ORB_ID(actuator_controls_virtual_mc); - } - else { - _rates_sp_id = ORB_ID(vehicle_rates_setpoint); - _actuators_id = ORB_ID(actuator_controls_0); - } } MulticopterAttitudeControl::~MulticopterAttitudeControl() @@ -531,6 +524,14 @@ MulticopterAttitudeControl::vehicle_status_poll() if (vehicle_status_updated) { orb_copy(ORB_ID(vehicle_status), _vehicle_status_sub, &_vehicle_status); + /* set correct uORB ID, depending on if vehicle is VTOL or not */ + if (_vehicle_status.is_vtol) { + _rates_sp_id = ORB_ID(mc_virtual_rates_setpoint); + _actuators_id = ORB_ID(actuator_controls_virtual_mc); + } else { + _rates_sp_id = ORB_ID(vehicle_rates_setpoint); + _actuators_id = ORB_ID(actuator_controls_0); + } } } |