19. 05. 2009, 11:07
(Dieser Beitrag wurde zuletzt bearbeitet: 19. 05. 2009, 11:28 von Andy0711.)
(19. 05. 2009, 08:13)dt8.de schrieb: Wenn z.B. 300 Fahrzeuge (Bahn+Bus) im Netz unterwegs sind, dann würde ein Datenaustausch pro Minute bedeuten, daß pro Sekunde 5 Fahrzeuge einen Datenaustausch machen müssen. Mit Protokolloverhead (Aufruf des Fahrzeugs etc.) auf nur einem Kanal würde ich nicht sagen, daß das "nichts" ist.Man müsste das halt als Broadcast durchführen, d. h. an alle gleichzeitig senden.
Natürlich kann das RBL Fahrzeuge priorisieren, die auf eine Haltestelle mit Umsteigemöglichkeiten zufahren, aber das geht auch nur in begrenzten Umfang, sonst werden irgendwann andere Fahrzeuge nur noch selten bedient.
Wenn man annimmt, dass
a) die Fahrpläne lokal im System gespeichert sind
b) maximal 80 S-Bahn-, 140 Stadtbahn- und 280 Buskurse unterwegs sind (Summe z. B. 500)
c) man Kursnummern im 16-Bit-Bereich verwendet (0-65535)
d) die Verspätung auf 30 Sekunden genau mit 8 Bit (-6 bis 120 Minuten) angegeben wird.
e) man 8 Bit für Statusflags, Fehlercodes o. ä. verwendet (z.B. 256 Fehlercodes, 00 = OK)
f) anschließend eine CRC-Prüfsumme einbaut und davor eine Datensatzkennung berücksichtigt
hätte man z.B. 512 x 32 Bit = 16 KBit = 2 KB für einen Datensatz. (=> 14K-Modem weniger als eine Sekunde).
Das macht bei (Annahme) 4 Datensätzen/Minute 4 Sekunden Kanalbelegung bei einer Leistungsfähigkeit eines 14k-Modems.
Bei Bedarf könnte man das Konzept natürlich variabler machen, zum Durchrechnen sollte es aber ausreichen.
Denoch möchte ich ein Beispiel ohne zusätzlichen Datentransfer für die 8-Bit-Verspätung aufzeigen, um die Möglichkeiten, die in ein paar Bits stecken, zu verdeutlichen:
00-3f (000-063): 0 Sekunden Verspätung bis 630 Sekunden in 10-Sekundenschritten.
40-7f (064-127): 10,5 Minuten Verspätung bis 42 Minuten Verspätung in 30-Sekundenschritten
80-bf (128-191): 42 Minuten Verspätung bis 105 Minuten Verspätung in Minutenschritten
c0-df (192-223): 110 Minuten Verspätung bis 265 Minuten Verspätung in 5-Minutenschritten
e0-ef (224-255): 30 Sekunden Verfrühung bis 8 Minuten Verfrühung in 30-Sekundenschritten
f0-ff: 10 Minuten Verfrühung bis 40 Minuten Verfrühung in 2-Minutenschritten (nur für die DB ;-))
Für Sonderkurse müsste man natürlich einen Kursnummernbereich reservieren und min. 8 statt 4 Bytes benutzen und den Kurs sowie die Abfahrtszeit nach einem anderen Schema codieren (Liniennummer; Unter-/Teilstrecke usw.). Beispiel für Kursnummern:
0000-1fff (00000-08191): Stadtbahnlinie+Kurs: z.B. U1-01 = 0101
2000-7fff (08192-32767): Buslinie+Kurs: z.B. 80-01 = 5001 (80 = 50 hexadezimal)
8000-bfff (32768-49151): S-Bahnen nach Fahrt: z.B. 7151 = 30000+7151 (diesesmal Dezimal); Kursnummern für andere Züge müssten geschlüselt werden.
c000-ffff (49152-65535): Zusatzfahrten nach gesondertem Schlüssel
...
PS: Da die DFI-Anzeigen an Haltestellen nicht ausreichend intelligent dafür sein dürften, könnte dieses Konzept dort natürlich nicht funktionieren.