Fragen zur TCP-Schnittstelle

Das Unterforum für Diskussionen rund um die Technik, Bedienung, Konfiguration usw. Das ist auch die erste Anlaufstelle für Bastler mit Fragen zu den Editoren.
Nachricht
Autor
Wolfgang E.
Beiträge: 569
Registriert: 28.10.2021 12:16:41
Aktuelle Projekte: https://github.com/machinae-vectoriae-ductor/
Wohnort: Köln
Kontaktdaten:

Re: Fragen zur TCP-Schnittstelle

#41 Beitrag von Wolfgang E. »

Ich bin nun ein paar Schritte weiter, sowohl in der Funktion meines Programms, als auch in meinen Erkenntnissen.
Man muss nun also bei allen Führerständen, die ich benutzen möchte, die Angleicherfunktion verschieben und alle Schalter, die keine Kombischalter sind, in Taster verwandeln. Das ist sehr lästig, aber überschaubar.
Mein Programm liest ein, ob das erste Fahrzeug das Tfz ist und schaltet daraufhin zwischen den "normalen" und den Steuerwagengrößen um. Das funktioniert recht gut, wobei ich noch keine Züge mit verteiltem Antrieb, wie den 403 ausprobiert habe. Zudem wird eingelesen, welche Fahrzeugkonfigurationsdatei das erste Fahrzeug im Zug hat und daraufhin werden die Anzeigen an meinem Führertisch vorbildgerecht umgeschaltet und es werden die Zuordnungen der Kombischalterstellungen zu den Funktionen vorgenommen.Das funktioniert bisher recht gut. Heute habe ich aber die BR110 probiert und festgestellt, dass die HD-Führerstände nicht nur die Bildauflösung vergrößert haben, sondern auch die Zahl der Stellungen des E-Bremsstellers, woraufhin man das Fahrzeug nicht mehr richtig bedienen kann.

Gibt es eine Möglichkeit im TCP-Protokoll zu erkennen, welche Fahrzeugvariante gerade verwendet wird, bzw. welche Führerstandsdatei. Ich habe nichts dazu gefunden, aber das muss in dem umfangreichen Protokoll ja nichts bedeuten. Ich kann nur noch die Farbe einlesen, aber das gibt natürlich keine hinreichende Zuordnung.

Vielen Dank und Grüße Wolfgang

Benutzeravatar
F. Schn.
Beiträge: 6630
Registriert: 24.10.2011 18:58:26

Re: Fragen zur TCP-Schnittstelle

#42 Beitrag von F. Schn. »

Kannst du mal kurz gegenüberstellen, welche Probleme auftreten, wenn man die Umwandlung ist Taster nicht macht?

Die Baureihe des führenden Fahrzeugs zu erkennen ist natürlich eine gangbare Möglichkeit.

(Für die Zugbildung ist glaube ich außer 02/0A/8E nichts gut nutzbar. Ich wäre jetzt davon ausgegangen, dass das Trippel aus den Attributen 02, 06 und 07 (Beschreibung/BR/Farbe) sich eigentlich immer unterscheiden sollte, aber wenn du das geprüft hast, wüsste ich erst mal nichts weiteres.)
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

Wolfgang E.
Beiträge: 569
Registriert: 28.10.2021 12:16:41
Aktuelle Projekte: https://github.com/machinae-vectoriae-ductor/
Wohnort: Köln
Kontaktdaten:

Re: Fragen zur TCP-Schnittstelle

#43 Beitrag von Wolfgang E. »

Wenn ich Schalter wähle, würde beispielsweise die erste Betätigung meines Sandtasters den Sander einschalten und die Zweite wieder aus. Bei Taster wird solange gesandet, wie ich meine Taste drücke. Ich vermute, dass die meisten Führerstände für Tastatur- oder Gamepad-Bedienung gemacht sind. Da mag das hilfreich sein. Schade, dass Zusi dies bei der Bedienung über TCP nicht einfach ignoriert und alles als Taster behandelt. Wer einen Schalter will, könnte das ja dann in seinem Client-Programm realisieren.

Die Beschreibung könnte ich noch in die Überlegungen einbeziehen. Mag sein, dass es dann geht. Schade, dass die ID der Variante nicht gesendet wird, oder noch besser der Pfad zur verwendeten Führerstandsdatei.

Viele Grüße Wolfgang

Wolfgang E.
Beiträge: 569
Registriert: 28.10.2021 12:16:41
Aktuelle Projekte: https://github.com/machinae-vectoriae-ductor/
Wohnort: Köln
Kontaktdaten:

Re: Fragen zur TCP-Schnittstelle

#44 Beitrag von Wolfgang E. »

Ich habe es nun für die 110 nachgeschaut und dort hat jede Variante eine andere Ordnungsnummer und am Anfang der Beschreibung steht immer Baureihe und Ordnungsnummer.
Da es recht viele Varianten sind, würde ich versuchen, mit dieser Information die verwendete Führerstandsdatei herauszufinden und meine Parameter mit dieser Information einzustellen.

Vielen Dank für den Hinweis und Grüße
Wolfgang

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Fragen zur TCP-Schnittstelle

#45 Beitrag von Carsten Hölscher »

Jens bekommt für ZusiDisplay auch ausreichend gut raus, was man da fährt. Vielleicht kann er mal was dazu sagen.

Carsten

Wolfgang E.
Beiträge: 569
Registriert: 28.10.2021 12:16:41
Aktuelle Projekte: https://github.com/machinae-vectoriae-ductor/
Wohnort: Köln
Kontaktdaten:

Re: Fragen zur TCP-Schnittstelle

#46 Beitrag von Wolfgang E. »

Hallo Carsten,

das kann ich auch einlesen und meine Anzeigen und Ansteuerung der Bedienelemente entsprechend umschalten. Allerdings ist die Bedienung, wie oben geschrieben, innerhalb einer Baureihe nicht immer einheitlich. Die HD-Führerstände der BR110 unterscheiden sich von den älteren Führerständen durch eine andere Definition von Fahrschalter, FbV und E-Bremssteller. Das will ich in den Führerständen nicht alles anpassen müssen, sondern lieber mein Programm anpassen.
Ziel wäre eigentlich, gar nichts an den Führerständen ändern zu müssen. Das würde wohl gehen, wenn der Fehler mit dem Angleicher behoben würde und die Einzelschalter im TCP-Protokoll als Taster betrachtet würden.

Viele Grüße Wolfgang

Wolfgang E.
Beiträge: 569
Registriert: 28.10.2021 12:16:41
Aktuelle Projekte: https://github.com/machinae-vectoriae-ductor/
Wohnort: Köln
Kontaktdaten:

Re: Fragen zur TCP-Schnittstelle

#47 Beitrag von Wolfgang E. »

Mein Führertisch mit der Koppelung der Anzeigen und der Bedienungen über TCP funktioniert nun soweit. Nur mit der Türsteuerung weiß ich momentan nicht weiter. Zunächst die Anzeige: Ich lese das Signal 02 0A 66 0D Status Melder „Türen links+rechts“ ein. Das funktioniert auch prinzipiell, ist aber bei SST invertiert zu der Anzeige im virtuellen Führertisch. Muss man das Signal in Abhängigkeit vom Türsystem invertieren?

Als Schalter-Hardware habe ich einen Drehschalter mit vier Stellungen für die seitenselektive Steuerung und einen weißen Kipptaster für die TB0. Ich bin aber nicht dahinter gekommen, wie ich die Signale über TCP an die Simulation übertragen kann und im Führerstandseditor steht einfach nur Türsystem. Ich würde vermuten, dass es mit der Tastaturzurodnung x0A Türen geht. Muss ich dann, wenn sich die Schalterstellung ändert die Tasturkommandos x3B - x42 ansteuern? x3B - x3C für den TB0-Taster und x3D - x42 für den Seitenwahlschalter? Bei den Kombischalterfunktionen habe ich nichts gefunden.

Viele Grüße Wolfgang

Benutzeravatar
nonesense
Beiträge: 504
Registriert: 15.07.2006 12:50:10
Aktuelle Projekte: QDmi
Fahrpult Einheitsführerstand
Ludmilla
Wohnort: Köln
Kontaktdaten:

Re: Fragen zur TCP-Schnittstelle

#48 Beitrag von nonesense »

Der Gelbe Leuchtmelder ist an, wenn die Türen auf sind.
Der Weiße Leuchtmelder mit dem grünen Kreis ist an, wenn die Türen zu sind.
Habe auch das Problem auch. Je nach dem, was man fährt ist es halt falsch.
Man kann, stattdessen auch 02 0A 66 02 und 02 0A 66 03 (Status linke/rechte Seite) nehmen. Dann muss man sich das Blinken aber selber generieren. Habe ich QDmi so gemacht. Wollte ich auch schon längst ins Fahrpult übernommen haben.
1: öffnend
2: offen
3: Fahrgastwechsel abgeschlossen
4: schließend
5: gestört
6: blockiert

Wolfgang E.
Beiträge: 569
Registriert: 28.10.2021 12:16:41
Aktuelle Projekte: https://github.com/machinae-vectoriae-ductor/
Wohnort: Köln
Kontaktdaten:

Re: Fragen zur TCP-Schnittstelle

#49 Beitrag von Wolfgang E. »

Danke für die Antwort. Ich hatte es schon vermutet.
Ich muss mich noch entscheiden, ob ich das von der verwendeten Türschließsystem abhängig machen will und toleriere, dass das Symbol dann falsch ist oder ob ich in Kauf nehme, dass die Anzeige nicht zum Türschließsystem passt. Ich tendiere zu Letzterem und würde dann den Status 0 und 1 in Abhängigkeit vom Türschließsystem vertauschen. Die QDmi-Lösung hatte ich in den Sourcen gesehen, aber da hast Du ja auch eine andere Symbolik.

Bleibt die Frage, welche TCP-Signale man bespielen muss, um die richtigen Schalter zu bedienen. Da bleibt wohl nur ausprobieren.

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Fragen zur TCP-Schnittstelle

#50 Beitrag von Carsten Hölscher »

Du musst die Tastendrücke per TCP simulieren, also Paket 0002 010A 0001.

Carsten

Wolfgang E.
Beiträge: 569
Registriert: 28.10.2021 12:16:41
Aktuelle Projekte: https://github.com/machinae-vectoriae-ductor/
Wohnort: Köln
Kontaktdaten:

Re: Fragen zur TCP-Schnittstelle

#51 Beitrag von Wolfgang E. »

Danke, dass habe ich mittlerweile vermutet. x3B (59) TuerenTaster_Down ist dann das Zo des weißen Kipptasters für TB0? Zs kann man nicht ansteuern, richtig? Die anderen Signale sind dann für den Drehschalter und TAV? Ist es dabei egal, wenn der virtuelle Taster gedrückt bleibt, solange mein Drehschalter in der entsprechenden Stellung steht?

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Fragen zur TCP-Schnittstelle

#52 Beitrag von Carsten Hölscher »

Das Paket macht nichts anderes als einen Tastendruck aud der Tastatur zu simulieren. Also am besten immer einmal runter und dann wieder loslassen mit einem 2. Paket.
Alternativ kann man die Raste/Stellung absolut angeben.

Carsten

Wolfgang E.
Beiträge: 569
Registriert: 28.10.2021 12:16:41
Aktuelle Projekte: https://github.com/machinae-vectoriae-ductor/
Wohnort: Köln
Kontaktdaten:

Re: Fragen zur TCP-Schnittstelle

#53 Beitrag von Wolfgang E. »

Gut, dass mit dem Tastendruck habe ich jetzt verstanden und auch probehalber erfolgreich angesteuert. Ich müsste also die Stellung meines Drehschalters mit dem Freigabestatus (Seitenwahlschalter) von Zusi vergleichen und entsprechend oft auf eine der beiden Tasten "drücken".
Eleganter wäre natürlich die Angabe der Sollschalterstellung. Ich habe Dich so verstanden, dass dies möglich ist, erkenne aber leider nicht wie. Einen Kombischalter Tür gibt es laut dem von Zusi gesendeten 00 0B – DATA_OPERATION nicht. Müsste man diesen irgendwie im Führerstand anlegen oder gibt es einen anderen Weg, Zusi die Sollschalterstellung zu übermitteln?

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Fragen zur TCP-Schnittstelle

#54 Beitrag von Carsten Hölscher »

Der Drehschalter besteht ja logisch gesehen aus 2 Kippschaltern für li und re.

Carsten

Wolfgang E.
Beiträge: 569
Registriert: 28.10.2021 12:16:41
Aktuelle Projekte: https://github.com/machinae-vectoriae-ductor/
Wohnort: Köln
Kontaktdaten:

Re: Fragen zur TCP-Schnittstelle

#55 Beitrag von Wolfgang E. »

Die Tastaturbedienung dreht den virtuellen Drehschalter beispielsweise in einer 111 von Stellung zu Stellung. Ich müsste also in dem Führerstand den Drehschalter durch eine Zweitastenbedienung ersetzen, richtig?

Viele Grüße Wolfgang

Wolfgang E.
Beiträge: 569
Registriert: 28.10.2021 12:16:41
Aktuelle Projekte: https://github.com/machinae-vectoriae-ductor/
Wohnort: Köln
Kontaktdaten:

Re: Fragen zur TCP-Schnittstelle

#56 Beitrag von Wolfgang E. »

Die ganzen Führerstände alle von Hand zu ändern, war mir dann doch zu mühsam. Ich habe jetzt ein kleines Python-Programm geschrieben, welches die Führerstandsdateien aus dem Programmdatenverzeichnis liest und bei notwendigen Änderungen in das private Datenverzeichnis schreibt. Folgendes lasse ich anpassen:

1. Überschreiben der Tastaturzuordnung für den Angleicher mit "41" (Fahrpultintern 20), um den Angleicher-Fehler zu umgehen und in der Hoffnung, dass diese Tastaturzuordnung nirgendwo anderweitig belegt ist.
2. Setzen von Taster = "1" in Sander, Pfeife, Notaus, LokbremseEntlueften, Schleuderschutzbremse, AFBEinAus, Luefter, LuftpresserAus und TuerenTB0, falls es nicht sowieso schon so gesetzt ist. Die Einstellung als Schalter ist für die Ansteuerung mit echter Hardware eher unbrauchbar.
3. In den Türsteuerungen mit Seitenwahlschalter wird SchalterTyp = "1" eingetragen, also zwei Drucktaster, um die Stellung meines Hardwaredrehschalters möglichst einfach übertragen zu können.
4. Die wav-Datei für die Sifa-Hupe wird gelöscht, da ich eine Sifa-Hupe in Hardware habe. Natürlich "redet" die Sifa von neueren Tfz dann nicht mehr mit mir, aber ich mag sowieso lieber ältere Fahrzeuge.

Eventuelle im privaten Verzeichnis vorhandene Führerstanddateien werden ohne Rückfrage überschrieben!

Die Führerstandsdateien werden auch gezählt und es sind aktuell 130.

Ich habe das Programm unter https://github.com/machinae-vectoriae-d ... 3ftdmod.py veröffentlicht. Das Problem lässt sich sicherlich auch eleganter in Python lösen und für Hinweise bin ich offen. Aber es funktioniert erst mal für mich. Vielleicht hilft es ja auch jemand anderem.

Viele Grüße Wolfgang

Wolfgang E.
Beiträge: 569
Registriert: 28.10.2021 12:16:41
Aktuelle Projekte: https://github.com/machinae-vectoriae-ductor/
Wohnort: Köln
Kontaktdaten:

Re: Fragen zur TCP-Schnittstelle

#57 Beitrag von Wolfgang E. »

Mittlerweile liest mein Programm die vom Protokoll angegebene Fahrzeugdefinitionsdatei ein und findet mit der vom Protokoll angegebenen Beschreibung heraus, welche Variante verwendet wird und welche Führerstandsdefinition dazu gehört. Dann wird diese Führerstandsdefinition in einer XML-Datei gesucht, in der auch die Parameter für meinen TCP-Client stehen, um meine physikalischen Bedienelemente und Anzeigen an den jeweiligen Führerstand anzupassen. Das funktioniert mit den bisher berücksichtigten Baureihen auch ganz gut.
Bei der BR 140 gibt es jedoch zweimal die 140 423-5 in ozeanblau-beige (HId 3 und 20). Alle im Telegramm 008E verfügbaren Daten sind bei beiden Varianten in den Fahrzeugdefinitionsdatei identisch. Die Führerstandsdateien sind aber verschieden.

Hat jemand noch eine gute Idee, wie ich sie unterscheiden könnte?

Viele Grüße Wolfgang

Benutzeravatar
F. Schn.
Beiträge: 6630
Registriert: 24.10.2011 18:58:26

Re: Fragen zur TCP-Schnittstelle

#58 Beitrag von F. Schn. »

Ich hatte hier mal einen Wunsch aufgemacht, die Varianten-ID direkt in TCP zu übertragen: viewtopic.php?f=59&t=13470 Vielleicht mal die Frage an @Carsten, ob man das nicht evtl. noch machen könnte?
Ansonsten sehe ich leider keine guten Möglichkeiten...
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

Wolfgang E.
Beiträge: 569
Registriert: 28.10.2021 12:16:41
Aktuelle Projekte: https://github.com/machinae-vectoriae-ductor/
Wohnort: Köln
Kontaktdaten:

Re: Fragen zur TCP-Schnittstelle

#59 Beitrag von Wolfgang E. »

Wenn man das TCP-Protokoll schon anfasst, würde es mir am meisten helfen, wenn direkt die verwendete Führerstandsdatei übertragen würde. Aber mit HId und NId würde ich natürlich auch gut zurechtkommen.

Viele Grüße
Wolfgang

Wolfgang E.
Beiträge: 569
Registriert: 28.10.2021 12:16:41
Aktuelle Projekte: https://github.com/machinae-vectoriae-ductor/
Wohnort: Köln
Kontaktdaten:

Re: Fragen zur TCP-Schnittstelle

#60 Beitrag von Wolfgang E. »

Ich habe nochmal eine Frage zu der Logik, welche Zugkraftsignale wie beschrieben werden. Ich habe es so verstanden:

1. Das führende Fahrzeug ist als einziges Fahrzeug im Zugverband als Lok gekennzeichnet: Ich bekomme die Signale aus dem Modell auf dem "normalen" Satz TCP-Signale geschickt. Die Steuerwagen-Signale bleiben Null.
2. Wie 1. aber es gibt eine zweite Lok im Zugverband. Dann werden die Signale von dieser zweiten Lok zusätzlich als Steuerwagensignale geschickt.
3. Das führende Fahrzeug ist keine Lok, es gibt aber eine Lok im Zugverband: Die Signale der Lok werden über die Steuerwagen-Signale geschickt.
4. Es gibt keine Lok im Zugverband: Die Summe der Kräfte und Oberströme aller Triebfahrzeuge sowie die Maximalwerte der Fahrdrahtspannung werden über den "normalen" Satz TCP-Signale geschickt. Die Steuerwagen-Signale bleiben Null. Die Zug-/Bremskräfte pro Achse werden gemittelt oder das Maximum ausgegeben?

Habe ich das richtig verstanden? Was passiert bei Steuerwagen voraus und zwei Loks im Zugverband?

Bisher habe ich als Unterscheidung zum Umschalten lediglich die Information genutzt, ob das führende Fahrzeug eine Lok ist. Das ist beim ICE1 aber gescheitert, da die Triebköpfe dort nicht als Lok markiert sind. Ich muss also mehr unterscheiden, auch für andere Triebzüge. Zudem würde es meiner Meinung nach Sinn machen, 401 und 402 als Lok zu markieren, da man dann die Signale der einzelnen Triebköpfe gesendet bekommt, die im Vorbild ja auch so angezeigt werden.

Viele Grüße Wolfgang

Antworten