mirror of
https://github.com/lumapu/ahoy.git
synced 2025-04-29 10:16:21 +02:00
additional addressing example
This commit is contained in:
parent
a7e73f6ae8
commit
c01a4aa3c9
1 changed files with 30 additions and 6 deletions
|
@ -69,8 +69,13 @@ Systemaufbau
|
|||
Adressierung
|
||||
============
|
||||
|
||||
Die Seriennummern der DTU und der WR werden intern wie folgt
|
||||
als Adresse für die Kommunikation verwendet:
|
||||
Die Seriennummern der DTU und der WR werden wie folgt in Adressen für die
|
||||
Kommunikation verwendet:
|
||||
|
||||
Interne Kommunikation: Die meisten Datenpakete enthalten Quell- und
|
||||
Zieladresse der jeweiligen Gesprächspartner. Hier werden 4-Byte-Adressen
|
||||
verwendet, die direkt aus den letzten 8 Stellen der Seriennummer des
|
||||
Wechselrichters bzw. der DTU gewonnen werden:
|
||||
|
||||
Beispiel: Seriennummer ....72818832
|
||||
|
||||
|
@ -78,12 +83,31 @@ Innerhalb der Pakete auf (C) wird daraus die 4-Byte-Adresse
|
|||
0x72, 0x81, 0x88, 0x32 gebildet. Das ist die BCD-Darstellung
|
||||
der letzen 8 Dezimalziffern.
|
||||
|
||||
Die zugehörige Shockburst Zieladresse ist dieselbe, aber
|
||||
die Byte-Reihenfolge wird umgedreht, und eine 0x01 ergänzt
|
||||
(Shockburst ist auf 5-Byte-Adressen eingestellt).
|
||||
NRF24-Kommunikation: Die zugehörige Shockburst Zieladresse ist
|
||||
ähnlich, aber die Byte-Reihenfolge wird umgedreht, und es wird ein 0x01-Byte
|
||||
am Ende ergänzt (Shockburst ist auf 5-Byte-Adressen eingestellt).
|
||||
|
||||
Um eine Nachricht an das Gerät mit o.g. Seriennummer zu senden
|
||||
lautet die Zieladresse also (0x32, 0x88, 0x81, 0x72, 0x01).
|
||||
lautet die Shockburst-Zieladresse also (0x32, 0x88, 0x81, 0x72, 0x01).
|
||||
|
||||
|
||||
Additional example, this time for inverter with serial number 99973104619:
|
||||
|
||||
The datasheet specifies the over-the-air packet format: "Most Significant Byte
|
||||
(MSB) to the left" (cf figure 11)
|
||||
|
||||
Address := Byte_4, Byte_3, Byte_2, Byte_1, Byte_0 ("LSByte must be unique")
|
||||
|
||||
so 0x1946107301 results in
|
||||
|
||||
19 46 10 73 01 "on the wire"
|
||||
|
||||
Old-style NRF Libraries take uint64_t addresses. In this case, the correct
|
||||
address to pass to the library would be (uint64_t)0x1946107301ULL.
|
||||
|
||||
https://nrf24.github.io actually wants uint8_t*, which makes more sense. Pass
|
||||
it the bytes in the order the chip expects, i.e. MSB to LSB. In this case,
|
||||
the correct sequence of bytes to pass to the library would be \x19\x46\x10\x73\x01.
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue