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/commander/commander.cpp | |
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/commander/commander.cpp')
-rw-r--r-- | src/modules/commander/commander.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/modules/commander/commander.cpp b/src/modules/commander/commander.cpp index 744323c01..8d2e62e32 100644 --- a/src/modules/commander/commander.cpp +++ b/src/modules/commander/commander.cpp @@ -1092,6 +1092,11 @@ int commander_thread_main(int argc, char *argv[]) status.is_rotary_wing = false; } + /* set vehicle_status.is_vtol flag */ + status.is_vtol = (status.system_type == VEHICLE_TYPE_VTOL_DUOROTOR) || + (status.system_type == VEHICLE_TYPE_VTOL_QUADROTOR); + + /* check and update system / component ID */ param_get(_param_system_id, &(status.system_id)); param_get(_param_component_id, &(status.component_id)); @@ -1113,6 +1118,8 @@ int commander_thread_main(int argc, char *argv[]) /* navigation parameters */ param_get(_param_takeoff_alt, &takeoff_alt); + + /* Safety parameters */ param_get(_param_enable_parachute, ¶chute_enabled); param_get(_param_enable_datalink_loss, &datalink_loss_enabled); param_get(_param_datalink_loss_timeout, &datalink_loss_timeout); @@ -1121,6 +1128,8 @@ int commander_thread_main(int argc, char *argv[]) param_get(_param_ef_throttle_thres, &ef_throttle_thres); param_get(_param_ef_current2throttle_thres, &ef_current2throttle_thres); param_get(_param_ef_time_thres, &ef_time_thres); + + /* Autostart id */ param_get(_param_autostart_id, &autostart_id); } @@ -2217,14 +2226,7 @@ set_control_mode() { /* set vehicle_control_mode according to set_navigation_state */ control_mode.flag_armed = armed.armed; - /* TODO: check this */ - if (autostart_id < 13000 || autostart_id >= 14000) { - control_mode.flag_external_manual_override_ok = !status.is_rotary_wing; - - } else { - control_mode.flag_external_manual_override_ok = false; - } - + control_mode.flag_external_manual_override_ok = !status.is_rotary_wing && !status.is_vtol; control_mode.flag_system_hil_enabled = status.hil_state == HIL_STATE_ON; control_mode.flag_control_offboard_enabled = false; |