aboutsummaryrefslogtreecommitdiff
path: root/src/modules/mc_att_control
diff options
context:
space:
mode:
authorThomas Gubler <thomasgubler@gmail.com>2014-12-18 14:46:31 +0100
committerThomas Gubler <thomasgubler@gmail.com>2014-12-18 14:46:31 +0100
commite18065081af0dbbbf50aaba30cc0b14621c7b29b (patch)
tree1b52d79cdac6f3326dbdd491da94ccd5d5c1289c /src/modules/mc_att_control
parent6e874bed50d6d8a13a3b7f9b883697cb2718d27b (diff)
downloadpx4-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.cpp19
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);
+ }
}
}