Skip to content

Commit

Permalink
add mode "seconds"
Browse files Browse the repository at this point in the history
  • Loading branch information
techniccontroller committed Jan 26, 2025
1 parent dff237a commit 25500e0
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 11 deletions.
15 changes: 15 additions & 0 deletions animationfunctions.ino
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,21 @@ void showDigitalClock(uint8_t hours, uint8_t minutes, uint32_t color){
ledmatrix.printNumber(6, 6, sndDigitM, color);
}

/**
* @brief Show the seconds as digits on the wordclock
*
* @param seconds seconds to display
* @param color color to display (24bit)
*/
void showSeconds(uint8_t seconds, uint32_t color){
ledmatrix.gridFlush();
uint8_t fstDigitS = seconds/10;
uint8_t sndDigitS = seconds%10;
ledmatrix.printNumber(2, 3, fstDigitS, color);
ledmatrix.printNumber(6, 3, sndDigitS, color);
}


/**
* @brief Run random tetris animation
*
Expand Down
19 changes: 19 additions & 0 deletions data/icons/seconds.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 13 additions & 8 deletions data/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -311,10 +311,11 @@ <h1 id="headline">WORDCLOCK 2.0</h1>
<div class="grid-container">
<div class="grid-item mode-item"><span class="dot-mode" onclick="modechange(this, 0)"><a onclick="sendCommand('./cmd?mode=clock')" class="buttonClass" style="width: 100%;"><img src = "./icons/clock.svg" style="height:50px"/></a></span></div>
<div class="grid-item mode-item"><span class="dot-mode" onclick="modechange(this, 1)"><a onclick="sendCommand('./cmd?mode=diclock')" class="buttonClass" style="width: 100%;"><img src = "./icons/diclock.svg" style="height:50px"/></a></span></div>
<div class="grid-item mode-item"><span class="dot-mode" onclick="modechange(this, 2)"><a onclick="sendCommand('./cmd?mode=spiral')" class="buttonClass" style="width: 100%;"><img src = "./icons/spiral.svg" style="height:50px"/></a></span></div>
<div class="grid-item mode-item"><span class="dot-mode" onclick="modechange(this, 3)"><a onclick="sendCommand('./cmd?mode=tetris')" class="buttonClass" style="width: 100%;"><img src = "./icons/tetris.svg" style="height:50px"/></a></span></div>
<div class="grid-item mode-item"><span class="dot-mode" onclick="modechange(this, 4)"><a onclick="sendCommand('./cmd?mode=snake')" class="buttonClass" style="width: 100%;"><img src = "./icons/snake.svg" style="height:50px"/></a></span></div>
<div class="grid-item mode-item"><span class="dot-mode" onclick="modechange(this, 5)"><a onclick="sendCommand('./cmd?mode=pingpong')" class="buttonClass" style="width: 100%;"><img src = "./icons/pingpong.svg" style="height:50px"/></a></span></div>
<div class="grid-item mode-item"><span class="dot-mode" onclick="modechange(this, 2)"><a onclick="sendCommand('./cmd?mode=seconds')" class="buttonClass" style="width: 100%;"><img src = "./icons/seconds.svg" style="height:50px"/></a></span></div>
<div class="grid-item mode-item"><span class="dot-mode" onclick="modechange(this, 3)"><a onclick="sendCommand('./cmd?mode=spiral')" class="buttonClass" style="width: 100%;"><img src = "./icons/spiral.svg" style="height:50px"/></a></span></div>
<div class="grid-item mode-item"><span class="dot-mode" onclick="modechange(this, 4)"><a onclick="sendCommand('./cmd?mode=tetris')" class="buttonClass" style="width: 100%;"><img src = "./icons/tetris.svg" style="height:50px"/></a></span></div>
<div class="grid-item mode-item"><span class="dot-mode" onclick="modechange(this, 5)"><a onclick="sendCommand('./cmd?mode=snake')" class="buttonClass" style="width: 100%;"><img src = "./icons/snake.svg" style="height:50px"/></a></span></div>
<div class="grid-item mode-item"><span class="dot-mode" onclick="modechange(this, 6)"><a onclick="sendCommand('./cmd?mode=pingpong')" class="buttonClass" style="width: 100%;"><img src = "./icons/pingpong.svg" style="height:50px"/></a></span></div>
</div>
<div class="checkbox-container">
<label for="LED_Off" style="align-self: flex-start">LEDs OFF</label>
Expand Down Expand Up @@ -575,18 +576,22 @@ <h1 id="headline">WORDCLOCK 2.0</h1>
document.getElementById("colorcontainer").classList.remove("hidden");
document.getElementById("colorshiftcontainer").classList.add("hidden");
break;
case 2: // spiral
case 2: // seconds
document.getElementById("colorcontainer").classList.remove("hidden");
document.getElementById("colorshiftcontainer").classList.add("hidden");
break;
case 3: // spiral
document.getElementById("colorshiftcontainer").classList.add("hidden");
break;
case 3: // tetris
case 4: // tetris
document.getElementById("tetriscontainer").classList.remove("hidden");
document.getElementById("colorshiftcontainer").classList.add("hidden");
break;
case 4: // snake
case 5: // snake
document.getElementById("snakecontainer").classList.remove("hidden");
document.getElementById("colorshiftcontainer").classList.add("hidden");
break;
case 5: // pingping
case 6: // pingping
document.getElementById("pongcontainer").classList.remove("hidden");
document.getElementById("colorshiftcontainer").classList.add("hidden");
break;
Expand Down
19 changes: 16 additions & 3 deletions wordclock_esp8266.ino
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,9 @@ enum direction {right, left, up, down};
#define HEIGHT 11

// own datatype for state machine states
#define NUM_STATES 6
enum ClockState {st_clock, st_diclock, st_spiral, st_tetris, st_snake, st_pingpong};
const String stateNames[] = {"Clock", "DiClock", "Sprial", "Tetris", "Snake", "PingPong"};
#define NUM_STATES 7
enum ClockState {st_clock, st_diclock, st_seconds, st_spiral, st_tetris, st_snake, st_pingpong};
const String stateNames[] = {"Clock", "DiClock", "Seconds", "Sprial", "Tetris", "Snake", "PingPong"};

// ports
const unsigned int localPort = 2390;
Expand Down Expand Up @@ -548,6 +548,12 @@ void updateStateBehavior(uint8_t state){
showDigitalClock(hours, minutes, maincolor_clock);
}
break;
case st_seconds:
{
int seconds = ntp.getSeconds();
showSeconds(seconds, maincolor_clock);
}
break;
// state spiral
case st_spiral:
{
Expand Down Expand Up @@ -646,6 +652,10 @@ void entryAction(uint8_t state){
behaviorUpdatePeriod = PERIOD_TIMEVISUUPDATE;
ledmatrix.setDynamicColorShiftPhase(-1); // disable dyn. color shift
break;
case st_seconds:
behaviorUpdatePeriod = PERIOD_TIMEVISUUPDATE;
ledmatrix.setDynamicColorShiftPhase(-1); // disable dyn. color shift
break;
case st_spiral:
behaviorUpdatePeriod = PERIOD_ANIMATION;
ledmatrix.setDynamicColorShiftPhase(-1); // disable dyn. color shift
Expand Down Expand Up @@ -925,6 +935,9 @@ void handleCommand() {
else if(modestr == "diclock"){
stateChange(st_diclock, true);
}
else if(modestr == "seconds"){
stateChange(st_seconds, true);
}
else if(modestr == "spiral"){
stateChange(st_spiral, true);
}
Expand Down

0 comments on commit 25500e0

Please sign in to comment.