aboutsummaryrefslogtreecommitdiff
path: root/src/modules/navigator/mission.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/navigator/mission.h')
-rw-r--r--src/modules/navigator/mission.h48
1 files changed, 9 insertions, 39 deletions
diff --git a/src/modules/navigator/mission.h b/src/modules/navigator/mission.h
index 6e4761946..d4808b6f4 100644
--- a/src/modules/navigator/mission.h
+++ b/src/modules/navigator/mission.h
@@ -65,25 +65,15 @@ class Navigator;
class Mission : public MissionBlock
{
public:
- /**
- * Constructor
- */
Mission(Navigator *navigator, const char *name);
- /**
- * Destructor
- */
virtual ~Mission();
- /**
- * This function is called while the mode is inactive
- */
virtual void on_inactive();
- /**
- * This function is called while the mode is active
- */
- virtual bool on_active(struct position_setpoint_triplet_s *pos_sp_triplet);
+ virtual void on_activation();
+
+ virtual void on_active();
private:
/**
@@ -104,36 +94,13 @@ private:
/**
* Set new mission items
*/
- void set_mission_items(struct position_setpoint_triplet_s *pos_sp_triplet);
-
- /**
- * Try to set the current position setpoint from an onboard mission item
- * @return true if mission item successfully set
- */
- bool is_current_onboard_mission_item_set(struct position_setpoint_s *current_pos_sp);
-
- /**
- * Try to set the current position setpoint from an offboard mission item
- * @return true if mission item successfully set
- */
- bool is_current_offboard_mission_item_set(struct position_setpoint_s *current_pos_sp);
-
- /**
- * Try to set the next position setpoint from an onboard mission item
- */
- void get_next_onboard_mission_item(struct position_setpoint_s *next_pos_sp);
-
- /**
- * Try to set the next position setpoint from an offboard mission item
- */
- void get_next_offboard_mission_item(struct position_setpoint_s *next_pos_sp);
+ void set_mission_items();
/**
- * Read a mission item from the dataman and watch out for DO_JUMPS
+ * Read current or next mission item from the dataman and watch out for DO_JUMPS
* @return true if successful
*/
- bool read_mission_item(const dm_item_t dm_item, bool is_current, int *mission_index,
- struct mission_item_s *new_mission_item);
+ bool read_mission_item(bool onboard, bool is_current, struct mission_item_s *mission_item);
/**
* Report that a mission item has been reached
@@ -156,12 +123,15 @@ private:
void publish_mission_result();
control::BlockParamFloat _param_onboard_enabled;
+ control::BlockParamFloat _param_takeoff_alt;
struct mission_s _onboard_mission;
struct mission_s _offboard_mission;
int _current_onboard_mission_index;
int _current_offboard_mission_index;
+ bool _need_takeoff;
+ bool _takeoff;
orb_advert_t _mission_result_pub;
struct mission_result_s _mission_result;