From aef6b9216e90dd39985a497315a38a028400d269 Mon Sep 17 00:00:00 2001 From: Dennis Mannhart Date: Wed, 11 Apr 2018 09:20:04 +0200 Subject: [PATCH] FlightTasksAuto/Line: replace BlockParams with module params --- src/lib/FlightTasks/FlightTasks.cpp | 2 +- src/lib/FlightTasks/tasks/FlightTaskAuto.cpp | 5 ---- src/lib/FlightTasks/tasks/FlightTaskAuto.hpp | 9 ++++--- .../FlightTasks/tasks/FlightTaskAutoLine.cpp | 14 ---------- .../FlightTasks/tasks/FlightTaskAutoLine.hpp | 26 +++++++++---------- 5 files changed, 20 insertions(+), 36 deletions(-) diff --git a/src/lib/FlightTasks/FlightTasks.cpp b/src/lib/FlightTasks/FlightTasks.cpp index 831da7909e..e0a4050efa 100644 --- a/src/lib/FlightTasks/FlightTasks.cpp +++ b/src/lib/FlightTasks/FlightTasks.cpp @@ -73,7 +73,7 @@ int FlightTasks::switchTask(FlightTaskIndex new_task_index) break; case FlightTaskIndex::AutoLine: - _current_task = new (&_task_union.autoLine) FlightTaskAutoLine(this, "ALN"); + _current_task = new (&_task_union.autoLine) FlightTaskAutoLine(); break; default: diff --git a/src/lib/FlightTasks/tasks/FlightTaskAuto.cpp b/src/lib/FlightTasks/tasks/FlightTaskAuto.cpp index f1b1455819..96ddb25c10 100644 --- a/src/lib/FlightTasks/tasks/FlightTaskAuto.cpp +++ b/src/lib/FlightTasks/tasks/FlightTaskAuto.cpp @@ -40,11 +40,6 @@ using namespace matrix; -FlightTaskAuto::FlightTaskAuto(control::SuperBlock *parent, const char *name) : - FlightTask(parent, name), - _mc_cruise_default(this, "MPC_XY_CRUISE", false) -{} - bool FlightTaskAuto::initializeSubscriptions(SubscriptionArray &subscription_array) { if (!FlightTask::initializeSubscriptions(subscription_array)) { diff --git a/src/lib/FlightTasks/tasks/FlightTaskAuto.hpp b/src/lib/FlightTasks/tasks/FlightTaskAuto.hpp index db7a601f10..09e5eac986 100644 --- a/src/lib/FlightTasks/tasks/FlightTaskAuto.hpp +++ b/src/lib/FlightTasks/tasks/FlightTaskAuto.hpp @@ -61,7 +61,7 @@ enum class WaypointType : int { class FlightTaskAuto : public FlightTask { public: - FlightTaskAuto(control::SuperBlock *parent, const char *name); + FlightTaskAuto() = default; virtual ~FlightTaskAuto() = default; bool initializeSubscriptions(SubscriptionArray &subscription_array) override; @@ -78,9 +78,12 @@ protected: WaypointType _type{WaypointType::idle}; /**< Type of current target triplet. */ private: - control::BlockParamFloat _mc_cruise_default; /**< Default mc cruise speed.*/ - map_projection_reference_s _reference; /**< Reference frame from global to local. */ uORB::Subscription *_sub_triplet_setpoint{nullptr}; + + DEFINE_PARAMETERS_CUSTOM_PARENT(FlightTask, (ParamFloat) _mc_cruise_default); /**< Default mc cruise speed.*/ + + map_projection_reference_s _reference; /**< Reference frame from global to local. */ + map_projection_reference_s _reference_position{}; /**< Structure used to project lat/lon setpoint into local frame. */ float _reference_altitude = 0.0f; /**< Altitude relative to ground. */ hrt_abstime _time_stamp_reference = 0; /**< time stamp when last reference update occured. */ diff --git a/src/lib/FlightTasks/tasks/FlightTaskAutoLine.cpp b/src/lib/FlightTasks/tasks/FlightTaskAutoLine.cpp index d272b6cbd9..c965618fc8 100644 --- a/src/lib/FlightTasks/tasks/FlightTaskAutoLine.cpp +++ b/src/lib/FlightTasks/tasks/FlightTaskAutoLine.cpp @@ -43,20 +43,6 @@ using namespace matrix; #define SIGMA_SINGLE_OP 0.000001f #define SIGMA_NORM 0.001f -FlightTaskAutoLine::FlightTaskAutoLine(control::SuperBlock *parent, const char *name) : - FlightTaskAuto(parent, name), - _land_speed(parent, "MPC_LAND_SPEED", false), - _vel_max_up(parent, "MPC_Z_VEL_MAX_UP", false), - _vel_max_down(parent, "MPC_Z_VEL_MAX_DN", false), - _acc_max_xy(parent, "MPC_ACC_HOR_MAX", false), - _acc_xy(parent, "MPC_ACC_HOR", false), - _acc_max_up(parent, "MPC_ACC_UP_MAX", false), - _acc_max_down(parent, "MPC_ACC_DOWN_MAX", false), - _cruise_speed_90(parent, "MPC_CRUISE_90", false), - _nav_rad(parent, "NAV_ACC_RAD", false), - _mis_yaw_error(parent, "MIS_YAW_ERR", false) -{} - bool FlightTaskAutoLine::activate() { bool ret = FlightTaskAuto::activate(); diff --git a/src/lib/FlightTasks/tasks/FlightTaskAutoLine.hpp b/src/lib/FlightTasks/tasks/FlightTaskAutoLine.hpp index 5a983bfc0e..ac0a209128 100644 --- a/src/lib/FlightTasks/tasks/FlightTaskAutoLine.hpp +++ b/src/lib/FlightTasks/tasks/FlightTaskAutoLine.hpp @@ -45,7 +45,7 @@ class FlightTaskAutoLine : public FlightTaskAuto { public: - FlightTaskAutoLine(control::SuperBlock *parent, const char *name); + FlightTaskAutoLine() = default; virtual ~FlightTaskAutoLine() = default; bool activate() override; bool update() override; @@ -64,18 +64,18 @@ protected: }; State _current_state{State::none}; - control::BlockParamFloat _land_speed; /**< Downward speed during landing. */ - control::BlockParamFloat _vel_max_up; /**< Maximum upward velocity. */ - control::BlockParamFloat _vel_max_down; /**< Maximum downward velocity. */ - control::BlockParamFloat _acc_max_xy; /**< Maximum acceleration in hover. */ - control::BlockParamFloat _acc_xy; /**< Maximum acceleration from hover to fast forward flight. */ - control::BlockParamFloat _acc_max_up; /**< Max acceleration up. */ - control::BlockParamFloat _acc_max_down; /**< Max acceleration down. */ - control::BlockParamFloat _cruise_speed_90; /**< Speed when angle is 90 degrees between prev-current/current-next. */ - - /* None-position control params */ - control::BlockParamFloat _nav_rad; /**< Radius that is used by navigator that defines when to update triplets */ - control::BlockParamFloat _mis_yaw_error; /**< Yaw threshold during mission to consider yaw as accepted */ + DEFINE_PARAMETERS_CUSTOM_PARENT(FlightTaskAuto, + (ParamFloat) _land_speed, + (ParamFloat) _vel_max_up, + (ParamFloat) _vel_max_down, + (ParamFloat) _acc_max_xy, + (ParamFloat) _acc_xy, + (ParamFloat) _acc_max_up, + (ParamFloat) _acc_max_down, + (ParamFloat) _cruise_speed_90, + (ParamFloat) _nav_rad, + (ParamFloat) _mis_yaw_error + ) void _generateIdleSetpoints(); void _generateLandSetpoints();