mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-01-08 17:08:28 -04:00
AP_Landing: add static create method
This commit is contained in:
parent
e98ccb9ae6
commit
c745908b14
@ -25,11 +25,10 @@
|
|||||||
|
|
||||||
/// @class AP_Landing
|
/// @class AP_Landing
|
||||||
/// @brief Class managing ArduPlane landing methods
|
/// @brief Class managing ArduPlane landing methods
|
||||||
class AP_Landing
|
class AP_Landing {
|
||||||
{
|
|
||||||
public:
|
|
||||||
friend class AP_Landing_Deepstall;
|
friend class AP_Landing_Deepstall;
|
||||||
|
|
||||||
|
public:
|
||||||
FUNCTOR_TYPEDEF(set_target_altitude_proportion_fn_t, void, const Location&, float);
|
FUNCTOR_TYPEDEF(set_target_altitude_proportion_fn_t, void, const Location&, float);
|
||||||
FUNCTOR_TYPEDEF(constrain_target_altitude_location_fn_t, void, const Location&, const Location&);
|
FUNCTOR_TYPEDEF(constrain_target_altitude_location_fn_t, void, const Location&, const Location&);
|
||||||
FUNCTOR_TYPEDEF(adjusted_altitude_cm_fn_t, int32_t);
|
FUNCTOR_TYPEDEF(adjusted_altitude_cm_fn_t, int32_t);
|
||||||
@ -37,14 +36,27 @@ public:
|
|||||||
FUNCTOR_TYPEDEF(disarm_if_autoland_complete_fn_t, void);
|
FUNCTOR_TYPEDEF(disarm_if_autoland_complete_fn_t, void);
|
||||||
FUNCTOR_TYPEDEF(update_flight_stage_fn_t, void);
|
FUNCTOR_TYPEDEF(update_flight_stage_fn_t, void);
|
||||||
|
|
||||||
// constructor
|
static AP_Landing create(AP_Mission &_mission, AP_AHRS &_ahrs, AP_SpdHgtControl *_SpdHgt_Controller, AP_Navigation *_nav_controller, AP_Vehicle::FixedWing &_aparm,
|
||||||
AP_Landing(AP_Mission &_mission, AP_AHRS &_ahrs, AP_SpdHgtControl *_SpdHgt_Controller, AP_Navigation *_nav_controller, AP_Vehicle::FixedWing &_aparm,
|
|
||||||
set_target_altitude_proportion_fn_t _set_target_altitude_proportion_fn,
|
set_target_altitude_proportion_fn_t _set_target_altitude_proportion_fn,
|
||||||
constrain_target_altitude_location_fn_t _constrain_target_altitude_location_fn,
|
constrain_target_altitude_location_fn_t _constrain_target_altitude_location_fn,
|
||||||
adjusted_altitude_cm_fn_t _adjusted_altitude_cm_fn,
|
adjusted_altitude_cm_fn_t _adjusted_altitude_cm_fn,
|
||||||
adjusted_relative_altitude_cm_fn_t _adjusted_relative_altitude_cm_fn,
|
adjusted_relative_altitude_cm_fn_t _adjusted_relative_altitude_cm_fn,
|
||||||
disarm_if_autoland_complete_fn_t _disarm_if_autoland_complete_fn,
|
disarm_if_autoland_complete_fn_t _disarm_if_autoland_complete_fn,
|
||||||
update_flight_stage_fn_t _update_flight_stage_fn);
|
update_flight_stage_fn_t _update_flight_stage_fn) {
|
||||||
|
return AP_Landing{_mission, _ahrs, _SpdHgt_Controller, _nav_controller, _aparm,
|
||||||
|
_set_target_altitude_proportion_fn,
|
||||||
|
_constrain_target_altitude_location_fn,
|
||||||
|
_adjusted_altitude_cm_fn,
|
||||||
|
_adjusted_relative_altitude_cm_fn,
|
||||||
|
_disarm_if_autoland_complete_fn,
|
||||||
|
_update_flight_stage_fn};
|
||||||
|
}
|
||||||
|
|
||||||
|
constexpr AP_Landing(AP_Landing &&other) = default;
|
||||||
|
|
||||||
|
/* Do not allow copies */
|
||||||
|
AP_Landing(const AP_Landing &other) = delete;
|
||||||
|
AP_Landing &operator=(const AP_Landing&) = delete;
|
||||||
|
|
||||||
|
|
||||||
// NOTE: make sure to update is_type_valid()
|
// NOTE: make sure to update is_type_valid()
|
||||||
@ -105,6 +117,13 @@ public:
|
|||||||
float alt_offset;
|
float alt_offset;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
AP_Landing(AP_Mission &_mission, AP_AHRS &_ahrs, AP_SpdHgtControl *_SpdHgt_Controller, AP_Navigation *_nav_controller, AP_Vehicle::FixedWing &_aparm,
|
||||||
|
set_target_altitude_proportion_fn_t _set_target_altitude_proportion_fn,
|
||||||
|
constrain_target_altitude_location_fn_t _constrain_target_altitude_location_fn,
|
||||||
|
adjusted_altitude_cm_fn_t _adjusted_altitude_cm_fn,
|
||||||
|
adjusted_relative_altitude_cm_fn_t _adjusted_relative_altitude_cm_fn,
|
||||||
|
disarm_if_autoland_complete_fn_t _disarm_if_autoland_complete_fn,
|
||||||
|
update_flight_stage_fn_t _update_flight_stage_fn);
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
// denotes if a go-around has been commanded for landing
|
// denotes if a go-around has been commanded for landing
|
||||||
|
Loading…
Reference in New Issue
Block a user