Hallo zusammen,
mal wieder an der Zeit, über den Stand des Dampflokantriebsmodells zu berichten:
Nachdem ich einiges erfolgreich mit der Fahrpult-Dll-Schnittstelle probiert habe, versuchte ich möglichst viel von dem Dampfloktool in eine Fahrpult-Dll zu überführen.
Zu diesem Zweck entstanden erst mal einige provisorische Zusi-Führerstände.
Als Vorlage für die Blickpunkte dienten mir die Führerstände von LokSim3D. Hier einige Beispiele, wie es denn mal so in etwa aussehen könnte:
https://www.loksim3d.de/de/addons/fuehr ... -br01-1102
https://www.loksim3d.de/de/addons/fuehrerstand-br44
https://www.loksim3d.de/de/addons/fuehrerstand-br-52
Die Kombination aus Sicht auf die Instrumente und die Strecke finde ich sehr praktikabel. Ansonsten kenne ich nur Dampflokführerstände (z.B. MSTS), wo man entweder die Strecke oder die Instrumente sieht.
Da ich noch keine verwertbaren Fotos habe, erst mal sehr rudimentär. Lokführersicht und Heizersicht:
Natürlich musste ich dafür einiges auf die individuelle Datenverabeitung der Fahrpultinternen ID's legen.
Herausgekommen ist eine Dll, die meinem Dampfloktool in Funktion und Bedienbarkeit gleich kommt. Leider gibt es auch da einige Krücken:
- Verschiedene Dampfloks bzw. deren Parameter wie Maximaler Kesseldruck, Füllungsbereich, Kesselleistung, etc. müssen noch über eine extra Ini-Datei der Dll bekannt gemacht werden. Dafür werkel ich bei jedem Lokwechsel händisch per Texteditor in dieser rum.
- Für Diesel oder E-Lok sollte die Dll deaktiviert werden. Entweder durch einen Eintrag in die Ini-Datei oder Bearbeitung der Zusi-Konfiguration.
-
Eine Fahrpult-Dll ist dafür konzipiert, Bedieneingaben auszulesen, diese dann zu manipulieren und das Ergebnis an Zusi zurück zu senden. D.h. wenn ich Bediendaten an Zusi sende ohne vorher welche empfangen zu haben, quittiert der Simulator das nach kurzer Zeit mit Fehlermeldung und Absturz. Deshalb habe ich kurzerhand das so hingetrixt, dass die Dll sich selber eine Bedienung vorgaukelt. Dies macht sie alle 200ms mit einer virtuellen "Space-Taste". Diese wird zwar nicht ausgewertet, verhindet aber den Absturz. Leider sendet die Dll diese virtuelle Tastatureingabe auch an andere Programme, die neben dem Simulator laufen - wenn man den Fokus auf diese legt ohne vorher den Simulator in den Pausenmodus zu versetzen. Dabei kann im einfachsten Fall eine Textdatei mit Leerzeichen zugemüllt werden. Andere "Schäden" sind jedoch auch nicht ausgeschlossen. Dies ist der Grund, warum ich die Dll nicht veröffentlichen möchte.
Edit: Kaum macht man es richtig - schon gehts
Nun zu dem "Lastenheft", wie ich mir die Schnittstelle für den ersten Wurf des Dampflokantriebsmodells vorstelle:
Benötigte Eingaben
- Regler (evtl. Doppelbelegung mit Fahrschalter)
- Steuerung (evtl. Doppelbelegung mit Richtungsschalter)
- Bedienung Zylinderentwässerung (ich benutze dafür Taste "C" - ein/aus)
- Bedienung Feuertür (im Moment Taste "F" nur zum öffnen - schliessen erfolgt automatisch)
Erweiterung der physikalischen Größen bzw. Führerstand ID's
- Druck Kessel
- Druck Schieberkasten
- Temperatur Heissdampf
- Stellung Regler
- Stellung Steuerung
- Status Zylinderentwässerung
- Status Feuertür
- Trigger Auspuffschlag (später für Sound und Partikel)
Erweiterung der Einstellungen im Fahrzeugeditor inkl. Zugriff über die Schnittstelle:
- Maximaler Kesseldruck in Bar
- Durchmesser Treibrad in mm
- Anzahl der Zylinder
- Minimale Füllung in %
- Maximale Füllung in %
- optimale Geschwindigkeit bei minimaler Füllung in km/h
- Kessel Rostfläche in m²
- Kessel Verdampferheizflaeche in m²
- Kessel Ueberhitzerheizflaeche in m²
- Auswahl für Kessel Vorwärmer: keinen Vorwärmer - Oberflächenvorwärmer - Mischvorwärmer
- Kessel Wirkungsgrad Korrektur (Werte z.B. 0,8 .. 1,2)
- Leistung indiziert in kW
- Auswahl Heissdampf: Heissdampflok - Nassdampflok
- Auswahl Verbrennungskammer: Vorhanden - nicht Vorhanden
- Maximale Geschwindigkeit vorwärts
- Maximale Geschwindigkeit rückwärts
Zurück an Zusi:
- Relative Zugkraft von 0..100% (Verwertet im Moment im einfachen Antriebsmodell als 0..100 Fahrstufen)
Weitere Überlegungen:
- Funktionen der Fahrpult-Dll werden auch für das Dampflokantriebsmodell benötigt
- Relative Zugkraft ändert sich ständig auch ohne direkte Bedieneingaben (s.o.)
- Fester Takt (200ms hat sich als praktikabel herausgestellt) müsste möglich sein
- Aktivierung der Dll automatisch, wenn eine Dampflok als Fahrzeug ausgewählt wird
So, das wars jetzt erst mal. Carsten werde ich dann noch mal den Quellcode zu kommen lassen.
Gruß
Jürgen