Message packet format
A packet starts with $ (0x24), contains one or more TLV fields, and ends with # (0x23). TLVs are not nested.
Data types and sizes
| Type | Size | Description |
|---|---|---|
| String | N | Raw ASCII, no null terminator |
| Bool | 1 | 0x01 true, 0x00 false |
| uint8 / uint16 / uint32 | 1 / 2 / 4 | Big-endian |



