mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-11-06 07:51:36 +08:00
rc_update: cleanup parameter usage
This commit is contained in:
committed by
Lorenz Meier
parent
acd18adc18
commit
57fc98812d
@@ -39,8 +39,6 @@
|
||||
* @author Beat Kueng <beat-kueng@gmx.net>
|
||||
*/
|
||||
|
||||
#include "parameters.h"
|
||||
|
||||
#include <px4_platform_common/px4_config.h>
|
||||
#include <px4_platform_common/defines.h>
|
||||
#include <px4_platform_common/module.h>
|
||||
@@ -57,6 +55,7 @@
|
||||
#include <uORB/SubscriptionCallback.hpp>
|
||||
#include <uORB/topics/actuator_controls.h>
|
||||
#include <uORB/topics/manual_control_setpoint.h>
|
||||
#include <uORB/topics/input_rc.h>
|
||||
#include <uORB/topics/rc_channels.h>
|
||||
#include <uORB/topics/rc_parameter_map.h>
|
||||
#include <uORB/topics/parameter_update.h>
|
||||
@@ -123,10 +122,31 @@ private:
|
||||
*/
|
||||
void set_params_from_rc();
|
||||
|
||||
perf_counter_t _loop_perf; /**< loop performance counter */
|
||||
static constexpr unsigned RC_MAX_CHAN_COUNT{input_rc_s::RC_INPUT_MAX_CHANNELS}; /**< maximum number of r/c channels we handle */
|
||||
|
||||
Parameters _parameters{}; /**< local copies of interesting parameters */
|
||||
ParameterHandles _parameter_handles{}; /**< handles for interesting parameters */
|
||||
struct Parameters {
|
||||
uint16_t min[RC_MAX_CHAN_COUNT];
|
||||
uint16_t trim[RC_MAX_CHAN_COUNT];
|
||||
uint16_t max[RC_MAX_CHAN_COUNT];
|
||||
uint16_t dz[RC_MAX_CHAN_COUNT];
|
||||
bool rev[RC_MAX_CHAN_COUNT];
|
||||
|
||||
int32_t rc_map_param[rc_parameter_map_s::RC_PARAM_MAP_NCHAN];
|
||||
} _parameters{};
|
||||
|
||||
struct ParameterHandles {
|
||||
param_t min[RC_MAX_CHAN_COUNT];
|
||||
param_t trim[RC_MAX_CHAN_COUNT];
|
||||
param_t max[RC_MAX_CHAN_COUNT];
|
||||
param_t rev[RC_MAX_CHAN_COUNT];
|
||||
param_t dz[RC_MAX_CHAN_COUNT];
|
||||
|
||||
param_t rc_map_param[rc_parameter_map_s::RC_PARAM_MAP_NCHAN];
|
||||
param_t rc_param[rc_parameter_map_s::RC_PARAM_MAP_NCHAN]; /**< param handles for the parameters which are bound
|
||||
to a RC channel, equivalent float values in the
|
||||
_parameters struct are not existing
|
||||
because these parameters are never read. */
|
||||
} _parameter_handles{};
|
||||
|
||||
uORB::SubscriptionCallbackWorkItem _input_rc_sub{this, ORB_ID(input_rc)};
|
||||
|
||||
@@ -145,10 +165,68 @@ private:
|
||||
|
||||
hrt_abstime _last_rc_to_param_map_time = 0;
|
||||
|
||||
math::LowPassFilter2p _filter_roll; /**< filters for the main 4 stick inputs */
|
||||
math::LowPassFilter2p _filter_pitch; /** we want smooth setpoints as inputs to the controllers */
|
||||
math::LowPassFilter2p _filter_yaw;
|
||||
math::LowPassFilter2p _filter_throttle;
|
||||
math::LowPassFilter2p _filter_roll{50.0f, 10.f}; /**< filters for the main 4 stick inputs */
|
||||
math::LowPassFilter2p _filter_pitch{50.0f, 10.f}; /** we want smooth setpoints as inputs to the controllers */
|
||||
math::LowPassFilter2p _filter_yaw{50.0f, 10.f};
|
||||
math::LowPassFilter2p _filter_throttle{50.0f, 10.f};
|
||||
|
||||
perf_counter_t _loop_perf; /**< loop performance counter */
|
||||
|
||||
DEFINE_PARAMETERS(
|
||||
|
||||
(ParamInt<px4::params::RC_MAP_ROLL>) _param_rc_map_roll,
|
||||
(ParamInt<px4::params::RC_MAP_PITCH>) _param_rc_map_pitch,
|
||||
(ParamInt<px4::params::RC_MAP_YAW>) _param_rc_map_yaw,
|
||||
(ParamInt<px4::params::RC_MAP_THROTTLE>) _param_rc_map_throttle,
|
||||
(ParamInt<px4::params::RC_MAP_FAILSAFE>) _param_rc_map_failsafe,
|
||||
|
||||
(ParamInt<px4::params::RC_MAP_FLTMODE>) _param_rc_map_fltmode,
|
||||
(ParamInt<px4::params::RC_MAP_MODE_SW>) _param_rc_map_mode_sw,
|
||||
|
||||
(ParamInt<px4::params::RC_MAP_FLAPS>) _param_rc_map_flaps,
|
||||
|
||||
(ParamInt<px4::params::RC_MAP_RETURN_SW>) _param_rc_map_return_sw,
|
||||
(ParamInt<px4::params::RC_MAP_RATT_SW>) _param_rc_map_ratt_sw,
|
||||
(ParamInt<px4::params::RC_MAP_POSCTL_SW>) _param_rc_map_posctl_sw,
|
||||
(ParamInt<px4::params::RC_MAP_LOITER_SW>) _param_rc_map_loiter_sw,
|
||||
(ParamInt<px4::params::RC_MAP_ACRO_SW>) _param_rc_map_acro_sw,
|
||||
(ParamInt<px4::params::RC_MAP_OFFB_SW>) _param_rc_map_offb_sw,
|
||||
(ParamInt<px4::params::RC_MAP_KILL_SW>) _param_rc_map_kill_sw,
|
||||
(ParamInt<px4::params::RC_MAP_ARM_SW>) _param_rc_map_arm_sw,
|
||||
(ParamInt<px4::params::RC_MAP_TRANS_SW>) _param_rc_map_trans_sw,
|
||||
(ParamInt<px4::params::RC_MAP_GEAR_SW>) _param_rc_map_gear_sw,
|
||||
(ParamInt<px4::params::RC_MAP_STAB_SW>) _param_rc_map_stab_sw,
|
||||
(ParamInt<px4::params::RC_MAP_MAN_SW>) _param_rc_map_man_sw,
|
||||
|
||||
(ParamInt<px4::params::RC_MAP_AUX1>) _param_rc_map_aux1,
|
||||
(ParamInt<px4::params::RC_MAP_AUX2>) _param_rc_map_aux2,
|
||||
(ParamInt<px4::params::RC_MAP_AUX3>) _param_rc_map_aux3,
|
||||
(ParamInt<px4::params::RC_MAP_AUX4>) _param_rc_map_aux4,
|
||||
(ParamInt<px4::params::RC_MAP_AUX5>) _param_rc_map_aux5,
|
||||
(ParamInt<px4::params::RC_MAP_AUX6>) _param_rc_map_aux6,
|
||||
|
||||
(ParamInt<px4::params::RC_FAILS_THR>) _param_rc_fails_thr,
|
||||
|
||||
(ParamFloat<px4::params::RC_ASSIST_TH>) _param_rc_assist_th,
|
||||
(ParamFloat<px4::params::RC_AUTO_TH>) _param_rc_auto_th,
|
||||
(ParamFloat<px4::params::RC_RATT_TH>) _param_rc_ratt_th,
|
||||
(ParamFloat<px4::params::RC_POSCTL_TH>) _param_rc_posctl_th,
|
||||
(ParamFloat<px4::params::RC_LOITER_TH>) _param_rc_loiter_th,
|
||||
(ParamFloat<px4::params::RC_ACRO_TH>) _param_rc_acro_th,
|
||||
(ParamFloat<px4::params::RC_OFFB_TH>) _param_rc_offb_th,
|
||||
(ParamFloat<px4::params::RC_KILLSWITCH_TH>) _param_rc_killswitch_th,
|
||||
(ParamFloat<px4::params::RC_ARMSWITCH_TH>) _param_rc_armswitch_th,
|
||||
(ParamFloat<px4::params::RC_TRANS_TH>) _param_rc_trans_th,
|
||||
(ParamFloat<px4::params::RC_GEAR_TH>) _param_rc_gear_th,
|
||||
(ParamFloat<px4::params::RC_STAB_TH>) _param_rc_stab_th,
|
||||
(ParamFloat<px4::params::RC_MAN_TH>) _param_rc_man_th,
|
||||
(ParamFloat<px4::params::RC_RETURN_TH>) _param_rc_return_th,
|
||||
|
||||
(ParamFloat<px4::params::RC_FLT_SMP_RATE>) _param_rc_flt_smp_rate,
|
||||
(ParamFloat<px4::params::RC_FLT_CUTOFF>) _param_rc_flt_cutoff,
|
||||
|
||||
(ParamInt<px4::params::RC_CHAN_CNT>) _param_rc_chan_cnt
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user