Skip to main content

Module proto

Module proto 

Source
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§

FrameParser
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
ProtoError
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. out doit faire au moins 4 + payload.len().
xor