#include "pico/stdlib.h"

struct message_t{
  uint8_t type; // 'd' pour demande, 'r' pour une réception de données, 'w' pour écrire des données, '>' pour des logs
  uint8_t id_carte; // Identifiant de la carte (on reprend les adresses I2C)
  uint8_t adresse_registre; // Adresse du registre lu
  uint8_t taille_donnees;
  uint8_t donnees[255];
  uint8_t idx; // numéro de la liaison CDC qui a reçu le message
};

struct message_t messagerie_read_message(const char * chaine, unsigned int * position_chaine);
char message_to_string(struct message_t message, char * chaine_texte);
uint16_t message_prepare_for_usb(struct message_t message, uint8_t * message_binaire);

bool message_disponible(void);
void put_message(struct message_t message);
struct message_t get_message(void);