Browse Source

Fixed in-air restart

sbg
Lorenz Meier 12 years ago
parent
commit
826d5687be
  1. 22
      src/modules/commander/commander.cpp

22
src/modules/commander/commander.cpp

@ -470,8 +470,26 @@ void handle_command(struct vehicle_status_s *status, const struct safety_s *safe @@ -470,8 +470,26 @@ void handle_command(struct vehicle_status_s *status, const struct safety_s *safe
}
case VEHICLE_CMD_COMPONENT_ARM_DISARM:
// XXX implement later
result = VEHICLE_CMD_RESULT_DENIED;
{
transition_result_t arming_res = TRANSITION_NOT_CHANGED;
if (!armed->armed && ((int)(cmd->param1 + 0.5f)) == 1) {
if (safety->safety_switch_available && !safety->safety_off) {
print_reject_arm("NOT ARMING: Press safety switch first.");
arming_res = TRANSITION_DENIED;
} else {
arming_res = arming_state_transition(status, safety, ARMING_STATE_ARMED, armed);
}
if (arming_res == TRANSITION_CHANGED) {
mavlink_log_info(mavlink_fd, "[cmd] ARMED by component arm cmd");
result = VEHICLE_CMD_RESULT_ACCEPTED;
} else {
mavlink_log_info(mavlink_fd, "[cmd] REJECTING component arm cmd");
result = VEHICLE_CMD_RESULT_TEMPORARILY_REJECTED;
}
}
}
break;
default:

Loading…
Cancel
Save