Go Down

Topic: Parola Clock exit animation (Read 194 times) previous topic - next topic

ptrsnja

I'm working on an internet-connected clock that will also display messages from an mqtt topic. My end goal is a display (5 matrices wide) that does the following:

  • A static display of the current time (working)
  • When time changes, scroll the current display up, and scroll the new time up and display statically
  • When a new message is received, scroll the current time up, scroll the message across, then scroll the current time back up


I've got everything working with the exception of animating an exit. My issue is that I can't just set a pause time, as I don't know when the next mqtt callback will be executed. I do not want to wait for clock changes to display the message.

Currently, the exit animation is not working. When I receive a new mqtt message, the left scroll animation is executed. When the minute changes, there is no exit animation observable.

I'm using a Wemos D1 mini, and generic F16 modules.

Also, to Marco, this library is amazing. I intend to build the display into a wood-veneer floating shelf front, so that when powered off, it will be invisible, but when powered on, it will shine through the veneer (although that's a long ways away).

LINK TO CODE

marco_c

You have a long bit of complicated code with functions left over from the example that I am guessing you are not using. You should clean it up.

I see that you suspend the display if a minute has not passed. You should not do that, as I can't see you 'un'suspending it anywhere. Just leave the display alone and it will retain what you have already displayed. Having the display suspended will prevent it from being updated by until you release the suspension.
Arduino Libraries https://github.com/MajicDesigns?tab=Repositories
Parola for Arduino https://github.com/MajicDesigns/Parola
Arduino++ blog https://arduinoplusplus.wordpress.com

ptrsnja

I was thinking of continuing to use the web interface for additional messaging, but you're correct in that the extra bits of code were clouding the problem.

I've changed the code, removed extraneous lines, and gotten rid of the suspend calls. However, I'm still not seeing any exit animation as I'd expect. I'm struggling with how to animate text leaving the display, rather than on having a full animation from start to end.

Here's the link to the updated code. I appreciate the help and feedback.

marco_c

Exit normally is specified with a NO_EFFECT as the entry animation. If the exit was NO_EFFECT to start with, then the delay is basically ignored.

If the text you want to display is the same as the exiting text, then you could also specify a PRINT as the entry effect before the exit effect and you should perceive no difference in the displayed value.

I think if the problem persists you should create a small program that replicates the problem (hard code strings and make it minimal) so that it is easier for you to experiment and work out where your issue is.
Arduino Libraries https://github.com/MajicDesigns?tab=Repositories
Parola for Arduino https://github.com/MajicDesigns/Parola
Arduino++ blog https://arduinoplusplus.wordpress.com

ptrsnja

The print entry animation did the trick! I added a fifth state, since the minute will have ticked over, but I do not want to update the display value until it has finished animating out of frame.

Again, @marco_c, thanks for the fantastic work on this library. I'm awaiting another few FC16 modules, at which point I'll build the final display, likely using zones.

On a different note, does Parola currently support zones that are smaller than a single display? I'd like to be able to set up a zone for the colon separating minutes from hours, and animate that separately. If it does not, but wouldn't be too difficult to code, I would be more than happy to take a crack at it and submit a pull request.

Thanks again!

marco_c

In principle the zone can be as small as a single column, but in practice it is difficult to support zones smaller than one module because attributes like display intensity can only be set at the module level.

The colon is easily handled by changing the whole string and sending it out. This is done in one of the examples that come with the library.
Arduino Libraries https://github.com/MajicDesigns?tab=Repositories
Parola for Arduino https://github.com/MajicDesigns/Parola
Arduino++ blog https://arduinoplusplus.wordpress.com

Go Up