Servus zusammen
ich meld mich hier weil ich im Rocrail Forum irgendwie nicht weiterkomme. Mir fehlt das technisches Verständnis für die Vorgänge ein wenig.
Falls meine Frage hier nicht ausreichend beschrieben, hier der Link auf's Rocrail Forum: https://forum.rocrail.net/viewtopic.php?f=117&t=17606
Also, Ausgangslage:
Ich habe Rocrail auf PC, Redbox als Centrale, und fahre mit DCC. Dann habe ich einen Arduino über ein DCC Leser ans Gleis angeschlossen. Ziel ist es, damit Signale zu steuern.
Da ich mehr als 2 Aspekte habe beim Signal, würde sich das Extended Accessory Decoder Protokoll anbieten. Rob hat dies nun für die Redbox im Rocrail umgesetzt. Nur erhalte ich auf dem Arduino die falschen Adressen. Die Aspects sind richtig.
Ich habe es mit der NMRA DCC Library versucht, auch mit anderen (jenem vom Microbahner, Programmcode selbst erweitert für Extended Acc.).
So wie ich das verstehe, läuft es technisch so ab:
In Rocrail Signal schalten
Rocrail schickt P50x Telegramm XtrntX an Redbox
Redbox wandelt es in DCC Telegramm um
Arduino empfängt DCC Telegramm und wertet Adresse aus.
Protokoll von P50x:
2
3
4
5
6
7
8
9
10
11
0: 0x91 XTrntX
1: LSB des Extended-Accessory-Decoders (A0 .. A7)
2: MSB des Extended-Accessory-Decoders (A8 .. A10) inkl. Aspect
bit# 7 6 5 4 3 2 1 0
+-----+-----+-----+-----+-----+-----+-----+-----+
| As4 | As3 | As2 | As1 | As0 | A10 | A9 | A8 |
+-----+-----+-----+-----+-----+-----+-----+-----+
As4..As0 5 Bit Aspect (Bedeutung abh�ngig vom Decoder)
A10..A8 MSBs des Extended-Accessory-Decoders
Protokoll DCC Extended Acc. Decoder (gemäss NMRA s-9.2.1_2013):
{preamble} 0 10AAAAAA 0 0AAA0AA1 0 000XXXXX 0 EEEEEEEE 1
Wobei ich herausgefunden habe anhand der DCC Library, dass die Bits wie folgt zur Adresse zusammengesetzt werden:
1. Byte: 10AAAAAA --> bit 0-5
2. Byte: 0AAA0AA1 --> die ersten 3 A's werden zu Bit 6-8, die rechten beiden bilden der output-Port(gemäss Decodern mit 4 Ausgängen)
Also: Byte 1: 1 0 A5 A4 A3 A2 A1 A0
Byte 2: 0 A8 A7 A6 0 P1 P0 wobei P1 und P0 für den Outputport stehen.
Dann hat der Decoder folgende Adresse: A8 A7 A6 A5 A4 A3 A2 A1 A0
und der Output-Port ist: P1 P0
Soviel zur Theorie.
Wenn ich nun Signale sende, erhalte ich aber folgende Zuordnungen:
Rocrail Adresse (PADA) | DCC Adresse auf Arduino | DCC Raw Package |
119 | 60 | 8F 77 2 FA |
41 | 21 | 86 71 0 F7 |
10 | 6 | 82 73 0 F1 |
Hat jemand Erfahrung damit? Wo liegt der Fehler? Mach ich was falsch, liefert Rocrail falsche Protokolle, ...
Braucht ihr mehr Infos?
Ich wäre um Unterstützung riesig dankbar!
Grüsse
Guido