Jump to content

Recommended Posts

Posted

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.

54_-_alternativ.png

 

 

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 abgeschlossen
Globale Bedingung:   keine

Aktion 1:                         Lock-Anforderung beenden
wenn                              Lock nicht bekommen

Aktion 2:                       Lock freigeben
wenn  a)                       Lock erhalten
und b)                           zu bearbeitendes Objekt nicht verfügbar

Aktion 3:                      Bearbeitung unter Lock fortsetzen
wenn a)                        Lock erhalten
und b)                           zu bearbeitendes Objekt verfügbar

In 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.

55_-_zusatzbedingungen.png 56_-_zusatzbedingungen.png

 

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üße
BahnLand

  • 1 month later...
Posted

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.

 

 

Posted

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

Posted

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.

 

 

Posted

Hallo,

Zitat

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.

... 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

Posted

Hallo Neo,

... also Deine Reaktionsgeschwindigkeit (y)... wenn Du so schnell so weiter machst, gehen uns ja irgendwann die Wünsche aus...;);)

Gruß

EASY

Posted

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

Posted

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!

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...