Bonsoir a tous,
Voilà, j’utilise dans mon sketch des structure de ce type:
typedef struct
{ // pour test transmission
byte Controle1; // code le la séquence de 0 à 255 arbitraire actuellement une sequence de 3 trames sont envoyées contenant toutes les infos
int tempo; // temporisation entre chaque envoi, sert pour message d'attente /perte de supervision(fréquence d'envoi
bool trappe_levee; // trappe ouverte ou fermee? info de l'etat de la trappe
byte heure ; // heure, courante , lever ou coucher du soleil suivant code sequence
byte minutes ; // idem
byte secondes; // idem
float tension_batt; // tension batterie on fait remonter l'info
float tension_pv; // tension du PhotolVoltaique idem
byte alarme ; // Code de l'alarme locale (temperature, batterie, etc: 0 = RAS
float Temperature; // Temperature du ds3231
byte Controle2; // code de controle de la séquence pas indispenssable permet avec un xor d'etre presque certain qe les infos sont ok
} MaStructure;
je l'utilise pour envoyer via rf des infos
je m’étonne d'un truc,
j'ai un émetteur et un récepteur et tout vas bien
mais j'ai remarqué que lorsque je modifiais la structure coté émetteur (style je rajoute un champs, modifie le type etc..) , le récepteur continuais à utiliser les données reçues sans broncher.
comme j'ai mis un contrôle minimaliste je vire les trames qui ne m'interresse pas.
quand les structures ne concordent pas pourquoi ça ne plante pas?
j'ai même trouvé le moyen, a condition d'avoir le début de la structure identique de pouvoir envoyer /recevoir et surtout d'utiliser des structure tout a fait différentes
Si ton receveur n'utilise que les 1ers champs de la struct, et que tu as changé les derniers champs, on comprends que ça continue à marcher...
M'enfin plutôt que de passer du temps à comprendre pourquoi ça marche alors que ça devrait pas, tu aurais meilleur compte de recompiler et ré-installer systématiquement tous les programmes qui utilisent cette struct à chaque modif de celle-ci.
oui je comprends biggil, mais j'essaye de comprendre..je trouve que c'est tres " permissif" ca a de bon cotés... et des pièges..
l'autre soir je me suis arraché les cheveux car mon code à un moment me donnait les meme valeurs
dans le bout de code ci dessous, suivant la valeur de "message.Controle1" on affecte les valeurs reçue à des champs adéquats
sauf que pour " Info_Poulettes.heure_lever, Info_Poulettes.minute_lever et Info_Poulettes.heure_coucher , Info_Poulettes.minute_coucher " j'avais TOUJOURS les mêmes valeurs..j'ai pensé pb coté émetteur ==> non..
coté réception c’était bon aussi on recevait bien les bonnes infos
mais lors du petit bout ci aprés j'avais oublié le "break" du case 1... et ca passait comme une lettre a la poste dans les années 50!! (plus maintenant. ) je me suis vraiment cassé les pieds sur ce morceau...