Dateiformate

Erste Ansprechstelle für technische Fragen der Add-On Bastler, Fragen/Umgang mit den Zusi 2-Editoren
Nachricht
Autor
Steffen81
Beiträge: 672
Registriert: 21.12.2004 14:37:25
Wohnort: Jena

Dateiformate

#1 Beitrag von Steffen81 »

Ich arbeite zur Zeit an einem Webtool zum Durchsuchen aller fahrbaren Züge, Führerstände etc. einer aktuellen Zusi-Installation. Ja, etwas ähnliches bieten eine Liste von Peter Zimmermann und das Zusitool von Andreas Damm.
Vorteil des Webtools ist, dass man sich diese Listen/Programm nicht runterladen/installieren muss, dass der Datenbestand innerhalb weniger Minuten aktualisierbar ist und dass das Webtool (bald) Züge nach beliebigen Kriterien suchen können wird. Das Webtool wäre für jeden (mit Internetzugang) sekundenschnell verfügbar. ;)
Denkbare Kriterien und Nutzen:
  • v(max) des Zuges (Es gibt ja Liebhaber von Rennstrecken, die immer mal wieder nach SFS fragen)
  • Nettofahrzeit (nicht wenige Züge haben eine Nettofahrzeit von nur wenigen Minuten. Jene reizen relativ wenig zu einem Fahrtbeginn.)
  • In der Fahrplanansicht ist zwar ersichtlich, ob man in einem Steuerwagen fährt, aber nicht welchen.
  • ...
Zu den Fragen:
1. Es existieren diverse Führerstände in Version 2.4. Aber keine der *_v24.fst-Dateien ist in auch nur einer einzigen zug-Datei referenziert. Sucht sich Zusi automatisch die *_v24.fst-Datei sofern sie bei gleichem Präfix existiert?

2. Bei einigen Zügen ist eine Höchstgeschwindigkeit definiert, bei vielen jedoch nicht. Diese muss dann berechnet werden. Wie sieht der Algorithmus zur Berechnung aus? Ich nehme an etwas in der Art:

Code: Alles auswählen

min(v(max) aller Loks/Waggons des Zuges; PBZ-Modus)
Stimmt das so? Was muss noch beachtet werden?

3. Gibt es eine Dateinamenskonvention für Fotorealistische, "gemalte" Bitmap-Führerstände und Textführerstände oder eine Art Flag, welches dies erkennen lässt?

4. In mindestens einer Zugdatei fehlt die Zeile (sie fehlt und ist nicht einfach leer) für den alternativen Zuglauf. Entspricht dies der Konvention des Datenformats oder ist das ein Bug in der Zugdatei?

5. Lässt sich an irgendetwas (automatisierbar) erkennen, welcher Fahrplan für welche Streckendatei gültig ist, außer dass beide im gleichen Strecken(projekt)verzeichnis hinterlegt sind? Vielleicht die Nummer des Streckenelementes, an dem der Zug eingesetzt wird in den Streckendateien suchen. Dieses Vorgehen ist aber nicht zwangsläufig eindeutig, nehme ich an.

Edit: Orthografie.
Zuletzt geändert von Steffen81 am 14.01.2009 17:58:52, insgesamt 2-mal geändert.

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 30733
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Dateiformate

#2 Beitrag von Carsten Hölscher »

Es existieren diverse Führerstände in Version 2.4. Aber keine der *_v24.fst-Dateien ist in auch nur einer einzigen zug-Datei referenziert. Sucht sich Zusi automatisch die *_v24.fst-Datei sofern sie bei gleichem Präfix existiert?
ja
Bei einigen Zügen ist eine Höchstgeschwindigkeit definiert, bei vielen jedoch nicht. Diese muss dann berechnet werden. Wie sieht der Algorithmus zur Berechnung aus? Ich nehme an etwas in der Art:
Die im fahrplan stehende vmax ist das Minimum aus Fahrzeug-vmax, gedeckelt mit vMax der befahrenen Gleise
Gibt es eine Dateinamenskonvention für Fotorealistische, "gemalte" Bitmap-Führerstände
nein, hilft nur anschauen
In mindestens einer Zugdatei fehlt die Zeile (sie fehlt und ist nicht einfach leer) für den alternativen Zuglauf.
Was sagt die Doku?
Lässt sich an irgendetwas (automatisierbar) erkennen, welcher Fahrplan für welche Streckendatei gültig ist, außer dass beide im gleichen Strecken(projekt)verzeichnis hinterlegt sind?
Nein, nur der Speicherort sagt was aus.

Carsten

Steffen81
Beiträge: 672
Registriert: 21.12.2004 14:37:25
Wohnort: Jena

Re: Dateiformate

#3 Beitrag von Steffen81 »

Carsten Hölscher hat geschrieben:Die im fahrplan stehende vmax ist das Minimum aus Fahrzeug-vmax, gedeckelt mit vMax der befahrenen Gleise
Minimum aus Fahrzeug-vmax schließt auch die Waggons mit ein oder nur die Lok-Datei? Die vMax der befahrenen Gleise bekomme ich nicht auf die Schnelle heraus. Ich weiß bisher nicht exakt, wie ich den zu fahrenden Gleispfand in der Streckendatei ermitteln muss. Das ist vermutlich auch nicht in 3 Minuten erklärt.
Carsten Hölscher hat geschrieben:
Steffen81 hat geschrieben:4. In mindestens einer Zugdatei fehlt die Zeile (sie fehlt und ist nicht einfach leer) für den alternativen Zuglauf. Entspricht dies der Konvention des Datenformats oder ist das ein Bug in der Zugdatei?
Was sagt die Doku?
Die Doku erklärt den Fall nicht. Es müsste zumindest eine Leerzeile vorhanden sein. Ist sie in mind. einem Fall aber nicht.

Code: Alles auswählen

...
#IF                   Schlußzeichen PZB
2000                  Priorität des Zuges
5437                  Nummer der Streckenelementreferenz, auf der der Zug eingesetzt wird
400                   Treibstoffvorrat, negatives Vorzeichen: Zug bleibt bei Aufbrauch des Vorrats liegen
0                     reserviert für spätere Funktionen
0                     reserviert für spätere Funktionen
Reisezug              Zugart, gültige Angaben: Reisezug, Güterzug 
Aachen-Braunschweig   Abweichende Angabe für Zuglauf
TB0                   Türschließsystem: - ohne Schließsystem -, TB0, ICE, Selbstabfertigung
#                     reserviert für spätere Funktionen
...
Eine Frage käme noch hinzu:
Werden die Vorschaubilder der Fahrzeuge im Fahrplaneditor (gerenderte ls-Dateien) irgendwie gecacht (z.B. als PNG)? Von Führerstandshintergründen habe ich (verkleinerte) Screenshots für das Webtool berechnen lassen können. ls-Dateien kann ich ohne DirectX oder Hilfe von anderen Offline-Anwendungen sicher nicht rendern.

Benutzeravatar
Max Senft
Administrator
Beiträge: 2959
Registriert: 04.11.2001 14:01:40
Aktuelle Projekte: Dies und das
Wohnort: Blieskastel, Saarland, Deutschland
Kontaktdaten:

Re: Dateiformate

#4 Beitrag von Max Senft »

Hi!
Steffen81 hat geschrieben:Die Doku erklärt den Fall nicht. Es müsste zumindest eine Leerzeile vorhanden sein. Ist sie in mind. einem Fall aber nicht.
Was macht denn Zusi selbst beim Laden der entsprechenden Zug-Datei/Fahrplan-Datei? Vielleicht gibt das ja Rückschluss auf eine mögliche Fehlerbehandlung? ;) Hab selbst schon "oft" seltsame Gegebenheiten in den Dateiformaten feststellen müssen mit schmunzelnden Kommentaren von Carsten. :)

Mit Zusi 3 wird (hoffentlich) alles besser. *g*

Grüße
Max
Administrator, Programmierer, Ansprechpartner bei Problemen mit dem Board

F(R)S-Bauer
Beiträge: 5858
Registriert: 09.11.2002 02:00:47
Aktuelle Projekte: Sich in die Rente retten...2026...

Re: Dateiformate

#5 Beitrag von F(R)S-Bauer »

Zu 5:

Vergleiche den Anfangspunkt (Nummer) und den Namen der Ersten Betriebstelle mit dem Eintrag in der Streckendatei. Das ergibt zumindesten mal eine mindest notwendige Bedingung für die Funktionsfähigkeit. Alles weitere geht nur wenn du den Zuglauf mit den Vorhandenen Betriebstelle abgleichst. Ich mutmaße das beim Zuglauf ein Einfacher "Vorhanden" Vergleich reicht, da ich nicht glaube das wir 2 Strecken mit gleichen Betriebstellnamen, gleichen Anfangspunktnummern, aber UNTERSCHIEDLICHER Anordnung der Betriebstellen haben.

mfg

Ralf
Zuletzt geändert von F(R)S-Bauer am 14.01.2009 20:13:38, insgesamt 2-mal geändert.

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 30733
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Dateiformate

#6 Beitrag von Carsten Hölscher »

Habe mal im Quellcode geschaut und Zuglauf und Türsystem können wohl entfallen.

Carsten

Benutzeravatar
Max Senft
Administrator
Beiträge: 2959
Registriert: 04.11.2001 14:01:40
Aktuelle Projekte: Dies und das
Wohnort: Blieskastel, Saarland, Deutschland
Kontaktdaten:

Re: Dateiformate

#7 Beitrag von Max Senft »

Hi,

d.h. nach der Info ob Reisezug oder Güterzug wird bis zum ersten "#" nach /dev/null gelesen? ;)

Gruß
Max
Administrator, Programmierer, Ansprechpartner bei Problemen mit dem Board

Steffen81
Beiträge: 672
Registriert: 21.12.2004 14:37:25
Wohnort: Jena

Re: Dateiformate

#8 Beitrag von Steffen81 »

Ich parse es so:
Wenn nach dem #IF...
...6 Zeilen bis zum nächsten # folgen: kein Türschl. und keine Zugzielanzeige
...8 Zeilen bis zum nächsten # folgen: Türschl. = Zeile 7 und Zugziel = Zeile 8
...7 Zeilen bis zum nächsten # folgen:
ich lese Zeile 7. ist sie mit "- ohne Schließsystem -" oder "TB0" oder "ICE" oder "Selbstabfertigung" gefüllt dann ist es das Türschl. ansonsten ist Zeile 7 eben die Zugzielanzeige
Zuletzt geändert von Steffen81 am 15.01.2009 15:18:42, insgesamt 1-mal geändert.

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 30733
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Dateiformate

#9 Beitrag von Carsten Hölscher »

Sollte passen.

Carsten

Steffen81
Beiträge: 672
Registriert: 21.12.2004 14:37:25
Wohnort: Jena

Re: Dateiformate

#10 Beitrag von Steffen81 »

Vielen Dank soweit schon vorweg!
Zu den Fahrplaneinträgen in der zug-Datei gibt es noch einige Unklarheiten.

Woran erkenne ich in der zug-Datei, ob ein Halt vorliegt oder nicht? Die Doku sagt, es liegt ein Halt vor, wenn ein Gleisname vergeben ist, der sich vom Namen des nächsten Hauptsignals unterscheidet. Was heißt dies konkret dür die zug-Datei? Wenn die Angabe für das Gleis fehlt, bedeutet dies auch, dass kein Halt vorliegt? Was bedeutet es, wenn für die Zeitangabe der Ankunft die WindowsZeit = 0 vorliegt (1899-12-30 00:00:00)?
Hier schließt sich für mich der Kreis der beiden Doku-Kapitel "Fahrsimulator -> Fahrplaneditor" und "Dateiformate" noch nicht so ganz. ?(

Warum steht hinter vielen Betriebsstellen noch ein Pipe-Symbol?
Rhens|
Hat dies irgendeine Bedeutung?

Vielleicht war die Frage in meinem zweiten Beitrag hier etwas untergegangen, daher an dieser Stelle nochmal:
Steffen81 hat geschrieben:Werden die Vorschaubilder der Fahrzeuge im Fahrplaneditor (gerenderte ls-Dateien) irgendwie gecacht (z.B. als PNG)? Von Führerstandshintergründen habe ich (verkleinerte) Screenshots für das Webtool berechnen lassen können. ls-Dateien kann ich ohne DirectX oder Hilfe von anderen Offline-Anwendungen sicher nicht rendern.
Tut mir leid, ich versuche so viel wie möglich der Doku und dem Forum zu entnehmen.
Zuletzt geändert von Steffen81 am 15.01.2009 20:18:22, insgesamt 1-mal geändert.

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 30733
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Dateiformate

#11 Beitrag von Carsten Hölscher »

Sorry, die Vorschaubilder werden nicht zwischengespeichert.

Pipe ist ggf. hilfreich für die Fahrplangestaltung zur Unterscheidung der Fahrtrichtung, hat aber keinen direkten "Zusi-Grund".
Woran erkenne ich in der zug-Datei, ob ein Halt vorliegt oder nicht? Die Doku sagt, es liegt ein Halt vor, wenn ein Gleisname vergeben ist, der sich vom Namen des nächsten Hauptsignals unterscheidet.
Damit ist ein Haltepunkt gemeint, gell? Dann dürfte in der Zugdatei das Gleis fehlen. Ist es ein Halt im Bf oder besser am Hsig, dann steht mind. ein Gleis drin.
Was bedeutet es, wenn für die Zeitangabe der Ankunft die WindowsZeit = 0 vorliegt (1899-12-30 00:00:00)?
->Durchfahrtszeit, kein Planhalt.

Carsten

Steffen81
Beiträge: 672
Registriert: 21.12.2004 14:37:25
Wohnort: Jena

Re: Dateiformate

#12 Beitrag von Steffen81 »

Vielen dank... mal wieder, bis hier hin.

Ich versuche zu filtern, welche Züge zum Fahren gedacht/geeignet sind, und welche nicht. Gibt es da sinnvolle (und harte) Kriterien, z.B.
  • im Lokdatei-Pfad steht keine lok-Datei
  • sperrlok.lok oder standlok.lok sind im Zug enthalten
  • Abstandswaggons sind im Zug enthalten
  • bestimmte (alternative) Zugzielanzeige, wie "nicht zum Fahren" (so bei Dekozügen der F(R)S)
  • ...?
Beim Filtern sind mir zwei Züge aufgefallen:

Code: Alles auswählen

Strecken/Braunschweig-Harzburg/FahrplanHarzburg2_E3666.zug
Strecken/Braunschweig-Harzburg/FahrplanHarzburg2_E3766.zug
Bei diesen ist jeweils die Drehrichtung der Lok in einen anderen "Block" der Zug-Datei gerutscht.
Ist:

Code: Alles auswählen

2.3
3666
E
R
2
#
0
0,5
Loks\Dieseltriebwagen\624\DB_634_ar.lok
O
#IF
...
Soll (laut Doku)

Code: Alles auswählen

2.3
3666
E
R
2
0
#
0,5
Loks\Dieseltriebwagen\624\DB_634_ar.lok
O
#IF
...

Benutzeravatar
Andreas Damm
Beiträge: 1949
Registriert: 13.06.2002 15:56:20
Aktuelle Projekte: Fahrplan 1975 für Altenbeken-Northeim
Wohnort: Forchheim/Ofr. (KBS 820/891.2/821)
Kontaktdaten:

Re: Dateiformate

#13 Beitrag von Andreas Damm »

Hallo,

- Abstandswagen sind kein sicheres Kriterium, denn sie können bei Zügen, die später Kurswagen bekommen als Platzhalter verwendets ein.
- Stand- und Sperrlok schon eher.
- Keine Lokdatei im Lok-Pfad? Was dann, gibts Züge, wo dort ein WAG steht? geht das? Hmmm...
- Fahrwegangaben wird schwierig sein, denn es wird viele Texte geben, die du filtern mußt, jeder Fahrplanbauer erfindet seinen eigenen. Und dann kann es rein theoretisch sein, dass eine Suche wie "like '%deko%' " bei Fahrwegangaben den falschen filtert, falls "deko" zufällig in einem Ort vorkommt...

In meiner Liste versuche ich durch die Spalten "Anzahl Halte" und "Fahrzeit" erkenntlich zu machen, ob es sich lohnt den Zug zu fahren. Halte=1, Fahrzeit=0:00 und Wartezeit=6:59 wird nicht zum Fahren geeignet sein wie Halte=1, Fahrzeit=0:07 und Wartezeit=0:01. Aber ein automatisches Kriterium finde ich schwierig...

Grüße
Andreas
E-Mail: zusitool (@) gmx (.) de · Homepage: http://www.zusitool.de.vu" target="_blank
Zusi-Webring · http://www.nahverkehr-franken.de" target="_blank

Steffen81
Beiträge: 672
Registriert: 21.12.2004 14:37:25
Wohnort: Jena

Re: Dateiformate

#14 Beitrag von Steffen81 »

Andreas Damm hat geschrieben:Keine Lokdatei im Lok-Pfad? Was dann, gibts Züge, wo dort ein WAG steht? geht das?
Ja.
Andreas Damm hat geschrieben:...dann kann es rein theoretisch sein, dass eine Suche wie "like '%deko%' " bei Fahrwegangaben den falschen filtert, falls "deko" zufällig in einem Ort vorkommt...
Ich weiß. Darum fragte ich ja nach einem hoffentlich harten Kriterium oder fest vordefinierten Zugzielanzeige. Naja, scheint es nicht zu geben. :(
Andreas Damm hat geschrieben:durch die Spalten "Anzahl Halte" und "Fahrzeit" erkenntlich zu machen, ob es sich lohnt den Zug zu fahren
Ja, das wird bei mir auch ausgegeben. Man sieht das dann. Ich wollte solche Züge aber gar nicht erst importieren. Dann würden die auch bei keiner Suchanfrage überhaupt erst aufgelistet werden, sofern sie die eingegebenen Kriterien erfüllen.

Ebenfalls Grüße

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 30733
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Dateiformate

#15 Beitrag von Carsten Hölscher »

wag-Datei statt lok sollte eigentlich nicht gehen.

Was bei den Harzburg-Zügen dahinter steckt, kann ich so nicht sagen, vermutlich ein älteres Dateiformat.


Carsten

Steffen81
Beiträge: 672
Registriert: 21.12.2004 14:37:25
Wohnort: Jena

Re: Dateiformate

#16 Beitrag von Steffen81 »

Steffen81 hat geschrieben:
Andreas Damm hat geschrieben:Keine Lokdatei im Lok-Pfad? Was dann, gibts Züge, wo dort ein WAG steht? geht das?
Ja.
Kommando zurück. Ich prüfe nur, ob eine wag-Datei als Lok referenziert wurde. Es kommt wahrscheinlich nie vor. Wenn ich etwas Zeit hab, kann ich ja mal die Logs durch sehen. Aber scheint wohl nicht nötig zu sein.

Steffen81
Beiträge: 672
Registriert: 21.12.2004 14:37:25
Wohnort: Jena

Re: Dateiformate

#17 Beitrag von Steffen81 »

Da ich mal wieder - aber auch leider immernoch - damit beschäftigt bin, den aktuellen Zusi-Bestand zum Suchen und Filtern aufzubereiten, bin ich auf neue Fragen gestoßen.

Damit man in Zukunft auch direkt nach der Nettofahrzeit von Zügen filtern kann, rechne ich diese beim Zug-Einlesen aus. Dabei sind mir tauchen bei relativ vielen Zügen negative Fahrzeiten auf. Hier mal ein Auszug:

Code: Alles auswählen

Gießen|
2004-05-24  18:52:00
2004-05-24  19:23:00
9
#
1
0

#
#
Gießen 
2004-05-24  18:52:00
2004-05-24  19:23:00
9
#
#
#
Ist dies trotzdem korrekt? Auffällig oft handelt es sich bei diesen Fahrplaneinträgen um solche, bei denen Spezialaktionen stattfinden. Wir habe ich das zu interpretieren?

Der Algorithmus zur Berechnung der Nettofahrzeit sieht im Moment so aus:

Code: Alles auswählen

$this->NET_DRIVING_TIME	= 0;
$early_arrival			= false;
$stations	= count($this->STATION_ARRIVAL);
for(	$i = 1;	$i < $stations;	$i++	)
{
	try
	{
		$dep	= new DateTime($this->STATION_DEPARTURE[$i-1]);
		if(	$this->STATION_ARRIVAL[$i] <= "1899-12-31 00:00:00"	)
		{
			// Durchfahrt
			$arr	= new DateTime($this->STATION_DEPARTURE[$i]);
		}
		else
		{
			// Planhalt
			$arr	= new DateTime($this->STATION_ARRIVAL[$i]);
		}
		$diff	= $dep->diff($arr);
		$temp	= $this->calcDrivingTime($this->NET_DRIVING_TIME,$diff);
		if(	$temp < 0	)
		{
			$early_arrival	= true;
		}					
		$this->NET_DRIVING_TIME	+= $temp;
	}
	catch(Exception $e)
	{
		$system->log("Could not calculate net driving time of train " . $this->PATH,__LINE__,"warning",get_class(),true);
		unset($this->NET_DRIVING_TIME);
		break;
	}
}

if(	$early_arrival === true	)
{
	$system->log("At least one arrival time is ealier that last departure time in train " . $this->PATH,__LINE__,"warning",get_class(),true);
}
Die Methode "calcDrivingTime" addiert oder subtrahiert, je nach Differenz die Zeitdifferenz in Sekunden.

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 30733
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Dateiformate

#18 Beitrag von Carsten Hölscher »

Ist dies trotzdem korrekt? Auffällig oft handelt es sich bei diesen Fahrplaneinträgen um solche, bei denen Spezialaktionen stattfinden. Wir habe ich das zu interpretieren?
Damit der Simulator die Spezialmanöver hinbekommt, muß der Fahrplaneintrag u.U. zweimal drin sein.

Carsten

Steffen81
Beiträge: 672
Registriert: 21.12.2004 14:37:25
Wohnort: Jena

Re: Dateiformate

#19 Beitrag von Steffen81 »

Hmm, das heißt ich muss, wenn zwei Fahrplaneinträge mit gleicher Ankunfts- und Abfahrtszeit vorliegen und davon hat einer Spezialaktionen, diesen als einen einzigen Halt betrachten?

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 30733
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Dateiformate

#20 Beitrag von Carsten Hölscher »

Ja, kann aber auch seinm, daß die Zeiten nicht gleich sind. Am sichersten wäre es, die Spezialaktion "Wenden auf anderen Blocknamen" auszuwerten und dann die erste Abfahrts- und die zweite Ankunftszeit zu ignorieren.

Carsten

Antworten