From 7c0a567eaa9b69bbc10d2505503cd75d4231664b Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Fri, 2 Sep 2016 01:13:43 -0400 Subject: [PATCH] navigator explicitly invalidate position setpoint --- src/modules/navigator/mission.cpp | 8 ++++---- src/modules/navigator/navigator_main.cpp | 17 ++++++++--------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/modules/navigator/mission.cpp b/src/modules/navigator/mission.cpp index a06a1b8783..9c3eb8c886 100644 --- a/src/modules/navigator/mission.cpp +++ b/src/modules/navigator/mission.cpp @@ -1127,8 +1127,7 @@ Mission::read_mission_item(bool onboard, int offset, struct mission_item_s *miss return false; } - report_do_jump_mission_changed(*mission_index_ptr, - mission_item_tmp.do_jump_repeat_count); + report_do_jump_mission_changed(*mission_index_ptr, mission_item_tmp.do_jump_repeat_count); } /* set new mission item index and repeat @@ -1174,6 +1173,7 @@ Mission::save_offboard_mission_state() if (mission_state.current_seq != _current_offboard_mission_index) { if (dm_write(DM_KEY_MISSION_STATE, 0, DM_PERSIST_POWER_ON_RESET, &mission_state, sizeof(mission_s)) != sizeof(mission_s)) { + warnx("ERROR: can't save mission state"); mavlink_log_critical(_navigator->get_mavlink_log_pub(), "ERROR: can't save mission state"); } @@ -1192,6 +1192,7 @@ Mission::save_offboard_mission_state() /* write modified state only if changed */ if (dm_write(DM_KEY_MISSION_STATE, 0, DM_PERSIST_POWER_ON_RESET, &mission_state, sizeof(mission_s)) != sizeof(mission_s)) { + warnx("ERROR: can't save mission state"); mavlink_log_critical(_navigator->get_mavlink_log_pub(), "ERROR: can't save mission state"); } @@ -1291,8 +1292,7 @@ Mission::reset_offboard_mission(struct mission_s &mission) if (item.nav_cmd == NAV_CMD_DO_JUMP) { item.do_jump_current_count = 0; - if (dm_write(dm_current, index, DM_PERSIST_POWER_ON_RESET, - &item, len) != len) { + if (dm_write(dm_current, index, DM_PERSIST_POWER_ON_RESET, &item, len) != len) { PX4_WARN("could not save mission item during reset"); break; } diff --git a/src/modules/navigator/navigator_main.cpp b/src/modules/navigator/navigator_main.cpp index 2698e03d87..75faefaed3 100644 --- a/src/modules/navigator/navigator_main.cpp +++ b/src/modules/navigator/navigator_main.cpp @@ -530,15 +530,6 @@ Navigator::task_main() /* Do stuff according to navigation state set by commander */ switch (_vstatus.nav_state) { - case vehicle_status_s::NAVIGATION_STATE_MANUAL: - case vehicle_status_s::NAVIGATION_STATE_ACRO: - case vehicle_status_s::NAVIGATION_STATE_ALTCTL: - case vehicle_status_s::NAVIGATION_STATE_POSCTL: - case vehicle_status_s::NAVIGATION_STATE_TERMINATION: - case vehicle_status_s::NAVIGATION_STATE_OFFBOARD: - _navigation_mode = nullptr; - _can_loiter_at_sp = false; - break; case vehicle_status_s::NAVIGATION_STATE_AUTO_MISSION: _pos_sp_triplet_published_invalid_once = false; _navigation_mode = &_mission; @@ -601,7 +592,15 @@ Navigator::task_main() _pos_sp_triplet_published_invalid_once = false; _navigation_mode = &_follow_target; break; + case vehicle_status_s::NAVIGATION_STATE_MANUAL: + case vehicle_status_s::NAVIGATION_STATE_ACRO: + case vehicle_status_s::NAVIGATION_STATE_ALTCTL: + case vehicle_status_s::NAVIGATION_STATE_POSCTL: + case vehicle_status_s::NAVIGATION_STATE_TERMINATION: + case vehicle_status_s::NAVIGATION_STATE_OFFBOARD: + case vehicle_status_s::NAVIGATION_STATE_STAB: default: + _pos_sp_triplet_published_invalid_once = false; _navigation_mode = nullptr; _can_loiter_at_sp = false; break;