Moin!
Ich hab versucht mich zweier Probleme anzunehmen mit der Matrix im Mainzer LC. Zum einen gibt es das Problem dass ein Suffix wie z.B. "E" kaum zu löschen ist nach einmaliger Eingabe und Benutzung (alle übers IBIS oder per Trip zugewiesenen Linien erhalten danach auch ein E als Suffix), zum anderen warum die Fahrplan-KI einfach nicht in der Lage ist ein E als Suffix zu schildern bei zweistelligen Liniennummern + E, bei einstelligen aber schon.
Das Problem ist dass ich nicht ganz verstehe was hier abläuft, vor allem im Matrix-Macro Teil. Dort wird eine Linienliste und Hof abgefragt. Befindet man sich auf Karte Mainz werden alle nicht gelisteten Linien grundsätzlich wohl nicht geschildert, eine gelistete Linie aber ohne Suffix wenn sie zweistellig ist. Fordert der Trip also "54E" zeigt die Anzeige nur "54". Fordert der Trip "54E01" (also nach Mainzer Muster, gibt es auch nur "54". Was läuft denn hier genau ab und was müsste ich ändern damit die KI mit den Suffixen umgehen kann?
Das Problem mit dem Löschen des "E" aus dem Suffix bei einer Änderung der Linie auf eine ohne Suffix scheint auch beim Standard-Busfanat-Script zu bestehen.
Auszug aus dem Matrix-Script, dieser Teil unterscheidet sich vom Standard-Busfanat-Script, Rest müsste gelich sein.
- {trigger:ai_scheduled_settarget}
- 'Stromversorgung herstellen:
- 1 (S.L.elec_busbar_main_sw)
- 1.0 (S.L.elec_V_battery)
- 'Hier wird die Nummer eingestellt:
- '1. Ziffer:
- (L.$.SetLineTo) 1 $SetLengthL $d
- "E" $= {if} 70 (S.L.IBIS_Linie_Suffix) {endif} $d
- "N" $= {if} 60 (S.L.IBIS_Linie_Suffix) {endif} $d
- "S" $= {if} 50 (S.L.IBIS_Linie_Suffix) {endif} $d
- "B" $= {if} 20 (S.L.IBIS_Linie_Suffix) {endif} $d
- "U" $= {if} 40 (S.L.IBIS_Linie_Suffix) {endif} $d
- "0" $= {if} 0 (S.L.IBIS_LinieKurs) {endif} $d
- "1" $= {if} 1 (S.L.IBIS_LinieKurs) {endif} $d
- "2" $= {if} 2 (S.L.IBIS_LinieKurs) {endif} $d
- "3" $= {if} 3 (S.L.IBIS_LinieKurs) {endif} $d
- "4" $= {if} 4 (S.L.IBIS_LinieKurs) {endif} $d
- "5" $= {if} 5 (S.L.IBIS_LinieKurs) {endif} $d
- "6" $= {if} 6 (S.L.IBIS_LinieKurs) {endif} $d
- "7" $= {if} 7 (S.L.IBIS_LinieKurs) {endif} $d
- "8" $= {if} 8 (S.L.IBIS_LinieKurs) {endif} $d
- "9" $= {if} 9 (S.L.IBIS_LinieKurs) {endif}
- '2. Ziffer:
- (L.$.SetLineTo) 2 $SetLengthL 1 $SetLengthR $d
- "A" $= {if} 50 (S.L.IBIS_Linie_Suffix) {endif} $d
- "0" $= {if} (L.L.IBIS_LinieKurs) 10 * 0 + (S.L.IBIS_LinieKurs) {endif} $d
- "1" $= {if} (L.L.IBIS_LinieKurs) 10 * 1 + (S.L.IBIS_LinieKurs) {endif} $d
- "2" $= {if} (L.L.IBIS_LinieKurs) 10 * 2 + (S.L.IBIS_LinieKurs) {endif} $d
- "3" $= {if} (L.L.IBIS_LinieKurs) 10 * 3 + (S.L.IBIS_LinieKurs) {endif} $d
- "4" $= {if} (L.L.IBIS_LinieKurs) 10 * 4 + (S.L.IBIS_LinieKurs) {endif} $d
- "5" $= {if} (L.L.IBIS_LinieKurs) 10 * 5 + (S.L.IBIS_LinieKurs) {endif} $d
- "6" $= {if} (L.L.IBIS_LinieKurs) 10 * 6 + (S.L.IBIS_LinieKurs) {endif} $d
- "7" $= {if} (L.L.IBIS_LinieKurs) 10 * 7 + (S.L.IBIS_LinieKurs) {endif} $d
- "8" $= {if} (L.L.IBIS_LinieKurs) 10 * 8 + (S.L.IBIS_LinieKurs) {endif} $d
- "9" $= {if} (L.L.IBIS_LinieKurs) 10 * 9 + (S.L.IBIS_LinieKurs) {endif} $d
- " " $= {if} (L.L.IBIS_LinieKurs) 1 * 0 + (S.L.IBIS_LinieKurs) {endif}
- '3. Ziffer:
- (L.$.Yard) "Mainz" $=
- (L.$.Yard) "ESWE Verkehr MZ" $= ||
- {if}
- (L.$.SetLineTo) 3 $SetLengthL 1 $SetLengthR $d
- "E" $=
- {if}
- 80 (S.L.IBIS_Linie_Suffix)
- {else}
- (L.L.IBIS_LinieKurs) 1 * (S.L.IBIS_LinieKurs)
- {endif} $d
- "A" $=
- {if}
- 50 (S.L.IBIS_Linie_Suffix)
- {else}
- (L.L.IBIS_LinieKurs) 1 * (S.L.IBIS_LinieKurs)
- {endif}
- {else}
- (L.$.SetLineTo) 3 $SetLengthL 1 $SetLengthR $d
- "N" $= {if} 4 (S.L.IBIS_Linie_Suffix) {endif} $d
- "0" $= {if} (L.L.IBIS_LinieKurs) 10 * 0 + (S.L.IBIS_LinieKurs) {endif} $d
- "1" $= {if} (L.L.IBIS_LinieKurs) 10 * 1 + (S.L.IBIS_LinieKurs) {endif} $d
- "2" $= {if} (L.L.IBIS_LinieKurs) 10 * 2 + (S.L.IBIS_LinieKurs) {endif} $d
- "3" $= {if} (L.L.IBIS_LinieKurs) 10 * 3 + (S.L.IBIS_LinieKurs) {endif} $d
- "4" $= {if} (L.L.IBIS_LinieKurs) 10 * 4 + (S.L.IBIS_LinieKurs) {endif} $d
- "5" $= {if} (L.L.IBIS_LinieKurs) 10 * 5 + (S.L.IBIS_LinieKurs) {endif} $d
- "6" $= {if} (L.L.IBIS_LinieKurs) 10 * 6 + (S.L.IBIS_LinieKurs) {endif} $d
- "7" $= {if} (L.L.IBIS_LinieKurs) 10 * 7 + (S.L.IBIS_LinieKurs) {endif} $d
- "8" $= {if} (L.L.IBIS_LinieKurs) 10 * 8 + (S.L.IBIS_LinieKurs) {endif} $d
- "9" $= {if} (L.L.IBIS_LinieKurs) 10 * 9 + (S.L.IBIS_LinieKurs) {endif} $d
- " " $= {if} (L.L.IBIS_LinieKurs) 1 * 0 + (S.L.IBIS_LinieKurs) {endif}
- {endif}
- 'Stadionlinie?
- (L.$.Yard) "Mainz" $=
- (L.$.SetLineTo) 3 $SetLengthL "105" $= &&
- {if}
- 0 (S.L.IBIS_LinieKurs)
- 70 (S.L.IBIS_Linie_Suffix)
- {endif}
- 'Hier wird das Ziel eingestellt:
- 1 (S.L.elec_busbar_main_sw)
- (L.L.AI_target_index) (S.L.IBIS_TerminusIndex) (M.V.GetTerminusCode) (S.L.IBIS_TerminusCode)
- {end}
- {macro:Matrix_frame}
- '******************************+
- ' Terminus-Matrix
- '******************************+
- (L.L.IBIS_LinieKurs) 6 =
- (L.L.IBIS_LinieKurs) 9 = ||
- (L.L.IBIS_LinieKurs) 28 = ||
- (L.L.IBIS_LinieKurs) 33 = ||
- (L.L.IBIS_LinieKurs) 45 = ||
- (L.L.IBIS_LinieKurs) 46 = ||
- (L.L.IBIS_LinieKurs) 47 = ||
- (L.L.IBIS_LinieKurs) 48 = ||
- (L.L.IBIS_LinieKurs) 50 = ||
- (L.L.IBIS_LinieKurs) 51 = ||
- (L.L.IBIS_LinieKurs) 52 = ||
- (L.L.IBIS_LinieKurs) 54 = ||
- (L.L.IBIS_LinieKurs) 53 = ||
- (L.L.IBIS_LinieKurs) 55 = ||
- (L.L.IBIS_LinieKurs) 56 = ||
- (L.L.IBIS_LinieKurs) 57 = ||
- (L.L.IBIS_LinieKurs) 58 = ||
- (L.L.IBIS_LinieKurs) 60 = ||
- (L.L.IBIS_LinieKurs) 61 = ||
- (L.L.IBIS_LinieKurs) 62 = ||
- (L.L.IBIS_LinieKurs) 63 = ||
- (L.L.IBIS_LinieKurs) 64 = ||
- (L.L.IBIS_LinieKurs) 65 = ||
- (L.L.IBIS_LinieKurs) 66 = ||
- (L.L.IBIS_LinieKurs) 67 = ||
- (L.L.IBIS_LinieKurs) 68 = ||
- (L.L.IBIS_LinieKurs) 69 = ||
- (L.L.IBIS_LinieKurs) 70 = ||
- (L.L.IBIS_LinieKurs) 71 = ||
- (L.L.IBIS_LinieKurs) 72 = ||
- (L.L.IBIS_LinieKurs) 73 = ||
- (L.L.IBIS_LinieKurs) 74 = ||
- (L.L.IBIS_LinieKurs) 75 = ||
- (L.L.IBIS_LinieKurs) 79 = ||
- (L.L.IBIS_LinieKurs) 80 = ||
- (L.L.IBIS_LinieKurs) 81 = ||
- (L.L.IBIS_LinieKurs) 90 = ||
- (L.L.IBIS_LinieKurs) 91 = ||
- (L.L.IBIS_LinieKurs) 92 = ||
- (L.L.IBIS_LinieKurs) 99 = ||
- {if}
- {else}
- (L.$.Yard) "Mainz" $=
- (L.$.Yard) "ESWE Verkehr MZ" $= ||
- {if}
- (L.L.IBIS_LinieKurs) 0.1 * trunc (S.L.IBIS_LinieKurs)
- {else}
- {endif}
- {endif}
- (L.L.Matrix_IBIS_TerminusIndex_Last) (L.L.IBIS_TerminusIndex) = !
- {if}
- (L.L.IBIS_TerminusIndex) (S.L.Matrix_TerminusIndex)
- (L.L.IBIS_TerminusIndex) (S.L.Matrix_IBIS_TerminusIndex_Last)
- 0 (S.L.Matrix_Wechselziel-Timer)
- 1 (S.L.Matrix_Set_by_IBIS)
- {endif}
- (L.L.IBIS_LinieKurs) (L.L.Matrix_letzte_LN-Nr) = !
- (L.L.IBIS_Linie_Suffix) (L.L.Matrix_last_LN-Suffix) = ! ||
- {if}
- 0 (S.L.Matrix_Wechselziel-Timer)
- 1 (S.L.Matrix_Set_by_IBIS)
- {endif}
- (L.L.Matrix_TerminusIndex_Last) (L.L.Matrix_TerminusIndex) = !
- (L.L.IBIS_LinieKurs) (L.L.Matrix_letzte_LN-Nr) = ! ||
- (L.L.IBIS_Linie_Suffix) (L.L.Matrix_last_LN-Suffix) = ! ||
- (L.L.Matrix_Wechselziel-Timer) 0 = &&
- (L.L.Matrix_Schrittzaehler) 65 =
- (L.L.Matrix_Schrittzaehler) 70 = ||
- (L.L.Matrix_Schrittzaehler) 75 = || &&
- {if}
- ' WENN die Zielanzeige wechseln soll
- (L.L.Matrix_TerminusIndex) 1 (M.V.GetTerminusString) (S.$.Matrix_Hofdatei_oben)
- (L.L.Matrix_TerminusIndex) 2 (M.V.GetTerminusString) (S.$.Matrix_Hofdatei_unten)
- (L.L.Matrix_TerminusIndex) (S.L.Matrix_TerminusIndex_Last)
- (L.L.IBIS_LinieKurs) (S.L.Matrix_letzte_LN-Nr)
- (L.L.IBIS_Linie_Suffix) (S.L.Matrix_last_LN-Suffix)
- 0 (S.L.Matrix_ChangeCounter)
- 0 (S.L.Matrix_Invertmodus)
- 0 (S.L.Matrix_disable_LN-Nr)
- 0 (S.L.Matrix_Fettmodus_oben) (S.L.Matrix_Fettmodus_unten) (S.L.Matrix_Mittelschriftmodus) (S.L.Matrix_Kleinschriftmodus)
- 0 (S.L.Matrix_LNr_Schriftverkleinerung)
- (L.L.Matrix_Set_by_IBIS)
- {if}
- 5 (S.L.Matrix_Schrittzaehler_next) (S.L.Matrix_Schrittzaehler)
- {else}
- 10 (S.L.Matrix_Schrittzaehler_next) (S.L.Matrix_Schrittzaehler)
- 1 (S.L.Matrix_ChangeCounter)
- {endif}
- "" (S.$.Matrix_Front_soll_Zeile01) (S.$.Matrix_Front_soll_Zeile02) (S.$.Matrix_Front_soll_Zeile03) (S.$.Matrix_Front_soll_Zeile04) (S.$.Matrix_Front_soll_Zeile05) (S.$.Matrix_Front_soll_Zeile06) (S.$.Matrix_Front_soll_Zeile07) (S.$.Matrix_Front_soll_Zeile08) (S.$.Matrix_Front_soll_Zeile09) (S.$.Matrix_Front_soll_Zeile10) (S.$.Matrix_Front_soll_Zeile11) (S.$.Matrix_Front_soll_Zeile12) (S.$.Matrix_Front_soll_Zeile13) (S.$.Matrix_Front_soll_Zeile14) (S.$.Matrix_Front_soll_Zeile15) (S.$.Matrix_Front_soll_Zeile16) (S.$.Matrix_Front_soll_Zeile17) (S.$.Matrix_Front_soll_Zeile18) (S.$.Matrix_Front_soll_Zeile19)
- "" (S.$.Matrix_Seite_soll_Zeile01) (S.$.Matrix_Seite_soll_Zeile02) (S.$.Matrix_Seite_soll_Zeile03) (S.$.Matrix_Seite_soll_Zeile04) (S.$.Matrix_Seite_soll_Zeile05) (S.$.Matrix_Seite_soll_Zeile06) (S.$.Matrix_Seite_soll_Zeile07) (S.$.Matrix_Seite_soll_Zeile08) (S.$.Matrix_Seite_soll_Zeile09) (S.$.Matrix_Seite_soll_Zeile10) (S.$.Matrix_Seite_soll_Zeile11) (S.$.Matrix_Seite_soll_Zeile12) (S.$.Matrix_Seite_soll_Zeile13) (S.$.Matrix_Seite_soll_Zeile14) (S.$.Matrix_Seite_soll_Zeile15) (S.$.Matrix_Seite_soll_Zeile16) (S.$.Matrix_Seite_soll_Zeile17) (S.$.Matrix_Seite_soll_Zeile18) (S.$.Matrix_Seite_soll_Zeile19)
- "0" (S.$.Matrix_Linie_soll_Zeile01) (S.$.Matrix_Linie_soll_Zeile02) (S.$.Matrix_Linie_soll_Zeile03) (S.$.Matrix_Linie_soll_Zeile04) (S.$.Matrix_Linie_soll_Zeile05) (S.$.Matrix_Linie_soll_Zeile06) (S.$.Matrix_Linie_soll_Zeile07) (S.$.Matrix_Linie_soll_Zeile08) (S.$.Matrix_Linie_soll_Zeile09) (S.$.Matrix_Linie_soll_Zeile10) (S.$.Matrix_Linie_soll_Zeile11) (S.$.Matrix_Linie_soll_Zeile12) (S.$.Matrix_Linie_soll_Zeile13) (S.$.Matrix_Linie_soll_Zeile14) (S.$.Matrix_Linie_soll_Zeile15) (S.$.Matrix_Linie_soll_Zeile16) (S.$.Matrix_Linie_soll_Zeile17) (S.$.Matrix_Linie_soll_Zeile18) (S.$.Matrix_Linie_soll_Zeile19)
- "" (S.$.Matrix_Linienanzeige_soll_Zeile01) (S.$.Matrix_Linienanzeige_soll_Zeile02) (S.$.Matrix_Linienanzeige_soll_Zeile03) (S.$.Matrix_Linienanzeige_soll_Zeile04) (S.$.Matrix_Linienanzeige_soll_Zeile05) (S.$.Matrix_Linienanzeige_soll_Zeile06) (S.$.Matrix_Linienanzeige_soll_Zeile07) (S.$.Matrix_Linienanzeige_soll_Zeile08) (S.$.Matrix_Linienanzeige_soll_Zeile09) (S.$.Matrix_Linienanzeige_soll_Zeile10) (S.$.Matrix_Linienanzeige_soll_Zeile11) (S.$.Matrix_Linienanzeige_soll_Zeile12) (S.$.Matrix_Linienanzeige_soll_Zeile13) (S.$.Matrix_Linienanzeige_soll_Zeile14) (S.$.Matrix_Linienanzeige_soll_Zeile15) (S.$.Matrix_Linienanzeige_soll_Zeile16) (S.$.Matrix_Linienanzeige_soll_Zeile17) (S.$.Matrix_Linienanzeige_soll_Zeile18) (S.$.Matrix_Linienanzeige_soll_Zeile19)
- "" (S.$.Matrix_Font_Zeile01) (S.$.Matrix_Font_Zeile02) (S.$.Matrix_Font_Zeile03) (S.$.Matrix_Font_Zeile04) (S.$.Matrix_Font_Zeile05) (S.$.Matrix_Font_Zeile06) (S.$.Matrix_Font_Zeile07) (S.$.Matrix_Font_Zeile08) (S.$.Matrix_Font_Zeile09) (S.$.Matrix_Font_Zeile10) (S.$.Matrix_Font_Zeile11) (S.$.Matrix_Font_Zeile12) (S.$.Matrix_Font_Zeile13) (S.$.Matrix_Font_Zeile14) (S.$.Matrix_Font_Zeile15) (S.$.Matrix_Font_Zeile16) (S.$.Matrix_Font_Zeile17) (S.$.Matrix_Font_Zeile18) (S.$.Matrix_Font_Zeile19)
- "" (S.$.Matrix_Zieltext_Zeile01) (S.$.Matrix_Zieltext_Zeile02) (S.$.Matrix_Zieltext_Zeile03) (S.$.Matrix_Zieltext_Zeile04) (S.$.Matrix_Zieltext_Zeile05) (S.$.Matrix_Zieltext_Zeile06) (S.$.Matrix_Zieltext_Zeile07) (S.$.Matrix_Zieltext_Zeile08) (S.$.Matrix_Zieltext_Zeile09) (S.$.Matrix_Zieltext_Zeile10) (S.$.Matrix_Zieltext_Zeile11) (S.$.Matrix_Zieltext_Zeile12) (S.$.Matrix_Zieltext_Zeile13) (S.$.Matrix_Zieltext_Zeile14) (S.$.Matrix_Zieltext_Zeile15) (S.$.Matrix_Zieltext_Zeile16) (S.$.Matrix_Zieltext_Zeile17) (S.$.Matrix_Zieltext_Zeile18) (S.$.Matrix_Zieltext_Zeile19)
- "" (S.$.Matrix_Sonderzeichen_Zeile01) (S.$.Matrix_Sonderzeichen_Zeile02) (S.$.Matrix_Sonderzeichen_Zeile03) (S.$.Matrix_Sonderzeichen_Zeile04) (S.$.Matrix_Sonderzeichen_Zeile05) (S.$.Matrix_Sonderzeichen_Zeile06) (S.$.Matrix_Sonderzeichen_Zeile07) (S.$.Matrix_Sonderzeichen_Zeile08) (S.$.Matrix_Sonderzeichen_Zeile09) (S.$.Matrix_Sonderzeichen_Zeile10) (S.$.Matrix_Sonderzeichen_Zeile11) (S.$.Matrix_Sonderzeichen_Zeile12) (S.$.Matrix_Sonderzeichen_Zeile13) (S.$.Matrix_Sonderzeichen_Zeile14) (S.$.Matrix_Sonderzeichen_Zeile15) (S.$.Matrix_Sonderzeichen_Zeile16) (S.$.Matrix_Sonderzeichen_Zeile17) (S.$.Matrix_Sonderzeichen_Zeile18) (S.$.Matrix_Sonderzeichen_Zeile19) (S.$.Matrix_Sonderzeichen)
- (C.L.Matrix_Dotbreite_Front) (S.L.Matrix_Dotbreite_Front_max)
- (C.L.Matrix_Dotbreite_Seite) (S.L.Matrix_Dotbreite_Seite_max)
- ' Angenommen wird eine maximale Stringlänge von 20 Zeichen
- ' Zum Vergleich: Die ANNAX des D92 bietet nur Platz für 16 Zeichen