Ist es möglich, dass TFT-Monitore in Omsi bei den Haltestellen die Uhrzeit anzeigen und wenn der Bus laut Plan z.B. um 12:00 bei der nächsten Haltestelle ist und der Bus 1 Minute zu spät ist, dass der TFT Monitor dann 12:01 statt 12:00 anzeigt?

TFT Monitor Uhrzeit bei Haltestellen
- nummer3001
- Unerledigt
Als Gast kannst du nur Inhalte in deiner ausgewählten Sprache sehen. Registrierte Nutzer können die Sichtbarkeit anderer Sprachen in ihrem Kontrollzentrum aktivieren, weitere Infos hier.
Alle Themen sind in den Foren mit einer Sprachflagge gekennzeichnet:
-
-
-
Also Echtzeitauskunft? Ja, ist möglich. Hier ein Scriptbeispiel für die Berechnung:
Damit wird die aktuelle Uhrzeit genommen, die restliche Zeit bis zur Abfahrt an der nächsten/aktuellen Haltestelle draufgerechnet und entsprechend auch die Verspätung. Am Ende bekommt man die Ist-Abfahrtszeit in Sekunden raus.
Beispiel:
Es ist 12:00 Uhr, also 43200 Sekunden.
Laut OMSI hattest du vor 2 Minuten (120 Sek) um 11:58 Uhr Abfahrt und du wirst prognostiziert mit einer Verspätung von 5 Minuten (300 Sek).
43200 + (-120) + 300 = 43380 = 12:03 Uhr
Entsprechend für die nächsten Haltestellen muss der Index jeweils erhöht werden:
Code(L.S.Time) (M.V.GetTTBusstopIndex) 1 + (M.V.GetTTBusstopDep) + (M.V.GetTTDelay) + (L.S.Time) (M.V.GetTTBusstopIndex) 2 + (M.V.GetTTBusstopDep) + (M.V.GetTTDelay) + (L.S.Time) (M.V.GetTTBusstopIndex) 3 + (M.V.GetTTBusstopDep) + (M.V.GetTTDelay) + (L.S.Time) (M.V.GetTTBusstopIndex) 4 + (M.V.GetTTBusstopDep) + (M.V.GetTTDelay) + (L.S.Time) (M.V.GetTTBusstopIndex) 5 + (M.V.GetTTBusstopDep) + (M.V.GetTTDelay) + ...
-
-
Grundsätzlich ja.
Allerdings müsstest du noch aus den so berechneten Sekundenwerten die Stunden und Minuten rausrechnen und als String speichern.
Code: Beispiel Berechnung Zeitanzeige(M.V.GetTTBusstopIndex) (M.V.GetTTBusstopDep) (M.V.GetTTDelay) + s0 l0 60 % s1 l0 l1 - 60 / s0 l0 60 % s2 l0 l2 - 60 / s0 l0 $IntToStr ":" $+ l2 $IntToStr $+ (S.$.Halt0Zeit)
Diese Berechnung kann natürlich noch besser als makro definiert werden um sie nicht x-mal Schreiben zu müssen.
Code: Beispiel Berechnung Zeitanzeige mit makro
Alles anzeigen(M.V.GetTTBusstopIndex) (M.V.GetTTBusstopDep) (M.V.GetTTDelay) + (M.L.UhrzeitHHMM) . . . {macro:UhrzeitHHMM} s0 l0 60 % s1 l0 l1 - 60 / s0 l0 60 % s2 l0 l2 - 60 / s0 l0 $IntToStr ":" $+ l2 $IntToStr $+ {end}
Und natürlich muss der Text auf dem TFTMonitor richtig platziert werden.
Allerdings solltest du zusätzlich beachten, dass bei diesem Vorgehen die Verfrühung auch wieder Minuten abzieht, sodass dafür eine skriptabhängige Lösung gefunden werden muss, sofern keine vor dem Fahrplan liegenden Abfahrtszeiten angezeigt werden sollen.
Korrektur:
Bei der Berechnung der Abfahrtszeiten muss das (L.S.Time) und auch das + hinter (M.V.GetTTBusstopDep) weg.
(M.V.GetTTBusstopDep) liefert bereits die planmäßige Abfahrtszeit.
Sonst hat man z.B. bei Abfahrt 11:58 auf einmal 23:56 stehen.
Ergänzung:
(M.V.GetTTDelay) entspricht der Verspätung zur Ankunft.
Wenn in einem Fahrplan die Abfahrtszeit nicht gleich der Ankunftszeit ist sollte für eine korrekte Abfahrtsverspätung der Korrekturfaktor (M.V.GetTTBusstopArr) (M.V.GetTTBusstopDep) - addiert werden.