General Message Format ====================== Currently messages can maximally use 21 bytes for data because: - maximum buffer size if 24 bytes - a message contains a checksum byte Offset Length Meaning --------------------------------------------------------- 0 1 destination address 1 1 remaining message length --------------------------------------------------------- 2 1 command code 3 1 source address --------------------------------------------------------- 4 n payload data (depending on command code) --------------------------------------------------------- 4+n 1 CRC8 byte PING Message ============ Offset Length Meaning --------------------------------------------------------- 0 1 destination address 1 1 remaining message length --------------------------------------------------------- 2 1 command code 3 1 source address --------------------------------------------------------- 4 1 CRC8 byte PONG Message ============ Offset Length Meaning --------------------------------------------------------- 0 1 destination address 1 1 remaining message length --------------------------------------------------------- 2 1 command code 3 1 source address --------------------------------------------------------- 4 1 CRC8 byte RESULT Message ============== Offset Length Meaning --------------------------------------------------------- 0 1 destination address 1 1 remaining message length --------------------------------------------------------- 2 1 command code 3 1 source address --------------------------------------------------------- 4 2 ref msg id 6 1 result code --------------------------------------------------------- 7 1 CRC8 byte Address Messages ================ This includes HAVE_ADDRESS, CLAIM_ADDRESS and DENY_ADDRESS. Offset Length Meaning --------------------------------------------------------- 0 1 destination address 1 1 remaining message length --------------------------------------------------------- 2 1 command code 3 1 source address --------------------------------------------------------- 4 4 UID of the sending node 8 1 bus address --------------------------------------------------------- 9 1 CRC8 byte RANGE Message ============= Offset Length Meaning --------------------------------------------------------- 0 1 destination address 1 1 remaining message length --------------------------------------------------------- 2 1 command code 3 1 source address --------------------------------------------------------- 4 1 first available address 5 1 last available address --------------------------------------------------------- 6 1 CRC8 byte VALUE Message ============== Offset Length Meaning --------------------------------------------------------- 0 1 destination address 1 1 remaining message length --------------------------------------------------------- 2 1 command code (REPORT_VALUE, REQ_SET_VALUE, RSP_SET_VALUE) 3 1 source address --------------------------------------------------------- 4 4 UID of the sending node 8 2 msg id/ref msg id 10 1 value id 11 1 value type 12 2 value 14 2 denom --------------------------------------------------------- 16 1 CRC8 byte DEVICE Message ============== Offset Length Meaning --------------------------------------------------------- 0 1 destination address 1 1 remaining message length --------------------------------------------------------- 2 1 command code 3 1 source address --------------------------------------------------------- 4 4 UID of the sending node 8 4 manufacturer 12 2 device type 14 1 device hw version 15 1 device hw revision 16 1 firmware variant (depends on hardware type) 17 1 firmware version: major 18 1 firmware version: minor 19 1 firmware version: patchlevel --------------------------------------------------------- 20 1 CRC8 byte SENDSTATS Message ================= Offset Length Meaning --------------------------------------------------------- 0 1 destination address 1 1 remaining message length --------------------------------------------------------- 2 1 command code 3 1 source address --------------------------------------------------------- 4 4 UID of the sending node 8 2 packets out 10 2 collisions 12 2 line busy errors --------------------------------------------------------- 14 1 CRC8 byte RECVSTATS Message ================= Offset Length Meaning --------------------------------------------------------- 0 1 destination address 1 1 remaining message length --------------------------------------------------------- 2 1 command code 3 1 source address --------------------------------------------------------- 4 4 UID of the sending node 8 2 packets in 10 2 content errors (invalid msg length, CRC errors) 12 2 io errors 14 2 no buffer errors 16 2 handled packets 18 2 missed packets --------------------------------------------------------- 20 1 CRC8 byte FLASHSTART Message ================== Offset Length Meaning --------------------------------------------------------- 0 1 destination address 1 1 remaining message length 2 1 command code 3 1 source address --------------------------------------------------------- 4 4 UID --------------------------------------------------------- 8 1 CRC8 byte FLASHREADY Message ================== Offset Length Meaning --------------------------------------------------------- 0 1 destination address 1 1 remaining message length --------------------------------------------------------- 2 1 command code 3 1 source address --------------------------------------------------------- 4 4 UID 8 4 manufacturer 12 2 device type 14 1 device hw version 15 1 device hw revision 16 1 firmware variant (depends on hardware type) 17 1 firmware version: major 18 1 firmware version: minor 19 1 firmware version: patchlevel 20 2 page size in bytes --------------------------------------------------------- 22 1 CRC8 byte FLASHDATA Message ================= Offset Length Meaning --------------------------------------------------------- 0 1 destination address 1 1 remaining message length --------------------------------------------------------- 2 1 command code 3 1 source address --------------------------------------------------------- 4 2 address 6 n data bytes (max 124 bytes) --------------------------------------------------------- 6+n 1 CRC8 byte FLASHEND Message ================ Offset Length Meaning --------------------------------------------------------- 0 1 destination address 1 1 remaining message length --------------------------------------------------------- 2 1 command code 3 1 source address --------------------------------------------------------- 4 1 reason (0 if okay, error code to abort) --------------------------------------------------------- 5 1 CRC8 byte FLASHRESPONSE Message ===================== Offset Length Meaning --------------------------------------------------------- 0 1 destination address 1 1 remaining message length --------------------------------------------------------- 2 1 command code 3 1 source address --------------------------------------------------------- 4 1 response code --------------------------------------------------------- 5 1 CRC8 byte