Begin documenting PixelHub Procotol
This commit is contained in:
parent
d6a82dafd8
commit
0b95857a60
1 changed files with 38 additions and 0 deletions
38
PixelHub Protocol.md
Normal file
38
PixelHub Protocol.md
Normal file
|
@ -0,0 +1,38 @@
|
|||
# PixelHub Protocol Documentation
|
||||
> Version 0.1
|
||||
|
||||
The _PixelHub Protocol_ is a communication protocol for WiFi-capable [Hull PixelBots](http://hullpixelbot.com/hullpixelbot/2017/02/01/welcome-to-hullpixelbot.html) to communicate with and be controlled by a remote server. While the protocol is binary, it is designed to be fairly easy to parse and implement.
|
||||
|
||||
## Basic Information
|
||||
The PixelHub Protocol is conducted over a single TCP connection. Obtaining these details can be done automatically by listening to the UDP multicast beacon set up by the server.
|
||||
|
||||
In this specification document, when referring to bytes, The C++ notation will be used. Examples: `0b00000000`, `0b01010101`.
|
||||
|
||||
Each PixelHub message is terminated by a null byte (`0b00000000`).
|
||||
|
||||
## Conversation Flow
|
||||
|
||||
- [ Hub -> Bot ]: Send instruction
|
||||
- [ Bot -> Hub ]: Acknowledge instruction
|
||||
- [ Bot ]: Execute command
|
||||
- [ Bot -> Hub ]: Notify about instruction completion
|
||||
|
||||
## Message Struture
|
||||
|
||||
### Basic Message
|
||||
```
|
||||
+--------+--------+--------+--------+
|
||||
| Byte 1 | Byte 2 | Byte 3 | Byte 4 |
|
||||
+--------+--------+--------+--------+
|
||||
| Message Type |
|
||||
+--------+--------+--------+--------+
|
||||
| Message Id |
|
||||
+--------+--------+--------+--------+
|
||||
| Message Contents |
|
||||
+--------+--------+--------+--------+
|
||||
| Null |
|
||||
| Byte |
|
||||
+--------+
|
||||
```
|
||||
|
||||
|
Reference in a new issue