aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Oes <julian@oes.ch>2013-08-16 09:27:05 +0200
committerJulian Oes <julian@oes.ch>2013-08-16 09:27:05 +0200
commitec9de4ad84be8e62b762567c58ec3bb948684b43 (patch)
tree6200d4531f39037a0a0965b8b24f348886048de6
parentd75c3c4e7369510db1d91721c2793c23dcd873fa (diff)
downloadpx4-firmware-ec9de4ad84be8e62b762567c58ec3bb948684b43.tar.gz
px4-firmware-ec9de4ad84be8e62b762567c58ec3bb948684b43.tar.bz2
px4-firmware-ec9de4ad84be8e62b762567c58ec3bb948684b43.zip
Critical voltage now leads to a proper arming state transition
-rw-r--r--src/modules/commander/commander.cpp10
-rw-r--r--src/modules/commander/state_machine_helper.cpp2
2 files changed, 9 insertions, 3 deletions
diff --git a/src/modules/commander/commander.cpp b/src/modules/commander/commander.cpp
index 4e6ecd1e4..926be91b9 100644
--- a/src/modules/commander/commander.cpp
+++ b/src/modules/commander/commander.cpp
@@ -812,8 +812,6 @@ int commander_thread_main(int argc, char *argv[])
if (updated) {
orb_copy(ORB_ID(battery_status), battery_sub, &battery);
- warnx("bat v: %2.2f", battery.voltage_v);
-
/* only consider battery voltage if system has been running 2s and battery voltage is not 0 */
if ((t - start_time) > 2000000 && battery.voltage_v > 0.001f) {
status.battery_voltage = battery.voltage_v;
@@ -887,7 +885,13 @@ int commander_thread_main(int argc, char *argv[])
critical_battery_voltage_actions_done = true;
mavlink_log_critical(mavlink_fd, "[cmd] EMERGENCY: CRITICAL BATTERY");
status.battery_warning = VEHICLE_BATTERY_WARNING_ALERT;
- arming_state_transition(&status, &safety, ARMING_STATE_ARMED_ERROR, &armed);
+
+ if (armed.armed) {
+ // XXX not sure what should happen when voltage is low in flight
+ //arming_state_transition(&status, &safety, ARMING_STATE_ARMED_ERROR, &armed);
+ } else {
+ arming_state_transition(&status, &safety, ARMING_STATE_STANDBY_ERROR, &armed);
+ }
status_changed = true;
}
diff --git a/src/modules/commander/state_machine_helper.cpp b/src/modules/commander/state_machine_helper.cpp
index 163aceed2..ef3890b71 100644
--- a/src/modules/commander/state_machine_helper.cpp
+++ b/src/modules/commander/state_machine_helper.cpp
@@ -168,6 +168,8 @@ arming_state_transition(struct vehicle_status_s *status, const struct safety_s *
if (ret == TRANSITION_CHANGED) {
status->arming_state = new_arming_state;
arming_state_changed = true;
+ } else {
+ warnx("arming transition rejected");
}
}