[erledigt] Kann keine Weichenadressen über 255 empfangen.

http://wiki.rocrail.net/doku.php?id=roc ... netnode-de

[erledigt] Kann keine Weichenadressen über 255 empfangen.

Postby Hobbyprog » 09.08.2018, 13:11

Hallo Rocrail - Modellbahner,
ich habe ein Problem mit dem Rocnet - Protokoll und meiner Eigenbauzentrale.
Eigendeich funktioniert soweit alle ganz gut.
Nur wenn ich Weichenadressen großer 255 schalten möchte,
kann ich diese nicht mit meinem Programm decodieren.

Meine Rocrail - Einstellung.
Zentrale = Rocnet UDP
Als Protokoll in Eigenschaften Weiche > Schnittstelle habe ich NMRA-DCC ausgewählt.
Die Porteinstellungen haben dort keine Wirkung. Ich empfange folgende Daten über den UDP Server.
Die empfangenen Adressen sind Weichenadressen 0 - 255, sollten eigentlich
die Decoderadresse sein. (Einstellung = NMRA-DCC )

Ich empfange folgende Daten:
Die Zahl in ( ) verwende ich als Weichenadresse und > 0 oder > 1 als Spule A/B

Weichenadresse 2 Rocrail Sendet 0;0;0;0;1;1;9;4;>0;0;0;(2);2; = Decoder 1 Port1 Spule A
Weichenadresse 2 Rocrail Sendet 0;0;0;0;1;1;9;4;>1;0;0;(2);2; = Decoder 1 Port1 Spule B

Weichenadresse 255 Rocrail Sendet 0;0;0;0;1;1;9;4;>0;0;0;(255);3; = Decoder 64 Port2 Spule A
Weichenadresse 255 Rocrail Sendet 0;0;0;0;1;1;9;4;>1;0;0;(255);3; = Decoder 64 Port2 Spule B

Das Problem:
Hier das Problem ab Weichenadresse 256.
Weichenadresse 257 Rocrail Sendet 0;0;0;0;1;1;9;4;0;0;X0;(1);3; (Weiche 1 ?)
Weichenadresse 257 Rocrail Sendet 0;0;0;0;1;1;9;4;1;0;X0;(1);3;
Ich hätte hier an der Markierung X0, ein Übertrag 1 vermutetet, aber ab 256, empfange ich 0 ohne Übertrag ?

Ich behelfe mich. in dem ich die Busadresse bei jedem Übertrag um 1 erhöhe.
Bus 1 Weichenadresse 257 Rocrail Sendet 0;0;B1;0;1;1;9;4;0;0;0;(1);3;
Leider will das System dann eine Rückmeldung, und die Weiche schaltet mehrmals hin und her.

Rovview Zentrale -Fenster: -- switch CS addr=257 cmd=1 type=0
Rocview Server - Fenster -- request 0 is not acknowledged

Was auch auffällt ist, das ich als letzte Zahl verschiedene Werte von der gleichen Adresse bekomme.
Hier zufällig 2 und 3 von unterschiedlichen Adr.
Ich vermute, dass ich Rocnet nicht konform benutze, obwohl bis auf dieses Weichenproblem alles inclusive Belegtmelder gut funktioniert.
Ich hoffe es gibt eine Lösung.

Viele Grüße Martin
Last edited by Hobbyprog on 11.10.2018, 13:47, edited 1 time in total.
Hobbyprog
 

Re: RocNet Kann keine Weichenadressen über 255 empfangen.

Postby rjversluis » 09.08.2018, 13:17

Hi Martin,

eine Weiche Adresse kann nur 0...255 sein, 8 bit.
RocNet basiert auf Nodes: 16bit Node ID und 8 bit Weicheadresse.

https://wiki.rocrail.net/doku.php?id=ro ... et-prot-en
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBUS - CANGCx ] - [ G: CBUS - CANGCx ]
rjversluis
Site Admin
 

Re: RocNet Kann keine Weichenadressen über 255 empfangen.

Postby Hobbyprog » 09.08.2018, 15:42

Danke für die super schnell Antwort.

Bin jetzt etwas Ratlos, bei den Lokadressen funktioniert die langen Adressen

56 = 0;0;56;0;1;2;2;5;15;1;0;0;28;17; Berechnet aus IDH IDL = 0 + 56
1953 = 0;7;161;0;1;2;2;5;10;1;1;0;128;17; Berechnet aus IDH IDL = 7 X 256 + 161

Ich hoffe ich nerv nicht mit meinen Fragen. Ich kann auch gerne länger Zeit auf eine Antwort warten.

Ich empfange ja die Daten von Rocrail über meinem UDP Server und decodiere die Daten wie oben beschrieben. Ist jetzt mein Server eine Node. Was muss ich bei Eigenschaften >Weichen > Schnittstelle einstellen. um mehr als 255 Adressen zu erhalten.

Oder ist meine Vorgehensweise für Weichenadressen so nicht machbar.
Ich muss zugeben das mir die Programmierung der Node nicht verständlich ist.
Ich sende ja keine Daten, demnach musste die 16 Bit ID ja von Rocrail kommen, die dann irgendwo eintragen oder generiert werden muss?.

Ich habe natürlich vor ab das Rocnet Protocoll angesehen, dort ist im 8 Byte Header die Sendeadresse IDH IDL vorgesehen, was ja auch für die Lokadressen gültig ist, warum ist das für die Weichen nicht möglich.

Viele Grüße
Martin
Hobbyprog
 

Re: RocNet Kann keine Weichenadressen über 255 empfangen.

Postby rjversluis » 09.08.2018, 16:23

Hi Martin,

IDH/L ist bei alle Pakete 16bit.
Bei Loks wird das als Lok-Node-ID verwendet und bei Accessory als Decoder-Node-ID.
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBUS - CANGCx ] - [ G: CBUS - CANGCx ]
rjversluis
Site Admin
 

Re: RocNet Kann keine Weichenadressen über 255 empfangen.

Postby Hobbyprog » 09.08.2018, 18:47

Hallo,

ich habe nochmal die Empfangenen Daten aufgezeichnet.

Einstellungen in Rocrailgleisplan Weichen > Eigenschaften> Schnittstelle

NMRA- DCC Die Port - Nummer hat keinen Einfluß

Decoder - Adresse 0 Pot1 mein UDP Server empfängt 0;0;0;0;1;1;9;4;0;0;0;0;18;

Decoder - Adresse 2 Pot1 mein UDP Server empfängt 0;0;0;0;1;1;9;4;0;0;0;2;18;

Decoder - Adresse 5 Port1 mein UDP Server empfängt 0;0;0;0;1;1;9;4;0;0;0;5;18;

Decoder - Adresse 255 Port1 mein UDP Server empfängt 0;0;0;0;1;1;9;4;0;0;0;255;18;
Jetzt eine Adresse über 255:
Decoder - Adresse 257 Port1 mein UDP Server empfängt 0;0;0;0;1;1;9;4;0;0;0;1;18;


Decoder - Adresse 258 Port1 mein UDP Server empfängt 0;0;0;0;1;1;9;4;0;0;0;2;18; ist völlig identisch mit Adresse 2

Decoder - Adresse 2 Pot1 mein UDP Server empfängt 0;0;0;0;1;1;9;4;0;0;0;2;18;
jetzt mit Port 2
Decoder - Adresse 2 Pot2 mein UDP Server empfängt 0;0;0;0;1;1;9;4;0;0;0;2;19;

Zitat:

IDH/L ist bei alle Pakete 16bit.
Bei Loks wird das als Lok-Node-ID verwendet und bei Accessory als Decoder-Node-ID.

Bei den Lokadressen erhalte ich ja wie beschrieben,die Adressen, bei Zubehör ist hier aber immer 0

Lokadresse 1953 = 0;7;161;0;1;2;2;5;10;1;1;0;128;17; Berechnet aus IDH IDL = 7 X 256 + 161 =1953

-- Weichen
Gorup = 1

Code = 9

Databyte Länge = 4

in den 4 Databyts ist in

Byte 1 der Schaltzustand 0= Spule A 1= Spule B

Byte 4 enthält den unteren Teil einer 16 Bit Adresse


Vieleicht können Sie mir noch ein Hinweis geben wie ich Adressen über 255 erhalte.

Viele Grüße

Martin
Hobbyprog
 

Re: RocNet Kann keine Weichenadressen über 255 empfangen.

Postby rjversluis » 10.08.2018, 07:14

Moin Martin,

Bus:Adresse -> 16bit:8bit

Der Bus ist hier der Decoder Nummer und die Adresse ist der Weiche, 0...255, innerhalb diese Decoder.
Also, damit lassen sich 16.776.960 Weichen adressieren.
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBUS - CANGCx ] - [ G: CBUS - CANGCx ]
rjversluis
Site Admin
 

Re: RocNet Kann keine Weichenadressen über 255 empfangen.

Postby Hobbyprog » 10.08.2018, 22:56

Hallo Rob,

danke für deine Geduld mit mir.

Ich hatte ja anfangs schon so eine Idee, mit der BUS Adresse, dass die 16 Bit ist habe ich nicht wahrgenommen.

Siehe oben in der ersten Anfrage.
Zitat: ----------------
Ich behelfe mich. in dem ich die Busadresse bei jedem Übertrag um 1 erhöhe.
Bus 1 Weichenadresse 257 Rocrail Sendet 0;0;B1;0;1;1;9;4;0;0;0;(1);3;
Leider will das System dann eine Rückmeldung, und die Weiche schaltet mehrmals hin und her.
------------------------
Die mehrmaligen Schaltversuche konnte ich mittlerweile unterdrücken, in dem ich in Zentrale Rocnet ,
den Haken Überwachung gelöscht habe.

Ich hatte mich ein bisschen verrannt, hatte nicht bedacht das Rocnet und DCC unterschiedliche Systeme sind.
DCC adressiert ja jeweils 511 Decoder mit je 4 Weichen zumal ich das Protokoll NMRA - DCC ausgewählt hatte.

Rochnet kann wenn ich richtig verstanden habe 65535 Decoder (Node ?) mit je 255 Weichen (Port) schalten.

Für mein System (nur ein UDP Server) wäre jetzt zu überlegen, ob ich jetzt nur noch die Busadresse als
Weichenadresse verwende, oder alles so wie weiter oben beschrieben verwende. Letztlich kann man über
DCC nicht viel mehr als 2000 Schaltartikel schalten.

Nochmal danke für die Informationen, habe mal wieder was gelernt.

Viele Grüße Martin
Hobbyprog
 


Return to RocNetNode (DE)