Brick Groove Machine 0.9.3
Firmware embarqué pour contrôleur/synthé Brick
 
Chargement...
Recherche...
Aucune correspondance
Référence du fichier cart_proto.c

Encodage binaire générique du protocole de communication Cart Bus. Plus de détails...

#include "cart_proto.h"

Fonctions

size_t cart_proto_build_set (uint16_t param, uint8_t value, uint8_t out[4])
 Construit une trame binaire pour une commande “set param value”.
 
size_t cart_proto_build_get (uint16_t param, uint8_t out[4])
 Construit une trame binaire pour une commande “get param”.
 

Description détaillée

Encodage binaire générique du protocole de communication Cart Bus.

Ce protocole, historiquement dérivé du format XVA1, définit une trame UART simple et compacte utilisée pour l’échange de paramètres entre le firmware Brick et les cartouches matérielles.

Format des trames :

Type Description Format Exemple
Écriture Envoi d’une valeur vers la cartouche ‘'s’ param value\ilinebr </td> <td class="markdownTableBodyNone">s 10 127\ilinebr </td> </tr> <tr class="markdownTableRowEven"> <td class="markdownTableBodyNone"> **Lecture** \ilinebr </td> <td class="markdownTableBodyNone"> Demande de la valeur d’un paramètre \ilinebr </td> <td class="markdownTableBodyNone">'g' param\ilinebr </td> <td class="markdownTableBodyNone">g 10`

Extension d’adresse :

Si param >= 255, un octet d’extension est ajouté :

  • Set étendu : ‘'s’ 255 (param-256) value
  • **Get étendu** :'g' 255 (param-256)`

Cette approche permet d’adresser jusqu’à 512 paramètres par cartouche tout en restant compatible avec le protocole original XVA1.

Documentation des fonctions

◆ cart_proto_build_get()

size_t cart_proto_build_get ( uint16_t  param,
uint8_t  out[4] 
)

Construit une trame binaire pour une commande “get param”.

Construit une trame “get param” prête à envoyer sur UART.

Encode la commande dans un buffer out[] au format du protocole Cart Bus :

  • Si param < 255 → ‘'g’ param<tt>(2 octets)
  • Siparam >= 255'g' 255 (param-256)` (3 octets)
Paramètres
paramIdentifiant du paramètre à lire (0–511)
outBuffer de sortie (min. 4 octets)
Renvoie
Taille de la trame (2 ou 3 octets)

◆ cart_proto_build_set()

size_t cart_proto_build_set ( uint16_t  param,
uint8_t  value,
uint8_t  out[4] 
)

Construit une trame binaire pour une commande “set param value”.

Construit une trame “set param value” prête à envoyer sur UART.

Encode la commande dans un buffer out[] au format du protocole Cart Bus :

  • Si param < 255 → trame courte (‘'s’ param value, 3 octets)
  • Siparam >= 255→ trame étendue ('s' 255 (param-256) value`, 4 octets)
Paramètres
paramIdentifiant du paramètre (0–511)
valueValeur à envoyer (0–255)
outBuffer de sortie (min. 4 octets)
Renvoie
Taille de la trame (3 ou 4 octets)