Hallo,
ich hab für meinen Bahnübergang eine Programmierung ausgedacht. Hier ist nur ein eingedampfter Teil, der relevant ist. Daher sieht der Code vielleicht komisch aus.
Das Problem:
Ich hab die Tasten SwitchB2 (rot, Schranke zu), SwitchB3 (grün, Schranke auf) und SwitchB4 (DCC oder manuell). Steht das Ganze auf manuell (SwitchB4 ist betätigt) und es erfolgt ein Neustart so wird immer SwitchB3 aktiviert. Egal ob vorher SwitchB2 aktiv war.
Als Ursache habe ich die Zeile 34 mit dem Sound_New_PlayRandom. Entferne ich diese Zeile, so speichert der ESP den Zustand korrekt.
Meine Hardware: Lichtmaschine Pro
Mein Software-Stand: 3.5.0J bzw. 3.5.0J long
Anmerkung: Der Zustand von SwitchB4 wird korrekt gespeichert und wieder hergestellt.
Fehler bei Zustände speichern
- PeterVT11 Verified
- MLL-TEAM

- Beiträge: 515
- Registriert: Mi 9. Apr 2025, 21:21
- Hat sich bedankt: 912 mal
- Wurde bedankt: 822 mal
Fehler bei Zustände speichern
- Dateianhänge
-
- Fehler mit Store-Funktion.MLL_pgf
- (4.75 KiB) 3-mal heruntergeladen
Viele Grüße Peter
Märklin C-Gleis, Märklin CS3, WinDigipet, Analog und Digital
Märklin C-Gleis, Märklin CS3, WinDigipet, Analog und Digital
- jueff Verified
- MLL-TEAM

- Beiträge: 269
- Registriert: Fr 18. Apr 2025, 07:25
- Wohnort: Hallein/AT
- Hat sich bedankt: 101 mal
- Wurde bedankt: 519 mal
Re: Fehler bei Zustände speichern
Servus Peter,
cooler Fehler, der war wirklich schwer zu finden, er hat sich auch schon seit 2020 gehalten.
Diese drei Macros basieren intern auf dem Counter Makro, welche je nach Typ eine Speicherung des Zustands erlauben.
Die drei obigen Sound Makros speichern zwar keinen Zustand, sind aber trotzdem Zähler. Jeder Zähler bekommt in der Konfiguration eine eindeutige, aufsteigende Nummer.
Diese Nummer wird dann in weiterer Folge für die Zustandsspeicherung verwendet, sieht man in Leds_Autoprog.h
Aufgrund einer Fehldefinition wird aber der Counter der drei Sound Makros vom ProgGenerator nicht mitgezählt. Der nachfolgende RS-FlipFlop Counter hat z.B. Nummer 6, für die Zustandsspeicherung wird aber 5 eingetragen, welche dem Soundmakro Zähler gehört. Daher wird der Zustand des SoundMakros gepeichert, welches aber gar keinen Zustand hat.
Ob ein Makro als Zähler erkannt und mitgezählt wird entscheidet sich durch die Spalte 10 im Lib_Macros Blatt.
Für die drei Sound Markro stimmt dort die Definition nicht, sie sind als Typ 4 eingetragen, was aber nicht stimmt. Korrekt ist hier Type 1, da es sich um einen Zähler ohne Status handelt.
Mit der Änderung der Sound Makros (bei mir in Zeile 273 - 275, alternativ 139,144,145) fuktioniert die Ermittlung korrekt in weiterer Folge stimmt auch die Zustandsspeicherung.
Noch eine Anmerkung zu deiner Konfiguration:
- die Zeilen 13 und 16 "Taster für Schranke zu (manueller Betrieb)" sind mit Startwert '*' markiert, was eine Zustandsspeicherung erzwingt. PushButton_0_1 haben aber keinen permaneneten Zustand, da sie nach der Timeout Zeit immer auf 0 zurückgesetzt werden. Das '*' führt nur dazu, dass beim Drücken der Zustand "1" gespeichert und kurze Zeit später auf Zustand '0' zurückgesetzt wird. Der '*' in diesen Zeilen kann weg.
- der Taster 'Schranke auf manu./autom. Betrieb schalten' hingegen hat korrekt den '*', hier ändert sich der Zustand nur bei einem Tastendruck
- Zeile 54 "Schranke Leuchttaster (pc)": Diese Zeile speichert ebenfalls den Zustand. Hier kann aber als Startwert '0' eingetragen werden, da keine Zustandsspeicherung erforderlicht ist. Var0 wird aus PushButton_RGB_0_1 (19) erzeugt, und dieser PushButton speichert bereits den Zustand. Var0 ist nur eine Ableitung davon, daher doppelt gepseichert.
Die Änderungen kommen in der nächsten Version.
Danke fürs Finden dieses gut versteckten Fehlers.
Jürgen...
cooler Fehler, der war wirklich schwer zu finden, er hat sich auch schon seit 2020 gehalten.
Diese drei Macros basieren intern auf dem Counter Makro, welche je nach Typ eine Speicherung des Zustands erlauben.
Die drei obigen Sound Makros speichern zwar keinen Zustand, sind aber trotzdem Zähler. Jeder Zähler bekommt in der Konfiguration eine eindeutige, aufsteigende Nummer.
Diese Nummer wird dann in weiterer Folge für die Zustandsspeicherung verwendet, sieht man in Leds_Autoprog.h
Aufgrund einer Fehldefinition wird aber der Counter der drei Sound Makros vom ProgGenerator nicht mitgezählt. Der nachfolgende RS-FlipFlop Counter hat z.B. Nummer 6, für die Zustandsspeicherung wird aber 5 eingetragen, welche dem Soundmakro Zähler gehört. Daher wird der Zustand des SoundMakros gepeichert, welches aber gar keinen Zustand hat.
Ob ein Makro als Zähler erkannt und mitgezählt wird entscheidet sich durch die Spalte 10 im Lib_Macros Blatt.
Für die drei Sound Markro stimmt dort die Definition nicht, sie sind als Typ 4 eingetragen, was aber nicht stimmt. Korrekt ist hier Type 1, da es sich um einen Zähler ohne Status handelt.
Mit der Änderung der Sound Makros (bei mir in Zeile 273 - 275, alternativ 139,144,145) fuktioniert die Ermittlung korrekt in weiterer Folge stimmt auch die Zustandsspeicherung.
Noch eine Anmerkung zu deiner Konfiguration:
- die Zeilen 13 und 16 "Taster für Schranke zu (manueller Betrieb)" sind mit Startwert '*' markiert, was eine Zustandsspeicherung erzwingt. PushButton_0_1 haben aber keinen permaneneten Zustand, da sie nach der Timeout Zeit immer auf 0 zurückgesetzt werden. Das '*' führt nur dazu, dass beim Drücken der Zustand "1" gespeichert und kurze Zeit später auf Zustand '0' zurückgesetzt wird. Der '*' in diesen Zeilen kann weg.
- der Taster 'Schranke auf manu./autom. Betrieb schalten' hingegen hat korrekt den '*', hier ändert sich der Zustand nur bei einem Tastendruck
- Zeile 54 "Schranke Leuchttaster (pc)": Diese Zeile speichert ebenfalls den Zustand. Hier kann aber als Startwert '0' eingetragen werden, da keine Zustandsspeicherung erforderlicht ist. Var0 wird aus PushButton_RGB_0_1 (19) erzeugt, und dieser PushButton speichert bereits den Zustand. Var0 ist nur eine Ableitung davon, daher doppelt gepseichert.
Die Änderungen kommen in der nächsten Version.
Danke fürs Finden dieses gut versteckten Fehlers.
Jürgen...
- PeterVT11 Verified
- MLL-TEAM

- Beiträge: 515
- Registriert: Mi 9. Apr 2025, 21:21
- Hat sich bedankt: 912 mal
- Wurde bedankt: 822 mal
Re: Fehler bei Zustände speichern
Hallo Jürgen,
Danke für die ausführliche Fehlerbeschreibung. Habe wieder was gelernt.
Ich freue mich über die nächste Version. Gibt es die auch in "Long"?
Danke für die ausführliche Fehlerbeschreibung. Habe wieder was gelernt.
Ich freue mich über die nächste Version. Gibt es die auch in "Long"?
Viele Grüße Peter
Märklin C-Gleis, Märklin CS3, WinDigipet, Analog und Digital
Märklin C-Gleis, Märklin CS3, WinDigipet, Analog und Digital
- jueff Verified
- MLL-TEAM

- Beiträge: 269
- Registriert: Fr 18. Apr 2025, 07:25
- Wohnort: Hallein/AT
- Hat sich bedankt: 101 mal
- Wurde bedankt: 519 mal
Re: Fehler bei Zustände speichern
Servus Peter,
ich habe die neue 'long' Version soeben eingecheckt. Eine neue Beta kommt demnächst.
Jürgen...
ich habe die neue 'long' Version soeben eingecheckt. Eine neue Beta kommt demnächst.
Jürgen...
-
- Vergleichbare Themen
- Antworten
- Zugriffe
- Letzter Beitrag
-
- 1 Antworten
- 1411 Zugriffe
-
Letzter Beitrag von Percival Verified
-
- 3 Antworten
- 1882 Zugriffe
-
Letzter Beitrag von Roberto Verified
-
- 3 Antworten
- 1695 Zugriffe
-
Letzter Beitrag von marcosmoba Verified
-
- 1 Antworten
- 859 Zugriffe
-
Letzter Beitrag von Gasco Verified
-
- 6 Antworten
- 2137 Zugriffe
-
Letzter Beitrag von anton6752 Verified
