After showing the IP for 1 Minute, switch animation
This commit is contained in:
parent
dc8bc98193
commit
320268ca14
32
src/main.cpp
32
src/main.cpp
|
@ -99,6 +99,7 @@ bool initLEDs()
|
||||||
enum LEDState {
|
enum LEDState {
|
||||||
STARTUP,
|
STARTUP,
|
||||||
UDP,
|
UDP,
|
||||||
|
SHOWIP,
|
||||||
ANIMATION,
|
ANIMATION,
|
||||||
TRANSITION,
|
TRANSITION,
|
||||||
TRANSITION_FADE2BLACK
|
TRANSITION_FADE2BLACK
|
||||||
|
@ -112,6 +113,8 @@ static void ledFSM(void)
|
||||||
|
|
||||||
static unsigned long lastUDPUpdate = 0;
|
static unsigned long lastUDPUpdate = 0;
|
||||||
|
|
||||||
|
static unsigned long stateEnteredTime = 0;
|
||||||
|
|
||||||
LEDState lastState = ledState;
|
LEDState lastState = ledState;
|
||||||
|
|
||||||
switch(ledState) {
|
switch(ledState) {
|
||||||
|
@ -124,7 +127,27 @@ static void ledFSM(void)
|
||||||
Font::textToBitmap(infoStr.c_str(), &bmp, Fader::Color{0, 0, 0, 32});
|
Font::textToBitmap(infoStr.c_str(), &bmp, Fader::Color{0, 0, 0, 32});
|
||||||
|
|
||||||
animController.changeAnimation(std::unique_ptr<Animation>(new ImageScrollerAnimation(&ledFader, &bmp, 5)), false);
|
animController.changeAnimation(std::unique_ptr<Animation>(new ImageScrollerAnimation(&ledFader, &bmp, 5)), false);
|
||||||
//animController.changeAnimation(std::unique_ptr<Animation>(new FireAnimation(&ledFader, false)), false);
|
ledState = SHOWIP;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SHOWIP:
|
||||||
|
if(stateEntered) {
|
||||||
|
animController.restart();
|
||||||
|
}
|
||||||
|
|
||||||
|
animController.loop();
|
||||||
|
|
||||||
|
if(((WiFi.status() == WL_CONNECTED) || (WiFi.getMode() == WIFI_MODE_AP)) &&
|
||||||
|
udpProto.check()) {
|
||||||
|
// UDP packet received -> transition to UDP state
|
||||||
|
nextState = UDP;
|
||||||
|
ledState = TRANSITION;
|
||||||
|
}
|
||||||
|
|
||||||
|
// change to last used animation after some time
|
||||||
|
if((millis() - stateEnteredTime) > 60000) {
|
||||||
|
animController.changeAnimation(std::unique_ptr<Animation>(new FireAnimation(&ledFader, false)), true);
|
||||||
ledState = ANIMATION;
|
ledState = ANIMATION;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -190,7 +213,12 @@ static void ledFSM(void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
stateEntered = (lastState != ledState);
|
if(lastState != ledState) {
|
||||||
|
stateEntered = true;
|
||||||
|
stateEnteredTime = millis();
|
||||||
|
} else {
|
||||||
|
stateEntered = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void fineDelay(uint32_t us)
|
static void fineDelay(uint32_t us)
|
||||||
|
|
Loading…
Reference in a new issue