Browse Source

px4fmu: prevent checking of safety switch parameter in main loop

sbg
Andrew Tridgell 9 years ago committed by Lorenz Meier
parent
commit
05790ff540
  1. 6
      src/drivers/px4fmu/fmu.cpp

6
src/drivers/px4fmu/fmu.cpp

@ -214,6 +214,7 @@ private:
unsigned _num_failsafe_set; unsigned _num_failsafe_set;
unsigned _num_disarmed_set; unsigned _num_disarmed_set;
bool _safety_off; bool _safety_off;
bool _safety_disabled;
orb_advert_t _to_safety; orb_advert_t _to_safety;
static bool arm_nothrottle() { return (_armed.prearmed && !_armed.armed); } static bool arm_nothrottle() { return (_armed.prearmed && !_armed.armed); }
@ -382,6 +383,7 @@ PX4FMU::PX4FMU() :
_num_failsafe_set(0), _num_failsafe_set(0),
_num_disarmed_set(0), _num_disarmed_set(0),
_safety_off(false), _safety_off(false),
_safety_disabled(false),
_to_safety(nullptr) _to_safety(nullptr)
{ {
for (unsigned i = 0; i < _max_actuators; i++) { for (unsigned i = 0; i < _max_actuators; i++) {
@ -460,6 +462,8 @@ PX4FMU::init()
warnx("FAILED registering class device"); warnx("FAILED registering class device");
} }
_safety_disabled = circuit_breaker_enabled("CBRK_IO_SAFETY", CBRK_IO_SAFETY_KEY);
work_start(); work_start();
return OK; return OK;
@ -1086,7 +1090,7 @@ PX4FMU::cycle()
*/ */
struct safety_s safety = {}; struct safety_s safety = {};
if (circuit_breaker_enabled("CBRK_IO_SAFETY", CBRK_IO_SAFETY_KEY)) { if (_safety_disabled) {
/* safety switch disabled, turn LED on solid */ /* safety switch disabled, turn LED on solid */
stm32_gpiowrite(GPIO_LED_SAFETY, 0); stm32_gpiowrite(GPIO_LED_SAFETY, 0);
_safety_off = true; _safety_off = true;

Loading…
Cancel
Save