Browse Source

FailureDetector: refactor naming, member order

sbg
Matthias Grob 5 years ago
parent
commit
2bb5917188
  1. 9
      src/modules/commander/failure_detector/FailureDetector.cpp
  2. 36
      src/modules/commander/failure_detector/FailureDetector.hpp

9
src/modules/commander/failure_detector/FailureDetector.cpp

@ -78,7 +78,7 @@ FailureDetector::update(const vehicle_status_s &vehicle_status) @@ -78,7 +78,7 @@ FailureDetector::update(const vehicle_status_s &vehicle_status)
updated |= resetAttitudeStatus();
}
if (_sub_esc_status.updated()) {
if (_esc_status_sub.updated()) {
if (_param_escs_en.get()) {
updated |= updateEscsStatus(vehicle_status);
@ -115,7 +115,7 @@ FailureDetector::updateAttitudeStatus() @@ -115,7 +115,7 @@ FailureDetector::updateAttitudeStatus()
bool updated(false);
vehicle_attitude_s attitude;
if (_sub_vehicule_attitude.update(&attitude)) {
if (_vehicule_attitude_sub.update(&attitude)) {
const matrix::Eulerf euler(matrix::Quatf(attitude.q));
const float roll(euler.phi());
@ -160,7 +160,7 @@ FailureDetector::updateExternalAtsStatus() @@ -160,7 +160,7 @@ FailureDetector::updateExternalAtsStatus()
pwm_input_s pwm_input;
bool updated(false);
if (_sub_pwm_input.update(&pwm_input)) {
if (_pwm_input_sub.update(&pwm_input)) {
uint32_t pulse_width = pwm_input.pulse_width;
bool ats_trigger_status = (pulse_width >= (uint32_t)_param_fd_ext_ats_trig.get()) && (pulse_width < 3_ms);
@ -192,11 +192,10 @@ FailureDetector::updateEscsStatus(const vehicle_status_s &vehicle_status) @@ -192,11 +192,10 @@ FailureDetector::updateEscsStatus(const vehicle_status_s &vehicle_status)
if (vehicle_status.arming_state == vehicle_status_s::ARMING_STATE_ARMED) {
esc_status_s esc_status{};
_sub_esc_status.copy(&esc_status);
_esc_status_sub.copy(&esc_status);
int all_escs_armed = (1 << esc_status.esc_count) - 1;
_esc_failure_hysteresis.set_hysteresis_time_from(false, 300_ms);
_esc_failure_hysteresis.set_state_and_update(all_escs_armed != esc_status.esc_armed_flags, time_now);

36
src/modules/commander/failure_detector/FailureDetector.hpp

@ -79,6 +79,22 @@ public: @@ -79,6 +79,22 @@ public:
bool isFailure() const { return _status != FAILURE_NONE; }
private:
bool resetAttitudeStatus();
bool isAttitudeStabilized(const vehicle_status_s &vehicle_status);
bool updateAttitudeStatus();
bool updateExternalAtsStatus();
bool updateEscsStatus(const vehicle_status_s &vehicle_status);
uint8_t _status{FAILURE_NONE};
systemlib::Hysteresis _roll_failure_hysteresis{false};
systemlib::Hysteresis _pitch_failure_hysteresis{false};
systemlib::Hysteresis _ext_ats_failure_hysteresis{false};
systemlib::Hysteresis _esc_failure_hysteresis{false};
uORB::Subscription _vehicule_attitude_sub{ORB_ID(vehicle_attitude)};
uORB::Subscription _esc_status_sub{ORB_ID(esc_status)};
uORB::Subscription _pwm_input_sub{ORB_ID(pwm_input)};
DEFINE_PARAMETERS(
(ParamInt<px4::params::FD_FAIL_P>) _param_fd_fail_p,
@ -88,25 +104,5 @@ private: @@ -88,25 +104,5 @@ private:
(ParamBool<px4::params::FD_EXT_ATS_EN>) _param_fd_ext_ats_en,
(ParamInt<px4::params::FD_EXT_ATS_TRIG>) _param_fd_ext_ats_trig,
(ParamInt<px4::params::FD_ESCS_EN>) _param_escs_en
)
// Subscriptions
uORB::Subscription _sub_vehicule_attitude{ORB_ID(vehicle_attitude)};
uORB::Subscription _sub_esc_status{ORB_ID(esc_status)};
uORB::Subscription _sub_pwm_input{ORB_ID(pwm_input)};
uint8_t _status{FAILURE_NONE};
systemlib::Hysteresis _roll_failure_hysteresis{false};
systemlib::Hysteresis _pitch_failure_hysteresis{false};
systemlib::Hysteresis _ext_ats_failure_hysteresis{false};
systemlib::Hysteresis _esc_failure_hysteresis{false};
bool resetAttitudeStatus();
bool isAttitudeStabilized(const vehicle_status_s &vehicle_status);
bool updateAttitudeStatus();
bool updateExternalAtsStatus();
bool updateEscsStatus(const vehicle_status_s &vehicle_status);
};

Loading…
Cancel
Save