commander: param to allow arming without GPS

This commit is contained in:
Julian Oes
2016-06-06 11:18:26 +02:00
committed by Lorenz Meier
parent 3e9d1388af
commit 049146ef9c
2 changed files with 20 additions and 3 deletions
+7 -3
View File
@@ -1189,6 +1189,7 @@ int commander_thread_main(int argc, char *argv[])
param_t _param_disarm_land = param_find("COM_DISARM_LAND");
param_t _param_low_bat_act = param_find("COM_LOW_BAT_ACT");
param_t _param_offboard_loss_timeout = param_find("COM_OF_LOSS_T");
param_t _param_arm_without_gps = param_find("COM_ARM_WO_GPS");
param_t _param_fmode_1 = param_find("COM_FLTMODE1");
param_t _param_fmode_2 = param_find("COM_FLTMODE2");
@@ -1500,8 +1501,10 @@ int commander_thread_main(int argc, char *argv[])
// Run preflight check
int32_t rc_in_off = 0;
bool hotplug_timeout = hrt_elapsed_time(&commander_boot_timestamp) > HOTPLUG_SENS_TIMEOUT;
int32_t arm_without_gps = 0;
param_get(_param_autostart_id, &autostart_id);
param_get(_param_rc_in_off, &rc_in_off);
param_get(_param_arm_without_gps, &arm_without_gps);
status.rc_input_mode = rc_in_off;
if (is_hil_setup(autostart_id)) {
// HIL configuration selected: real sensors will be disabled
@@ -1511,7 +1514,7 @@ int commander_thread_main(int argc, char *argv[])
// sensor diagnostics done continuously, not just at boot so don't warn about any issues just yet
status_flags.condition_system_sensors_initialized = Commander::preflightCheck(&mavlink_log_pub, true, true, true, true,
checkAirspeed, (status.rc_input_mode == vehicle_status_s::RC_IN_MODE_DEFAULT),
!status_flags.circuit_breaker_engaged_gpsfailure_check, false);
(arm_without_gps == 0), false);
set_tune_override(TONE_STARTUP_TUNE); //normal boot tune
}
@@ -1627,6 +1630,7 @@ int commander_thread_main(int argc, char *argv[])
param_get(_param_offboard_loss_timeout, &offboard_loss_timeout);
param_get(_param_offboard_loss_act, &offboard_loss_act);
param_get(_param_offboard_loss_rc_act, &offboard_loss_rc_act);
param_get(_param_arm_without_gps, &arm_without_gps);
/* Autostart id */
param_get(_param_autostart_id, &autostart_id);
@@ -1739,7 +1743,7 @@ int commander_thread_main(int argc, char *argv[])
} else {
/* check sensors also */
(void)Commander::preflightCheck(&mavlink_log_pub, true, true, true, true, chAirspeed,
(status.rc_input_mode == vehicle_status_s::RC_IN_MODE_DEFAULT), !status_flags.circuit_breaker_engaged_gpsfailure_check, hotplug_timeout);
(status.rc_input_mode == vehicle_status_s::RC_IN_MODE_DEFAULT), (arm_without_gps == 0), hotplug_timeout);
}
}
@@ -3723,7 +3727,7 @@ void *commander_low_prio_loop(void *arg)
}
status_flags.condition_system_sensors_initialized = Commander::preflightCheck(&mavlink_log_pub, true, true, true, true, checkAirspeed,
!(status.rc_input_mode >= vehicle_status_s::RC_IN_MODE_OFF), !status_flags.circuit_breaker_engaged_gpsfailure_check, hotplug_timeout);
!(status.rc_input_mode >= vehicle_status_s::RC_IN_MODE_OFF), false, hotplug_timeout);
arming_state_transition(&status,
&battery,
+13
View File
@@ -262,6 +262,19 @@ PARAM_DEFINE_INT32(COM_RC_ARM_HYST, 1000);
*/
PARAM_DEFINE_INT32(COM_DISARM_LAND, 0);
/**
* Allow arming without GPS
*
* The default allows to arm the vehicle without GPS signal.
*
* @group Commander
* @min 0
* @max 1
* @value 0 Don't allow arming without GPS
* @value 1 Allow arming without GPS
*/
PARAM_DEFINE_INT32(COM_ARM_WO_GPS, 1);
/**
* Battery failsafe mode
*