aboutsummaryrefslogtreecommitdiff
path: root/src/modules/navigator/mission_block.cpp
diff options
context:
space:
mode:
authorAnton Babushkin <anton.babushkin@me.com>2014-06-27 00:27:08 +0200
committerAnton Babushkin <anton.babushkin@me.com>2014-06-27 00:27:08 +0200
commit9ae44291b169a90945f090487e3757db9fc8c075 (patch)
treeffdc63e796b42e19530acb68199abd890eac7c08 /src/modules/navigator/mission_block.cpp
parent8e8798a5225d333596c9018ec703da0c6787493d (diff)
downloadpx4-firmware-9ae44291b169a90945f090487e3757db9fc8c075.tar.gz
px4-firmware-9ae44291b169a90945f090487e3757db9fc8c075.tar.bz2
px4-firmware-9ae44291b169a90945f090487e3757db9fc8c075.zip
navigator: added NAV_CMD_IDLE, added RTL_STATE_LOITER and RTL_STATE_LANDED instead of FINISHED
Diffstat (limited to 'src/modules/navigator/mission_block.cpp')
-rw-r--r--src/modules/navigator/mission_block.cpp25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/modules/navigator/mission_block.cpp b/src/modules/navigator/mission_block.cpp
index 41d81ad9b..5e545706d 100644
--- a/src/modules/navigator/mission_block.cpp
+++ b/src/modules/navigator/mission_block.cpp
@@ -69,10 +69,10 @@ MissionBlock::~MissionBlock()
bool
MissionBlock::is_mission_item_reached()
{
- /* don't check landed WPs */
if (_mission_item.nav_cmd == NAV_CMD_LAND) {
- return false;
+ return _navigator_priv->get_vstatus()->condition_landed;
}
+
/* TODO: count turns */
#if 0
if ((_mission_item.nav_cmd == NAV_CMD_LOITER_TURN_COUNT ||
@@ -178,19 +178,28 @@ MissionBlock::mission_item_to_position_setpoint(const struct mission_item_s *ite
sp->loiter_direction = item->loiter_direction;
sp->pitch_min = item->pitch_min;
- if (item->nav_cmd == NAV_CMD_TAKEOFF) {
+ switch (item->nav_cmd) {
+ case NAV_CMD_IDLE:
+ sp->type = SETPOINT_TYPE_IDLE;
+ break;
+
+ case NAV_CMD_TAKEOFF:
sp->type = SETPOINT_TYPE_TAKEOFF;
+ break;
- } else if (item->nav_cmd == NAV_CMD_LAND) {
+ case NAV_CMD_LAND:
sp->type = SETPOINT_TYPE_LAND;
+ break;
- } else if (item->nav_cmd == NAV_CMD_LOITER_TIME_LIMIT ||
- item->nav_cmd == NAV_CMD_LOITER_TURN_COUNT ||
- item->nav_cmd == NAV_CMD_LOITER_UNLIMITED) {
+ case NAV_CMD_LOITER_TIME_LIMIT:
+ case NAV_CMD_LOITER_TURN_COUNT:
+ case NAV_CMD_LOITER_UNLIMITED:
sp->type = SETPOINT_TYPE_LOITER;
+ break;
- } else {
+ default:
sp->type = SETPOINT_TYPE_POSITION;
+ break;
}
}