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.