mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-16 10:43:33 +08:00
Mavlink receiver: Move most variable initializations out of the constructor to the variable declarations
This commit is contained in:
@@ -89,58 +89,6 @@ MavlinkReceiver::MavlinkReceiver(Mavlink *parent) :
|
||||
_mavlink_ftp(parent),
|
||||
_mavlink_log_handler(parent),
|
||||
_mavlink_timesync(parent),
|
||||
_status{},
|
||||
_hil_local_pos{},
|
||||
_hil_land_detector{},
|
||||
_control_mode{},
|
||||
_global_pos_pub(nullptr),
|
||||
_local_pos_pub(nullptr),
|
||||
_attitude_pub(nullptr),
|
||||
_gps_pub(nullptr),
|
||||
_gyro_pub(nullptr),
|
||||
_accel_pub(nullptr),
|
||||
_mag_pub(nullptr),
|
||||
_baro_pub(nullptr),
|
||||
_airspeed_pub(nullptr),
|
||||
_battery_pub(nullptr),
|
||||
_cmd_pub(nullptr),
|
||||
_flow_pub(nullptr),
|
||||
_hil_distance_sensor_pub(nullptr),
|
||||
_flow_distance_sensor_pub(nullptr),
|
||||
_distance_sensor_pub(nullptr),
|
||||
_offboard_control_mode_pub(nullptr),
|
||||
_actuator_controls_pubs{nullptr, nullptr, nullptr, nullptr},
|
||||
_att_sp_pub(nullptr),
|
||||
_rates_sp_pub(nullptr),
|
||||
_pos_sp_triplet_pub(nullptr),
|
||||
_mocap_odometry_pub(nullptr),
|
||||
_visual_odometry_pub(nullptr),
|
||||
_radio_status_pub(nullptr),
|
||||
_ping_pub(nullptr),
|
||||
_rc_pub(nullptr),
|
||||
_manual_pub(nullptr),
|
||||
_obstacle_distance_pub(nullptr),
|
||||
_trajectory_waypoint_pub(nullptr),
|
||||
_land_detector_pub(nullptr),
|
||||
_follow_target_pub(nullptr),
|
||||
_landing_target_pose_pub(nullptr),
|
||||
_transponder_report_pub(nullptr),
|
||||
_collision_report_pub(nullptr),
|
||||
_debug_key_value_pub(nullptr),
|
||||
_debug_value_pub(nullptr),
|
||||
_debug_vect_pub(nullptr),
|
||||
_debug_array_pub(nullptr),
|
||||
_gps_inject_data_pub(nullptr),
|
||||
_command_ack_pub(nullptr),
|
||||
_hil_frames(0),
|
||||
_old_timestamp(0),
|
||||
_hil_local_proj_inited(0),
|
||||
_hil_local_alt0(0.0f),
|
||||
_hil_local_proj_ref{},
|
||||
_offboard_control_mode{},
|
||||
_orb_class_instance(-1),
|
||||
_mom_switch_pos{},
|
||||
_mom_switch_state(0),
|
||||
_p_bat_emergen_thr(param_find("BAT_EMERGEN_THR")),
|
||||
_p_bat_crit_thr(param_find("BAT_CRIT_THR")),
|
||||
_p_bat_low_thr(param_find("BAT_LOW_THR")),
|
||||
|
||||
@@ -131,39 +131,39 @@ private:
|
||||
|
||||
void handle_message_adsb_vehicle(mavlink_message_t *msg);
|
||||
void handle_message_att_pos_mocap(mavlink_message_t *msg);
|
||||
void handle_message_battery_status(mavlink_message_t *msg);
|
||||
void handle_message_collision(mavlink_message_t *msg);
|
||||
void handle_message_command_ack(mavlink_message_t *msg);
|
||||
void handle_message_optical_flow_rad(mavlink_message_t *msg);
|
||||
void handle_message_hil_optical_flow(mavlink_message_t *msg);
|
||||
void handle_message_set_mode(mavlink_message_t *msg);
|
||||
void handle_message_vision_position_estimate(mavlink_message_t *msg);
|
||||
void handle_message_gps_global_origin(mavlink_message_t *msg);
|
||||
void handle_message_set_position_target_local_ned(mavlink_message_t *msg);
|
||||
void handle_message_set_actuator_control_target(mavlink_message_t *msg);
|
||||
void handle_message_set_attitude_target(mavlink_message_t *msg);
|
||||
void handle_message_radio_status(mavlink_message_t *msg);
|
||||
void handle_message_manual_control(mavlink_message_t *msg);
|
||||
void handle_message_rc_channels_override(mavlink_message_t *msg);
|
||||
void handle_message_heartbeat(mavlink_message_t *msg);
|
||||
void handle_message_ping(mavlink_message_t *msg);
|
||||
void handle_message_hil_sensor(mavlink_message_t *msg);
|
||||
void handle_message_hil_gps(mavlink_message_t *msg);
|
||||
void handle_message_hil_state_quaternion(mavlink_message_t *msg);
|
||||
void handle_message_debug(mavlink_message_t *msg);
|
||||
void handle_message_debug_float_array(mavlink_message_t *msg);
|
||||
void handle_message_debug_vect(mavlink_message_t *msg);
|
||||
void handle_message_distance_sensor(mavlink_message_t *msg);
|
||||
void handle_message_follow_target(mavlink_message_t *msg);
|
||||
void handle_message_landing_target(mavlink_message_t *msg);
|
||||
void handle_message_collision(mavlink_message_t *msg);
|
||||
void handle_message_gps_global_origin(mavlink_message_t *msg);
|
||||
void handle_message_gps_rtcm_data(mavlink_message_t *msg);
|
||||
void handle_message_battery_status(mavlink_message_t *msg);
|
||||
void handle_message_serial_control(mavlink_message_t *msg);
|
||||
void handle_message_heartbeat(mavlink_message_t *msg);
|
||||
void handle_message_hil_gps(mavlink_message_t *msg);
|
||||
void handle_message_hil_optical_flow(mavlink_message_t *msg);
|
||||
void handle_message_hil_sensor(mavlink_message_t *msg);
|
||||
void handle_message_hil_state_quaternion(mavlink_message_t *msg);
|
||||
void handle_message_landing_target(mavlink_message_t *msg);
|
||||
void handle_message_logging_ack(mavlink_message_t *msg);
|
||||
void handle_message_play_tune(mavlink_message_t *msg);
|
||||
void handle_message_obstacle_distance(mavlink_message_t *msg);
|
||||
void handle_message_trajectory_representation_waypoints(mavlink_message_t *msg);
|
||||
void handle_message_odometry(mavlink_message_t *msg);
|
||||
void handle_message_manual_control(mavlink_message_t *msg);
|
||||
void handle_message_named_value_float(mavlink_message_t *msg);
|
||||
void handle_message_debug(mavlink_message_t *msg);
|
||||
void handle_message_debug_vect(mavlink_message_t *msg);
|
||||
void handle_message_debug_float_array(mavlink_message_t *msg);
|
||||
void handle_message_obstacle_distance(mavlink_message_t *msg);
|
||||
void handle_message_odometry(mavlink_message_t *msg);
|
||||
void handle_message_optical_flow_rad(mavlink_message_t *msg);
|
||||
void handle_message_ping(mavlink_message_t *msg);
|
||||
void handle_message_play_tune(mavlink_message_t *msg);
|
||||
void handle_message_radio_status(mavlink_message_t *msg);
|
||||
void handle_message_rc_channels_override(mavlink_message_t *msg);
|
||||
void handle_message_serial_control(mavlink_message_t *msg);
|
||||
void handle_message_set_actuator_control_target(mavlink_message_t *msg);
|
||||
void handle_message_set_attitude_target(mavlink_message_t *msg);
|
||||
void handle_message_set_mode(mavlink_message_t *msg);
|
||||
void handle_message_set_position_target_local_ned(mavlink_message_t *msg);
|
||||
void handle_message_trajectory_representation_waypoints(mavlink_message_t *msg);
|
||||
void handle_message_vision_position_estimate(mavlink_message_t *msg);
|
||||
|
||||
void *receive_thread(void *arg);
|
||||
|
||||
@@ -204,84 +204,84 @@ private:
|
||||
MavlinkLogHandler _mavlink_log_handler;
|
||||
MavlinkTimesync _mavlink_timesync;
|
||||
|
||||
mavlink_status_t _status; ///< receiver status, used for mavlink_parse_char()
|
||||
mavlink_status_t _status{}; ///< receiver status, used for mavlink_parse_char()
|
||||
|
||||
struct vehicle_attitude_s _att;
|
||||
struct vehicle_local_position_s _hil_local_pos;
|
||||
struct vehicle_land_detected_s _hil_land_detector;
|
||||
struct vehicle_control_mode_s _control_mode;
|
||||
map_projection_reference_s _hil_local_proj_ref {};
|
||||
offboard_control_mode_s _offboard_control_mode{};
|
||||
|
||||
orb_advert_t _global_pos_pub;
|
||||
orb_advert_t _local_pos_pub;
|
||||
orb_advert_t _attitude_pub;
|
||||
orb_advert_t _gps_pub;
|
||||
orb_advert_t _gyro_pub;
|
||||
orb_advert_t _accel_pub;
|
||||
orb_advert_t _mag_pub;
|
||||
orb_advert_t _baro_pub;
|
||||
orb_advert_t _airspeed_pub;
|
||||
orb_advert_t _battery_pub;
|
||||
orb_advert_t _cmd_pub;
|
||||
orb_advert_t _flow_pub;
|
||||
orb_advert_t _hil_distance_sensor_pub;
|
||||
orb_advert_t _flow_distance_sensor_pub;
|
||||
orb_advert_t _distance_sensor_pub;
|
||||
orb_advert_t _offboard_control_mode_pub;
|
||||
orb_advert_t _actuator_controls_pubs[4];
|
||||
orb_advert_t _att_sp_pub;
|
||||
orb_advert_t _rates_sp_pub;
|
||||
orb_advert_t _pos_sp_triplet_pub;
|
||||
orb_advert_t _mocap_odometry_pub;
|
||||
orb_advert_t _visual_odometry_pub;
|
||||
orb_advert_t _radio_status_pub;
|
||||
orb_advert_t _ping_pub;
|
||||
orb_advert_t _rc_pub;
|
||||
orb_advert_t _manual_pub;
|
||||
orb_advert_t _obstacle_distance_pub;
|
||||
orb_advert_t _trajectory_waypoint_pub;
|
||||
orb_advert_t _land_detector_pub;
|
||||
orb_advert_t _follow_target_pub;
|
||||
orb_advert_t _landing_target_pose_pub;
|
||||
orb_advert_t _transponder_report_pub;
|
||||
orb_advert_t _collision_report_pub;
|
||||
orb_advert_t _debug_key_value_pub;
|
||||
orb_advert_t _debug_value_pub;
|
||||
orb_advert_t _debug_vect_pub;
|
||||
orb_advert_t _debug_array_pub;
|
||||
orb_advert_t _gps_inject_data_pub;
|
||||
orb_advert_t _command_ack_pub;
|
||||
vehicle_attitude_s _att {};
|
||||
vehicle_local_position_s _hil_local_pos {};
|
||||
vehicle_land_detected_s _hil_land_detector {};
|
||||
vehicle_control_mode_s _control_mode {};
|
||||
|
||||
static const int _gps_inject_data_queue_size = 6;
|
||||
orb_advert_t _accel_pub{nullptr};
|
||||
orb_advert_t _actuator_controls_pubs[4] {nullptr, nullptr, nullptr, nullptr};
|
||||
orb_advert_t _airspeed_pub{nullptr};
|
||||
orb_advert_t _att_sp_pub{nullptr};
|
||||
orb_advert_t _attitude_pub{nullptr};
|
||||
orb_advert_t _baro_pub{nullptr};
|
||||
orb_advert_t _battery_pub{nullptr};
|
||||
orb_advert_t _cmd_pub{nullptr};
|
||||
orb_advert_t _collision_report_pub{nullptr};
|
||||
orb_advert_t _command_ack_pub{nullptr};
|
||||
orb_advert_t _debug_array_pub{nullptr};
|
||||
orb_advert_t _debug_key_value_pub{nullptr};
|
||||
orb_advert_t _debug_value_pub{nullptr};
|
||||
orb_advert_t _debug_vect_pub{nullptr};
|
||||
orb_advert_t _distance_sensor_pub{nullptr};
|
||||
orb_advert_t _flow_distance_sensor_pub{nullptr};
|
||||
orb_advert_t _flow_pub{nullptr};
|
||||
orb_advert_t _follow_target_pub{nullptr};
|
||||
orb_advert_t _global_pos_pub{nullptr};
|
||||
orb_advert_t _gps_inject_data_pub{nullptr};
|
||||
orb_advert_t _gps_pub{nullptr};
|
||||
orb_advert_t _gyro_pub{nullptr};
|
||||
orb_advert_t _hil_distance_sensor_pub{nullptr};
|
||||
orb_advert_t _land_detector_pub{nullptr};
|
||||
orb_advert_t _landing_target_pose_pub{nullptr};
|
||||
orb_advert_t _local_pos_pub{nullptr};
|
||||
orb_advert_t _mag_pub{nullptr};
|
||||
orb_advert_t _manual_pub{nullptr};
|
||||
orb_advert_t _mocap_odometry_pub{nullptr};
|
||||
orb_advert_t _obstacle_distance_pub{nullptr};
|
||||
orb_advert_t _offboard_control_mode_pub{nullptr};
|
||||
orb_advert_t _ping_pub{nullptr};
|
||||
orb_advert_t _pos_sp_triplet_pub{nullptr};
|
||||
orb_advert_t _radio_status_pub{nullptr};
|
||||
orb_advert_t _rates_sp_pub{nullptr};
|
||||
orb_advert_t _rc_pub{nullptr};
|
||||
orb_advert_t _trajectory_waypoint_pub{nullptr};
|
||||
orb_advert_t _transponder_report_pub{nullptr};
|
||||
orb_advert_t _visual_odometry_pub{nullptr};
|
||||
|
||||
static constexpr int _gps_inject_data_queue_size{6};
|
||||
|
||||
int _actuator_armed_sub{orb_subscribe(ORB_ID(actuator_armed))};
|
||||
int _control_mode_sub{orb_subscribe(ORB_ID(vehicle_control_mode))};
|
||||
int _vehicle_attitude_sub{orb_subscribe(ORB_ID(vehicle_attitude))};
|
||||
|
||||
int _hil_frames;
|
||||
int _hil_frames{0};
|
||||
int _orb_class_instance{-1};
|
||||
|
||||
uint64_t _global_ref_timestamp{0};
|
||||
uint64_t _old_timestamp;
|
||||
uint64_t _old_timestamp{0};
|
||||
|
||||
bool _hil_local_proj_inited;
|
||||
float _hil_local_alt0;
|
||||
bool _hil_local_proj_inited{false};
|
||||
|
||||
struct map_projection_reference_s _hil_local_proj_ref;
|
||||
struct offboard_control_mode_s _offboard_control_mode;
|
||||
float _hil_local_alt0{0.0f};
|
||||
|
||||
int _orb_class_instance;
|
||||
static constexpr unsigned MOM_SWITCH_COUNT{8};
|
||||
|
||||
static constexpr unsigned MOM_SWITCH_COUNT = 8;
|
||||
uint8_t _mom_switch_pos[MOM_SWITCH_COUNT] {};
|
||||
uint16_t _mom_switch_state{0};
|
||||
|
||||
uint8_t _mom_switch_pos[MOM_SWITCH_COUNT];
|
||||
uint16_t _mom_switch_state;
|
||||
|
||||
param_t _p_bat_emergen_thr;
|
||||
param_t _p_bat_crit_thr;
|
||||
param_t _p_bat_low_thr;
|
||||
param_t _p_flow_rot;
|
||||
param_t _p_flow_maxr;
|
||||
param_t _p_flow_minhgt;
|
||||
param_t _p_flow_maxhgt;
|
||||
param_t _p_bat_emergen_thr{PARAM_INVALID};
|
||||
param_t _p_bat_crit_thr{PARAM_INVALID};
|
||||
param_t _p_bat_low_thr{PARAM_INVALID};
|
||||
param_t _p_flow_rot{PARAM_INVALID};
|
||||
param_t _p_flow_maxr{PARAM_INVALID};
|
||||
param_t _p_flow_minhgt{PARAM_INVALID};
|
||||
param_t _p_flow_maxhgt{PARAM_INVALID};
|
||||
|
||||
MavlinkReceiver(const MavlinkReceiver &) = delete;
|
||||
MavlinkReceiver operator=(const MavlinkReceiver &) = delete;
|
||||
|
||||
Reference in New Issue
Block a user