From 22e8204de8f72f4aba5acf2773166369b2e8b72c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= <beat-kueng@gmx.net> Date: Mon, 19 Mar 2018 19:38:24 +0100 Subject: [PATCH] refactor mc_att_control: move class initializer to member initializer --- src/modules/mc_att_control/mc_att_control.hpp | 62 +++++++++---------- .../mc_att_control/mc_att_control_main.cpp | 43 +------------ 2 files changed, 32 insertions(+), 73 deletions(-) diff --git a/src/modules/mc_att_control/mc_att_control.hpp b/src/modules/mc_att_control/mc_att_control.hpp index 850a137124..37aa5301c2 100644 --- a/src/modules/mc_att_control/mc_att_control.hpp +++ b/src/modules/mc_att_control/mc_att_control.hpp @@ -87,42 +87,42 @@ public: private: - int _v_att_sub; /**< vehicle attitude subscription */ - int _v_att_sp_sub; /**< vehicle attitude setpoint subscription */ - int _v_rates_sp_sub; /**< vehicle rates setpoint subscription */ - int _v_control_mode_sub; /**< vehicle control mode subscription */ - int _params_sub; /**< parameter updates subscription */ - int _manual_control_sp_sub; /**< manual control setpoint subscription */ - int _vehicle_status_sub; /**< vehicle status subscription */ - int _motor_limits_sub; /**< motor limits subscription */ - int _battery_status_sub; /**< battery status subscription */ + int _v_att_sub{-1}; /**< vehicle attitude subscription */ + int _v_att_sp_sub{-1}; /**< vehicle attitude setpoint subscription */ + int _v_rates_sp_sub{-1}; /**< vehicle rates setpoint subscription */ + int _v_control_mode_sub{-1}; /**< vehicle control mode subscription */ + int _params_sub{-1}; /**< parameter updates subscription */ + int _manual_control_sp_sub{-1}; /**< manual control setpoint subscription */ + int _vehicle_status_sub{-1}; /**< vehicle status subscription */ + int _motor_limits_sub{-1}; /**< motor limits subscription */ + int _battery_status_sub{-1}; /**< battery status subscription */ int _sensor_gyro_sub[MAX_GYRO_COUNT]; /**< gyro data subscription */ - int _sensor_correction_sub; /**< sensor thermal correction subscription */ - int _sensor_bias_sub; /**< sensor in-run bias correction subscription */ + int _sensor_correction_sub{-1}; /**< sensor thermal correction subscription */ + int _sensor_bias_sub{-1}; /**< sensor in-run bias correction subscription */ - unsigned _gyro_count; - int _selected_gyro; + unsigned _gyro_count{1}; + int _selected_gyro{0}; - orb_advert_t _v_rates_sp_pub; /**< rate setpoint publication */ - orb_advert_t _actuators_0_pub; /**< attitude actuator controls publication */ - orb_advert_t _controller_status_pub; /**< controller status publication */ + orb_advert_t _v_rates_sp_pub{nullptr}; /**< rate setpoint publication */ + orb_advert_t _actuators_0_pub{nullptr}; /**< attitude actuator controls publication */ + orb_advert_t _controller_status_pub{nullptr}; /**< controller status publication */ - orb_id_t _rates_sp_id; /**< pointer to correct rates setpoint uORB metadata structure */ - orb_id_t _actuators_id; /**< pointer to correct actuator controls0 uORB metadata structure */ + orb_id_t _rates_sp_id{nullptr}; /**< pointer to correct rates setpoint uORB metadata structure */ + orb_id_t _actuators_id{nullptr}; /**< pointer to correct actuator controls0 uORB metadata structure */ - bool _actuators_0_circuit_breaker_enabled; /**< circuit breaker to suppress output */ + bool _actuators_0_circuit_breaker_enabled{false}; /**< circuit breaker to suppress output */ - struct vehicle_attitude_s _v_att; /**< vehicle attitude */ - struct vehicle_attitude_setpoint_s _v_att_sp; /**< vehicle attitude setpoint */ - struct vehicle_rates_setpoint_s _v_rates_sp; /**< vehicle rates setpoint */ - struct manual_control_setpoint_s _manual_control_sp; /**< manual control setpoint */ - struct vehicle_control_mode_s _v_control_mode; /**< vehicle control mode */ - struct actuator_controls_s _actuators; /**< actuator controls */ - struct vehicle_status_s _vehicle_status; /**< vehicle status */ - struct battery_status_s _battery_status; /**< battery status */ - struct sensor_gyro_s _sensor_gyro; /**< gyro data before thermal correctons and ekf bias estimates are applied */ - struct sensor_correction_s _sensor_correction; /**< sensor thermal corrections */ - struct sensor_bias_s _sensor_bias; /**< sensor in-run bias corrections */ + struct vehicle_attitude_s _v_att {}; /**< vehicle attitude */ + struct vehicle_attitude_setpoint_s _v_att_sp {}; /**< vehicle attitude setpoint */ + struct vehicle_rates_setpoint_s _v_rates_sp {}; /**< vehicle rates setpoint */ + struct manual_control_setpoint_s _manual_control_sp {}; /**< manual control setpoint */ + struct vehicle_control_mode_s _v_control_mode {}; /**< vehicle control mode */ + struct actuator_controls_s _actuators {}; /**< actuator controls */ + struct vehicle_status_s _vehicle_status {}; /**< vehicle status */ + struct battery_status_s _battery_status {}; /**< battery status */ + struct sensor_gyro_s _sensor_gyro {}; /**< gyro data before thermal correctons and ekf bias estimates are applied */ + struct sensor_correction_s _sensor_correction {}; /**< sensor thermal corrections */ + struct sensor_bias_s _sensor_bias {}; /**< sensor in-run bias corrections */ MultirotorMixer::saturation_status _saturation_status{}; @@ -131,7 +131,7 @@ private: math::LowPassFilter2p _lp_filters_d[3]; /**< low-pass filters for D-term (roll, pitch & yaw) */ static constexpr const float initial_update_rate_hz = 250.f; /**< loop update rate used for initialization */ - float _loop_update_rate_hz; /**< current rate-controller loop update rate in [Hz] */ + float _loop_update_rate_hz{initial_update_rate_hz}; /**< current rate-controller loop update rate in [Hz] */ math::Vector<3> _rates_prev; /**< angular rates on previous step */ math::Vector<3> _rates_prev_filtered; /**< angular rates on previous step (low-pass filtered) */ diff --git a/src/modules/mc_att_control/mc_att_control_main.cpp b/src/modules/mc_att_control/mc_att_control_main.cpp index acb153fbcc..ccf3c1474e 100644 --- a/src/modules/mc_att_control/mc_att_control_main.cpp +++ b/src/modules/mc_att_control/mc_att_control_main.cpp @@ -97,54 +97,13 @@ To reduce control latency, the module directly polls on the gyro topic published } MulticopterAttitudeControl::MulticopterAttitudeControl() : - - /* subscriptions */ - _v_att_sub(-1), - _v_att_sp_sub(-1), - _v_control_mode_sub(-1), - _params_sub(-1), - _manual_control_sp_sub(-1), - _vehicle_status_sub(-1), - _motor_limits_sub(-1), - _battery_status_sub(-1), - _sensor_correction_sub(-1), - _sensor_bias_sub(-1), - - /* gyro selection */ - _gyro_count(1), - _selected_gyro(0), - - /* publications */ - _v_rates_sp_pub(nullptr), - _actuators_0_pub(nullptr), - _controller_status_pub(nullptr), - _rates_sp_id(nullptr), - _actuators_id(nullptr), - - _actuators_0_circuit_breaker_enabled(false), - - _v_att{}, - _v_att_sp{}, - _v_rates_sp{}, - _manual_control_sp{}, - _v_control_mode{}, - _actuators{}, - _vehicle_status{}, - _battery_status{}, - _sensor_gyro{}, - _sensor_correction{}, - _sensor_bias{}, - _saturation_status{}, - /* performance counters */ _loop_perf(perf_alloc(PC_ELAPSED, "mc_att_control")), _controller_latency_perf(perf_alloc_once(PC_ELAPSED, "ctrl_latency")), _lp_filters_d{ {initial_update_rate_hz, 50.f}, {initial_update_rate_hz, 50.f}, - {initial_update_rate_hz, 50.f}}, // will be initialized correctly when params are loaded - -_loop_update_rate_hz(initial_update_rate_hz) + {initial_update_rate_hz, 50.f}} // will be initialized correctly when params are loaded { for (uint8_t i = 0; i < MAX_GYRO_COUNT; i++) { _sensor_gyro_sub[i] = -1; -- GitLab