Browse Source

navigator explicitly invalidate position setpoint

sbg
Daniel Agar 9 years ago committed by Lorenz Meier
parent
commit
7c0a567eaa
  1. 8
      src/modules/navigator/mission.cpp
  2. 17
      src/modules/navigator/navigator_main.cpp

8
src/modules/navigator/mission.cpp

@ -1127,8 +1127,7 @@ Mission::read_mission_item(bool onboard, int offset, struct mission_item_s *miss @@ -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() @@ -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() @@ -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) @@ -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;
}

17
src/modules/navigator/navigator_main.cpp

@ -530,15 +530,6 @@ Navigator::task_main() @@ -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() @@ -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;

Loading…
Cancel
Save