Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

Da immer mehr Zusi User von einem 1:1 Führerstand mit träumen, soll es zumindest an Datenaustausch nicht hapern.
Nachricht
Autor
Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#281 Beitrag von Johannes »

Variable deklarieren oder nicht führt aber auch nicht zu einem veränderten Kontrollfluss. Es ist ohne Klammern halt so, dass die Variable in den nachfolgenden cases auch sichtbar ist, obwohl sie nicht initialisiert wurde -> Zugriff darauf ist undefined behavior. Das ist hier aber nicht der Fall.

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

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#282 Beitrag von F. Schn. »

Manche Dinge will man besser nicht wissen... :angst
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

_TheDragonRider_
Beiträge: 9
Registriert: 25.09.2021 21:44:50
Wohnort: Brühl

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#283 Beitrag von _TheDragonRider_ »

Hallo,

ich beschäftige mich gerade auch mit dem Thema Fahrpultbau und und bin gerade dabei ein MFA dafür auf den Arduino umzurüsten. Der Arduino ist ein Arduino Mega 2560 mit aufgesetztem Ethernet Shield 2 welcher direkt an den PC angeschlossen ist. Ich verwende den Code von F. Schn. auf Seite 11 und habe das Problem, dass sich der Arduino nicht Verbinden kann/möchte. Ich hab auch die Beiträge auf Seite 3 f. gelesen, wo es bei Maurice um das gleiche Problem ging, und die dort vorgeschlagenen Änderungen auch schon zum Teil ohne Erfolg versucht. Bezüglich Netzwerken hab ich keine Erfahrung weshalb ich von dem was da stand auch nicht wirklich schlauer geworden bin. Für Hilfe wäre ich dankbar.

Gruß, Paul

Benutzeravatar
Formsignal
Beiträge: 133
Registriert: 13.11.2018 23:34:14

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#284 Beitrag von Formsignal »

_TheDragonRider_ hat geschrieben: 30.09.2021 23:45:30 Ich verwende den Code von F. Schn. auf Seite 11 und habe das Problem, dass sich der Arduino nicht Verbinden kann/möchte.
Um ein paar Basics geprüft zu haben:
- Zusi TCP-Server gestartet?
- IP des EthernetShield in den richtigen Netzbereich gelegt?
- Lässt sich das EthernetShield vom PC aus "pingen"?
Viele Grüße,
Franz aká Formsignal

_TheDragonRider_
Beiträge: 9
Registriert: 25.09.2021 21:44:50
Wohnort: Brühl

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#285 Beitrag von _TheDragonRider_ »

Der TCP Server ist gestartet. Die IP des Shields ist die des PCs um eins erhöht (analog zur Beispiel-IP im Code). Und auch der Ping ist erfolgreich.

IP-Adressen im Code:

Code: Alles auswählen

IPAddress ip(169, 254, 13, 140);                              //IP-Adresse vom Arduino Ethernet Shield
IPAddress server(169, 254, 13, 139);                          //IP-Adresse vom Zusi3-Rechner 
Beim Ausführen des ipconfig-Befehls angezeigten Verbindungen:

Code: Alles auswählen

Drahtlos-LAN-Adapter LAN-Verbindung* 1:

   Medienstatus. . . . . . . . . . . : Medium getrennt
   Verbindungsspezifisches DNS-Suffix:

Drahtlos-LAN-Adapter LAN-Verbindung* 2:

   Medienstatus. . . . . . . . . . . : Medium getrennt
   Verbindungsspezifisches DNS-Suffix:

Ethernet-Adapter Ethernet 2:

   Medienstatus. . . . . . . . . . . : Medium getrennt
   Verbindungsspezifisches DNS-Suffix:

Ethernet-Adapter Ethernet:

   Verbindungsspezifisches DNS-Suffix: fritz.box
   Verbindungslokale IPv6-Adresse  . : fe80::4ca9:f6a8:f7f8:d8b%12
   IPv4-Adresse (Auto. Konfiguration): 169.254.13.139
   Subnetzmaske  . . . . . . . . . . : 255.255.0.0
   Standardgateway . . . . . . . . . :

Drahtlos-LAN-Adapter WLAN:

   Verbindungsspezifisches DNS-Suffix: Speedport_W_921V_1_46_000
   Verbindungslokale IPv6-Adresse  . : fe80::2de7:c813:a51b:644a%10
   IPv4-Adresse  . . . . . . . . . . : 192.168.2.102
   Subnetzmaske  . . . . . . . . . . : 255.255.255.0
   Standardgateway . . . . . . . . . : 192.168.2.1

Ethernet-Adapter Bluetooth-Netzwerkverbindung:

   Medienstatus. . . . . . . . . . . : Medium getrennt
   Verbindungsspezifisches DNS-Suffix:
Und das Ergebnis des Ping-Tests:

Code: Alles auswählen

Ping wird ausgeführt für 169.254.13.139 mit 32 Bytes Daten:
Antwort von 169.254.13.139: Bytes=32 Zeit<1ms TTL=128
Antwort von 169.254.13.139: Bytes=32 Zeit<1ms TTL=128
Antwort von 169.254.13.139: Bytes=32 Zeit<1ms TTL=128
Antwort von 169.254.13.139: Bytes=32 Zeit<1ms TTL=128

Ping-Statistik für 169.254.13.139:
    Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
    (0% Verlust),
Ca. Zeitangaben in Millisek.:
    Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms

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: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#286 Beitrag von Arne aus dem Norden »

_TheDragonRider_ hat geschrieben: 30.09.2021 23:45:30 Der Arduino ist ein Arduino Mega 2560 mit aufgesetztem Ethernet Shield 2 welcher direkt an den PC angeschlossen ist. Ich verwende den Code von F. Schn. auf Seite 11 und habe das Problem, dass sich der Arduino nicht Verbinden kann/möchte.
Hi, ich hab gestern Nacht um genau die gleiche Uhrzeit vor genau dem gleichen Problem gesessen. Die Lösung war bei mir dem Netzwerk Adapter in den Windows Systemeinstellungen manuell eine eigene IP aus einem anderen Adressbereich zuzuweisen (192.168.2.2) und dem Shield im Script eine passende (192.168.2.10). Damit lief es sofort.
Zuletzt geändert von Arne aus dem Norden am 01.10.2021 07:42:22, insgesamt 1-mal geändert.
Mein Baubericht von der echten Bahn zum Schönberger Strand:
https://www.facebook.com/Hein-Sch%C3%B6 ... 601976323/

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

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#287 Beitrag von F. Schn. »

* In der Zusi-Liste von TCP-Clients taucht der Arduino nicht auf?
* Der Arduino wurde (neu)gestartet, nachdem Zusi gestartet und der TCP-Server aktiviert ist?
* Die Windows-Firewall hat Zusi bzw. den Port 1436 für öffentliche Netze freigegeben oder ist deaktiviert?
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

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

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#288 Beitrag von nonesense »

_TheDragonRider_ hat geschrieben: 01.10.2021 00:35:40

Code: Alles auswählen

IPAddress ip(169, 254, 13, 140);                              //IP-Adresse vom Arduino Ethernet Shield
IPAddress server(169, 254, 13, 139);                          //IP-Adresse vom Zusi3-Rechner 

Code: Alles auswählen

Ethernet-Adapter Ethernet:

   Verbindungsspezifisches DNS-Suffix: fritz.box
   Verbindungslokale IPv6-Adresse  . : fe80::4ca9:f6a8:f7f8:d8b%12
   IPv4-Adresse (Auto. Konfiguration): 169.254.13.139
   Subnetzmaske  . . . . . . . . . . : 255.255.0.0
   Standardgateway . . . . . . . . . :

Code: Alles auswählen

Ping wird ausgeführt für 169.254.13.139 mit 32 Bytes Daten:
Antwort von 169.254.13.139: Bytes=32 Zeit<1ms TTL=128
Dein PC hat die *.139 und dein Arduino die *.140.
Wenn du "ping 169.254.13.139" eingibst, pingt der PC sich selber an. Natürlich funktioniert das.
Du musst "ping 169.254.13.140" eingeben.

Gruß
Jens

didig
Beiträge: 277
Registriert: 26.03.2017 09:21:07

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#289 Beitrag von didig »

Moin,

so mal beim überfliegen der letzten Beiträge:

also Netzwerktechnisch gesehen finde ich es bemerkenswert, dass Deine fritz.box eine Apipa Adresse hat und nicht das standardgateway ist oder eins eingetragen ist, wahrscheinlich dass vom speedport. Also hängt die fritzbox wahrscheinlich hinter dem speedport.

Ethernet-Adapter Ethernet:

Verbindungsspezifisches DNS-Suffix: fritz.box
Verbindungslokale IPv6-Adresse . : fe80::4ca9:f6a8:f7f8:d8b%12
IPv4-Adresse (Auto. Konfiguration): 169.254.13.139
Subnetzmaske . . . . . . . . . . : 255.255.0.0
Standardgateway . . . . . . . . . :

Drahtlos-LAN-Adapter WLAN:

Verbindungsspezifisches DNS-Suffix: Speedport_W_921V_1_46_000
Verbindungslokale IPv6-Adresse . : fe80::2de7:c813:a51b:644a%10
IPv4-Adresse . . . . . . . . . . : 192.168.2.102
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . : 192.168.2.1

169.254.13.139 mit 32 Bytes Daten:

APIPA (Automatic Private IP Adressing) ist der Mechanismus, der einem Rechner eine Adresse aus dem Bereich 169.254. x.x vergibt, wenn dieser keine IP per DHCP bekommt. ... Wenn du also irgendwo eine IP-Adresse siehst, die mit 169.254 beginnt, ist der Rechner nicht mit einem DHCP-Server verbunden. Apipas sollte man in einem Netzwerk nach Möglichkeit vermeiden.

Also benötigst Du IPs aus 192.168.2.X würde ich hier mal so locker zum besten geben. ;) hattest Du ja auch schon mal !!

_TheDragonRider_
Beiträge: 9
Registriert: 25.09.2021 21:44:50
Wohnort: Brühl

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#290 Beitrag von _TheDragonRider_ »

Hallo,

danke für eure Ratschläge, aber bisher hat noch nichts das gewünschte Ergebnis gebracht. Das Pingen mit der IP 169.254.13.140 war erfolgreich. Das ändern der IPs zu den von Arne genannten brachte nichts. Zusi war bei Kaspersky tatsächlich unter eingeschränkt gelistet, aber auch das Ändern auf vertrauenswürdig änderte nichts. Auch mit deaktivierter Firewall blieb das Ergebnis das selbe: Der serielle Monitor gibt etwa eine Sekunde nach dem Text "verbinden..." "Verbindung fehlgeschlagen" aus.

Gruß, Paul

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

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#291 Beitrag von nonesense »

Ist es dir möglich QDmi mit Zusi zu verbinden? Das wäre ein netter Test, ob es an der Firewall liegt.
Wenn es nicht geht, poste mal, welche IPs unten links in QDmi angezeigt werden.

...In der Hoffnung, dass du ein Androidgerät hast.

Gruß
Jens

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

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#292 Beitrag von F. Schn. »

didig hat geschrieben: 01.10.2021 10:56:36 Also benötigst Du IPs aus 192.168.2.X würde ich hier mal so locker zum besten geben. ;) hattest Du ja auch schon mal !!
Selbstverständlich solltest du NICHT dem LAN und dem WLAN IPs aus dem selben Subnetz geben, wenn diese nicht über Switche miteinander verbunden sind oder du ganz genau weißt, was du tust. (Ich gehe mal davon aus, dass didig das so meint, aber das ist IMHO missverständlich)

Du hast geschrieben, dass du irgend etwas geändert hast. Kannst du noch mal die aktuellen Ausgaben von ipconfig und von die aktuellen Angaben aus dem Quellcode des Arduino zeigen?

Ich nehme mal an, du hast den PC direkt mit einem Kabel an den Arduino angeschlossen, korrekt (zumindest lese ich das so aus deinem ersten Beitrag heraus)? Oder ist dort eine fritzbox dazwischen?

ZusiDisplay als externes Programm funktioniert?
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

_TheDragonRider_
Beiträge: 9
Registriert: 25.09.2021 21:44:50
Wohnort: Brühl

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#293 Beitrag von _TheDragonRider_ »

Sowohl QDmi als auch ZusiDisplay (als externes Programm) funktionieren ohne Probleme (ZusiDisplay nutze ich häufige bei Loks ohne Ebula)

Zum Aufbau bezüglich des Netzwerks: Internet beziehe ich drahtlos über einen Devolo-Repeater welcher mit dem im Keller befindlichen Telekom-Router (Speedport) verbunden ist. Das Motherboard des PCs ist WLAN fähig. Der Arduino ist über Kabel direkt an die RJ45 Buchse des Motherboards angeschlossen.

Änderungen hab ich wieder Rückgängig gemacht, da sie nichts gebracht haben, weshalb wieder die 169 IPs mit Endung 139 und 140 zum Einsatz kommen.

Benutzeravatar
Formsignal
Beiträge: 133
Registriert: 13.11.2018 23:34:14

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#294 Beitrag von Formsignal »

Dann würde ich dir empfehlen sowohl deinem Zusi-Rechner, als auch dem Arduino manuell IP-Adressen in einem anderen Subnetz zu vergeben.

In deinem WLAN-Netzwerk ist es 192.168.2.x
In deinem "Zusi-Netzwerk" über Ethernet kannst du dann beispielsweise ein Netzwerk mit 192.168.4.x aufbauen (255.255.255.0 Subnetzmaske). Dem Zusi-Rechner kannst du beispielshaft 192.168.4.10 vergeben, dem Arduino 192.168.4.11.
Dann nochmal ein Ping-Test machen (vom PC aus versuchen die 192.168.4.11 zu erreichen).
Viele Grüße,
Franz aká Formsignal

_TheDragonRider_
Beiträge: 9
Registriert: 25.09.2021 21:44:50
Wohnort: Brühl

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#295 Beitrag von _TheDragonRider_ »

Hab ich versucht, jetzt wird's aber etwas weird. Ich hab hab über die Systemsteuerung dem Ethernet-Port die vorgeschlagene IP vergeben im cmd-Fenster mit ipconfig hab ich die auch angezeigt bekommen. Ebenso hab ich sie in Zusi gefunden. Als ich nun die IPs im Arduino-Code verändert habe (Server ... .10 und Shield ... .11) konnte er sich immer noch nicht verbinden. Doch als ich im Netzwerkfenster in Zusi geschaut habe, waren da nur noch die 127er IP und die vom WLAN zu finden. Beim nachschauen in cmd stellte sich heraus, das der Ethernet-Port wieder die 169er IP hatte, welche dann auch beim Neustart von Zusi wieder zu sehen war. In der Systemsteuerung ist aber immer noch die manuell eingetragene IP zu finden. Irgendwas läuft hier schief oder ich bin einfach zu blöd meinen PC zu bedienen.

didig
Beiträge: 277
Registriert: 26.03.2017 09:21:07

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#296 Beitrag von didig »

Moin,

also wenn ich das jetzt richtig verstanden habe handelt es sich hier um einen PC mit zwei Netzwerkkomponenten:
Drahtlos-LAN-Adapter WLAN:

Verbindungsspezifisches DNS-Suffix: Speedport_W_921V_1_46_000
Verbindungslokale IPv6-Adresse . : fe80: c813:a51b:644a%10
IPv4-Adresse . . . . . . . . . . : 192.168.2.102
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . : 192.168.2.1
Ethernet-Adapter Ethernet:

Verbindungsspezifisches DNS-Suffix: fritz.box
Verbindungslokale IPv6-Adresse . : fe80::4ca9:f6a8:f7f8:d8b%12
IPv4-Adresse (Auto. Konfiguration): 169.254.13.139
Subnetzmaske . . . . . . . . . . : 255.255.0.0
Standardgateway . . . . . . . . . :

Hast Du schon mal versucht, dem Ethernetadapter z.B. die IP: 192.168.2.10; 255.255.255.0 Standardgateway: 192.168.2.1 manuell zu vergeben und in den Einstellungen bei IP Erweitert nachgeschaut was und ob da noch ein DHCP aktiviert eingetragen ist???

Ganz wichtig nach all diesen Neueintragungen den Rechner einmal komplett runter und wieder hochfahren und dann erst mit ipconfig /all das Ergebnis überprüfen.

Um dann via Netzwerkkarte und Drahtlos-Lan-Adapter ins Internet zu kommen, wäre dann wohl noch ein bridgeing von Nöten, sollte jetzt hier aber nicht das Problem sein.
Wichtig ist es erste einmal den Pc netzwerktechnisch ohne APIPA in den Griff zu bekommen. Die 169.254. gehört wohl Microsoft und dient als letzte Krücke um ein unsauber konfiguriertes Netzwerk zum Laufen zu bekommen.

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

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#297 Beitrag von F. Schn. »

didig hat geschrieben: 02.10.2021 10:45:53Hast Du schon mal versucht, dem Ethernetadapter z.B. die IP: 192.168.2.10; 255.255.255.0 Standardgateway: 192.168.2.1 manuell zu vergeben
Damit setzt du beide Adapter ins selbe Subnetz. Das solltest du natürlich nicht machen, sofern du nicht ganz genau weißt, was du da tust.
_TheDragonRider_ hat geschrieben: 01.10.2021 23:31:09 Ich hab hab über die Systemsteuerung dem Ethernet-Port die vorgeschlagene IP vergeben
Kannst du mal ein Screenshot davon zeigen?
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

didig
Beiträge: 277
Registriert: 26.03.2017 09:21:07

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#298 Beitrag von didig »

Natürlich soll er das in das selbe Subnetz setzen. Das wäre ja ersteinmal der einfachste Fall. Ins Internet käme er damit ohne bridgin via Ethernetkarte WlanKarte eh nicht. Warum also nicht????

_TheDragonRider_
Beiträge: 9
Registriert: 25.09.2021 21:44:50
Wohnort: Brühl

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#299 Beitrag von _TheDragonRider_ »

Hab den Fehler gefunden:

Der Arduino hat sich versucht mit dem PC zu verbinden, bevor überhaupt die Ethernetverbindung bestand. Das das nicht funktionieren kann ist klar. Ist mir aufgefallen in den Netzwerkadaptereinstellungen, das beim Resetten des Arduino die Verbindung für etwa 10 Sekunden unterbrochen ist. Im Code versucht er halt direkt nach dem Reset sich zu verbinden. Nach dem ich einen Delay von 20 Sekunden direkt nach void setup eingefügt hatte, konnte er sich verbinden. Hätte ich auch vorher drauf kommen können wen ich die LEDs am RJ45-Anschluss Arduino beachtet hätte. Trotzdem Danke für die versuchte Hilfe.

Kevin1897
Beiträge: 56
Registriert: 07.10.2022 21:53:59

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#300 Beitrag von Kevin1897 »

Servus Zusammen,

Mit dem Arduino wäre es technisch ja bestimmt möglich, dass der Akustische Melder der PZB90 (Schnarre) via Relais Angesteuert würde (von denen hätte Ich hier 2 Stück rumliegen...).

Gibt ZUSI überhaupt solch einen Befehl "Akustisch" überhaupt raus, welcher dann per Arduino ausgeführt würde?
Wie sollte dann der Arduino Befehl Aussehen?

Habe Nämlich mal das Dicke Handbuch durchgeschaut, aber die Einzelnen Schritte sind für mich nicht nachvollziehbar...
BR620/622/642 BR8442 ;-)

Antworten