struct fw_pos_ctrl_status_s *get_fw_pos_ctrl_status() { return &_fw_pos_ctrl_status; } struct home_position_s *get_home_position() { return &_home_pos; } struct mission_result_s *get_mission_result() { return &_mission_result; } struct position_setpoint_triplet_s *get_position_setpoint_triplet() { return &_pos_sp_triplet; } struct position_setpoint_triplet_s *get_reposition_triplet() { return &_reposition_triplet; } struct position_setpoint_triplet_s *get_takeoff_triplet() { return &_takeoff_triplet; } struct vehicle_global_position_s *get_global_position() { return &_global_pos; } struct vehicle_land_detected_s *get_land_detected() { return &_land_detected; } struct vehicle_local_position_s *get_local_position() { return &_local_pos; } struct vehicle_status_s *get_vstatus() { return &_vstatus; } PrecLand *get_precland() { return &_precland; } /**< allow others, e.g. Mission, to use the precision land block */ const vehicle_roi_s &get_vroi() { return _vroi; } bool home_alt_valid() { return (_home_pos.timestamp > 0 && _home_pos.valid_alt); } bool home_position_valid() { return (_home_pos.timestamp > 0 && _home_pos.valid_alt && _home_pos.valid_hpos); } int get_offboard_mission_sub() { return _offboard_mission_sub; } Geofence &get_geofence() { return _geofence; } bool get_can_loiter_at_sp() { return _can_loiter_at_sp; } float get_loiter_radius() { return _param_loiter_radius.get(); }