From d6e7ed3560ac2abe73d768c0558e4f367e7e3608 Mon Sep 17 00:00:00 2001 From: Michael Keller Date: Mon, 18 Apr 2016 13:45:31 +1200 Subject: [PATCH] Added 'ledstrip_visual_beeper' feature. Added build condition for LED strip related config option. Added 'ledstrip_visual_beeper' feature. Added build condition for LED strip related config option. --- src/main/config/config.c | 1 + src/main/config/config_master.h | 1 + src/main/io/beeper.c | 8 ++++++++ src/main/io/beeper.h | 1 + src/main/io/ledstrip.c | 24 +++++++++++++++++++++++- src/main/io/serial_cli.c | 3 +++ 6 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/main/config/config.c b/src/main/config/config.c index 691d87c15..ed41b0a91 100755 --- a/src/main/config/config.c +++ b/src/main/config/config.c @@ -565,6 +565,7 @@ static void resetConf(void) #ifdef LED_STRIP applyDefaultColors(masterConfig.colors, CONFIGURABLE_COLOR_COUNT); applyDefaultLedStripConfig(masterConfig.ledConfigs); + masterConfig.ledstrip_visual_beeper = 0; #endif #ifdef SPRACINGF3 diff --git a/src/main/config/config_master.h b/src/main/config/config_master.h index 25a21afba..c61df40e6 100644 --- a/src/main/config/config_master.h +++ b/src/main/config/config_master.h @@ -119,6 +119,7 @@ typedef struct master_t { #ifdef LED_STRIP ledConfig_t ledConfigs[MAX_LED_STRIP_LENGTH]; hsvColor_t colors[CONFIGURABLE_COLOR_COUNT]; + uint8_t ledstrip_visual_beeper; // suppress LEDLOW mode if beeper is on #endif #ifdef TRANSPONDER diff --git a/src/main/io/beeper.c b/src/main/io/beeper.c index e7ec34964..b4893a1f1 100644 --- a/src/main/io/beeper.c +++ b/src/main/io/beeper.c @@ -386,6 +386,13 @@ int beeperTableEntryCount(void) return (int)BEEPER_TABLE_ENTRY_COUNT; } +/* + * Returns true if the beeper is on, false otherwise + */ +bool isBeeperOn(void) { + return beeperIsOn; +} + #else // Stub out beeper functions if #BEEPER not defined @@ -397,5 +404,6 @@ uint32_t getArmingBeepTimeMicros(void) {return 0;} beeperMode_e beeperModeForTableIndex(int idx) {UNUSED(idx); return BEEPER_SILENCE;} const char *beeperNameForTableIndex(int idx) {UNUSED(idx); return NULL;} int beeperTableEntryCount(void) {return 0;} +bool isBeeperOn(void) {return false;} #endif diff --git a/src/main/io/beeper.h b/src/main/io/beeper.h index 7d3ef38ef..0f9f488ef 100644 --- a/src/main/io/beeper.h +++ b/src/main/io/beeper.h @@ -53,3 +53,4 @@ uint32_t getArmingBeepTimeMicros(void); beeperMode_e beeperModeForTableIndex(int idx); const char *beeperNameForTableIndex(int idx); int beeperTableEntryCount(void); +bool isBeeperOn(void); diff --git a/src/main/io/ledstrip.c b/src/main/io/ledstrip.c index a52ed8df0..f0582a220 100644 --- a/src/main/io/ledstrip.c +++ b/src/main/io/ledstrip.c @@ -34,19 +34,41 @@ #include "drivers/light_ws2811strip.h" #include "drivers/system.h" #include "drivers/serial.h" +#include "drivers/sensor.h" +#include "drivers/accgyro.h" +#include "drivers/gpio.h" +#include "drivers/timer.h" +#include "drivers/pwm_rx.h" #include +#include "common/axis.h" #include "io/rc_controls.h" #include "sensors/battery.h" +#include "sensors/sensors.h" +#include "sensors/boardalignment.h" +#include "sensors/gyro.h" +#include "sensors/acceleration.h" +#include "sensors/barometer.h" #include "io/ledstrip.h" +#include "io/beeper.h" +#include "io/escservo.h" +#include "io/gimbal.h" +#include "io/serial.h" #include "flight/failsafe.h" +#include "flight/mixer.h" +#include "flight/pid.h" +#include "flight/imu.h" + +#include "telemetry/telemetry.h" #include "config/runtime_config.h" #include "config/config.h" +#include "config/config_profile.h" +#include "config/config_master.h" static bool ledStripInitialised = false; static bool ledStripEnabled = true; @@ -916,7 +938,7 @@ void updateLedStrip(void) return; } - if (IS_RC_MODE_ACTIVE(BOXLEDLOW)) { + if (IS_RC_MODE_ACTIVE(BOXLEDLOW) && !(masterConfig.ledstrip_visual_beeper && isBeeperOn())) { if (ledStripEnabled) { ledStripDisable(); ledStripEnabled = false; diff --git a/src/main/io/serial_cli.c b/src/main/io/serial_cli.c index 1ea06c9f0..55f77bb59 100644 --- a/src/main/io/serial_cli.c +++ b/src/main/io/serial_cli.c @@ -771,6 +771,9 @@ const clivalue_t valueTable[] = { { "magzero_x", VAR_INT16 | MASTER_VALUE, &masterConfig.magZero.raw[X], .config.minmax = { -32768, 32767 } }, { "magzero_y", VAR_INT16 | MASTER_VALUE, &masterConfig.magZero.raw[Y], .config.minmax = { -32768, 32767 } }, { "magzero_z", VAR_INT16 | MASTER_VALUE, &masterConfig.magZero.raw[Z], .config.minmax = { -32768, 32767 } }, +#ifdef LED_STRIP + { "ledstrip_visual_beeper", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, &masterConfig.ledstrip_visual_beeper, .config.lookup = { TABLE_OFF_ON } }, +#endif }; #define VALUE_COUNT (sizeof(valueTable) / sizeof(clivalue_t)) -- 2.11.4.GIT