mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-16 04:13:33 +08:00
navigator orb subscribe/unsubscribe in constructor/destructor
This commit is contained in:
@@ -84,7 +84,8 @@ class Navigator : public ModuleBase<Navigator>, public ModuleParams
|
||||
{
|
||||
public:
|
||||
Navigator();
|
||||
virtual ~Navigator() = default;
|
||||
~Navigator() override;
|
||||
|
||||
Navigator(const Navigator &) = delete;
|
||||
Navigator operator=(const Navigator &) = delete;
|
||||
|
||||
|
||||
@@ -113,6 +113,35 @@ Navigator::Navigator() :
|
||||
|
||||
_handle_back_trans_dec_mss = param_find("VT_B_DEC_MSS");
|
||||
_handle_reverse_delay = param_find("VT_B_REV_DEL");
|
||||
|
||||
// subscriptions
|
||||
_global_pos_sub = orb_subscribe(ORB_ID(vehicle_global_position));
|
||||
_local_pos_sub = orb_subscribe(ORB_ID(vehicle_local_position));
|
||||
_gps_pos_sub = orb_subscribe(ORB_ID(vehicle_gps_position));
|
||||
_pos_ctrl_landing_status_sub = orb_subscribe(ORB_ID(position_controller_landing_status));
|
||||
_vstatus_sub = orb_subscribe(ORB_ID(vehicle_status));
|
||||
_land_detected_sub = orb_subscribe(ORB_ID(vehicle_land_detected));
|
||||
_home_pos_sub = orb_subscribe(ORB_ID(home_position));
|
||||
_offboard_mission_sub = orb_subscribe(ORB_ID(mission));
|
||||
_param_update_sub = orb_subscribe(ORB_ID(parameter_update));
|
||||
_vehicle_command_sub = orb_subscribe(ORB_ID(vehicle_command));
|
||||
_traffic_sub = orb_subscribe(ORB_ID(transponder_report));
|
||||
|
||||
reset_triplets();
|
||||
}
|
||||
|
||||
Navigator::~Navigator()
|
||||
{
|
||||
orb_unsubscribe(_global_pos_sub);
|
||||
orb_unsubscribe(_local_pos_sub);
|
||||
orb_unsubscribe(_gps_pos_sub);
|
||||
orb_unsubscribe(_pos_ctrl_landing_status_sub);
|
||||
orb_unsubscribe(_vstatus_sub);
|
||||
orb_unsubscribe(_land_detected_sub);
|
||||
orb_unsubscribe(_home_pos_sub);
|
||||
orb_unsubscribe(_offboard_mission_sub);
|
||||
orb_unsubscribe(_param_update_sub);
|
||||
orb_unsubscribe(_vehicle_command_sub);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -189,19 +218,6 @@ Navigator::run()
|
||||
_geofence.loadFromFile(GEOFENCE_FILENAME);
|
||||
}
|
||||
|
||||
/* do subscriptions */
|
||||
_global_pos_sub = orb_subscribe(ORB_ID(vehicle_global_position));
|
||||
_local_pos_sub = orb_subscribe(ORB_ID(vehicle_local_position));
|
||||
_gps_pos_sub = orb_subscribe(ORB_ID(vehicle_gps_position));
|
||||
_pos_ctrl_landing_status_sub = orb_subscribe(ORB_ID(position_controller_landing_status));
|
||||
_vstatus_sub = orb_subscribe(ORB_ID(vehicle_status));
|
||||
_land_detected_sub = orb_subscribe(ORB_ID(vehicle_land_detected));
|
||||
_home_pos_sub = orb_subscribe(ORB_ID(home_position));
|
||||
_offboard_mission_sub = orb_subscribe(ORB_ID(mission));
|
||||
_param_update_sub = orb_subscribe(ORB_ID(parameter_update));
|
||||
_vehicle_command_sub = orb_subscribe(ORB_ID(vehicle_command));
|
||||
_traffic_sub = orb_subscribe(ORB_ID(transponder_report));
|
||||
|
||||
/* copy all topics first time */
|
||||
vehicle_status_update();
|
||||
vehicle_land_detected_update();
|
||||
@@ -777,17 +793,6 @@ Navigator::run()
|
||||
|
||||
perf_end(_loop_perf);
|
||||
}
|
||||
|
||||
orb_unsubscribe(_global_pos_sub);
|
||||
orb_unsubscribe(_local_pos_sub);
|
||||
orb_unsubscribe(_gps_pos_sub);
|
||||
orb_unsubscribe(_pos_ctrl_landing_status_sub);
|
||||
orb_unsubscribe(_vstatus_sub);
|
||||
orb_unsubscribe(_land_detected_sub);
|
||||
orb_unsubscribe(_home_pos_sub);
|
||||
orb_unsubscribe(_offboard_mission_sub);
|
||||
orb_unsubscribe(_param_update_sub);
|
||||
orb_unsubscribe(_vehicle_command_sub);
|
||||
}
|
||||
|
||||
int Navigator::task_spawn(int argc, char *argv[])
|
||||
|
||||
Reference in New Issue
Block a user