BahnLand Posted April 7, 2014 Posted April 7, 2014 Hallo Neo,ich weiß nicht, inwieweit die "Einsparung" von Ereignissen durch "Zusammenfassung" bezüglich der Performanz der Ereignisverwaltung eine entscheidende Rolle spielt. Jedenfalls hätte ich hier ein paar Ideen, wie man durch Hinzufügen alternativer Zusatzbedingungen in bestimmten Fällen "Ereignisse" einsparen (und als Nebeneffekt auch den Aufwand bei der Erstellung der Ereignisdefinitionen reduzieren) könnte. Dies betrifft Ereignisdefinitionen, die - durch dasselbe Ereignis ausgelöst - heute nur deshalb separat spezifiziert werden müssen, weil die Ausführung der jeweils aufgelisteten Aktionen unterschiedliche Zusatzbedingungen voraussetzen. Könnte man derartige Aktions-bezogene Bedingungen den Aktionen direkt zuweisen, könnte man diese in einer gemeinsamen Ereignisdefinition zusammenfassen. Erste Variante:Bei dieser einfacheren Variante wird nur zwischen Aktionen, die entweder die Zusatzbedingungen erfüllen, oder für welche gerade deren "Negierung" zutrifft (Sonst-Fall) unterschieden. Hierfür benötigt man eine zusätzliche Registerkarte "Alternative Aktionen", deren Bearbeitungsfenster mit dem der Registerkarte "Aktionen" identisch ist (siehe Bild). Die dort abgelegten Aktionen werden genau dann ausgeführt, wenn die Gruppe der Zusatzbedingungen gerade nicht erfüllt ist. Zweite Variante:Die Realisierung dieser Variante ist zwar deutlich komplexer, bietet dafür aber auch eine mögliche Zusammenfassung von Aktionen, die nur unter individuell zugeordneten Bedingungen auszuführen sind.Beispiel:Auslöser: Lock-Anforderung abgeschlossenGlobale Bedingung: keineAktion 1: Lock-Anforderung beendenwenn Lock nicht bekommenAktion 2: Lock freigebenwenn a) Lock erhaltenund b) zu bearbeitendes Objekt nicht verfügbarAktion 3: Bearbeitung unter Lock fortsetzenwenn a) Lock erhaltenund b) zu bearbeitendes Objekt verfügbarIn der heutigen Realisierung der Ereignisveraltung muss man hierfür 3 Ereignisse definieren, die alle denselben Auslöser haben, aber unterschiedliche Bedingungen voraussetzen. Bietet man aber für jede Aktion eine zusätzliche spezifische Vorgabe von Bedingungen an (siehe nachfolgende Bilder, lassen sich auch diese Aktionen in nur einer Ereignisdefinition zusammenfassen. Wie anfangs schon angedeutet, macht die Realisierung dieser Vorschläge vor Allem dann einen Sinn, wenn die Ereignisbearbeitung durch die Einsparung der hierdurch überflüssig werdenden Ereignisse erheblich beschleunigt wird. Dies kann ich jedoch selbst nicht beurteilen. Für den Anwender würde sich dadurch natürlich auch eine erhebliche Reduzierung des Aufwands bei der Erstellung der Ereignisdefinitionen und dadurch auch eine Reduzierung der Fehleranfälligkeit (beim Eintippen) ergeben. Viele GrüßeBahnLand
Elgiloy Posted May 16, 2014 Posted May 16, 2014 Nachdem ich jetzt einige Zeit mit der Ereignisverwaltung experimentiert und gearbeitet habe, muss ich erstmal sagen, dass sie ein sehr mächtiges und trotzdem leicht bedienbares Werkzeug ist. Respekt! Aber die oben vorgeschlagene Erweiterung der vorhandenen IF-THEN Funktionalität auf eine IF-THEN-ELSE Funktionalität habe ich doch auch vermisst. So etwas hätte mir die Übersicht beim Programmieren der Ereignisse sehr vereinfacht.Und eine Gruppe von Bedingungen wäre schön: "Lokgeschwindigkeit ist 0", "Lokgeschwindigkeit ist >0", "Lokgeschwindigkeit ist <0"Zum Beispiel für so was auf einer einspurigen Strecke: Ereignis: Lok betritt ein Gleis - "Tempogleis" Bedingung: "Lokgeschwindigkeit ist >0" -"Tempogleis" Aktion: Setze Lokgeschwindigkeit - "Tempogleis" - "200" Alternative Aktion: Setze Lokgeschwindigkeit - "Tempogleis" - "-80"Wofür ich jetzt eine Variable für die Fahrtrichtung - pro Lok - brauche und zwei Ereignisabfragen auf dem Tempogleis.
Neo Posted May 16, 2014 Posted May 16, 2014 Hallo ihr beiden,lasst uns die Situation nächste Woche nochmal neu betrachten, wenn die objektabhängigen Variablen zur Verfügung stehen. Vielleicht reicht das schon aus, um die Ereignisverwaltung noch übersichtlicher zu gestalten.Viele Grüße,Neo
Elgiloy Posted May 22, 2014 Posted May 22, 2014 Hallo Neo,die Bedingung "Lokgeschwindigkeit ist..", die ich mir oben wünschte, ist ja durch die Einführung der _CurrentSpeed - Variablen inzwischen implementiert. Großartig, funktioniert auch wunderbar und spart einiges an Aufwand bei der Ereignissteuerung.Aber je mehr ich mit den neuen Objektvariablen experimentiert habe, desto mehr habe ich mir die IF-THEN-ELSE Funktionalität gewünscht.Dieser Wunsch ist zumindest bei mir durch die neuen Variablen eher noch stärker geworden.
EASY Posted May 22, 2014 Posted May 22, 2014 Hallo,ZitatAber je mehr ich mit den neuen Objektvariablen experimentiert habe, desto mehr habe ich mir die IF-THEN-ELSE Funktionalität gewünscht.Dieser Wunsch ist zumindest bei mir durch die neuen Variablen eher noch stärker geworden.... bringt die "Natur" mit dem Umgang von Variablen so mit sich.Je mehr Möglichkeiten es gibt, desto eher tritt der Fall ein, daß man etwas tuen möchte, wenn eine (variable) Bedingung mal erfüllt und mal nicht erfüllt ist...... und dafür hat Neo als Programmierer bestimmt Verständnis... darum unterstütze ich nachdrücklich diesen Wunsch...GrußEASY
Neo Posted May 22, 2014 Posted May 22, 2014 Hallo,die alternativen Aktionen stehen nun mit Version 1.2.10.0 zur Verfügung.Viele Grüße,Neo
MarkoP Posted May 22, 2014 Posted May 22, 2014 Super Neo,auch ich habe dieses Feature immer wieder in der Ereignisverwaltung vermisst.GrußMarkoP
EASY Posted May 22, 2014 Posted May 22, 2014 Hallo Neo,... also Deine Reaktionsgeschwindigkeit ... wenn Du so schnell so weiter machst, gehen uns ja irgendwann die Wünsche aus...GrußEASY
Neo Posted May 22, 2014 Posted May 22, 2014 Um euch gleich ein wenig zu bremsen, nachdem die Ereignisverwaltung erweitert wurde werde ich mich auch wieder anderen Bereichen des Studios zuwenden Viele Grüße,Neo
Elgiloy Posted May 22, 2014 Posted May 22, 2014 Hallo Neo,jetzt haben wir ja erstmal so viel neues Spielzeug. Mehr brauchts vorerst auch nicht.Wir müssen zunächst mal sehen dass wir die Möglichkeiten ausreizen. Wird bestimmt spannend. Danke!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now