Zusi Datenausgabe

Soundthesizer, Zusitool und andere Zusatzsoftware

Moderatoren: Andreas Damm, Jens Haupert

Nachricht
Autor
Benutzeravatar
Daniel Schuhmann
Beiträge: 1147
Registriert: 21.04.2003 18:50:37
Aktuelle Projekte: Nüscht
Wohnort: Miesbach
Kontaktdaten:

#61 Beitrag von Daniel Schuhmann »

Bono hat geschrieben:wie das legendäre BAHN.EXE, wenn sich jemand an das noch erinnern kann
Wieso erinnern? Das gibts doch heute noch und es wird immer noch entwickelt. Version 3.8 ist von August 2003.

http://www.jbss.de/

Daniel
Signaturen können bis zu 50 Zeichen lang sein und

Benutzeravatar
Bono
Beiträge: 202
Registriert: 30.12.2002 07:38:24
Wohnort: Wien

#62 Beitrag von Bono »

Dieses Wochenende auf der FUNTEC/Modellbaumesse habe ich ein interessantes Teil gesehen (vielleicht ist das sowieso allen seit langem bekannt, für mich war es neu):
Es handelt sich dabei um ein Cockpitgerät für den FSIM und es besteht aus 2 Teilen:
1. einer Konsole mit jeder Menge Schalter und Regler und
2. aus einer Plastikabdeckung für den Bildschirm mit runden ca. 8-15cm großen Löchern an den richtigen Stellen, durch die die am Bildschirm dargestellten Rundinstrumente (Höhenmesser, künstl. Horizont etc.) tatsächlich fast so wie Einzelinstrumente aussehen.

Eine allgemein verwendbare Anwendung für den Datenaustausch wäre daher ein "Zusi-Instrumentenslave". D.h. der FstEditor könnte ja z.B. wahlweise einen konventionellen Führerstand erzeugen oder die Instrumente in einen solchen SLAVE legen.
Anders gesagt: Man fährt Zusi im "reinen Landschaftsblick" bzw. in einem Fst Blick, der im wesentlichen nur die Fensterumrahmungen rund um das 3D Fenster darstellt.
Und die Instumente werden in einem Slave Programm dargestellt (die neueste Ebula Version ist eigentlich schon genau so etwas). - und mithilfe einer wie oben beschriebenen "Lochscheibe" lässt sich dann schon ein recht gut aussehender Fst aufbauen.

Ideas?
saluti Bono

Joachim
Beiträge: 3
Registriert: 19.11.2004 09:46:40

#63 Beitrag von Joachim »

Hallo,

ich will eine GPS-Ausgabe für den Zusi schreiben. Dann könnte man z. B. einen Routenplaner anschliessen und die aktuelle Position der Lok auf der Karte beobachten.
Optimal wäre eine TCP-Ausgabe in Länge, Breite, Höhe in WGS84 oder in UTM Koordinaten.
Ich nehme an, das ist zu aufwändig. Ausreichend wäre auch die Position in xyz und der Dateiname (inkl. Pfad) der aktuellen Strecken-Datei. Dann kann ich die Umrechnung selber machen.

Joachim

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

#64 Beitrag von Carsten Hölscher »

die Daten müßte Zusi aber zur Verfügung stellen, was im Moment nicht passiert.
Eine Nachrüstung (x-, y-, z-Koordinaten der Zugspitze so wie es Streckeneditor steht, also mit Offset gegenüber UTM) wäre schon vorstellbar, aber welchen Sinn soll das denn haben? Wer schaut sich seine Fahrt schon parallel auf der Landkarte an?

Carsten

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

#65 Beitrag von Carsten Hölscher »

noch einmal die Frage nach den Strings (nächstes Signal). Jörg Petri hatte ja in anderem Thread Probleme gemeldet. Wenn ich die Beiträge hier lese, dann scheint es aber schon zum Laufen gebracht worden sein. Kann da mal jemand was zu sagen?
Sonst bräuchte ich bitte mal eine Anwendung, die strings anfordert und darstellt. Sonst ist es für mich nur schwer zu debuggen (ich nehme an, jemand hat sowas?

Carsten
Zuletzt geändert von Carsten Hölscher am 13.12.2005 22:49:45, insgesamt 1-mal geändert.

Benutzeravatar
Jens Haupert
Beiträge: 4897
Registriert: 23.03.2004 14:44:34
Aktuelle Projekte: http://www.zusidisplay.de
Wohnort: Berlin
Kontaktdaten:

#66 Beitrag von Jens Haupert »

Carsten Hölscher hat geschrieben:noch einmal die Frage nach den Strings (nächstes Signal). Jörg Petri hatte ja in anderem Thread Probleme gemeldet. (...)
Hallo,
ich prüfe die String-Geschichte heute mal ausführlich. Ergebnisse dann heute Abend.

MfG Jens

Benutzeravatar
Jens Haupert
Beiträge: 4897
Registriert: 23.03.2004 14:44:34
Aktuelle Projekte: http://www.zusidisplay.de
Wohnort: Berlin
Kontaktdaten:

#67 Beitrag von Jens Haupert »

ich prüfe die String-Geschichte heute mal ausführlich. Ergebnisse dann heute Abend.
Hallo,
hier die Ergebnisse:

1.) Datenübertragung via TCP-Server 1.1:
- String-Datentypen angefordert
- korrekte Anzeige im Zusifenster
- keine Übermittlung dieser Datentypen

2.) Datenübertragung direkt mit Zusi:
- String-Datentypen angefordert
- korrekte Anzeige im Zusifenster
- ebenfalls keine Übermittlung dieser Datentypen

Ich habe extra einen Führerstand eingesetzt der die passenden Melder enthielt.

==> Zusi sendet keine Daten von Stringdatentypen. ?(

MfG Jens

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

#68 Beitrag von Carsten Hölscher »

Ich bekam eben auch ein email von einem "Forum-Nicht-Schreiber", daß ab Zusi V 2.4.3.5 keine strings mehr gesendet werden. Mir war das Problem nicht bewußt :O Das erklärt die älteren Beiträge mit funktionierenden strings.
Kannst Du mir bitte ein Programm mit string-Anforderung zum Debuggen geben?

Carsten

Benutzeravatar
Jens Haupert
Beiträge: 4897
Registriert: 23.03.2004 14:44:34
Aktuelle Projekte: http://www.zusidisplay.de
Wohnort: Berlin
Kontaktdaten:

#69 Beitrag von Jens Haupert »

Carsten Hölscher hat geschrieben:Kannst Du mir bitte ein Programm mit string-Anforderung zum Debuggen geben?
Wird gemacht. :]

MfG Jens

Benutzeravatar
pcs
Beiträge: 3
Registriert: 14.07.2016 19:03:34

Re: Zusi Datenausgabe

#70 Beitrag von pcs »

Hallo Leute,
ich programmiere ein Zusi-TCP Client in Python. Ich kann Zusi um Daten bitten, und ich bekomme z.B. die folgende hexadezimale Daten:
vakt = 1 km/h ---> 0x57, 0x76, 0x16, 0x3F.
Wie kann ich die aktuelle Geschwindigkeit von diesen Daten ausrechnen? Und wie funktionert das Methode mit anderen Daten (z.B. Motordrehzahl, PZB LM, Sifa LM, u.s.w.)?
Ich habe schon viel über das Thema gelesen, aber es ist schwer mir auf Deutsch lesen, und ich habe kein Hilfe finden gekonnt… :)
Ich hoffe, mein Problem lässt sich gut verstanden, und Entschuldigung für alle grammatisch Fehler! :whatever
Vielen Dank, und herzliche Grüße aus Ungarn!

jonathanp
Beiträge: 283
Registriert: 01.06.2015 14:11:25
Aktuelle Projekte: http://www.zusidatenbank.de/
Wohnort: BW Schöneweide

Re: Zusi Datenausgabe

#71 Beitrag von jonathanp »

Die Daten ist auf IEEE-754 in 32-bits codiert(ein 'float' in C/C++). In C, können Sie einfach die Binärdaten in ein float umwandeln, aber in Python Ich glaube, dass es nicht so einfach ist.

Ich glaube nicht, dass ich das Ganze des Zusi TCP-Format zu erklären können. Die genaue Datentyp und Format aller Daten ist in der Zusi-Dokumentation.
Ich denke, dass die Motordrezahl auch IEEE-754 ist. PZB LM sind in einer speziellen Struktur.

Es könnte hilfreich sein, TCP-Clients in anderen Sprachen zu sehen: http://forum.zusi.de/viewtopic.php?f=73&t=12650" target="_blank
Autor - Zusi 3 C++ Client, zusidatenbank.de - Das Zusi3 Addon-Datenbank

Benutzeravatar
Johannes
Beiträge: 3195
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Zusi Datenausgabe

#72 Beitrag von Johannes »

In Python benutzt man dazu struct.unpack.

Benutzeravatar
pcs
Beiträge: 3
Registriert: 14.07.2016 19:03:34

Re: Zusi Datenausgabe

#73 Beitrag von pcs »

Ich habe schon die IEEE Struktur auspropiert, aber ich habe große Nummern bekommen (z.B. v = 10 km/h ---> 1,5 * 10⁸). Ich habe aufsteigende Nummern erwartet, aber das seht ganz random aus. Ich habe das Exponent und Mantissa auch betrachtet – das ist auch nich so hilfreich gewessen.
Ich habe dieses Programm (http://forum.zusi.de/viewtopic.php?f=25&t=11754) als Programmbeispiel benutzen. Das ist am hilfreichsten gewessen.

Das ist kompliziert, in Python in IEEE 754 zu konvertieren, aber numpy hat float32 Datatyp.

Benutzen die Struct Klasse ist kompliziert. Man muss die Länge des Datas wissen. Das ist einfacher, bytearray() und map() Befehlen zu benutzen. Z.B. bytearray(data) für schicken und map(ord,data) für bekommen.

Benutzeravatar
Johannes
Beiträge: 3195
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Zusi Datenausgabe

#74 Beitrag von Johannes »

Einfacher als mit der Struct-Klasse geht es ja nun wirklich nicht. Die Laenge eines Floats ist immer 4 Byte.

Das Arduino-Beispiel nutzt Casts, was in Python so nicht geht und ausserdem annimmt, dass der Prozessor Intel-Byte-Order verwendet.

Hier ein Python-Beispiel, in dem man auch die Nutzung der Struct-Klasse sieht.

Benutzeravatar
pcs
Beiträge: 3
Registriert: 14.07.2016 19:03:34

Re: Zusi Datenausgabe

#75 Beitrag von pcs »

Hallo,
ich habe das Wurzel des Problems entdeckt! Euere Antworten hat mir nicht gepasst, weil ich habe das schon gewisst. Deshalb ich habe die numpy float32 Konvertierung übergeprüft. Ich finde numpy tut nicht, was ich erwartet habe. Deswegen habe ich ein kurzes Programm für IEEE 754 Konvertierung geschreiben und das funktioniert! Jetz alle Daten sind korrekt! :schaffner

Na ja, mit struct scheint das wirklich einfacher. Man kann viele übrige Rechnungen vermeiden. Später ersetze ich das in meinem Programm.

Ich danke alles! :)

Antworten