Motus Reference Manual
Page 102 of 146
Version 1.1
29/11/2019
4
3
u16
2
CRC16, see section 16.2.4
Table 30: ANPP header format
16.2.1
Header LRC
The header LRC (Longitudinal Redundancy Check) provides error checking on the
packet header. It also allows the decoder to find the start of a packet by scanning for a
valid LRC. The LRC can be found using the following:
LRC = ((pac packet_ crc[0] + crc[1])^0xFF) + 1
16.2.2
Packet ID
The packet ID is used to distinguish the contents of the packet. Packet IDs range from
0 to 255.
Within this range there are three different sub-ranges, these are system packets, state
packets and configuration packets.
System packets have packet IDs in the range 0 to 19. These packets are implemented
the same by every device using ANPP.
State packets are packets that contain data that changes with time, i.e. temperature.
State packets can be set to output at a certain rate. State packets are packet IDs in
the range 20 to 179.
Configuration packets are used for reading and writing device configuration.
Configuration packets are packet IDs in the range 180 to 255.
16.2.3
Packet Length
The packet length denotes the length of the packet data, i.e. from byte index 5
onwards inclusive. Packet length has a range of 0 – 255.
16.2.4
CRC
The CRC is a CRC16-CCITT. The starting value is 0xFFFF. The CRC covers only the
packet data.
16.3
Packet Requests
Any packet can be requested at any time using the request packet. See section 16.8.2.
16.4
Packet Acknowledgement
When configuration packets are sent to Motus, it will reply with an acknowledgement
packet that indicates whether the configuration change was successful or not. For
details on the acknowledgement packet, see section 16.8.1.
External data packets will also generate negative acknowledgement packets if there is
a problem with the packet. Positive acknowledgements will not be sent.