diff --git a/src/main.cpp b/src/main.cpp index 41fdcbd..aea865f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -188,20 +188,20 @@ static void ledFSM(void) 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; - // ensure the correct animation plays after UDP transfers stop - animController.changeAnimation(loadSavedAnimation(), false); - } - - // change to last used animation after some time - if((millis() - stateEnteredTime) > 60000) { + // change to last used animation or UDP visualization after some time + if((millis() - stateEnteredTime) > 30000) { + // load the saved animation // FIXME: does not work with transition because of restart() call in ANIMATION state animController.changeAnimation(loadSavedAnimation(), false); - ledState = ANIMATION; + + if(((WiFi.status() == WL_CONNECTED) || (WiFi.getMode() == WIFI_MODE_AP)) && + udpProto.check()) { + // UDP packet received -> transition to UDP state + nextState = UDP; + ledState = TRANSITION; + } else { + ledState = ANIMATION; + } } break;