Morsdorf Posted July 25, 2017 Posted July 25, 2017 An die verantwortlichen vom Modellbahn-Studio. Kann man eine Mehrfachselektion in der Ereignisverwaltung einbauen? Beim Ereignis steht "Zug betritt Gleis", darunter steht " Lok: Dann kann ich alle Loks auswählen oder eine bestimmte. Genau da wäre eine Mehrfachselektion angebracht. Zum Beispiel eine 218er Lok, eine 01 und eine E10 müsste man als Beispiel einfügen können. Ich möchte zum Beispiel nur diese drei auserwählten Loks an einer bestimmten Stelle zum Halten bringen. Der Sinn ist daß ich in der Ereignisverwaltung nicht dreimal programmieren muß sondern nur einmal. Wäre eine große Zeitersparnis bei mehreren Loks die den selben Auftrag erhalten. MfG R. Morsdorf
BahnLand Posted July 25, 2017 Posted July 25, 2017 (edited) Hallo Morsdorf, diese Funktion braucht nicht mehr eingenbaut zu werden, da Du sie in der EV bereits verwenden kannst: Wenn Du in der Definition des Ereignisses "Zug betritt Gleis" als Auslöser keine Lok auswählst (Angabe "[Alle Loks]"), sondern die Auswahl über die Zusatzbedingung realisierst, kannst Du dort eine Mehrfach-Selektion definieren, indem Du mittels "Oder"-Verknüpfung alle jene Loks mit der Bedingung "Lok/Wagen steht auf Gleis" einbindest, für welche die Aktionen bei erfüllter Bedingung ausgeführt werden sollen. Zusätzlich kannst Du dann auch noch Aktionen definieren, die bei allen anderen Loks (bei denen die Bedingung nicht erfüllt ist) ausgeführt werden sollen. Ich habe dazu ein kleines Anlagen-Beispiel gebaut, in dem Du das Verhalten nachstellen kannst: Lokgruppen-Steuerung.mbp Mit den einzelnen Schaltern wird die Lok auf dem zugehörigen Harfengleis gestartet. Wenn die Lok zur "ausgewählten Gruppe" gehört, hält sie auf dem unteren Haltegleis an, um nach kurzer Wartezeit weiterzufahren. Andernfalls fährt sie durch, Bitte starte eine weitere Lok stets erst dann, wenn die vorherige Lok bereits wieder in das Harfegleis eingefahren ist. Sonst kommt die von mir ganz einfach gehaltene Weichensteuerung "durcheinander". Viele Grüße BahnLand Edited July 25, 2017 by BahnLand
schlagerfuzzi1 Posted July 25, 2017 Posted July 25, 2017 hallo bahnland das wurde sehr gut von deiner seite erklärt ,das muß ich selber mal mit ruhe ausprobieren...klasse...extra gefällt mir...gruß schlagerfuzzi
MarkoP Posted July 25, 2017 Posted July 25, 2017 Hallo Bahnland, soweit so gut, doch das funktioniert nur dann wenn man die Aktion nicht von einer anderen Eigenschaft abhängig machen will. Also das die Lok z.b nur bei Erfüllung einer bestimmten Eigenschaft hält, doch ansonsten weiterfährt. Beispiel Signalstellung. Um das dann mit deiner Ausführung zu realisieren müsste man dann schon wieder Ereignisse aktivieren/deaktivieren (nämlich das gesamte Halte-Ereignis). Also ich sehe die Funktion - auch wenn sie so wie du schreibst bereits realisierbar ist - doch für sinnvoll an und würde sie ebenfalls begrüßen. Auch bei den Gleisen wäre eine solche Mehrfachauswahl sehr sinnvoll. Eventuell wäre es sogar möglich mit einer Mehrfachauswahl alle Blockstellen auf einer Anlage mit einem einzigen Ereignis für das Anhalten und Anfahren etc. abzuhandeln. Das würde die EV drastisch verkleinern und erleichtern.
wopitir Posted July 25, 2017 Posted July 25, 2017 Hallo Morsdorf, ich denke auch eine Objektvariable mit geicher Bezeichnung für jede Lock wäre eine Filtermöglichkeit. Jede Lock die der Kennung der Objektvariablen entspricht wird akzeptiert, die andern bleiben außen vor. Gruß Wolfgang
BahnLand Posted July 25, 2017 Posted July 25, 2017 Hallo, vor 2 Stunden schrieb MarkoP: doch das funktioniert nur dann wenn man die Aktion nicht von einer anderen Eigenschaft abhängig machen will ... müsste man dann schon wieder Ereignisse aktivieren/deaktivieren Es geht auch ohne Aktivierung/Deaktivierung von Ereignissen und Ereignisgruppen - auch wenn diese Funktionalität in manchen Fällen sehr nützlich ist. Angenommen, Du möchtest bei den Lokomotiven, die nach obigem Beispiel ausgewählt wurden, dann, wenn diese Bedingung erfüllt ist, die auszuführenden Aktionen von weiteren Bedingungen abhängig machen. Dann führst Du die Aktionen nicht in dieser Ereignisdefinition aus, sondern in einer weiteren Ereignisdefinition vom Typ Countdown. Du ziehst den Countdown als Aktion des ursprünglichen Ereignisses mit Wartezeit 0 auf und stößt damit unmittelbar eine "Folge-Aktion" (ein Folge-Ereignis) an, deren Ausführung Du dann von neuen Bedingungen abhängig machen kannst. Auf diese Weise lassen sich über konkret festgelegte Ereignis-Folgen auch (indirekt , über mehrere Teilereignisse verteilte) kombinierte "Und-Oder-Verknüpfungen" bei den Bedingungen formulieren. vor 2 Stunden schrieb MarkoP: Eventuell wäre es sogar möglich mit einer Mehrfachauswahl alle Blockstellen auf einer Anlage mit einem einzigen Ereignis für das Anhalten und Anfahren etc. abzuhandeln. Bei den Gleisen kann mein obiger Vorschlag nicht angewendet werden, weil es dort die Auswahl "[Alle Gleise]" beim Ereignis "Zug betritt Gleis" nicht gibt. Ansonsten könnte man wie bei den Loks über die Zusatzbedingung eine Gleisauswahl treffen, und dann die auslösende Lok über die "Auslöser"-Variable ("Auslöser 1:Lok" oder "$_Trigger1._Name") und das zugehörige Blocksignal über eine Objekt-Variablen-Zuweisung ansprechen, ohne dass die entsprechenden Namen explizit "einprogrammiert" werden müssten. vor 2 Stunden schrieb wopitir: eine Objektvariable mit geicher Bezeichnung für jede Lock wäre eine Filtermöglichkeit. Jede Lock die der Kennung der Objektvariablen entspricht wird akzeptiert, die andern bleiben außen vor. Ich hatte zunächst Probleme, Deine Aussage zu verstehen. Aber ich glaube nun zu wissen, was Du meinst: Jeder Lok wird eine Objektvariable "xyz.varName" zugewiesen, wobei "xyz" den Namen der jeweiligen Lok repräsentiert und "varName" die für alle Loks identische Bezeichung dieser Objektvariable ist. In dieser Objektvariable wird für jede Lok ein Wert hinterlegt, aus dem man in der Ereignisdefinition "Zug betritt Gleis" für die Auslöser-Lok entscheiden kann, ob sie angehalten werden soll oder nicht. Die Liste der von mir oben genannten Zusatzbedingungen "Lok/Wagen steht auf einem Gleis" wird dann durch die eine Bedingung "Variable besitzt den Wert uvw" (identifiziert die Lok als solche, die angehalten werden soll) ersetzt, die dann natürlich auch mit weiteren Bedingung mittels "Und" oder "Oder" verknüpft werden kann. Viele Grüße BahnLand
MarkoP Posted July 25, 2017 Posted July 25, 2017 vor 2 Minuten schrieb BahnLand: Es geht auch ohne Aktivierung/Deaktivierung von Ereignissen und Ereignisgruppen - auch wenn diese Funktionalität in manchen Fällen sehr nützlich ist. Da hast du sicher Recht, aber Ziel einer guten EV sollte es sein die Ereignisse zu reduzieren, nicht zu steigern. Auch wenn es nur ein Ereignis-Ausgelöster Countdown ist, so ist es doch wieder ein neues Ereignis was regelmäßig geprüft werden muss. vor 4 Minuten schrieb BahnLand: Bei den Gleisen kann mein obiger Vorschlag nicht angewendet werden, weil es dort die Auswahl "[Alle Gleise]" beim Ereignis "Zug betritt Gleis" nicht gibt. Ansonsten könnte man wie bei den Loks über die Zusatzbedingung eine Gleisauswahl treffen, und dann die auslösende Lok über die "Auslöser"-Variable ("Auslöser 1:Lok" oder "$_Trigger1._Name") und das zugehörige Blocksignal über eine Objekt-Variablen-Zuweisung ansprechen, ohne dass die entsprechenden Namen explizit "einprogrammiert" werden müssten. Da hast du mich etwas missverstanden. Ich versuche es mal zu verdeutlichen. Es gibt in der Anlage 5 Blockstellen mit gleichem Schema. Signal1, Signal2, Signal3 etc.; dazu Haltegleis1, Haltegleis2 ...; Bremsgleis1, Bremsgleis2 ... Für das Halten einer Lok gibt es nun ein Ereignis "Zug betritt Gleis" für jedes Haltegleis - also 5 Ereignisse. Für ein eventuelles Abbremsen und Beschleunigen jeweils genauso. Wenn es für die Gleise eine Mehrfachauswahl gäbe, könnte 1 Ereignis wie folgt aussehen: Auslöser: "Zug betritt Gleis" - gültig für Haltegleis1, Haltegleis2, Haltegleis3 etc. Bedingung: Signal1, Signal2,etc. steht auf Halt (Der Signalname kann aus einer Objektvariable des jeweiligen Haltegleises geholt werden) Aktion: Zuggeschwindigkeit = 0 Es wären also nicht für Bremsen, Halten und Beschleunigen jeweils 5 Ereignisse nötig, sondern nur jeweils 1.
Morsdorf Posted July 26, 2017 Author Posted July 26, 2017 Hallo alle zusammen. Ich habe jetzt mal auf einer kleinen Versuchsanlage das von Bahnland vorgeschlagene so ähnlich programmiert. Vielen Dank an alle für die guten Hinweise. Ist eigentlich gut geworden und auch gut verlaufen. Jedoch hinterher in der EV unter Aktionen - Lokgeschwindigkeit setzen muß ich die einzelnen Loks eintragen sowie das Gleis und die Geschwindigkeit. Gut, die Programmierung ist schon wie gesagt besser, kürzer un schneller geworden. Aber die Idee und Sinn einer bedienungsfreundlicheren EV ist da noch zu verbessern. MarkoP hat da auch was gutes dazu geschrieben und hat das auch gut erkannt. Unter Ereignisse - Zug betritt Gleis - Lok: Hier würde ich die Option für mehrere Loks erweitern. Es gibt zur Zeit die Option da für eine Lok oder für alle. Die folgenden Eingaben unter Aktionen usw, die nur einmal geschrieben werden müssten, wären dann alle gültig für die ausgewählten Loks. Habe ich mehrere gleiche Loks auf der Anlage so kennzeichne ich diese z.B. mit 218-1, 218-2, 218-3 usw. Ich denke dass es mal auf einen Versuch ankäme. Gruß Morsdorf
wopitir Posted July 26, 2017 Posted July 26, 2017 Hallo Bahnland, genau so habe ich das gemeint. So müsste nicht jede Lock in einer Bedingung verknüpft werden. Gruß Wolfgang
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