Fixed ledstrip animationType
This commit is contained in:
@ -6,12 +6,21 @@
|
|||||||
// local includes
|
// local includes
|
||||||
#include "ledstrip.h"
|
#include "ledstrip.h"
|
||||||
#include "ledstripdefines.h"
|
#include "ledstripdefines.h"
|
||||||
|
#include "newsettings.h"
|
||||||
|
#include "bobbyerrorhandler.h"
|
||||||
|
|
||||||
#ifdef FEATURE_LEDSTRIP
|
#ifdef FEATURE_LEDSTRIP
|
||||||
template<LedstripAnimation type>
|
template<LedstripAnimation type>
|
||||||
class LedStripSetAnimationAction : public virtual espgui::ActionInterface
|
class LedStripSetAnimationAction : public virtual espgui::ActionInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
void triggered() override { animation_type = type; }
|
void triggered() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template<LedstripAnimation type>
|
||||||
|
void LedStripSetAnimationAction<type>::triggered()
|
||||||
|
{
|
||||||
|
if (auto result = configs.write_config(configs.ledstrip.animationType, type); !result)
|
||||||
|
BobbyErrorHandler{}.errorOccured(std::move(result).error());
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -10,3 +10,4 @@
|
|||||||
|
|
||||||
IMPLEMENT_NVS_GET_SET_ENUM(OtaAnimationModes)
|
IMPLEMENT_NVS_GET_SET_ENUM(OtaAnimationModes)
|
||||||
IMPLEMENT_NVS_GET_SET_ENUM(HandbremseMode)
|
IMPLEMENT_NVS_GET_SET_ENUM(HandbremseMode)
|
||||||
|
IMPLEMENT_NVS_GET_SET_ENUM(LedstripAnimation)
|
||||||
|
@ -6,3 +6,4 @@
|
|||||||
|
|
||||||
INSTANTIATE_CONFIGWRAPPER_TEMPLATES(OtaAnimationModes)
|
INSTANTIATE_CONFIGWRAPPER_TEMPLATES(OtaAnimationModes)
|
||||||
INSTANTIATE_CONFIGWRAPPER_TEMPLATES(HandbremseMode)
|
INSTANTIATE_CONFIGWRAPPER_TEMPLATES(HandbremseMode)
|
||||||
|
INSTANTIATE_CONFIGWRAPPER_TEMPLATES(LedstripAnimation)
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
#include "icons/back.h"
|
#include "icons/back.h"
|
||||||
#include "ledstripdefines.h"
|
#include "ledstripdefines.h"
|
||||||
#include "ledstripmenu.h"
|
#include "ledstripmenu.h"
|
||||||
|
#include "newsettings.h"
|
||||||
|
|
||||||
#ifdef FEATURE_LEDSTRIP
|
#ifdef FEATURE_LEDSTRIP
|
||||||
namespace {
|
namespace {
|
||||||
@ -52,7 +53,8 @@ namespace {
|
|||||||
|
|
||||||
std::string CurrentSelectedAnimationText::text() const
|
std::string CurrentSelectedAnimationText::text() const
|
||||||
{
|
{
|
||||||
switch (animation_type) {
|
switch (configs.ledstrip.animationType.value)
|
||||||
|
{
|
||||||
case LedstripAnimation::DefaultRainbow:
|
case LedstripAnimation::DefaultRainbow:
|
||||||
return TEXT_ANIMATION_DEFAULTRAINBOW;
|
return TEXT_ANIMATION_DEFAULTRAINBOW;
|
||||||
case LedstripAnimation::BetterRainbow:
|
case LedstripAnimation::BetterRainbow:
|
||||||
|
@ -18,12 +18,10 @@ std::vector<CRGB> leds;
|
|||||||
uint8_t gHue = 0;
|
uint8_t gHue = 0;
|
||||||
|
|
||||||
uint16_t blinkAnimation = LEDSTRIP_OVERWRITE_NONE;
|
uint16_t blinkAnimation = LEDSTRIP_OVERWRITE_NONE;
|
||||||
LedstripAnimation animation_type = LedstripAnimation::DefaultRainbow;
|
|
||||||
|
|
||||||
|
|
||||||
void initLedStrip()
|
void initLedStrip()
|
||||||
{
|
{
|
||||||
animation_type = LedstripAnimation(configs.ledstrip.animationType.value);
|
|
||||||
leds.resize(configs.ledstrip.ledsCount.value);
|
leds.resize(configs.ledstrip.ledsCount.value);
|
||||||
FastLED.addLeds<NEOPIXEL, PINS_LEDSTRIP>(&*std::begin(leds), leds.size())
|
FastLED.addLeds<NEOPIXEL, PINS_LEDSTRIP>(&*std::begin(leds), leds.size())
|
||||||
.setCorrection(TypicalSMD5050);
|
.setCorrection(TypicalSMD5050);
|
||||||
@ -202,11 +200,14 @@ void showAnimation()
|
|||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
if (animation_type == LedstripAnimation::DefaultRainbow) showDefaultLedstrip();
|
switch (configs.ledstrip.animationType.value)
|
||||||
else if (animation_type == LedstripAnimation::BetterRainbow) showBetterRainbow();
|
{
|
||||||
else if (animation_type == LedstripAnimation::SpeedSync) showSpeedSyncAnimation();
|
case LedstripAnimation::DefaultRainbow: showDefaultLedstrip(); break;
|
||||||
else if (animation_type == LedstripAnimation::CustomColor) showCustomColor();
|
case LedstripAnimation::BetterRainbow: showBetterRainbow(); break;
|
||||||
else showDefaultLedstrip();
|
case LedstripAnimation::SpeedSync: showSpeedSyncAnimation(); break;
|
||||||
|
case LedstripAnimation::CustomColor: showCustomColor(); break;
|
||||||
|
default: showDefaultLedstrip();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#ifdef FEATURE_OTA
|
#ifdef FEATURE_OTA
|
||||||
else if (asyncOtaTaskStarted && configs.ledstrip.otaMode.value != OtaAnimationModes::None)
|
else if (asyncOtaTaskStarted && configs.ledstrip.otaMode.value != OtaAnimationModes::None)
|
||||||
|
@ -16,6 +16,13 @@
|
|||||||
x(ColorChangeAll)
|
x(ColorChangeAll)
|
||||||
DECLARE_TYPESAFE_ENUM(OtaAnimationModes, : uint8_t, OtaAnimationModesValues)
|
DECLARE_TYPESAFE_ENUM(OtaAnimationModes, : uint8_t, OtaAnimationModesValues)
|
||||||
|
|
||||||
|
#define LedstripAnimationValues(x) \
|
||||||
|
x(DefaultRainbow) \
|
||||||
|
x(BetterRainbow) \
|
||||||
|
x(SpeedSync) \
|
||||||
|
x(CustomColor)
|
||||||
|
DECLARE_TYPESAFE_ENUM(LedstripAnimation, : uint8_t, LedstripAnimationValues)
|
||||||
|
|
||||||
#ifdef FEATURE_LEDSTRIP
|
#ifdef FEATURE_LEDSTRIP
|
||||||
enum Bobbycar_Side
|
enum Bobbycar_Side
|
||||||
{
|
{
|
||||||
@ -33,7 +40,6 @@ extern std::vector<CRGB> leds;
|
|||||||
extern uint8_t gHue;
|
extern uint8_t gHue;
|
||||||
|
|
||||||
extern uint16_t blinkAnimation;
|
extern uint16_t blinkAnimation;
|
||||||
extern LedstripAnimation animation_type;
|
|
||||||
|
|
||||||
void showDefaultLedstrip();
|
void showDefaultLedstrip();
|
||||||
void showAnimation();
|
void showAnimation();
|
||||||
|
@ -14,13 +14,5 @@
|
|||||||
#endif
|
#endif
|
||||||
#define LEDSTRIP_OVERWRITE_BLINKBOTH 3
|
#define LEDSTRIP_OVERWRITE_BLINKBOTH 3
|
||||||
|
|
||||||
enum LedstripAnimation : uint8_t
|
|
||||||
{
|
|
||||||
DefaultRainbow,
|
|
||||||
BetterRainbow,
|
|
||||||
SpeedSync,
|
|
||||||
CustomColor
|
|
||||||
};
|
|
||||||
|
|
||||||
#define BLINK_LEFT_EXPR blinkAnimation != LEDSTRIP_OVERWRITE_BLINKRIGHT
|
#define BLINK_LEFT_EXPR blinkAnimation != LEDSTRIP_OVERWRITE_BLINKRIGHT
|
||||||
#define BLINK_RIGHT_EXPR blinkAnimation != LEDSTRIP_OVERWRITE_BLINKLEFT
|
#define BLINK_RIGHT_EXPR blinkAnimation != LEDSTRIP_OVERWRITE_BLINKLEFT
|
||||||
|
@ -236,7 +236,7 @@ public:
|
|||||||
ConfigWrapper<int16_t> smallOffset {4, DoReset, {}, "smallOffset" };
|
ConfigWrapper<int16_t> smallOffset {4, DoReset, {}, "smallOffset" };
|
||||||
ConfigWrapper<int16_t> bigOffset {10, DoReset, {}, "bigOffset" };
|
ConfigWrapper<int16_t> bigOffset {10, DoReset, {}, "bigOffset" };
|
||||||
ConfigWrapper<bool> enableBeepWhenBlink {true, DoReset, {}, "beepwhenblink" };
|
ConfigWrapper<bool> enableBeepWhenBlink {true, DoReset, {}, "beepwhenblink" };
|
||||||
ConfigWrapper<int16_t> animationType {1, DoReset, {}, "animationType" };
|
ConfigWrapper<LedstripAnimation> animationType{LedstripAnimation::DefaultRainbow, DoReset, {}, "animationType" };
|
||||||
ConfigWrapper<bool> enableFullBlink {true, DoReset, {}, "fullblink" };
|
ConfigWrapper<bool> enableFullBlink {true, DoReset, {}, "fullblink" };
|
||||||
ConfigWrapper<bool> enableStVO {true, DoReset, {}, "ledstvo" };
|
ConfigWrapper<bool> enableStVO {true, DoReset, {}, "ledstvo" };
|
||||||
ConfigWrapper<int16_t> stvoFrontOffset {0, DoReset, {}, "ledstvofoff" };
|
ConfigWrapper<int16_t> stvoFrontOffset {0, DoReset, {}, "ledstvofoff" };
|
||||||
|
Reference in New Issue
Block a user