mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-15 22:13:33 +08:00
Implement ModuleParams inheritance in the VtolLandDetector class. Requires PR #12356.
This commit is contained in:
@@ -84,6 +84,7 @@ private:
|
||||
|
||||
/* get control mode dependent pilot throttle threshold with which we should quit landed state and take off */
|
||||
float _get_takeoff_throttle();
|
||||
|
||||
bool _has_low_thrust();
|
||||
bool _has_minimal_thrust();
|
||||
bool _has_altitude_lock();
|
||||
|
||||
@@ -48,13 +48,11 @@ namespace land_detector
|
||||
|
||||
VtolLandDetector::VtolLandDetector()
|
||||
{
|
||||
_paramHandle.maxAirSpeed = param_find("LNDFW_AIRSPD_MAX");
|
||||
}
|
||||
|
||||
void VtolLandDetector::_update_topics()
|
||||
{
|
||||
MulticopterLandDetector::_update_topics();
|
||||
|
||||
_airspeed_sub.update(&_airspeed);
|
||||
_vehicle_status_sub.update(&_vehicle_status);
|
||||
}
|
||||
@@ -92,7 +90,7 @@ bool VtolLandDetector::_get_landed_state()
|
||||
|
||||
// only consider airspeed if we have been in air before to avoid false
|
||||
// detections in the case of wind on the ground
|
||||
if (_was_in_air && (_airspeed_filtered > _params.maxAirSpeed)) {
|
||||
if (_was_in_air && (_airspeed_filtered > _param_lndfw_airspd_max.get())) {
|
||||
landed = false;
|
||||
}
|
||||
|
||||
@@ -101,11 +99,4 @@ bool VtolLandDetector::_get_landed_state()
|
||||
return landed;
|
||||
}
|
||||
|
||||
void VtolLandDetector::_update_params()
|
||||
{
|
||||
MulticopterLandDetector::_update_params();
|
||||
|
||||
param_get(_paramHandle.maxAirSpeed, &_params.maxAirSpeed);
|
||||
}
|
||||
|
||||
} // namespace land_detector
|
||||
|
||||
@@ -56,19 +56,11 @@ public:
|
||||
VtolLandDetector();
|
||||
|
||||
protected:
|
||||
void _update_params() override;
|
||||
void _update_topics() override;
|
||||
bool _get_landed_state() override;
|
||||
bool _get_maybe_landed_state() override;
|
||||
|
||||
private:
|
||||
struct {
|
||||
param_t maxAirSpeed;
|
||||
} _paramHandle{};
|
||||
|
||||
struct {
|
||||
float maxAirSpeed;
|
||||
} _params{};
|
||||
|
||||
uORB::Subscription _airspeed_sub{ORB_ID(airspeed)};
|
||||
uORB::Subscription _vehicle_status_sub{ORB_ID(vehicle_status)};
|
||||
@@ -78,7 +70,11 @@ private:
|
||||
|
||||
bool _was_in_air{false}; /**< indicates whether the vehicle was in the air in the previous iteration */
|
||||
float _airspeed_filtered{0.0f}; /**< low pass filtered airspeed */
|
||||
|
||||
DEFINE_PARAMETERS_CUSTOM_PARENT(
|
||||
MulticopterLandDetector,
|
||||
(ParamFloat<px4::params::LNDFW_AIRSPD_MAX>) _param_lndfw_airspd_max
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
} // namespace land_detector
|
||||
|
||||
Reference in New Issue
Block a user