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
5: UTF-8 string
Data types 6 through 127 are reserved
128: signed 5.11 fixed point
Data types 129 through 255 are available for device specific purposes
Operation type (uint8)
0: assign value
1: offset / toggle value
Operation types 2 through 127 are reserved
Operation types 128 through 255 are available for device specific purposes
Data (void)
.
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. Parameters 0 through 127 are 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. The packet length is
used to determine the number of elements in the message. Each 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
Data elements represent a UTF-8 string with no terminating character.
.
Data elements are signed 16 bit integers representing a real number with
5 bits for the integer component and 11 bits for the fractional component.
The fixed point representation is equal to the real value multiplied by 2^11. The
representable range is from -16.0 to 15.9995 (15 + 2047/2048).
The operation type specifies what action to perform on the specified parameter.
Currently defined values are:
The supplied values are assigned to the specified parameter. Each element
will be clamped according to its valid range. A void parameter may only be
'assigned' an empty list of boolean type. This operation will trigger the action
associated with that parameter. A boolean value may be assigned the value zero
for false, and any other value for true.
Each value specifies signed offsets of the same type to be added to the current
parameter values. The resulting parameter value will be clamped according to
their valid range. It is not valid to apply an offset to a void value. Applying any
offset other than zero to a boolean value will invert that value.
.
The data field is 0 or more bytes as determined by the data type and number of
elements.
.
.
.
DeveloperInformation
1725