Expand description
Protocole série binaire host ↔ Pico.
Format trames (spec complète : docs/protocol.md) :
- Host → Pico :
0xAA [cmd] [len] [payload…(len)] [xor] - Pico → Host :
0xBB [event] [len] [payload…(len)] [xor]
xor = OU-exclusif de [cmd|event, len, payload…] (tout sauf le start byte
et le xor lui-même).
Structs§
- Frame
Parser - Décodeur octet-par-octet : les octets USB arrivent en paquets de taille arbitraire, on accumule jusqu’à une trame complète. Resynchronise tout seul sur le start byte si on tombe au milieu d’un flux.
Enums§
- Cmd
- Command
- Commande décodée + sa charge utile interprétée (ce que la couche moteur reçoit).
- Event
- Proto
Error - State 🔒
Constants§
- FRAME_
START_ H2P - FRAME_
START_ P2H - MAX_
PAYLOAD - Payload le plus gros = SetAll (8 octets, un par moteur).
Functions§
- encode_
event - Encode une trame Pico → Host dans
out. Renvoie le nombre d’octets écrits.outdoit faire au moins4 + payload.len(). - xor