Protocol Port | Description |
---|
0 | Unreliable |
1 | Reliable |
The following version numbers are advertised during the connection request:
Pia version | Version |
---|
5.19 - 5.20 | 0 |
5.21 - 5.27 | 1 |
5.28 - 5.29 | 2 |
5.30 - 5.43 | 3 |
Join request
Up to 5.10:
Type | Description |
---|
Uint8 | Message type (1) |
Uint8 | Station index |
Uint16 | Padding (always 0) |
StationAddress | Station address |
Uint32 | Ack id |
5.11 - 5.18:
Type | Description |
---|
Uint8 | Message type (1) |
Uint8 | Station index |
Uint32 | Ack id |
Join response (success)
If the join response is too big to be sent in a single packet it is split into fragments.
Up to 3.10:
Type | Description |
---|
Uint8 | Message type (2) |
Uint8 | Number of stations in mesh, including joining station |
Uint8 | Index of host station |
Uint8 | Index of joining station |
Uint8 | Number of fragments |
Uint8 | Fragment index |
Uint8 | Number of station info entries in current fragment (N) |
Uint8 | Base index of station info in current fragment |
StationInfo (xN) | Station info list |
Uint32 | Ack id |
4.8 - 4.10:
Type | Description |
---|
Uint8 | Message type (2) |
Uint8 | Number of stations in mesh, including joining station |
Uint8 | Index of host station |
Uint8 | Index of joining station |
Uint8 | Number of fragments |
Uint8 | Fragment index |
Uint8 | Number of station info entries in current fragment (N) |
Uint8 | Base index of station info in current fragment |
Uint8 | Maximum number of stations in first mesh |
Uint8 | Maximum number of stations in second mesh |
Uint16 | Padding |
StationInfo (xN) | Station info list |
Uint32 | Ack id |
5.18
Type | Description |
---|
Uint8 | Message type (2) |
Uint8 | Number of stations in mesh, including joining station |
Uint8 | Index of host station |
Uint8 | Index of joining station |
Uint8 | Number of fragments |
Uint8 | Fragment index |
Uint8 | Number of station info entries in current fragment (N) |
Uint8 | Base index of station info entries in current fragment |
Uint8 | Maximum number of stations in first mesh |
Uint8 | Maximum number of stations in second mesh |
Uint8 | Maximum number of stations (total) |
Uint8 | Padding |
Uint32 | Update counter (incremented on each mesh update) |
StationInfo (xN) | Station info list |
Uint32 | Ack id |
Join response (denying)
Offset | Size | Description |
---|
0x0 | 1 | Message type (2) |
0x1 | 1 | Always 0 |
0x2 | 1 | Always 0xFF |
0x3 | 1 | Always 0xFF |
0x4 | 1 | Reason |
Leave request
Offset | Size | Description |
---|
0x0 | 1 | Message type |
0x1 | 1 | Station index |
0x2 | 2 | Padding |
0x4 | 8 | StationAddress |
Leave response
Offset | Size | Description |
---|
0x0 | 1 | Message type |
0x1 | 1 | Station index |
0x2 | 2 | Padding |
0x4 | 8 | StationAddress |
Destroy request
Offset | Size | Description |
---|
0x0 | 1 | Message type |
0x1 | 1 | Station index |
0x2 | 2 | Padding |
0x4 | 8 | StationAddress |
Destroy response
Offset | Size | Description |
---|
0x0 | 1 | Message type |
0x1 | 1 | Station index |
Update mesh
Because this message is sent through the reliable mesh protocol it does not need to be split into fragments like the join response.
Offset | Size | Description |
---|
0x0 | 1 | Message type |
0x1 | 1 | Number of stations |
0x2 | 1 | Host index |
0x3 | 1 | Always 0 |
0x4 | 4 | Update counter (incremented on each mesh update) |
0x8 | 1 | Number of fragments |
0x9 | 1 | Fragment index |
0xA | 1 | Number of station info entries in current fragment |
0xB | 1 | Base index of station info entries in current fragment |
0xC | | StationInfo entries |
StationInfo
Up to 5.9:
Type | Description |
---|
StationConnectionInfo | Connection info |
Uint8 | Station index |
| Padding such that the size becomes a multiple of 4 bytes. |
5.10 - 5.18:
Offset | Size | Description |
---|
0x0 | 0x3E | StationLocation. If it takes up less than 0x3E bytes the remaining bytes are filled with 0’s. |
0x3E | 1 | Station index |
0x3F | 1 | Padding |