aboutsummaryrefslogtreecommitdiff
path: root/src/modules/navigator/mission.h
diff options
context:
space:
mode:
authorJulian Oes <julian@oes.ch>2014-06-04 01:07:50 +0200
committerJulian Oes <julian@oes.ch>2014-06-04 01:07:50 +0200
commit93295861c532595e080ae61c32d5e2cb625b4eac (patch)
tree1569ba05f5f14e5985563554fc0e9506a3c122eb /src/modules/navigator/mission.h
parent5ed3652c2fdc20ba70df1cde6c28d58fa6be0e04 (diff)
downloadpx4-firmware-93295861c532595e080ae61c32d5e2cb625b4eac.tar.gz
px4-firmware-93295861c532595e080ae61c32d5e2cb625b4eac.tar.bz2
px4-firmware-93295861c532595e080ae61c32d5e2cb625b4eac.zip
navigator: missions work again, loiter when finished or no mission available or sd card removed works as well
Diffstat (limited to 'src/modules/navigator/mission.h')
-rw-r--r--src/modules/navigator/mission.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/modules/navigator/mission.h b/src/modules/navigator/mission.h
index 65a0991b5..f75c8a882 100644
--- a/src/modules/navigator/mission.h
+++ b/src/modules/navigator/mission.h
@@ -58,7 +58,7 @@
class Navigator;
-class Mission : public control::SuperBlock
+class __EXPORT Mission : public control::SuperBlock
{
public:
/**
@@ -97,6 +97,11 @@ protected:
*/
void mission_item_to_position_setpoint(const struct mission_item_s *item, struct position_setpoint_s *sp);
+ /**
+ * Set a loiter item, if possible reuse the position setpoint, otherwise take the current position
+ */
+ void set_loiter_item(bool reuse_current_pos_sp, struct position_setpoint_triplet_s *pos_sp_triplet);
+
class Navigator *_navigator;
bool _waypoint_position_reached;
@@ -179,13 +184,14 @@ private:
void publish_mission_result();
control::BlockParamFloat _param_onboard_enabled;
-
- int _onboard_mission_sub;
- int _offboard_mission_sub;
+ control::BlockParamFloat _param_loiter_radius;
struct mission_s _onboard_mission;
struct mission_s _offboard_mission;
+ int _current_onboard_mission_index;
+ int _current_offboard_mission_index;
+
struct mission_item_s _mission_item;
orb_advert_t _mission_result_pub;
@@ -197,6 +203,8 @@ private:
MISSION_TYPE_OFFBOARD
} _mission_type;
+ bool _loiter_set;
+
MissionFeasibilityChecker missionFeasiblityChecker; /**< class that checks if a mission is feasible */
};