- Direction: Two-way
- Payload From Drone: 12-byte header followed by variable data
- Payload To Drone (Response): See below
The inbound header is structured as follows...
Byte
|
Purpose
|
Comment
|
0-1
|
File ID
|
Little-endian 16-bit unsigned integer
|
2-5
|
File Piece #
|
Little-endian 32-bit unsigned integer
|
6-9
|
File Chunk #
|
As above
|
10-11
|
Chunk Length
|
Little-endian 16-bit unsigned integer
|
A blob of data follows.
Note that chunks may be repeated and duplicates should be ignored.
Each "piece" of the file comes in 8 chunks.
Once all chunks have arrived the piece must be ack'd with a File Data message otherwise it will be resent.
The ack payload is structured as follows...
Byte
|
Purpose
|
Comment
|
0
|
Done
|
1 = OK, 0 = NAK
|
1-2
|
File ID
|
As above
|
3-5
|
File Piece #
|
As above
|
The final piece may consist of fewer than 8 chunks - you must ack it anyway.
Once all pieces have been sent and ack'd, you must send a File Done message.