From c55c978145ec8ee3a8a9c4b824de5f714aefbddd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Mon, 25 Jul 2016 12:25:45 +0200 Subject: [PATCH] tap_esc: reset outputs only when armed really changed (not on each topic update) --- src/drivers/tap_esc/tap_esc.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/drivers/tap_esc/tap_esc.cpp b/src/drivers/tap_esc/tap_esc.cpp index 3cecdbfe93..f13d6deb2e 100644 --- a/src/drivers/tap_esc/tap_esc.cpp +++ b/src/drivers/tap_esc/tap_esc.cpp @@ -754,13 +754,15 @@ TAP_ESC::cycle() if (updated) { orb_copy(ORB_ID(actuator_armed), _armed_sub, &_armed); + if (_is_armed != _armed.armed) { + /* reset all outputs */ + for (size_t i = 0; i < sizeof(_outputs.output) / sizeof(_outputs.output[0]); i++) { + _outputs.output[i] = NAN; + } + } /* do not obey the lockdown value, as lockdown is for PWMSim */ _is_armed = _armed.armed; - /* reset all outputs */ - for (size_t i = 0; i < sizeof(_outputs.output) / sizeof(_outputs.output[0]); i++) { - _outputs.output[i] = NAN; - } }