Ausgänge

Da immer mehr Zusi User von einem 1:1 Führerstand mit träumen, soll es zumindest an Datenaustausch nicht hapern.
Nachricht
Autor
Andreas Karg
Beiträge: 4718
Registriert: 28.04.2002 12:56:00
Kontaktdaten:

Re: Ausgänge

#161 Beitrag von Andreas Karg »

Was passiert, wenn du in der MyTCPConnection_FloatReceived folgende Zeile auskommentierst:

Code: Alles auswählen

Case 2561   'Geschwindigkeit3
  OutChar(0) = 86     'V
  OutChar(1) = CByte(System.Math.Round(data.Value, 0))
  Serial.Write(OutChar, 0, 2) '<- Diese Zeile auskommentieren
Das wäre grade meine Vermutung anhand des Vimeo-Videos.

Benutzeravatar
Dennis Bork
Beiträge: 945
Registriert: 13.09.2015 21:46:58

Re: Ausgänge

#162 Beitrag von Dennis Bork »

@Andreas: Ein Auskommentieren der entsprechenden Zeile (Serial.Write) brachte nichts, ebensowenig ein Auskommentieren der Zeile mit RequestData(2561) - die commandset.ini habe ich auch schon angepasst.

Ich habe diese Veränderungen trotzdem eingebracht und neu kompiliert bzw. die commandset.ini ersetzt.

Dann habe ich mal vor allem im Zeitraffer den Wert vom LM U beobachtet. Auffällig ist, dass der Wert schnell steigt wenn beschleunigt wird und stark fällt wenn gebremst wird. Direkt geschwindigkeitsabhängig ist er nicht.

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

Re: Ausgänge

#163 Beitrag von nonesense »

Könnte es dann die Beschleunigung, Oberstrom, Motordrehzahl oder ähnliches sein?

Benutzeravatar
Dennis Bork
Beiträge: 945
Registriert: 13.09.2015 21:46:58

Re: Ausgänge

#164 Beitrag von Dennis Bork »

sorry, siehe unten :)
Zuletzt geändert von Anonymous am 13.11.2012 10:21:02, insgesamt 4-mal geändert.

Benutzeravatar
Arne aus dem Norden
Beiträge: 721
Registriert: 25.12.2011 14:28:21
Aktuelle Projekte: Fahrpult VT628/VS928 - Versuch eines Nachbaus
Wohnort: Str.Km "6,8" der Kiel-Schönberger Eisenbahn (DB-Str. 9107)

Re: Ausgänge

#165 Beitrag von Arne aus dem Norden »

Moin moin,

ich möchste mich ja nicht blamieren durch meine Unwissenheit, aber wenn ich hätte eigentlich gedacht, das die Werte für die LM statisch und z.B. mit einer 1 für an und 0 für aus definiert sind (oder wenigstens mit festen Werten wie 8, 16, 32, 64)...
Ich staune wirklich über das Video von Dennis was da so an Werten rauskommt :wow

Wirklich weiterhelfen kann ich da irgendwie nicht.

Gruß, Arne
Mein Baubericht von der echten Bahn zum Schönberger Strand:
https://www.facebook.com/Hein-Sch%C3%B6 ... 601976323/

Benutzeravatar
Dennis Bork
Beiträge: 945
Registriert: 13.09.2015 21:46:58

Re: Ausgänge

#166 Beitrag von Dennis Bork »

nonesense hat geschrieben:Könnte es dann die Beschleunigung, Oberstrom, Motordrehzahl oder ähnliches sein?
Das werde ich versuchen mal rauszufinden -

wobei mir nicht ganz klar ist woher diese Daten kommen sollen?

Als angeforderte Größen werden in (Zusi - Einstellungen - Datenausgabe) nur die gewünschten angezeigt...
wenn es einen entsprechenden Fehler gibt der die abgefragten Daten durcheinanderwirft dann sollte der tatsächlich auf Seiten des TCP-Servers liegen... ist Daniel Schumann eigentlich noch zu erreichen? Hatte es wegen einer anderen Sache schonmal irgendwann erfolglos probiert.
Dude hat geschrieben: Ich staune wirklich über das Video von Dennis was da so an Werten rauskommt :wow
Ich habe noch ein neues Video gemacht, da sieht man schön wie sich beim Beschleunigen der Wert für LM_U steigert bis 255 über 0 und wieder von vorne und beim Bremsen das Gleiche nur rückwärts ... :) Leider spinnt CamStudio und bricht die Aufnahmen nach ein paar Sekunden ohne mein Wissen ab - hmm.
Zuletzt geändert von Anonymous am 13.11.2012 10:20:45, insgesamt 1-mal geändert.

Andreas Karg
Beiträge: 4718
Registriert: 28.04.2002 12:56:00
Kontaktdaten:

Re: Ausgänge

#167 Beitrag von Andreas Karg »

Das Problem, was ich sehe, ist, dass die aktuelle TCP-Schnittstelle Bool-Werte wie die Leuchtmelder auch nur als Booleans rausgibt. Dass ein Bool andere Werte annimmt als true oder false wird durch .Net sehr effektiv verhindert. Das kann es also nicht sein. Magst du bitte mal den kompletten Quellcode des Programms irgendwo hier reinstellen?

Benutzeravatar
Dennis Bork
Beiträge: 945
Registriert: 13.09.2015 21:46:58

Re: Ausgänge

#168 Beitrag von Dennis Bork »

Andreas Karg hat geschrieben:Magst du bitte mal den kompletten Quellcode des Programms irgendwo hier reinstellen?
Das ist doch die Software von Jens (nonesense) auf Grundlage Deiner DLL -
hier trotzdem mal der Quellcode (CMainWindow.vb) im Original:

http://codeviewer.org/view/code:2ba0" target="_blank

Bernhard
Beiträge: 22
Registriert: 11.09.2009 15:44:19

Re: Ausgänge

#169 Beitrag von Bernhard »

Dennis Bork hat geschrieben:wenn es einen entsprechenden Fehler gibt der die abgefragten Daten durcheinanderwirft dann sollte der tatsächlich auf Seiten des TCP-Servers liegen
Um herauszufinden ob der Fehler bei den übertragenen Daten selbst oder deren Interpretation liegt, wäre eine Aufzeichnung des Datenverkehrs (z. B. mittels Wireshark) hilfreich.

Andreas Karg
Beiträge: 4718
Registriert: 28.04.2002 12:56:00
Kontaktdaten:

Re: Ausgänge

#170 Beitrag von Andreas Karg »

Ah. Das basiert noch auf der alten Schnittstelle.
Probier' doch mal die aktuelle Version aus. Der Arduino-Beispielcode liegt da in aktualisierter Form auch bei. Da kommen Booleans tatsächlich als Booleans bei der Anwendung an. Die werden dann auch in unterschiedlichen Methoden an den Arduino geschickt.

Ganz andere Frage:
Testest du die Leuchtmelder immer mit einer Ludmilla? Die haben im Zusi nämlich alle eine PZ80R eingetragen, die sowas wie einen Zugartleuchtmelder gar nicht hat. Hab's eben ausprobiert: Zusi schickt dann völligen Bullshit.

-> Lok mit richtiger PZB90 ausprobieren

Benutzeravatar
Dennis Bork
Beiträge: 945
Registriert: 13.09.2015 21:46:58

Re: Ausgänge

#171 Beitrag von Dennis Bork »

Hallo Andreas,
Andreas Karg hat geschrieben:Ah. Das basiert noch auf der alten Schnittstelle.
Ah! Dann blicke ich zwar langsam nicht mehr durch *welcher* Quellcode am aktuellsten ist :D , aber:

Alles scheint mit der aktuellen Schnittstelle in Butter zu sein!
Die haben im Zusi nämlich alle eine PZ80R eingetragen, die sowas wie einen Zugartleuchtmelder gar nicht hat.
Ich weiß - Die Ludmilla habe ich extra zum Testen genommen da dies die einzige BR war bei der der "Fehler" so offensichtlich war und aufgrund der besseren Reproduzierbarkeit.

Die LM U-M-O auf meinem Steckbrett repräsentieren nun zumindest in sinnvoller Weise die Leuchtmelder im Fst der Ludmilla; 1000Hz-, 500Hz- und Sifa-LM funktionieren nun auch wie gewohnt.
-> Lok mit richtiger PZB90 ausprobieren
Da gab's bisher ausser den bekannten Ausnahmefehlern keine Probleme. Bist Du eigentlich mal dahintergekommen woran die lagen oder reichten dazu die Debugging-Infos nicht?
Bernhard hat geschrieben:...wäre eine Aufzeichnung des Datenverkehrs (z. B. mittels Wireshark) hilfreich.
Puh - so tief drin in der Materie bin ich bei weitem nicht, auch wenn Wireshark interessant klingt. Mal schauen was die weiteren Tests bringen.
Zuletzt geändert von Anonymous am 13.11.2012 12:27:28, insgesamt 3-mal geändert.

Andreas Karg
Beiträge: 4718
Registriert: 28.04.2002 12:56:00
Kontaktdaten:

Re: Ausgänge

#172 Beitrag von Andreas Karg »

Um die Ausnahmen einzukreisen reichten die Angaben nicht. Wäre aber interessant zu sehen, ob die mit der aktuellen Software noch auftreten.

Noch was zur PZ80R:
Ich hab's eben mal ausprobiert. Die Verteilung der PZB-Daten auf die "Leuchtmelder" scheint folgendermaßen zu sein:
LM U <- aktuelle Geschwindigkeit
LM M <- Die Prüfgeschwindigkeit (die kleine Zahl im Display)
LM O <- Macht auch was (so genau kenn ich mich mit der PZ80R nicht aus)
Der Rest scheint normal zu sein.

Bei der aktuellen TCP-Schnittstelle werden Daten, die als Single übertragen werden, aber eigentlich nur einen Bool enthalten, in Bools umgewandelt. Die Grenze liegt hier bei 0.5. Alles oberhalb, was Zusi schickt, ist "true", darunter "false".

Damit passt logischerweise das Verhalten für PZ80R-Fahrzeuge immer noch hinten und vorne nicht. Sollte irgendwann mal jemand auf die Idee kommen, diese Zugsicherung in sein Fahrpult zu bauen und dafür meine TCP-Schnittstelle zu benutzen, wird er/sie dazu die beigelegte commandset.xml anpassen müssen. Wenn es dazu Fragen gibt, steh ich natürlich zur Verfügung. :-)

Benutzeravatar
Arne aus dem Norden
Beiträge: 721
Registriert: 25.12.2011 14:28:21
Aktuelle Projekte: Fahrpult VT628/VS928 - Versuch eines Nachbaus
Wohnort: Str.Km "6,8" der Kiel-Schönberger Eisenbahn (DB-Str. 9107)

Re: Ausgänge

#173 Beitrag von Arne aus dem Norden »

Also,

ich hab jetzt auch endlich mal das aktuellere Script verwendet und um meine LM erweitert.
Leider ist mein Pult derzeit wieder mehr auseinander als zusammen. Deswegen geht testen derzeit nur mit dem Zauberwürfel.

Interessanterweise hatten zwei Testfahrten folgendes Ergebnis:

E120 Linke Rheinstrecke mit ZD 2.3, beginn auf freier Strecke 7 oder 8 Arretm. Overflows mit Absturz der Arduinoverbindung. Zuletzt konnte ich nicht mal mehr mit der Maus die Zugkraft wegnehmen.

dagegen

BR218 Eifelbahn mit ZD 2.9 Demo, beginn im Bahnhof mit keinerlei Problemen und sogar metergenauer Ortung im Display. Das hatte ich lange nicht...
Zuletzt geändert von Arne aus dem Norden am 13.11.2012 16:54:41, insgesamt 1-mal geändert.
Mein Baubericht von der echten Bahn zum Schönberger Strand:
https://www.facebook.com/Hein-Sch%C3%B6 ... 601976323/

Andreas Karg
Beiträge: 4718
Registriert: 28.04.2002 12:56:00
Kontaktdaten:

Re: Ausgänge

#174 Beitrag von Andreas Karg »

Um den Fehler einkreisen zu können, wäre ein Speicherabbild saupraktsch.

Dazu gibt es zwei praktikable Möglichkeiten; beide erfordern Visual Studio 2010. (Ob Express auch geht, weiß ich nicht.)
Und zwar:
a) Du startest das Arduino-Programm direkt aus Visual Studio heraus mit F5 (Starten mit Debug). Sobald das Programm abstürzt, gehst du in VS auf Debug->"Save Dump As..." und schickst mir die erzeugte Datei. Dann kann ich (hoffentlich) genau rekonstruieren, in welchem Zustand es sich im Augenblick des Absturzes befunden hat.

b) Wenn du das Arduino-Programm ohne Visual Studio gestartet hast: Im Moment des Absturzes die Fehlermeldung nicht schließen! Statt dessen VS starten, Debug->Attach to process drücken. Dann sollte es an der gleichen Stelle stehen wie bei a) und du müsstest auch ein Dump speichern können.

Übrigens wurde mir soeben mitgeteilt, dass die Zuordnung der PZ80(R)-Daten zu den "Leuchtmeldern" in der Zusi-Doku beschrieben ist. Da soll man mal draufkommen. :§$%

Benutzeravatar
Arne aus dem Norden
Beiträge: 721
Registriert: 25.12.2011 14:28:21
Aktuelle Projekte: Fahrpult VT628/VS928 - Versuch eines Nachbaus
Wohnort: Str.Km "6,8" der Kiel-Schönberger Eisenbahn (DB-Str. 9107)

Re: Ausgänge

#175 Beitrag von Arne aus dem Norden »

Andreas Karg hat geschrieben:Um den Fehler einkreisen zu können, wäre ein Speicherabbild saupraktsch.
Dazu gibt es zwei praktikable Möglichkeiten; beide erfordern Visual Studio 2010. (Ob Express auch geht, weiß ich nicht.)
OK, ich versuche auch das mal abzuarbeiten die Tage.
Heute habe ich endlich die beiden Altrechner 2,4Ghz (ZusiDisplay als Client) und 3,0Ghz (Zusi2 als Master) zum testen fertig eingerichtet und vernetzt. Weder die komplette Trennung des Systems in Client und Master noch das Leeren des Temp-Ordner brachte allerdings einen Unterschied im Bezug auf die fehlerhafte Ortung in ZD 2.3 und ZD 2.9.
Eifelbahn stimmte wieder fast genau, linksrheinische hatte wieder ca. 100 und die Elsenztalbahn wieder mindestens 500m Abweichung.
Aber dafür hab ich das auch nicht gemacht. Ich will sehen, ob es auf die Totalabstürze des Arduino-Clients einen Einfluss hat wenn ZusiDisplay nicht auf dem selben Rechner läuft wie der Arduino.

Gruß, Arne
Mein Baubericht von der echten Bahn zum Schönberger Strand:
https://www.facebook.com/Hein-Sch%C3%B6 ... 601976323/

Benutzeravatar
Arne aus dem Norden
Beiträge: 721
Registriert: 25.12.2011 14:28:21
Aktuelle Projekte: Fahrpult VT628/VS928 - Versuch eines Nachbaus
Wohnort: Str.Km "6,8" der Kiel-Schönberger Eisenbahn (DB-Str. 9107)

Re: Ausgänge

#176 Beitrag von Arne aus dem Norden »

Andreas Karg hat geschrieben:Um den Fehler einkreisen zu können, wäre ein Speicherabbild saupraktsch.
Dazu gibt es zwei praktikable Möglichkeiten; beide erfordern Visual Studio 2010. (Ob Express auch geht, weiß ich nicht.)
Mist, geht nicht. Ich hab nur Express. Nach dem Start mit dem Debugger gehen damit schon alle LM zusammen dauerhaft an. Den Menüpunkt zum Fehlerexportieren finde ich in Express auch nicht...
Die Fehler sind auch selten geworden die letzten Tage. Hatte nur auf der linksrheinischen einmal dauerhaft den Befehl 40 an, interessanterweise ohne Arr. Overflow-Meldung...

Gruß, Arne
Mein Baubericht von der echten Bahn zum Schönberger Strand:
https://www.facebook.com/Hein-Sch%C3%B6 ... 601976323/

Benutzeravatar
Dennis Bork
Beiträge: 945
Registriert: 13.09.2015 21:46:58

Re: Ausgänge

#177 Beitrag von Dennis Bork »

Dude hat geschrieben:linksrheinische hatte wieder ca. 100 und die Elsenztalbahn wieder mindestens 500m Abweichung.
Du justierst die Ortung aber schon erstmal manuell? Also z.B. an der nächsten Hektometertafel, Hauptsignal, Bahnsteig, ... und stellst dann auf "Ortung"? So klappt's zumindest bei mir jedenfalls metergenau.
Zuletzt geändert von Anonymous am 15.11.2012 14:59:09, insgesamt 1-mal geändert.

Benutzeravatar
Arne aus dem Norden
Beiträge: 721
Registriert: 25.12.2011 14:28:21
Aktuelle Projekte: Fahrpult VT628/VS928 - Versuch eines Nachbaus
Wohnort: Str.Km "6,8" der Kiel-Schönberger Eisenbahn (DB-Str. 9107)

Re: Ausgänge

#178 Beitrag von Arne aus dem Norden »

Dennis Bork hat geschrieben:Du justierst die Ortung aber schon erstmal manuell? Also z.B. an der nächsten Hektometertafel, Hauptsignal, Bahnsteig, ... und stellst dann auf "Ortung"? So klappt's zumindest bei mir jedenfalls metergenau.
Hi,

je nachdem. Wenn ich mit ZD 2.9 an einem Bahnhof starte, dann justiere ich natürlich nichts manuell. Trotzdem sinds je nach Strecke einige 100m daneben. Bei Starts auf freier Strecke werde ich das jetzt mal so machen wie du schreibst; erst am nächsten Bahnhof "orten". Eben bin ich beim testen leider wieder nicht weit gekommen ;(

Bild

(ja, das Fenster oben links ist wirklich das TCP-Verbindungstool nach beenden von Zusi. Es hat nicht mal mehr für ne Fehlermeldung gereicht in dem unteren Fenster. Fahrt war auf freier Strecke bei 120km/h ohne Beeinflußung, plötzlich drei Leuchtmelder an...)

Gruß, Arne
Mein Baubericht von der echten Bahn zum Schönberger Strand:
https://www.facebook.com/Hein-Sch%C3%B6 ... 601976323/

Benutzeravatar
Dennis Bork
Beiträge: 945
Registriert: 13.09.2015 21:46:58

Re: Ausgänge

#179 Beitrag von Dennis Bork »

Dude hat geschrieben:Wenn ich mit ZD 2.9 an einem Bahnhof starte, dann justiere ich natürlich nichts manuell.
Hallo Arne, auch bei Start am Bf wenn die Raute scheinbar richtig steht: "Ortung", dann einmal vor (Pfeil hoch) und wieder zurück (Pfeil runter) - ich habe dazu die Hotkeys Q und Y. Klappt mit geöffnetem "Zeit"-Menü bei eingestellter "Ortung" oder im manuellen Modus.

Zu Deinem Fehler: Da stimmt was vorne und hinten nicht -
Zuletzt geändert von Anonymous am 15.11.2012 19:43:09, insgesamt 2-mal geändert.

Benutzeravatar
Sebastian N.
Beiträge: 419
Registriert: 07.10.2011 06:24:53
Kontaktdaten:

Re: Ausgänge

#180 Beitrag von Sebastian N. »

Hallo!

Ich versuche derzeit über meinen Arduino auch Dateneingaben zu realisieren, brauche aber etwas Hilfe. Im Arduino-Programm habe ich nun folgendermaßen begonnen, das VB - Programm muss auch noch angepasst werden.

Code: Alles auswählen

void Input() {
  if (digitalRead(22)==HIGH)INa|=1;
  if (digitalRead(23)==HIGH)INa|=2;
  if (digitalRead(24)==HIGH)INa|=4;
  if (digitalRead(25)==HIGH)INa|=8;
  if (digitalRead(26)==HIGH)INa|=16;
  if (digitalRead(27)==HIGH)INa|=32;
  if (digitalRead(28)==HIGH)INa|=64;
  if (digitalRead(29)==HIGH)INa|=128;
  
  if (digitalRead(30)==HIGH)INb|=1;
  if (digitalRead(31)==HIGH)INb|=2;
  if (digitalRead(32)==HIGH)INb|=4;
  if (digitalRead(33)==HIGH)INb|=8;
  if (digitalRead(34)==HIGH)INb|=16;
  if (digitalRead(35)==HIGH)INb|=32;
  if (digitalRead(36)==HIGH)INb|=64;
  if (digitalRead(37)==HIGH)INb|=128;
  
  INc=analogRead(14);
  INd=analogRead(15);
  
    if (inputChar[0]=='r'){
    Serial.print('A');      
    Serial.write(INa);  
    delay(1);
    Serial.print('B'); 
    Serial.write(INb);
    delay(1);
    Serial.print('C'); 
    Serial.write(INc);
    delay(1);
    Serial.print('D'); 
    Serial.write(INd);
    delay(1);
    }
Vielleicht kann sich das mal jemand der besser programmieren kann als ich ansehen, ob das überhaupt so funktionieren kann.

Danke.

Gruß,
Sebastian N.


//Edit:
"nonesense" zeigt ja in einem YouTube Video ein Programm dass via TCP Schnittstelle für Loksim auch zum PC überträgt, das müsste man ja eigentlich nur auf Tastendruck adaptieren. Gibt es das Programm hier irgendwo im Forum?
Zuletzt geändert von Sebastian N. am 18.11.2012 21:35:08, insgesamt 1-mal geändert.

Antworten