Abstract Message Packet Format
Every message packet consists of a three byte header followed by an optional variable length data
block
The maximum packet size is 64 bytes
.
Destination device
uint8
(
)
Command length
uint8
(
)
Command id
uint8
(
)
Reserved
uint8
(
)
Command data
uint8
(
[])
Padding
uint8
(
[])
Receiving devices should use the destination device address and or the command identifier to
determine which messages to process
irrelevant or unknown commands and should be careful to skip the implicit padding as well
Defined Commands
Command 0
change configuration
:
Category
uint8
(
)
Parameter
uint8
(
)
Data type
uint8
(
)
Currently defined values are
:
0
void
boolean
:
/
1
signed byte
:
2
signed 16 bit integer
:
3
signed 32 bit integer
:
4
signed 64 bit integer
:
.
Device addresses are represented as an 8 bit unsigned integer
devices are numbered 0 through 254 with the value 255 reserved to indicate a
broadcast message to all devices
The command length is an 8 bit unsigned integer which specifies the length
of the included command data
header or any trailing padding bytes
The command id is an 8 bit unsigned integer which indicates the message type
being sent
Receiving devices should ignore any commands that they do not
.
understand
Commands 0 through 127 are reserved for commands that apply to
.
multiple types of devices
Commands 128 through 255 are device specific
.
This byte is reserved for alignment and expansion purposes
to zero
.
The command data may contain between 0 and 60 bytes of data
the data section is defined by the command itself
Messages must be padded up to a 32 bit boundary with 0x0 bytes
Any padding bytes are NOT included in the command length
The receiver should use the command length to skip
.
The category number specifies one of up to 256 configuration categories
available on the device
.
The parameter number specifies one of 256 potential configuration
parameters available on the device
specific parameters
Parameters 128 though 255 are reserved for parameters
.
that apply to multiple types of devices
The data type specifies the type of the remaining data
used to determine the number of elements in the message
must contain an integral number of data elements
A void value is represented as a boolean array of length zero
The data field is a 8 bit value with 0 meaning false and all other values
meaning true
.
Data elements are signed bytes
Data elements are signed 16 bit values
Data elements are signed 32 bit values
Data elements are signed 64 bit values
.
The length does NOT include the length of the
.
.
.
Parameters 0 through 127 are device
.
.
The packet length is
.
.
Developer Information
Individual
.
.
It should be set
.
The format of
.
.
.
.
Each message
.
.
699