From e8d98c1f8a88f9f4a1b33b301e30f355c7633ccb Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Mon, 5 Apr 2021 10:09:10 -0400 Subject: [PATCH] uavcan: skip beep if CBRK_BUZZER circuit breaker set --- src/drivers/uavcan/beep.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/drivers/uavcan/beep.cpp b/src/drivers/uavcan/beep.cpp index 366aad61a6..1e4a9818da 100644 --- a/src/drivers/uavcan/beep.cpp +++ b/src/drivers/uavcan/beep.cpp @@ -39,6 +39,8 @@ #include "beep.hpp" +#include + UavcanBeep::UavcanBeep(uavcan::INode &node) : _beep_pub(node), _timer(node) @@ -47,6 +49,11 @@ UavcanBeep::UavcanBeep(uavcan::INode &node) : int UavcanBeep::init() { + // don't initialize if CBRK_BUZZER circuit breaker is enabled. + if (circuit_breaker_enabled("CBRK_BUZZER", CBRK_BUZZER_KEY)) { + return 0; + } + /* * Setup timer and call back function for periodic updates */ @@ -64,7 +71,7 @@ void UavcanBeep::periodic_update(const uavcan::TimerEvent &) _tune_control_sub.copy(&_tune); if (_tune.timestamp > 0) { - Tunes::ControlResult result = _tunes.set_control(_tune); + Tunes::ControlResult result = _tunes.set_control(_tune); _play_tone = (result == Tunes::ControlResult::Success) || (result == Tunes::ControlResult::AlreadyPlaying); } }