RE: z21 über UDP

#1 von js747a , 22.02.2021 12:16

Ich versuche eine Modellbahn Zentrale Z21 in mein Programm einzubinden.

Ich habe eine kleines Programm das uber UDP Port 21105 die Z21 Zentrale ein und ausschaltet. Funktioniert
- Das selbe Programm auf einem anderen PC im selben WLAN Netz empfangt die Daten. - Also OK
- Die Z21 Zentrale im selben WLAN Netz empfangt die Daten. - Also OK
- Ein Testprogramm von Fleischmann (Z21_Maintenance Tools) zum testen der Zentrale Empfängt die Daten und zeigt es an. - Also OK

Soweit alles ok.

Die Zentrale sendet Daten . Aber nur das Testprogramm von Fleischmann (Z21_Maintenance Tools) zum testen der Zentrale zeigt eine Veränderung.
In meine Kleinen Programme auf den 2 Laptops zeigen nichts an.

Alle kommunizieren über den UDP Port 21105 .


js747a  
js747a
S-Bahn (S)
Beiträge: 17
Registriert am: 19.01.2021
Homepage: Link
Ort: Volkmarsen
Spurweite H0, N
Stromart Digital


RE: z21 über UDP

#2 von moppe , 22.02.2021 12:45

Nutzen du der LAN_SET_BROADCASTFLAGS ?

Klaus


"Meine" Modellbahn:http://www.modelbaneeuropa.dk
Dänisches Bahnforum: http://www.baneforum.dk
PIKO C4 "Horror Gallery": http://moppe.dk/PIKOC4.html


 
moppe
Trans Europ Express (TEE)
Beiträge: 8.729
Registriert am: 07.08.2011
Homepage: Link
Ort: Norddeusche halbinsel
Gleise Roco, PECO, Märklin/Trix, PIKO,
Spurweite H0, H0e, N, Z
Steuerung Z21, Lenz, MpC Gahler+Ringsmeier, Games on Track/Faller
Stromart AC, DC, Digital, Analog


RE: z21 über UDP

#3 von LeonFoucault , 22.02.2021 14:10

Du musst die Events abonieren, sonst wird das nichts und du musst angeben WAS du abonieren willst. Steht aber genau beschrieben im Protokoll.

Ganz wichtig noch: Mindestens 1x pro Minute bei der Z21 melden, sonst wird der Client aus der Liste der zu informierenden Systeme rausgeworfen.


H0 - Weinert MeinGleis - Z21,DR5000 - Railcom - Lokdecoder: ESU, Zimo und Lenz - RM und Dec: Roco, Digikeijs - Weichenantriebe Weinert, Digikeijs - Rollmaterial Roco, Liliput, Weinert, Brawa, Tillig - Szenerie Woodland Scenics - Steuerung: Multimaus & Software (eigene)


 
LeonFoucault
InterRegioExpress (IRE)
Beiträge: 376
Registriert am: 06.02.2020


RE: z21 über UDP

#4 von js747a , 22.02.2021 18:21

Wenn Mein Programm und Z21_Maintenance Tool gleichzeitig laufen musste mein Programm doch auch die Nachricht empfangen.


js747a  
js747a
S-Bahn (S)
Beiträge: 17
Registriert am: 19.01.2021
Homepage: Link
Ort: Volkmarsen
Spurweite H0, N
Stromart Digital


RE: z21 über UDP

#5 von js747a , 22.02.2021 18:26

Z21_Maintenance Tool und mein programm auf 1 Laptop
mein programm auf 2 Laptop

Wenn ich von Laptop 2 - Power On sende
- Z21_Maintenance Tool auf Laptop 1 reagiert und zeigt Power ON
- Mein Programm auf Laptop 1 zeigt Power ON

Wenn ich Z21 Power On setzte mit dem Vorderen Schalter
- Z21_Maintenance Tool auf Laptop 1 reagiert und zeigt Power ON
- Mein Programm auf Laptop 1 zeigt nichts an ??????


js747a  
js747a
S-Bahn (S)
Beiträge: 17
Registriert am: 19.01.2021
Homepage: Link
Ort: Volkmarsen
Spurweite H0, N
Stromart Digital


RE: z21 über UDP

#6 von hlinke , 22.02.2021 18:40

Zitat

Wenn Mein Programm und Z21_Maintenance Tool gleichzeitig laufen musste mein Programm doch auch die Nachricht empfangen.


Warum?

Dein Programm und das Z21_Maintenance Tool sind für die Z21 unterschiedliche Clients.

Weisst Du eigentlich wie UDP funktionert?

Der Client sendet ein Datenpaket an den UDP Port 21105 der Z21. Diese merkt sich die Portnummer, von der der Client die Daten geschickt hat und sendet eine Atwort an diesen Port.
Wenn Du deinen Clientnicht koreekt an der Z21 angemeldet hast und der Z21 gesagt hast, welche daten Du empfangen willst, dann bekommst keien Events gemeldet.

Kannst Du uns Deinen Code zeigen, dann können wird Dir besser helfen. So bringt das überhaupt nichts.

Harold


hlinke  
hlinke
InterRegio (IR)
Beiträge: 124
Registriert am: 31.10.2006
Homepage: Link
Spurweite H0
Stromart Digital


RE: z21 über UDP

#7 von hlinke , 22.02.2021 18:45

Zitat

Z21_Maintenance Tool und mein programm auf 1 Laptop
mein programm auf 2 Laptop

Wenn ich von Laptop 2 - Power On sende
- Z21_Maintenance Tool auf Laptop 1 reagiert und zeigt Power ON
- Mein Programm auf Laptop 1 zeigt Power ON

Wenn ich Z21 Power On setzte mit dem Vorderen Schalter
- Z21_Maintenance Tool auf Laptop 1 reagiert und zeigt Power ON
- Mein Programm auf Laptop 1 zeigt nichts an ??????


Dein Programm macht irgendetwas grundsätzlich falsch.
Es reagiert nicht auf das, was die Z21 sendet, sondern nur auf das, was Dein anderes Programm von Laptop 2 sendet.

So könen wir Dir da nicht weiterhelfen, wenn wir nicht wissen, was Du programmiert hast.

Harold


hlinke  
hlinke
InterRegio (IR)
Beiträge: 124
Registriert am: 31.10.2006
Homepage: Link
Spurweite H0
Stromart Digital


RE: z21 über UDP

#8 von vikr , 22.02.2021 19:30

Hallo,

Zitat

Wenn Mein Programm und Z21_Maintenance Tool gleichzeitig laufen musste mein Programm doch auch die Nachricht empfangen.


Hast Du Broadcast-Flags gesetzt, wie Klaus gefragt hat, bzw. Nachrichten für die IP des Laptops abonniert, auf dem Dein eigenes Programm läuft , wie Leon vorgeschlagen hat? Nur dann bekommst Du Nachrichten auf Deinen zweiten Client.

MfG

vik


im Übrigen - Märklin am liebsten ohne Pukos, z.B. als Trix


vikr  
vikr
ICE-Sprinter
Beiträge: 6.293
Registriert am: 23.10.2011
Gleise M, C u. K.
Spurweite H0, N
Stromart Digital, Analog


RE: z21 über UDP

#9 von LeonFoucault , 23.02.2021 18:08

Mal kurz und knapp erklärt wie die z/Z21 das macht....
Du meldest dich mit dem Maintenance-Tool an der Z21 an. Gleichzeitig wird seitens des Tools die Abonnementen-Anfrage an die Z21 geschickt, dass die Z21 bestimmte Parameter in festgelegten Intervallen an die Software (den Client) schickt, der sich an der Zentrale angemeldet hat.
Dafür führt die Zentrale eine Liste, welche Clients / Programme / Geräte sich an der Z21 angemeldet haben und welcher Client welche Nachrichten gerne regelmäßig haben möchte.
Das schickt die Zentrale dann unkontrolliert raus. Bedeutet also, die Zentrale prüft nicht nach ob die Nachricht angekommen ist und ob der Empfänger überhaupt noch vorhanden ist. Die Nachricht wird also einfach ins Netzwerk "reingeworfen". Post versenden ohne Einschreiben und Rückschein.

Sollte sich der Client nicht wenigstens einmal pro Minute mit IRGENDWAS bei der Zentrale melden, fliegt der Client aus der Liste der möglichen Empfänger raus und wird nicht mehr mit Informationen versorgt.

Also was muss man machen damit man Daten empfängt, auch wenn andere Clients etwas machen?

1. an der Z21 anmelden
2. Gemäß 2.16 des Rocoprotokolls die Broadcastflags setzen, WAS man in WELCHER Art abonnieren will, also welche Informationen man empfangen möchte
3. sich regelmäßig bei der Zentrale melden, dass der Client noch existent ist. Abfrage von am Gleis anliegender Leistung ist da zum Beispiel was, was man machen kann.
4. aufpassen dass man es mit den Abonnements nicht übertreibt
5. Grundsätze der Netzwerkprogrammierung nachlesen und Datentypen-Konvertierungen, da das Protokoll munter je nach Befehl Little-Endian, Big-Endian, htons und normale Werte mischt.

@js747a Ich komme übrigens ursprünglich aus Korbach und habe dort in der Belgiersiedlung gewohnt.


H0 - Weinert MeinGleis - Z21,DR5000 - Railcom - Lokdecoder: ESU, Zimo und Lenz - RM und Dec: Roco, Digikeijs - Weichenantriebe Weinert, Digikeijs - Rollmaterial Roco, Liliput, Weinert, Brawa, Tillig - Szenerie Woodland Scenics - Steuerung: Multimaus & Software (eigene)


 
LeonFoucault
InterRegioExpress (IRE)
Beiträge: 376
Registriert am: 06.02.2020


RE: z21 über UDP

#10 von js747a , 05.03.2021 20:01

Hallo ,habe mich jetzt mal in Wireshark einegelesen.

1. Wenn ich von mit meinem Programm von einem anderen Laptop sende an die IP der Z21 reagiert die Z21.
Ich sehe in Wireshark
Source IP 2 laptop
Destination IP von meinem Laptop
Info xxxxx -> 21105 (wobei xxxxx irgend eine Nummer ist zb. 61195) ist immer eine andere nummer

2. Wenn ich von meinen Laptop Verbinden sende meine Z21 von meinem Laptop Verbinden sende (LAN_SET_BROADCASTFLAGS) sehe ich danach die
Antworten der Z21 in Wireshark.


Source IP Z21
Destination IP von meinem Laptop
Info 21105 -> 53598 (wobei 53598 die Nummer ist die ich auch beim senden von LAN_SET_BROADCASTFLAGS in Wireshark sehe


Woher kommt die Nummer in Info



Wenn ich selber etwas sende sehe ich xxxxx -> 21105
Antworten von der Z21 21105 -> 53598

[attachment=0]Wireshark.zip[/attachment]

Dateianlage:
Sie haben nicht die nötigen Rechte, um die angehängten Dateien zu sehen

js747a  
js747a
S-Bahn (S)
Beiträge: 17
Registriert am: 19.01.2021
Homepage: Link
Ort: Volkmarsen
Spurweite H0, N
Stromart Digital


RE: z21 über UDP

#11 von moppe , 05.03.2021 20:50

Zitat

Woher kommt die Nummer in Info



Das ist portnummer von der Sender. Dann wissen ihren Z21 welcher ip und Portnummer es sollten seiner Antworten senden zu.

Bitte, dieser lesen und Bilder hinzufügen als Bilder und nicht zip file.
https://stummiforum.de/viewtopic.php?f=30&t=30285


Klaus


"Meine" Modellbahn:http://www.modelbaneeuropa.dk
Dänisches Bahnforum: http://www.baneforum.dk
PIKO C4 "Horror Gallery": http://moppe.dk/PIKOC4.html


 
moppe
Trans Europ Express (TEE)
Beiträge: 8.729
Registriert am: 07.08.2011
Homepage: Link
Ort: Norddeusche halbinsel
Gleise Roco, PECO, Märklin/Trix, PIKO,
Spurweite H0, H0e, N, Z
Steuerung Z21, Lenz, MpC Gahler+Ringsmeier, Games on Track/Faller
Stromart AC, DC, Digital, Analog


RE: z21 über UDP

#12 von js747a , 06.03.2021 11:56

Hallo, bin jetzt weiter gekommen.
Danke für euere Hilfe.

Ich musste nur LocalPort := '21105'; auf den Port setzen der die Z21 benutzt.

Ich hatte LocalPort := '0' - auf 0 gesetzt so wie im dem Beispiel von overbyte.

Ich hatte das Bild in einem ZIP da ich hier nür ein ZIP einfügen konnte und kein JPG.
Habe jetzt auch das mit dem Einfügen von Bilder gefunden.


js747a  
js747a
S-Bahn (S)
Beiträge: 17
Registriert am: 19.01.2021
Homepage: Link
Ort: Volkmarsen
Spurweite H0, N
Stromart Digital


RE: z21 über UDP

#13 von LeonFoucault , 06.03.2021 15:23

Zitat

Hallo, bin jetzt weiter gekommen.
Danke für euere Hilfe.

Ich musste nur LocalPort := '21105'; auf den Port setzen der die Z21 benutzt.

Ich hatte LocalPort := '0' - auf 0 gesetzt so wie im dem Beispiel von overbyte.

Ich hatte das Bild in einem ZIP da ich hier nür ein ZIP einfügen konnte und kein JPG.
Habe jetzt auch das mit dem Einfügen von Bilder gefunden.



Bitte nimm es mir jetzt nicht krumm, aber bitte bitte bitte setz Dich erstmal mit den Grundsätzen der Programmierung und besonders der Anwendungsentwicklung und der Netzwerprogrammierung auseinander, lern wie Protokolle zu lesen sind und wie die unterschiedlichen Layer eines Netzwerkprotokolls arbeiten.
Du stocherst hier wirklich im dunklen rum, nimmst nur irgendwelche Sachen aus Beispielen ohne zu wissen was Du machst. Hinweise wie etwas läuft gab es schon mehrfach in diesem Thread, die du aber zu ignorieren scheinst. Selbst warum welches Notebook und die Zentrale wann Informationen bekommen und wann nicht, wurde mehrfach erwähnt.

Vielleicht solltest Du dich erstmal anders an die Programmierung herantasten und erst danach eine Modellbahnsteuerung programmieren wollen.

In einem anderen Thread hatte ich auch schon mal Programmcode, zwar in C++, gepostet wie etwas schnell zum funktionieren gebracht wird mit der z/Z21.


H0 - Weinert MeinGleis - Z21,DR5000 - Railcom - Lokdecoder: ESU, Zimo und Lenz - RM und Dec: Roco, Digikeijs - Weichenantriebe Weinert, Digikeijs - Rollmaterial Roco, Liliput, Weinert, Brawa, Tillig - Szenerie Woodland Scenics - Steuerung: Multimaus & Software (eigene)


 
LeonFoucault
InterRegioExpress (IRE)
Beiträge: 376
Registriert am: 06.02.2020


   

Digibahn
TC oder Railware?

Xobor Einfach ein eigenes Forum erstellen
Datenschutz