aboutsummaryrefslogtreecommitdiff
path: root/src/modules/commander
diff options
context:
space:
mode:
authorJulian Oes <julian@oes.ch>2014-07-26 17:48:45 +0200
committerJulian Oes <julian@oes.ch>2014-07-26 17:48:45 +0200
commit54b9698d6560290e386b8dd2a7b9f0b6f4c5f57a (patch)
treec2b6cb4061b6793d85dd4f6c4d56a5a0f1cfc8c8 /src/modules/commander
parent5bf7d5774c07ed7e9d2e83d623abc7bab6422348 (diff)
downloadpx4-firmware-54b9698d6560290e386b8dd2a7b9f0b6f4c5f57a.tar.gz
px4-firmware-54b9698d6560290e386b8dd2a7b9f0b6f4c5f57a.tar.bz2
px4-firmware-54b9698d6560290e386b8dd2a7b9f0b6f4c5f57a.zip
circuit_breakers: added param to disable airspeed check
Diffstat (limited to 'src/modules/commander')
-rw-r--r--src/modules/commander/commander.cpp2
-rw-r--r--src/modules/commander/state_machine_helper.cpp4
2 files changed, 5 insertions, 1 deletions
diff --git a/src/modules/commander/commander.cpp b/src/modules/commander/commander.cpp
index a0c896178..daba4e740 100644
--- a/src/modules/commander/commander.cpp
+++ b/src/modules/commander/commander.cpp
@@ -736,6 +736,7 @@ int commander_thread_main(int argc, char *argv[])
// CIRCUIT BREAKERS
status.circuit_breaker_engaged_power_check = false;
+ status.circuit_breaker_engaged_airspd_check = false;
/* publish initial state */
status_pub = orb_advertise(ORB_ID(vehicle_status), &status);
@@ -977,6 +978,7 @@ int commander_thread_main(int argc, char *argv[])
param_get(_param_component_id, &(status.component_id));
status.circuit_breaker_engaged_power_check = circuit_breaker_enabled("CBRK_SUPPLY_CHK", CBRK_SUPPLY_CHK_KEY);
+ status.circuit_breaker_engaged_airspd_check = circuit_breaker_enabled("CBRK_AIRSPD_CHK", CBRK_AIRSPD_CHK_KEY);
status_changed = true;
diff --git a/src/modules/commander/state_machine_helper.cpp b/src/modules/commander/state_machine_helper.cpp
index 7b26e3e8c..3c3d2f233 100644
--- a/src/modules/commander/state_machine_helper.cpp
+++ b/src/modules/commander/state_machine_helper.cpp
@@ -669,7 +669,9 @@ int prearm_check(const struct vehicle_status_s *status, const int mavlink_fd)
goto system_eval;
}
- if (!status->is_rotary_wing) {
+ /* Perform airspeed check only if circuit breaker is not
+ * engaged and it's not a rotary wing */
+ if (!status->circuit_breaker_engaged_airspd_check && !status->is_rotary_wing) {
/* accel done, close it */
close(fd);
fd = orb_subscribe(ORB_ID(airspeed));