Alternative Steuerungsmethoden für Trainz

  • Aktuell läuft die ja mit Zusi 3, wa?

    Zusi 2 und 3 ist möglich, für Besucher ist dort aber LOCSIM (mit C) im Einsatz.


    Zu deiner anderen Frage muss ich mich (um auch der Qualität dieses Threads gerecht zu werden) im Detail exakt schlau machen welche Software in welcher Version mit welcher Hardware zum Einsatz kommt. - ich liefere es nach.

    Einmal editiert, zuletzt von Ehemaliger Nutzer (i122) ()

  • Mika klingt vielversprechend, sollte es wirklich irgendwann einmal so kommen das N3V das TNI freigibt kann man das ja mit in die Software packen und dem Benutzer die Wahl geben, je nachdem welche Version er hat.

    Wie funktioniert das mit der Direktanwahl über Tasten?

    2 Mal editiert, zuletzt von MathiasR () aus folgendem Grund: Kontuinität

    • Offizieller Beitrag

    Trainz starten, dann links oben auf die drei Striche und in die Einstellungen, dann in die Control Settings...


    Diese Optionen kannst du manuell auf irgendwelche Tasten legen, sie setzen den Fahrschalter direkt auf eine Fahrstufe, dabei kann man in Achtelschritten wählen (alle Amerikanischen Loks haben 8 Fahrstufen für die kann man direkt anwählen, bei Loks mit mehr Fahrstufen muss man dann etwas tricksen oder man gibt sich mit 8 Direktanwahlen zufrieden). Die Einstellungen gibts in T:ANE und TRS19, keine Ahnung wies in älteren Versionen aussieht. Bei Bremsen gibt es ähnliche Auswahlmöglichkeiten.




    Greets, Mika

  • Mika da bleibt wohl für die älteren Versionen nur die Möglichkeit die Tastendrücke mitzuzählen. Sollte aber auch gehen.


    @all oder weis jemand obs bei den älteren auch die Möglichkeit gibt?

    Update zum Link von callavsg, offenbar hat ein deutscher Programmierer "DayJay" genau die gesuchte Brücke über die raildriver.dll erstellt. Respekt!!! Er hat sein Tool "TSConductor" genannt und soll über eine TCP-Verbindung, Trainz fernsteuern können (incl. Dokumentation und alles). Leider laufen inzwischen alle Links die ich gefunden habe in Leere.


    Kennt jemand möglicherweise "DayJay"? Oder hat das Paket schon mal früher heruntergeladen und kann es uns zur Verfügung stellen?

  • Moin,


    nein, mit Trainz ist das so nicht möglich, @interling . Der Simulator in Koblenz nutzt SPS, da der LOCSIM eine SPS Schnittstelle hat.

    In Trainz fehlt dies bisher gänzlich und auch für den privaten Gebrauch ist notwendige Hardware schon viel zu teuer.

    Eine Arduino-Schnittstelle wäre da sicher für den privaten Nutzer die kostengünstigere Methode, die außerdem einiges an individueller Anpassung erlaubt.


    Zum TSConductor:

    DayJay ist auf rail-sim.de aktiv! Dort bekommt man auch die letzte Version seiner Software.

  • Zum Thema TSConductor, der baut auf der raildriver.dll für den Train Simulator auf, hilft uns also leider nicht weiter. Ich bin mir durchaus bewusst das schon viele Andere (schon seit vielen Jahren) versucht haben dieses Problem zu lösen. Ich könnte jetzt auch so lange warten und hoffen das N3V mal eine richtige Schnittstelle implementiert, jedoch möchte ich gern jetzt anfangen, dann halt auf der Tastendruck-Ebene und später umstellen. Die Kommunikation zwischen Pult und PC ändert sich ja dadurch nicht.


    Es wäre schön wenn wir mal so eine Art Lastenheft aufstellen. Beispielsweise für alle die schon ihr Pult vor dem geistigen Auge haben, welche Hebel/Schalter/Anzeigen werden gebraucht? Es müssen allgemeine "Kanäle" definiert werden die auf jeden Führerstand anwendbar sind.


    Aufgrund der Komplexität von Trainz selbst (mit Script und allem) und der Tatsache das ich erst vor einem Jahr damit angefange habe, bin ich für die Trainz internen Dinge auf Hilfe von euch langjährigen Experten angewiesen (Trainz stellt nun mal nicht unbedingt den Mittelpunkt meines Lebens/meiner Freizeit dar). Jetzt werden einige bestimmt denken: "der soll sich erstmal selber intensivst mit dem Simulator beschäftigen!". Das tue ich, aber die langjährigen Trainzer mit Ihren Erfahrungen einzuholen halte ich für unmöglich und manchmal hat man einfach auch ein Brett vorm Kopf und stellt blöde Fragen:winking_face:. Um nicht das ganze Forum mit Einzelfragen zu verstopfen, wen darf ich anschreiben? Mein Beitrag soll die Hardwareschnittstelle, das Protokoll per USB in den PC und die Software, die für Trainz übersetzt, sein.

  • Mich interessiert dieses Thema hier aus verschiedenen Perspektiven heraus und

    ich möchte meine, in dieser Phase vielleicht etwas unbedeutenden Fragen dazu,

    in den Raum und zur Diskussion stellen. Sozusagen als Brainstorming. Vielleicht

    fällt dem einen oder anderen der Protagonisten etwas dazu ein.


    Eine Perspektive ist das Design/Layout der Hardware

    • Wie sollte die Hardware designt sein, so dass sie von verschiedenen
      Nutzern, bzw. Liebhabern der verschiedenen Fahrzeugtypen/Epochen
      verwendet werden kann?
      Bsp.: Einheitsführerstand, Altbau-E-Lok, Dampflokomotive

    Perspektive Signalübertragung

    • Wie sollte die mechanisch erfolgte Eingabe über Taster, Schalter und Hebel
      in elektrische Signale umgewandelt werden?
      Bsp. Potentiometer, Dreh- oder Trimmer-Kondensatoren, Transistoren
    • Wie werden diese elektrischen Signale an den PC übertragen? (Schnittstelle)
      Keine rhetorische Frage. Habt Ihr einmal einen Anschluss von einem
      USB-Stecker aufgedröselt? Dann wisst ihr, was ich meine.

    Perspektive Interpretation von Betriebssystem und Spiel

    Wurde/wird hier bereits ausgiebig hinterfragt.

    16066-signaturbild-ujb

    Früher war nicht alles besser.

    Es war nur unsere Zeit, unsere Kindheit und Jugend.

  • Design/Layout der Hardware soll gar nicht Bestandteil des Projekts sein. Das kann jeder nach seinen Vorlieben gestalten, ich glaube auch das es nicht Möglich ist jeden glücklich zu machen wenn man das schon vorgibt. Deshalb ja die einheitlichen Kanäle pro Funktion im Protokoll (Bsp. Kanal ?Regler 0 bis 100% als Integer = 0-255 bei 8-Bit, Kanal ?Licht als Bool = true/false). Das Interface hat digitale, analoge, PWM-Eingänge und später auch digitale schnittstellen zu anderen Systemen die man dann einfach einem Protokoll-Kanal zuweist. Somit ist quasi alles an Hardware Potis/Encodern/Schaltern anschliesbar.


    Die Wandlung und Kommunikation übernimmt ein Arduino über eine serielle Schnittstelle per USB mit der Software auf dem PC. <= daran arbeite ich

    • Offizieller Beitrag

    Also ich denke der Thread hier ist ja sehr interessant und es haben sich auch schon einige beteiligt, die sich mit Trainz tiefer auskennen. Wenn du Fragen hast zu Trainz interna dann stelle sie hier gerne.


    Meiner Meinung nach, da dein Programm ja nur die Brücke zwischen Fahrpult und Spiel herstellt, sollte dieses so Flexibel wie möglich sein. Es sollte eine große Anzahl einfacher Schalter unterstützen (Strom an/aus), eventuell auch in einer Matrix. In der echten Lok gibt es auch einige Schalter mit drei oder mehr Stellungen, welche man ja eigentlich als mehrere separate Schalter in einem betrachten kann (Strom an Kreis A/Strom aus/Strom an Kreis B bei drei Stellungen), da wäre es eventuell Sinnvoll, eine Unterstützung für einen Mehrpositionschalter hinzuzufügen für Optionen wie Licht o.Ä. Ich weiss leider nicht alle Schalter die im Einheitsführerstand Mehrfachschalter sind, da kann sicher einer unserer Tfs hier was sagen.


    Mir persönlich als Stadtverkehrsfan fallen sonst noch Sollwertgeber (eigentlich Gaspedal und Bremse wie beim Auto aber in einem Joystick) wie sie bei der Straßen und Stadtbahn zu finden sind ein, sowie Drückfahrschalter die in vielen U-Bahn Zügen verbaut sind. Konkret sind das große Knöpfe, die, wenn gedrückt, Schub geben. Die meisten U-Bahn Züge (und die Vorkriegsgeneration der S-Bahn) haben eine eigene Schaltlogik die bei bestimmten Geschwindigkeiten die Fahrstufen durchschaltet. Das in der Controllersoftware umzusetzen wäre dann aber wieder ein Problem für sich, aber unsere Berliner Züge haben eigentlich eine Geschwindigkeitsvorwahl (welche Zugabhängig passiv oder aktiv wirkt) und soweit ich weiss auch die Münchener A (im manuellen Modus) und Nürnberger DT1. Diese besitzt 8 Stellungen und wäre eigentlich perfekt als Fahrstufenauswahl zu missbrauchen wenn man U-Bahn Züge fahren will, also bei einem Berliner U-Bahn Führerstand würde dann z.b. Fahrschalter gedrückt + Geschwindigkeitshebel auf 70 = Trainz Fahrstufe 8. Im Idealfall hätte das Programm also eine Unterstützung für zwei Schalter, (Fahrschalter ist ja nur ein An/Aus Schalter, der Geschwindigkeitshebel ein Mehrfachschalter) welche in Kombination genutzt werden, um eine Fahrstufe zu ermitteln. Aber das wäre wahrscheinlich lediglich mein persönlicher Anwendungsfall, ich glaub nicht dass hier sonst einer so böse ist und eine virtuelle 185 mit einem U-Bahn Fahrschalter bedienen würde.


    Wenn ansonsten stufenlose potentiometerbasierte Fahrschalter zum Einsatz kommen (-> Einheitsführerstand) muss das Programm diese Virtuell in 9 Teile teilen (aus + 8 Direktfahrstufen in Trainz).


    Anzeigen werden da schon etwas schwerer werden. Neben dem Ablesen von Geschwindigkeiten und Bremsdrücken was ja ein Problem für sich darstellt (genaue Position der Hudwerte evtl von Auflösung abhängig?) müssten diese auch noch auf einer Anzeige ausgegeben werden. Dazu müsste das Programm bei analogen Anzeigen diese kleinen Motoren bedienen können. Aber schau mal in der Zusi Community, da hat glaub ich einer schon was entwickelt für den Arduino damit das geht, auch für den Anschluss von PZB Anzeigen.




    Greets, Mika

  • Mika, du hattest ja geschrieben das Möglich ist ein kleines Hinweisfenster zu scripten das gewisse Werte aus Trainz anzeigt. Stelle dir folgendes vor: ein Fenster nur 1 Pixel hoch, am oberen Bildschirmrand das die auszugebenden Werte wie einen Strichcode in Bit codiert . 1 Bit pro Pixel. 0 = RGB(00,00,00) und 1=RGB(01,01,01) damit es nicht stört.


    Ist das mit TrainzScript möglich?

    • Offizieller Beitrag

    Meines Wissens nach gehen nur farbige Pixel nicht, keine Ahnung wie flexibel das in game HTML ist, ob man da einfach eine 1x1 schwarze oder weisse Textur hinpacken und schnell ändern kann. Buchstaben und Zahlen gehen, aber die haben eine gewisse Höhe.

  • Hat an dieser Stelle jemand mal die Möglichkeit eine Liste SÄMTLICHER Parameter die in Trainz per Tastendruck ausgelöst werden können (mit Bezeichnung und Standard-Tastenbelegung) zu erstellen und hier reinzustellen?

  • Steht darüber nichts in der Trainzwiki von N3v?

  • Steht darüber nichts in der Trainzwiki von N3v?

    ...da muß man ja suchen:

    Hier

    und andere Seiten über Gockel gefunden...

    :smiling_face_with_sunglasses:


    Wie schon weiter oben von mir vorgeschlagen:

    Eine USB Tastatur als Schnittstelle zum PC verwenden. Beziehungsweise deren Chip...

    Die Tastatur arbeitet als Matrix soundsoviel Zeilen und soundsoviel Spalten.

    Jede Taste ist einer Zeile und Spalte zugeordnet.

    Also lassen sich einzelne Tasten oder Kombitasten direkt mit dem Chip der Tastatur verbinden.

    Drehschalter, Trottle, Bracke usw. über Poti und / oder Drehstufenschalter über einen Prozessor auf den / die Matrixeingänge des Chips der Tastatur legen...

    Und dieser zusätzliche Prozessor braucht halt ein Programm, das sagt:

    Bei Änderung an Eingang soundso ist Ausgang soundso 0 oder 1... was eben die entsprechende Taste simulieren soll.

    Schneller, langsamer, bremsen, usw.


    Jörg

  • Design/Layout der Hardware soll gar nicht Bestandteil des Projekts sein.

    Das kann jeder nach seinen Vorlieben gestalten, ...

    Korrigiere mich bitte, wenn ich falsch liege.

    Eine Schnittstelle ohne entsprechendes Frontend/Interface ist für mich nicht sehr

    sinnvoll, bzw. zielführend.

    Ich könnte mir einige Gedanken machen, wie ich für mich die Hardware umsetze

    könnte. Dennoch brauchte ich dafür Informationen, wie diese, sowohl

    mechanische, als auch elektrische Lösung angebunden werden kann, bzw. muss,

    damit die Software (Treiber und Trainz) die Impulse richtig interpretieren können.

    16066-signaturbild-ujb

    Früher war nicht alles besser.

    Es war nur unsere Zeit, unsere Kindheit und Jugend.

  • Ums Design sollte jeder nach seinen Vorstellungen und Möglichkeiten selber Hand anlegen...

    Wer gerne S-Bahn fährt, wird sich eher ein S-Bahnpult bauen, als jemand, der eine spezielle E-Lok vorzieht...


    Was man hier bereitstellen könnte, wären grob die Bedienelemente, bzw. eine Liste wo man was kaufen kann, mit Aufbauanleitung, die Schnittstelle und den Prozessor mit Programm.


    Ich kann mir auch vorstellen, daß der eine oder andere auch an Teile von Originalpulten heran kommt, und diese für sein Bauvorhaben verwendet.

    Andere müssen sich eher was basteln: Handhebel usw.


    Jörg

  • @Joeg M den Chip der Tastatur braucht es nicht da die PC-Software das ja schon macht

    ujb1 einfach gesagt hat man als "Enduser" eingangseitig eine Klemm/Pinleiste (einige PINs stellen einen Kanal dar, sagen wir 0-5V für Potis und Schalter, die anderen PINs für Encoder oder sonstige digitale Eingäng/Busse/was auch immer)


    Das ganze ähnelt dem DMX oder von mir aus auch dem MIDI-Protokoll (für diejenigen die das kennen)


    1. Das Hardware-Interface stellt die Klemmen bereit und fasst jeden Kanal in ein Protokoll zusammen

    2. die PC-Software enthält eine Interpretations- und Routingtabelle und schickt die Befehle als Tastendrücke an Trainz

    Einmal editiert, zuletzt von MathiasR ()

  • Korrekt, der Arduino IST der Prozessor!!!


    ARDUNIO = HARDWAREINTERFACE


    und dieser wiederum stellt eine serielle Schnittstelle auf dem PC bereit wenn man Ihn mit USB ansteckt.

    Einmal editiert, zuletzt von MathiasR ()

  • OK, wird ein Arduino genommen, hat das Board ja einen USB-Anschluss, sorry, ich dachte an einen einzelnen Prozessor ohne Board...


    Dann wird es ein aufwendigeres Programm, da jede Taste und Tastenkombination ausgewertet werden muss.

    Und woher weißt Du, welche vom PC verstandende Daten welchem Tastendruck und welcher Tastenkombination entsprechen...?


    Jörg