#include "pico/stdlib.h" #include "messages_propulsion.h" #define MESSAGE_TIMEOUT_US 2000 // Attention l'ordre de déclaration est important !! On fait de la copie de donnée en faisant confiance à cet ordre ! 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]; }; struct message_requete_t{ uint8_t commande; 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; }; struct message_applicatif_t{ uint8_t commande; 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; union{ #ifdef MESSAGE_PROPULSION_H struct msg_propulsion_position_t msg_propulsion_position; #endif }donnees_applicative; }; bool messagerie_message_disponible(); struct message_t messagerie_get_message(); void messagerie_put_message(struct message_t message);