aboutsummaryrefslogtreecommitdiff
path: root/src/modules/navigator
diff options
context:
space:
mode:
authorTickTock- <lukecell@safe-mail.net>2014-04-27 12:43:13 -0700
committerTickTock- <lukecell@safe-mail.net>2014-04-27 12:43:13 -0700
commit07c35010aaee59fbed21824c20666bda9c340705 (patch)
tree87d29034e772e2f5b18cbaab5478b65daa5bb930 /src/modules/navigator
parentb4d30e53c5af47a90d98c4c058df6a645ca34d40 (diff)
parentad77ba26427aa9a2d8b8241fc95271667a1c0863 (diff)
downloadpx4-firmware-07c35010aaee59fbed21824c20666bda9c340705.tar.gz
px4-firmware-07c35010aaee59fbed21824c20666bda9c340705.tar.bz2
px4-firmware-07c35010aaee59fbed21824c20666bda9c340705.zip
Merged in upstream master
Diffstat (limited to 'src/modules/navigator')
-rw-r--r--src/modules/navigator/navigator_main.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/modules/navigator/navigator_main.cpp b/src/modules/navigator/navigator_main.cpp
index ca71aab70..12fd35a0a 100644
--- a/src/modules/navigator/navigator_main.cpp
+++ b/src/modules/navigator/navigator_main.cpp
@@ -692,6 +692,9 @@ Navigator::task_main()
/* evaluate state requested by commander */
if (_control_mode.flag_armed && _control_mode.flag_control_auto_enabled) {
+ /* publish position setpoint triplet on each status update if navigator active */
+ _pos_sp_triplet_updated = true;
+
if (_vstatus.set_nav_state_timestamp != _set_nav_state_timestamp) {
/* commander requested new navigation mode, try to set it */
switch (_vstatus.set_nav_state) {
@@ -733,6 +736,13 @@ Navigator::task_main()
}
}
+ /* check if waypoint has been reached in MISSION, RTL and LAND modes */
+ if (myState == NAV_STATE_MISSION || myState == NAV_STATE_RTL || myState == NAV_STATE_LAND) {
+ if (check_mission_item_reached()) {
+ on_mission_item_reached();
+ }
+ }
+
} else {
/* navigator shouldn't act */
dispatch(EVENT_NONE_REQUESTED);
@@ -777,8 +787,8 @@ Navigator::task_main()
if (fds[1].revents & POLLIN) {
global_position_update();
- /* publish position setpoint triplet on each position update if navigator active */
if (_control_mode.flag_armed && _control_mode.flag_control_auto_enabled) {
+ /* publish position setpoint triplet on each position update if navigator active */
_pos_sp_triplet_updated = true;
if (myState == NAV_STATE_LAND && !_global_pos_valid) {