diff options
author | Thomas Gubler <thomasgubler@gmail.com> | 2014-07-23 22:58:19 +0200 |
---|---|---|
committer | Thomas Gubler <thomasgubler@gmail.com> | 2014-07-23 22:58:19 +0200 |
commit | 24f380137ecb91fb9647e22e1d29c13da5fc0357 (patch) | |
tree | 8202bd0cad2410fd04d550897d9c994bd6d0bc3d /src/modules/navigator/navigator.h | |
parent | ed19faf4289eed5eeb3339e9609e976b9195020c (diff) | |
download | px4-firmware-24f380137ecb91fb9647e22e1d29c13da5fc0357.tar.gz px4-firmware-24f380137ecb91fb9647e22e1d29c13da5fc0357.tar.bz2 px4-firmware-24f380137ecb91fb9647e22e1d29c13da5fc0357.zip |
add method to block fallback to mission
failsafe navigation modes can use a flag in mission_result to tell the
commander to not switch back to mission
Diffstat (limited to 'src/modules/navigator/navigator.h')
-rw-r--r-- | src/modules/navigator/navigator.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/modules/navigator/navigator.h b/src/modules/navigator/navigator.h index d0b2ed841..363877bb8 100644 --- a/src/modules/navigator/navigator.h +++ b/src/modules/navigator/navigator.h @@ -52,6 +52,7 @@ #include <uORB/topics/position_setpoint_triplet.h> #include <uORB/topics/vehicle_global_position.h> #include <uORB/topics/parameter_update.h> +#include <uORB/topics/mission_result.h> #include "navigator_mode.h" #include "mission.h" @@ -103,6 +104,11 @@ public: void load_fence_from_file(const char *filename); /** + * Publish the mission result so commander and mavlink know what is going on + */ + void publish_mission_result(); + + /** * Setters */ void set_can_loiter_at_sp(bool can_loiter) { _can_loiter_at_sp = can_loiter; } @@ -115,7 +121,9 @@ public: struct vehicle_control_mode_s* get_control_mode() { return &_control_mode; } struct vehicle_global_position_s* get_global_position() { return &_global_pos; } struct home_position_s* get_home_position() { return &_home_pos; } - struct position_setpoint_triplet_s* get_position_setpoint_triplet() { return &_pos_sp_triplet; } + struct position_setpoint_triplet_s* get_position_setpoint_triplet() { return &_pos_sp_triplet; } + struct mission_result_s* get_mission_result() { return &_mission_result; } + int get_onboard_mission_sub() { return _onboard_mission_sub; } int get_offboard_mission_sub() { return _offboard_mission_sub; } int get_offboard_control_sp_sub() { return _offboard_control_sp_sub; } @@ -143,6 +151,7 @@ private: int _param_update_sub; /**< param update subscription */ orb_advert_t _pos_sp_triplet_pub; /**< publish position setpoint triplet */ + orb_advert_t _mission_result_pub; vehicle_status_s _vstatus; /**< vehicle status */ vehicle_control_mode_s _control_mode; /**< vehicle control mode */ @@ -152,6 +161,8 @@ private: navigation_capabilities_s _nav_caps; /**< navigation capabilities */ position_setpoint_triplet_s _pos_sp_triplet; /**< triplet of position setpoints */ + mission_result_s _mission_result; + bool _mission_item_valid; /**< flags if the current mission item is valid */ perf_counter_t _loop_perf; /**< loop performance counter */ |