forked from Archive/PX4-Autopilot
Fixed in-air restart, now obeys the right order
This commit is contained in:
parent
826d5687be
commit
6616aa6f99
|
@ -591,6 +591,9 @@ PX4IO::init()
|
||||||
if ((reg & PX4IO_P_SETUP_ARMING_INAIR_RESTART_OK) &&
|
if ((reg & PX4IO_P_SETUP_ARMING_INAIR_RESTART_OK) &&
|
||||||
(reg & PX4IO_P_SETUP_ARMING_FMU_ARMED)) {
|
(reg & PX4IO_P_SETUP_ARMING_FMU_ARMED)) {
|
||||||
|
|
||||||
|
/* get a status update from IO */
|
||||||
|
io_get_status();
|
||||||
|
|
||||||
mavlink_log_emergency(_mavlink_fd, "[IO] RECOVERING FROM FMU IN-AIR RESTART");
|
mavlink_log_emergency(_mavlink_fd, "[IO] RECOVERING FROM FMU IN-AIR RESTART");
|
||||||
log("INAIR RESTART RECOVERY (needs commander app running)");
|
log("INAIR RESTART RECOVERY (needs commander app running)");
|
||||||
|
|
||||||
|
|
|
@ -824,16 +824,6 @@ int commander_thread_main(int argc, char *argv[])
|
||||||
|
|
||||||
check_valid(diff_pres.timestamp, DIFFPRESS_TIMEOUT, true, &(status.condition_airspeed_valid), &status_changed);
|
check_valid(diff_pres.timestamp, DIFFPRESS_TIMEOUT, true, &(status.condition_airspeed_valid), &status_changed);
|
||||||
|
|
||||||
orb_check(cmd_sub, &updated);
|
|
||||||
|
|
||||||
if (updated) {
|
|
||||||
/* got command */
|
|
||||||
orb_copy(ORB_ID(vehicle_command), cmd_sub, &cmd);
|
|
||||||
|
|
||||||
/* handle it */
|
|
||||||
handle_command(&status, &safety, &control_mode, &cmd, &armed);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* update safety topic */
|
/* update safety topic */
|
||||||
orb_check(safety_sub, &updated);
|
orb_check(safety_sub, &updated);
|
||||||
|
|
||||||
|
@ -1165,6 +1155,18 @@ int commander_thread_main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* handle commands last, as the system needs to be updated to handle them */
|
||||||
|
orb_check(cmd_sub, &updated);
|
||||||
|
|
||||||
|
if (updated) {
|
||||||
|
/* got command */
|
||||||
|
orb_copy(ORB_ID(vehicle_command), cmd_sub, &cmd);
|
||||||
|
|
||||||
|
/* handle it */
|
||||||
|
handle_command(&status, &safety, &control_mode, &cmd, &armed);
|
||||||
|
}
|
||||||
|
|
||||||
/* evaluate the navigation state machine */
|
/* evaluate the navigation state machine */
|
||||||
transition_result_t res = check_navigation_state_machine(&status, &control_mode, &local_position);
|
transition_result_t res = check_navigation_state_machine(&status, &control_mode, &local_position);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue