From f956bafa4eda7ceb298790ef0fff5540fd3c589f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Fri, 18 Oct 2019 10:07:51 +0200 Subject: [PATCH] MixingOutput: remove safety button check The assumption is that the system can only ever get into armed state if the safety button is already off. --- src/lib/mixer_module/mixer_module.cpp | 28 +-------------------------- src/lib/mixer_module/mixer_module.hpp | 7 +------ 2 files changed, 2 insertions(+), 33 deletions(-) diff --git a/src/lib/mixer_module/mixer_module.cpp b/src/lib/mixer_module/mixer_module.cpp index 4c23049dc7..35ac2d8b4f 100644 --- a/src/lib/mixer_module/mixer_module.cpp +++ b/src/lib/mixer_module/mixer_module.cpp @@ -33,7 +33,6 @@ #include "mixer_module.hpp" -#include #include #include @@ -67,11 +66,6 @@ _control_latency_perf(perf_alloc(PC_ELAPSED, "control latency")) _armed.force_failsafe = false; _armed.in_esc_calibration_mode = false; - // If there is no safety button, disable it on init. -#ifndef GPIO_BTN_SAFETY - _safety_off = true; -#endif - px4_sem_init(&_lock, 0, 1); // Enforce the existence of the test_motor topic, so we won't miss initial publications @@ -108,12 +102,6 @@ void MixingOutput::updateParams() { ModuleParams::updateParams(); - bool safety_disabled = circuit_breaker_enabled_by_val(_param_cbrk_io_safety.get(), CBRK_IO_SAFETY_KEY); - - if (safety_disabled) { - _safety_off = true; - } - // update mixer if we have one if (_mixers) { if (_param_mot_slew_max.get() <= FLT_EPSILON) { @@ -296,7 +284,7 @@ bool MixingOutput::update() /* Update the armed status and check that we're not locked down. * We also need to arm throttle for the ESC calibration. */ - _throttle_armed = (_safety_off && _armed.armed && !_armed.lockdown) || (_safety_off && _armed.in_esc_calibration_mode); + _throttle_armed = (_armed.armed && !_armed.lockdown) || _armed.in_esc_calibration_mode; if (_armed.armed) { _motor_test.in_test_mode = false; @@ -313,7 +301,6 @@ bool MixingOutput::update() setAndPublishActuatorOutputs(num_motor_test, actuator_outputs); } - checkSafetyButton(); handleCommands(); return true; } @@ -385,24 +372,11 @@ bool MixingOutput::update() updateLatencyPerfCounter(actuator_outputs); } - checkSafetyButton(); handleCommands(); return true; } -void -MixingOutput::checkSafetyButton() -{ - if (_safety_sub.updated()) { - safety_s safety; - - if (_safety_sub.copy(&safety)) { - _safety_off = !safety.safety_switch_available || safety.safety_off; - } - } -} - void MixingOutput::setAndPublishActuatorOutputs(unsigned num_outputs, actuator_outputs_s &actuator_outputs) { diff --git a/src/lib/mixer_module/mixer_module.hpp b/src/lib/mixer_module/mixer_module.hpp index be729c7b4f..387cf36d5b 100644 --- a/src/lib/mixer_module/mixer_module.hpp +++ b/src/lib/mixer_module/mixer_module.hpp @@ -50,7 +50,6 @@ #include #include #include -#include #include @@ -193,7 +192,6 @@ private: unsigned motorTest(); void updateOutputSlewrate(); - void checkSafetyButton(); void setAndPublishActuatorOutputs(unsigned num_outputs, actuator_outputs_s &actuator_outputs); void publishMixerStatus(const actuator_outputs_s &actuator_outputs); void updateLatencyPerfCounter(const actuator_outputs_s &actuator_outputs); @@ -238,7 +236,6 @@ private: output_limit_t _output_limit; uORB::Subscription _armed_sub{ORB_ID(actuator_armed)}; - uORB::Subscription _safety_sub{ORB_ID(safety)}; uORB::SubscriptionCallbackWorkItem _control_subs[actuator_controls_s::NUM_ACTUATOR_CONTROL_GROUPS]; uORB::PublicationMulti _outputs_pub{ORB_ID(actuator_outputs), ORB_PRIO_DEFAULT}; @@ -250,7 +247,6 @@ private: hrt_abstime _time_last_mix{0}; unsigned _max_topic_update_interval_us{0}; ///< max _control_subs topic update interval (0=unlimited) - bool _safety_off{false}; ///< State of the safety button from the subscribed _safety_sub topic bool _throttle_armed{false}; bool _ignore_lockdown{false}; ///< if true, ignore the _armed.lockdown flag (for HIL outputs) @@ -279,8 +275,7 @@ private: (ParamInt) _param_mc_airmode, ///< multicopter air-mode (ParamFloat) _param_mot_slew_max, (ParamFloat) _param_thr_mdl_fac, ///< thrust to motor control signal modelling factor - (ParamInt) _param_mot_ordering, - (ParamInt) _param_cbrk_io_safety + (ParamInt) _param_mot_ordering ) };