Closed MOE-JOE2 closed 6 months ago
Hey @MOE-JOE2,
an der Stelle die du gefunden hast wird letztlich abgefragt, ob sich das Layout geändert hat. Im Falle von Farbänderungen bleibt es false
. Kommen allerdings Änderungen beim Layout von, bspw. bei Minuten, dann löst es das Routine in der Animation.hpp aus.
if (animation->led_show_notify(changed, _minute)) {
led_show();
}
Man kann hier zwei Sachen machen um das gewünschte Verhalten, was ich durchaus sinnvoll als Default sehe, zu erlangen.
in welcher min != 0 ist auf
KEINE` , sonst das was eingestellt ist. oder
changed
Variable, um einen weiteren Wert, bspw. (none, changed_min, changed
), mit der entsprechenden Logik in der Animation.hpp. Diese Variante erscheint mir derzeit am Sinnvollsten. Aber ich würde darüber noch nachdenken wollen. Könnte ich das Thema nochmal auffrischen.
Gibt es dafür inzwischen eine gute Lösung? Finde es einfach schöner wenn die Animation alle 5 Minuten an geht.
Hallo @AudiQ7
ich bin bisher noch nicht dazu gekommen das zu implementieren. aber die oben genannte Möglichkeit scheint noch Imme sinnvoll zu sein.
Mal sehen wann ich dazu komme.
Offtopic, ich hab gesehen, dass dein anderes Problem "closed" wurde, hat es sich gelöst ?
Mit freundlichen Grüßen David
Hi, danke für deine Antwort. Ich habe heute mehrere Stunden versucht die Routine in der Animation.hpp zu ändern. Aber irgendwie hat das nie funktioniert. Es war dann so dass die Rotuine nur alle 5 Minuten ausgelöst wurde und auf der Uhr war keine Anzeige.
Wüsstest du auf die Schnelle wo man den Code richtig ändert?
Ja das andere Problem habe ich gelöst in dem ich die LEDs umgelötet habe. Habe gesehen dass im Code die LEDs immer an der letzten Stelle sind.
Gruß Tom
Hey,
naja es wäre noch möglich gewesen, die LED Matrix Datei in /Uhrtype
komplett umzuschreiben, aber ich denke so ist es auch eine Lösung.
Zwecks des eigentlichen Problems, hier schaue ich gleich mal nach, wo man die Änderungen unterbringen müsste.
Mit freundlichen Grüßen David
Hey @AudiQ7,
also man muss wohl Änderungen an anderer Stelle im Code vornehmen. Nämlich an:
// changed: 0 changes, e.g. color, no change of content
// changed: 1 content has changed
bool Animation::ledShowNotify(bool changed, uint8_t minute) {
in Animation.h.
Ich schau mir das morgen an, da ich den Animation code noch nicht in Gänze verstehe. Das hat @ATho95 damals geschrieben. Nach ein paar kleineren Tests bin ich mir jedoch sicher, das an dieser Stelle entsprechende Änderungen durchgeführt werden müssten.
Mit freundlichen Grüßen David
Super das sieht schonmal gut aus. War dann doch mehr Änderung im Code als gedacht.
Leider funktioniert das nicht auf dem Uhrtype "10x11 Uhr" und wenn der Modus "Wortuhr horizontal spiegeln" aktiviert ist. Weißt du woran das liegt?
hallo @AudiQ7,
Wenn ich deine Einstellungen ausprobiere, dann funktioniert es auf meiner Uhr. Also nur 10x11 und horizontal gespielt. Als Effekt hab ich bei mir Laser.
Das Überblenden funktioniert anscheinend noch nicht, dass ist ein anderes Issue wert.
Mit freundlichen Grüßen David
Ich habe nochmal einen Pull Request https://github.com/ESPWortuhr/Multilayout-ESP-Wordclock/pull/349 erstellt um das Problem besser zu lösen als davor.
@AudiQ7
Könntest du testen, ob die neuen Änderungen bei dir funktionieren ?
@dbambus Ich habe es nun soweit getestet. Was mir jetzt nur aufgefallen ist, dass die Funktion bei Übergänge "Zufällig" nicht funktioniert. Es funktioniert nur ein Modus sozusagen.
Ansonsten ist die Änderung super.
Hallo @AudiQ7,
Ich habe noch einen kleinen Fehler im Code gefunden und nun auch behoben. Jetzt sollten die Zufälligen Übergänge wieder funktionieren. Wie schon erwähnt nur alle 5 Minuten.
https://github.com/ESPWortuhr/Multilayout-ESP-Wordclock/pull/376
Mit freundlichen Grüßen David
Hallo zusammen,
ich würde gerne den Code so anpassen, dass dieser nur alle 5 Minuten eine Animation abspielt. Ich kann C Code etwas lesen, soweit ich das verstehe findet die Animation in der Klasse "uhr_func.hpp" in der Funktion "static void led_set(bool changed = false)"statt. Bin ich hier an der richtign Stelle & lässt sich hier der Code hier einfach abändern, falls ja wie? oder müsste ich hier meine eigene Logik programmieren, sodass ich erkenne ob es sich immer um volle 5 Minuten handelt?
Grüße Moe-Joe