aboutsummaryrefslogtreecommitdiff
path: root/src/modules/commander/state_machine_helper.cpp
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2014-05-25 20:34:32 +0200
committerLorenz Meier <lm@inf.ethz.ch>2014-05-25 20:34:32 +0200
commit064329dd099819b0f0b8a9a7bc0233440fdf6df1 (patch)
treefe6bfe67678f251fa92b8649ddb19c1a776e9405 /src/modules/commander/state_machine_helper.cpp
parent032fe389a5630a22c9da4642d79b3fae05a213f5 (diff)
downloadpx4-firmware-064329dd099819b0f0b8a9a7bc0233440fdf6df1.tar.gz
px4-firmware-064329dd099819b0f0b8a9a7bc0233440fdf6df1.tar.bz2
px4-firmware-064329dd099819b0f0b8a9a7bc0233440fdf6df1.zip
commander: put circuit breaker into effect
Diffstat (limited to 'src/modules/commander/state_machine_helper.cpp')
-rw-r--r--src/modules/commander/state_machine_helper.cpp32
1 files changed, 18 insertions, 14 deletions
diff --git a/src/modules/commander/state_machine_helper.cpp b/src/modules/commander/state_machine_helper.cpp
index 818974648..84f4d03af 100644
--- a/src/modules/commander/state_machine_helper.cpp
+++ b/src/modules/commander/state_machine_helper.cpp
@@ -144,26 +144,30 @@ arming_state_transition(struct vehicle_status_s *status, /// current
valid_transition = false;
}
- // Fail transition if power is not good
- if (!status->condition_power_input_valid) {
+ // Perform power checks only if circuit breaker is not
+ // engaged for these checks
+ if (!status->circuit_breaker_engaged_power_check) {
+ // Fail transition if power is not good
+ if (!status->condition_power_input_valid) {
+
+ if (mavlink_fd) {
+ mavlink_log_critical(mavlink_fd, "#audio: NOT ARMING: Connect power module.");
+ }
- if (mavlink_fd) {
- mavlink_log_critical(mavlink_fd, "#audio: NOT ARMING: Connect power module.");
+ valid_transition = false;
}
- valid_transition = false;
- }
+ // Fail transition if power levels on the avionics rail
+ // are insufficient
+ if ((status->avionics_power_rail_voltage > 0.0f) &&
+ (status->avionics_power_rail_voltage < 4.5f)) {
- // Fail transition if power levels on the avionics rail
- // are insufficient
- if ((status->avionics_power_rail_voltage > 0.0f) &&
- (status->avionics_power_rail_voltage < 4.5f)) {
+ if (mavlink_fd) {
+ mavlink_log_critical(mavlink_fd, "#audio: NOT ARMING: Avionics power low: %6.2f V.", status->avionics_power_rail_voltage);
+ }
- if (mavlink_fd) {
- mavlink_log_critical(mavlink_fd, "#audio: NOT ARMING: Avionics power low: %6.2f V.", status->avionics_power_rail_voltage);
+ valid_transition = false;
}
-
- valid_transition = false;
}
} else if (new_arming_state == ARMING_STATE_STANDBY && status->arming_state == ARMING_STATE_ARMED_ERROR) {