Implement ModuleParams inheritance in the VtolLandDetector class. Requires PR #12356.

This commit is contained in:
mcsauder
2019-08-14 11:58:14 -04:00
committed by Daniel Agar
parent 9e3493bd6e
commit 9e055e9b21
3 changed files with 7 additions and 19 deletions
@@ -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();
+1 -10
View File
@@ -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
+5 -9
View File
@@ -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