Citaro G 3 Türtaster soll bei allen Türen leuchten.

Das Forum befindet sich im reduzierten Betrieb. Die Addon- und Supportforen bleiben weiterhin verfügbar.
Bitte beachte, dass OMSI nicht mehr weiterentwickelt wird. Ein Teil der Entwickler widmet sich inzwischen der Entwicklung eines neuen Simulators. Weitere Informationen zum LOTUS-Simulator findest Du hier.
  • Hallo,
    Ich hätte da mal ne Frage..
    Was muss ich machen damit ,wenn Ich im Citaro G (Morphi V4) Irgendeine Tür öffne der Taster für die 3 Tür auch aufleuchtet..
    Ich hoffe mir kann jemand helfen

    :)


    LG Nils

  • Bevor ich hier einen kilometer langen Text schreibe, antworte ich so, wie ich deine Frage verstanden habe. Wenn du es anders meinst, schreibe einfach nochmal.


    Die Türtaste für die 3. Tür reagiert auf einen einzigen Befehl: door_3 oder so ähnlich lautend.


    Damit dieser Türtaster auch auf die anderen Türen reagiert, mußt du die entsprechenden "Forderungen" in das Script eingetragen werden.
    Ich bin mir nicht ganz sicher, weil jeder Bus etwas anders ist, aber die Beleuchtung der Taste in im Script: light.osc eingetragen. Um sicher zu gehen überprüfe es wie folgt:
    1. Suche in der model.cfg nach dem Mesh-Eintrag der 3. Tür (Bei einem Gelenkwagen in der model.cfg des Busses, nicht im Nachläufer)
    2. darunter stehen die "matl"-Einträge [matl_change] und [matl_nightmap] oder [matl_lightmap]
    3. unter diesen Befehlen steht der Befehl, wann das Licht beleuchtet werden soll. Notiere dir sdiesen Befehl!
    4. suche in der door.osc und in der light.osc nach diesem befehl, mit dem vorsatz "S.L.-----"
    also als Beispiel: steht dort door_3_open, dann suche nach [S.L.door_3_open)
    5. darüber stehen die Voraussetzungen, unter welchen Bedingungen dieses Licht leuchten darf.
    trage darunter die beiden Lichtbefehle der ersten beiden Türen ein: Beispiel:
    (L.L.elec_busbar_main) 0.2 >
    (L.L.door_3) 0.5 > &&
    (L.L.door_2) 0.5 >

    ||


    (L.L.door_1) 0.5 >

    ||


    (S.L.door_3_open)


    Das sollte schon reichen. Sollten weitere Vorraussetzungen dort stehen, mußt du diese unbedingt dort stehen lassen. Diese darfst du auf keinen Fall verändern!!!!
    Kommst du garnicht damit klar, dann suche den Abschnitt raus und stelle ihn hier ein. Und suche auch die Befehle, die die anderen beiden Türtasten leuchten lassen. Gegebenenfalls mußt der Scriptabschnitt etwas angepasst werden. Achtung, ich habe nur ein Beispiel geschrieben, der im Bus sicher so nicht funktioniert. Schaue bitte genau nach!

  • Da ich mitbaue und das eigentlich mache, antworte ich mal:


    Der Befehl für die Leuchte der 3. Tür ist "door_light_3".
    In der door.osc steht darüber nischt.
    In der lights.osc folgendes:


    1. Ergebnis:

    Code
    1. 0 (S.L.door_light_1) (S.L.door_light_2) (S.L.door_light_3) (S.L.door_light_4)


    2-5. Ergebnis:


    Ich werde daraus leider nicht schlau, und hoffe dass du mir helfen kannst.

  • Das habe ich mir fast gedacht:


    Ich habe irgendeine ältere Version von den Citaros. Mehr brauche ich auch nicht, weil ich die nur als KI brauche.
    Bei mir steht die Türbeleuchtung in der door.osc drin. Hierfür wurde das Türlicht für die Türraumbeleuchtung und das Licht der Türtaster zusammen verwendet.


    Bei dir ist die Beleuchtung des Tasters und die Türbeleuchtung scheinbar getrennt worden, damit die Türtaster blinken können.
    Um die Funktion mit dem Fehlerblinken nicht zu zerstören, reicht es wenn du die Zeile 14 (bei dir im Scriptschnipsel) erweiterst:



    Hiermit wäre die Abfrage allein auf die Tür gerichtet. Andere Variante wäre die Abfrage der Türkontrolle, um das blinken zu erhalten, wenn Tür 01 oder Tür 23 einen Fehler aufweist. Ich gehe einfach mal davon aus, daß die beiden anderen Türlichter ebenfalls blinken, wenn die Tür einen Fehler hat.



    Wobei es hier wahrscheinlich eher sinnvoll wäre, eine seperate Kontrolleuchte zu definieren, die anzeigt ob mindestens ein Türflügel offen ist, oder ein Fehler an einer Tür vorliegt.

  • Hey Tatra ,
    Du hattest mir mal hierbei geholfen .
    Ich hab das jetzt mal in den Facelift eingebaut...es funzt auch alles , bis auf eine Sache,
    Sobald Ich irgendeine Tür offen hab und man dann die 3 Tür öffnet und dann wieder Zugehen lässt wird die 3Tür in der VDV anzeige als offen angezeigt, obwohl sie eig zu ist...dies geht solanbge, bis alle Türen zu sind, dann wird auch die 3 als zu angezeigt.
    Hoffe du kannst mir helfen

    :)





    LG Nils

  • Guten Abend Nils und Helfer.


    Dein Fehler liegt wieder in der light.osc, oder da wo du es eingetragen hast. Sobald dort der Stand einer anderen Tür abgefragt wird, kann dieser Effekt auftauchen, den du da hast. Du solltest also für das Kontrolllicht der 3. Tür auch nur die Türflügel der 3. Tür abfragen (L.L.door_4) (L.L.door_5) oder auch (L.L.door_45). Die Abfrage ob eine andere Tür offen ist oder nicht, ist da eher unsinnig. Was anderes ist es, wenn du wieder die Blinkfunktion einfügst, falls eine der anderen Türen einen Fehler aufweist. In diesem Falle solltest du aber nur den Fehler abfragen.


    Ich gehe davon aus, dass ihr wieder die selben Befehle verwendet habt. Das wäre natürlich von Vorteil.


    (L.L.door_1) ist immer die Abfrage welchen Zustand ein Türflügel hat. Die Zahl innerhalb des Befehls sagt aus, um welchen Türflügel es gerade geht. In diesem Beispiel also um den 2. Türflügel der 1. Tür.
    Wenn die Abfrage für die Funktion des Türtaster's für die 3. Tür wieder (L.L.door_light_3) ist, mußt du in diesem Befehl die Abfragen der anderen Türen entfernen (L.L.door_0) usw. bis (L.L.door_3).


    Mal ein kleiner Hinweis für euch: der Türflügel hat im Grunde genommen 2 Positionen. Position 0 ist der Zustand, der eingelegt ist, wenn der Bus gespannt wird, ohne das in einem Script der Zustand 1 als gegeben, definiert wird. Also ist (L.L.door_0) eine geschlossene Tür, dann ist die Variable Null. Ist die Variable 1, dann ist die Tür offen. Wird in einem Script der Urzustand als 1 angegeben, dann steht die Tür zum Beginn offen. Da das Licht dann leuchten soll, wenn die Tür offen ist (Zustand 1), braucht man nichts weiter abfragen, denn zur Berechnung brauchen wir eine 1. Soll das Türlicht angehen, wenn die Tür nur leicht geöffnet ist, kann der Befehl erweitert werden. (L.L.door_0) 0.15 > bedeutet, die Tür gilt als offen, wenn diese mindestens zu 15% geöffnet ist.
    Der Grundaufbau dieses Scriptschnipsels sieht wie folgt aus:
    (L.L.door_4) 0.15 >
    (L.L.door_5) 0.2 >

    ||


    (L.L.light_stand) &&
    (S.L.door_light_3)


    bedeutet in dieser Reihenfolge:
    Tür 4 mindestnes 15 % geöffnet? dann Antwort 1
    Tür 5 mindestens 20% geöffnet? dann Antwort 1
    Standlicht wurde eingeschaltet? dann Antwort 1
    Ist bei dem ersten Befehl eine 1 ODER bei dem zweiten Befehl eine 1, UND bei dem dritten Befehl eine 1, dann ist das Ergebniss auch 1
    (S.L.door_light_3) leuchtet wenn Befehl A ODER Befehl B eine 1 hat UND das Standliocht eine 1 hat.


    Wenn ihr in diesem Bereich noch irgendeinen Türbefehl dazu schreibt, wird dieser Zustand mit abgefragt.


    Da bei euch nun das Türlicht ausgeschaltet ist, wenn die Tür zu ist, dass Türlicht angeht, wenn ihr die Tür öffnet, ist soweit alles richtig. Bleibt das Türlicht aber weiterhin an, obwohl die 3. Tür wieder geschlossen wurde, oder die Automatik díe Tür geschlossen hat, dann habt ihr einen Befehl einer anderen Tür drin oder die Timerabfrage stört noch.


    Überprüfe alle Einträge ganz genau: Ist irgendwo zwischen einem Befehl und eine Variablenabfrage oder einem Operator ein Leerzeichen vergessen worden? Sind alle {if} und/oder {else}-Abfrage mit einem {endif} geschlossen worden?


    Noch ein wichtiger Hinweis für euch: Eigentlich braucht ein Bus im Scriptordner nur 4 Dateien:
    - ein Script.osc
    - eine Varlist.txt
    - eine Stringvarlist.txt
    - eine Constfile.txt


    Das ihr mehrere Scripte drin habt, liegt daran, dass Marcel und Rüdiger, es wegen der Übersichtlichkeit gemacht haben. ABER, es gibt keinen Grund, warum ich einen Lichtbefehl in der light.osc eintragen muß. Ich kann diesen genausogut in andere Bereiche eintragen, in dem Antriebsscript, in dem Getriebescript, in dem Türscript oder ich kann auch ein eigenes Script nur für das Türlicht einstellen. Daher überprüfe ob dieser Befehl nicht irgendwo anderes schon berechnet wird. Und überprüfe auch, ob nicht beim Türlicht 1 oder Türlicht 2 die Belechtung der 3. Tür eingetragen wurde.


    Wahrscheinlich ist es aber ein Grund, für den dir vorliegenden Fehler, dass du einen Schreib- oder Flüchtigkeitsfehler hast. Daher ist es sinnvoll immer das gesamte Scriptschnipsel hier zu posten, damit man reinschauen kann und dir deinen Fehler aufzeigen kann. Alles andere ist nur dummes rumgerate.

  • Guten Abend Nils und Helfer.


    Dein Fehler liegt wieder in der light.osc, oder da wo du es eingetragen hast. Sobald dort der Stand einer anderen Tür abgefragt wird, kann dieser Effekt auftauchen, den du da hast. Du solltest also für das Kontrolllicht der 3. Tür auch nur die Türflügel der 3. Tür abfragen (L.L.door_4) (L.L.door_5) oder auch (L.L.door_45). Die Abfrage ob eine andere Tür offen ist oder nicht, ist da eher unsinnig.



    Die Sache ist, bei mir in Hagen ist es nähmlich so , das der eingedrückte TürTaster sogesehen als "Zentraler Leutmelder" fungiert, was heißt , das der eingedrückte Taster leuchtet, soblad irgendeine Tür offen ist.
    Deine Erste Antwort , wo du uns gesagt hast, wie man es hinkriegt, das der Taster leuchtet , wenn irgendeine Tür offen ist hat uns sehr geholfen nur bleibt es halt bei deisem 1 Fehler im VDV Display.

    :/
  • Achso, ich habe deine ganze Vorstellung, also wie du es haben möchtest falsch verstanden.


    Du möchtest die Türkontrolleuchte am 3. Taster als eine allgemeine Türleuchte haben. Und das Display soll auch richtig anzeigen.


    In der light.osc schreibst du einfach alle Türen als Bedingung rein
    (elec_busbar_main) 0.2 >
    (L.L.door_0) 0.2 >

    ||


    (L.L.door_1) 0.2 >

    ||


    (L.L.door_2) 0.2 >

    ||


    (L.L.door_3) 0.2 >

    ||


    (L.L.door_4) 0.2 >

    ||


    (L.L.door_5) 0.2 >

    ||


    (S.L.doorlight_3)


    Das bedeutet, wenn der Strom eingeschaltet ist und mindestens 20% der Batteriekapazität anliegt und ein einziger Türflügel mehr als 20% geöffnet ist, dann leuchtet die Kontrollleuchte.
    Das ist alles.


    Das Display verfügt aber über ein seperates Script, wo die Bedingungen eingetragen sind. Das mußt du also ebenfall kontrollieren und berichtigen. Das liegt vermutlich daran, dass im Script des Display's die Abfrage, ob ein Türflügel geöffent ist über diesen Lichtbefehl (L.L.doorlight_3) abgefragt wird. Hier müßtest du also im Script die lichtabfrage austauschen und die Türflügel direkt eintragen.

  • Soweit so gut, nur finde ich ehrlich gesagt keinen einzigen Eintrag mit door_light_3 mehr in keiner .osc außer der Lights...

    ?(

    .Und so wie ich es sehe hängt auch keine der einträge in der Lights mit dem VDV Display zusammen ....

    :/


    Und mir ist grade was aufgefallen...Im VDV Display wird die 3 Tür solange als offen angezeigt, bis man die HSTBremse löst (mal das Gaspedal antippt) .
    Sogesehen wird die 3 Tür solange als Offen gesehen, bis man Alle anderen Türen geschlossen hat

  • Da ich den Facelift nicht habe, kann ich dir da auch nicht weiterhelfen. Dann wirst du auf weitere Probleme stoßen: Du kannstversuchen Morphi zu fragen, ob er dir Auskunft geben kann. Er hat allerdings das Display (meines Wissens nach nur) erweitert und könnte sich damit auskennen. Oder du fragst Alterr, ob du da eine Antwort bekommst weiß ich aber nicht. Ansonsten gebe ich die Frage weiter an jemanden der den Bus hat und sich die Scripte anschauen kann.


    Allerdings hatte es doch auch vorher funktioniert, dass die 3. Tür im Display nur dann schwarz dargestellt wurde, wenn diese offen war und unabhängig vom Zustand der Haltestellenbremse, die immer aktiv ist, wenn eine Tür offen ist.


    Eine Sache kannst du noch versuchen. Ändere mal den Befehl in dem Script light.osc
    Also statt (S.L.doorlight_3) änderst du ihn in den Befehl (S.L.Tuerlicht_3). Trage diesen Befehl auch unten in die varlist.txt ein und bei dem Taster in der model.cfg, wobei jeweils nur das Wort doorlight in Tuerlicht geändert wird. Wie verhält sich die Displayanzeige nun ?