Syntax-Problem am Datenwechsel

Es gibt Probleme mit BAHN und Co.? Dann einfach hier posten!
Antworten
Darkstone
Beiträge: 63
Registriert: Freitag 23. Juli 2010, 18:35
Wohnort: Berlin

Syntax-Problem am Datenwechsel

Beitrag von Darkstone »

Hallo zusammen,

ich habe eine Frage zur Syntax beim Datenwechsel:

Ich brauche zwei Funktionen:
1)

Code: Alles auswählen

Linie_x(z=Mo-Fr:19:56-19:58,K=1)
- Ein Zug soll nur in diesem Zeitraum eine Kreuzung freihalten, da es sonst zu einer unerwünschten Blockade kommt. In der restlichen Zeit ist dies egal und sieht einfach schöner aus wenn er bis zum Signal vorrückt und die Kreuzung nicht freihält.

2)

Code: Alles auswählen

Linie_x(u=1-3,H=30-30)
- Die Zugnummern 1-3 (Tageskurse) der Linie_x sollen an der nächsten Haltestelle eine Wartezeit von 30 Sekunden haben, die Zugnummer 4 (Nachtkurs) hat in den Zugdaten als Eigenschaft generell 15 Sekunden drinstehen, soll also auch nur 15 Sekunden halten.

Wenn ich das so schreibe:

Code: Alles auswählen

Linie_x(z=Mo-Fr:19:56-19:58,K=1), Linie_x(u=1-3,H=30-30)
dann meckert Bahn mit Überschneidung.

Wenn ich das aber so schreibe:

Code: Alles auswählen

Linie_x(z=Mo-Fr:19:56-19:58,K=1,u=1-3,H=30-30)
wandelt Bahn es in

Code: Alles auswählen

Linie_x(z=Mo-Fr:19:56-19:58,u=1-3,H=30-30,K=1)
um und ich bekomme nicht die gewünschte Funktion.

Für einen Tipp wäre ich sehr dankbar!
Benutzeravatar
micha88
Beiträge: 1987
Registriert: Freitag 18. Februar 2005, 12:50
Wohnort: Marbach am Neckar
Kontaktdaten:

Re: Syntax-Problem am Datenwechsel

Beitrag von micha88 »

Zwei Einträge dürfen sich generell in der Gültigkeit nicht überlappen, auch wenn verschiedene Daten geändert werden sollen.

Wenn man für den zweiten Eintrag den Zeitbereich des ersten Eintrags ausspart, geht es:

Linie_x(z=Mo-Fr:19:56-19:58,K=1,H=30-30), Linie_x(z=Mo-Fr:19:58-19:56+Sa:19:56-Mo:19:56,u=1-3,H=30-30)

(zur Erklärung des zweiten Eintrags: Mo-Fr:19:58-19:56 gilt Mo 19:58 bis Di 19:56, ..., Fr 19:58 bis Sa 19:58)
Bild
Rolf R
Beiträge: 2190
Registriert: Donnerstag 20. November 2003, 20:41
Wohnort: Erfurt

Re: Syntax-Problem am Datenwechsel

Beitrag von Rolf R »

Hallo Darkstone,

die Überschneidung kommt durch die Syntax "u=" zu Stande. Warum?
Während Du im ersten Befehl keine Einschränkungen auf Zugnummern hast, hast Du sie im im zweiten. Für BAHN ist es in dem Moment egal, dass die eigentlichen Ziele, die Du damit erreichen willst, völlig unterschiedlich sind (ob die Haltezeit der Nrn 1-3 30 Sek beträgt ist ja keine Hindernis dafür, dass man Kreuzungen freihalten kann ;-).

Wenn Du die Befehle zusammenfasst, hat es den Effekt, dass der Befehl "k=1" nur für die Nummern 1-3 gilt, genau wie die Haltezeiten-Änderung.

Lösungsvorschlag:
Verteile die beiden Befehle auf 2 Datenwechsel
oder:
Den Nachtzug einen anderen Liniennamen geben und mit einem DW arbeiten.

Auf jeden Fall brauchst Du 2 Befehle - in einem Befehl wirst immer auf das jetzige Problem stoßen, dass Du nur einige bestimmte Züge ansprichst und andere ausschließst.

Übrigens: Mit dem Umstellen der Befehle innerhalb der Klammer werden zuerst die Syntaxe hervorgeholt, die die entsprechenden Züge herausfiltern sollen. Es wäre ja auch blöd, wenn BAHN einem Zug entsprechende Veränderungen zuweisen würde, der überhaupt nicht gemeint war. :wink:
Somit prüft es zunächst, ob es derartige Veränderungen überhaupt angehen soll - wenn ja, dann geschehen sie, wenn nein, halt nicht.

Gruß
Rolf

Edit: micha war schneller - ich hatte nur keine Lust, meinen Beitrag anzupassen :wink:
Mein Link-Tipp zu BAHN: http://www.gerdinoack.de. Dort findet Ihr Filme und Grafiken zu BAHN von Gerd (Username gnock) und mein neues Fahrzeugarchiv, das auch unter dem neuen Direktlink www.gerdinoack.de/Fahrzeugarchiv_385/ zu erreichen ist.
Benutzeravatar
Jan Eisold
Beiträge: 5030
Registriert: Montag 17. März 2003, 15:55
Wohnort: Dresden
Kontaktdaten:

Re: Syntax-Problem am Datenwechsel

Beitrag von Jan Eisold »

Hallo,

es geht auch mit einem Datenwechsel und so, dass die ursprüngliche Funktionalität - Haltezeit der Kurse 1-3 wird zu jeder Zeit geändert und Kreuzung freihalten für alle Kurse im gewünschten Zeitraum, also auch 1-3 falls diese gerade kommen - gewahrt bleibt.

Linie_x(z=Mo-Fr:19:56-19:58,u=4-999,K=1), Linie_x(z=Mo-Fr:19:56-19:58,u=1-3,H=30-30,K=1), Linie_x(z=Mo-Fr:19:58-19:56 +Sa:19:56-Mo:19:56,u=1-3,H=30-30)

Wenn die Kurse 1-3 zur fraglichen Zeit (19:56-19:58) aber nicht dort fahren, reicht auch Michas Lösung.

MfG Jan
Darkstone
Beiträge: 63
Registriert: Freitag 23. Juli 2010, 18:35
Wohnort: Berlin

Re: Syntax-Problem am Datenwechsel

Beitrag von Darkstone »

Vielen Dank für die Hilfe!

Gruß Dietmar
Antworten