Messages
All messages start with a uint8 indicating the message type, followed by zero or more fields specific to that message type.
Unless otherwise specified, all message fields are little-endian, and strings are null-terminated.
Message type quick reference
0x00
InfoRequest
Format |
Description |
---|---|
Message type ( |
0x01
InfoResponse
Format |
Description |
---|---|
Message type ( |
|
RPC major version. |
|
RPC minor version. |
|
RPC build number. |
|
Firmware major version. |
|
Firmware minor version. |
|
Firmware build number. |
|
Maximum packet size in bytes. |
|
Maximum message size in bytes. |
|
Maximum chunk size in bytes. |
|
Product Group Device type. |
0x0A
StartFirmwareUploadRequest
Format |
Description |
---|---|
Message type ( |
|
File SHA. |
|
CRC32 for the file. |
0x0B
StartFirmwareUploadResponse
Format |
Description |
---|---|
Message type ( |
|
Number of bytes already uploaded for this File SHA. Used to resume an interrupted upload. |
0x0C
StartFileUploadRequest
Format |
Description |
---|---|
Message type ( |
|
Name of the file as it will be stored on the hub. |
|
Program slot to store the file in. |
|
CRC32 for the file. |
0x0D
StartFileUploadResponse
Format |
Description |
---|---|
Message type ( |
|
0x10
TransferChunkRequest
Format |
Description |
---|---|
Message type ( |
|
Running CRC32 for the transfer. |
|
Chunk payload size. |
|
Chunk payload. |
0x11
TransferChunkResponse
Format |
Description |
---|---|
Message type ( |
|
0x14
BeginFirmwareUpdateRequest
Format |
Description |
---|---|
Message type ( |
|
CRC32 for the file. |
0x15
BeginFirmwareUpdateResponse
Format |
Description |
---|---|
Message type ( |
|
0x16
SetHubNameRequest
Format |
Description |
---|---|
Message type ( |
|
New hub name. |
0x17
SetHubNameResponse
Format |
Description |
---|---|
Message type ( |
|
0x18
GetHubNameRequest
Format |
Description |
---|---|
Message type ( |
0x19
GetHubNameResponse
Format |
Description |
---|---|
Message type ( |
|
Hub name. |
0x1A
DeviceUuidRequest
Format |
Description |
---|---|
Message type ( |
0x1B
DeviceUuidResponse
Format |
Description |
---|---|
Message type ( |
|
Device UUID. |
0x1E
ProgramFlowRequest
Format |
Description |
---|---|
Message type ( |
|
Program slot to use. |
0x1F
ProgramFlowResponse
Format |
Description |
---|---|
Message type ( |
|
0x20
ProgramFlowNotification
Format |
Description |
---|---|
Message type ( |
|
0x46
ClearSlotRequest
Format |
Description |
---|---|
Message type ( |
|
Program slot to clear. |
0x47
ClearSlotResponse
Format |
Description |
---|---|
Message type ( |
|
0x21
ConsoleNotification
Format |
Description |
---|---|
Message type ( |
|
Console message. |
0x32
TunnelMessage
Format |
Description |
---|---|
Message type ( |
|
Payload size in bytes. |
|
Payload data. |
0x28
DeviceNotificationRequest
Format |
Description |
---|---|
Message type ( |
|
Desired notification interval in milliseconds. (0 = disable) |
0x29
DeviceNotificationResponse
Format |
Description |
---|---|
Message type ( |
|
0x3C
DeviceNotification
Format |
Description |
---|---|
Message type ( |
|
Payload size in bytes. |
|
Payload as an array of device messages (see below). |
Device messages
The DeviceNotification payload is a sequence of device messages.
Like the standard messages, device messages start with a uint8 indicating how to interpret the rest of the message.