Bonjour à tous,

dans le cadre d'un projet, je dois faire communiquer deux petites Arduino Ethernet par un réseau. Ma première carte stocke des données dans 6 variables (ce sont des int, donc 16 bits). Je dois envoyer ces 6 valeurs par protocole UDP à la seconde carte qui les affiche sur LCD, bref qui s'amuse avec quoi

Voilà un petit bout de code concernant la fameuse trame UDP que je souhaite envoyer:

Udp.beginPacket( /*IP_DESTINATION*/ , /*PORT_DESTINATION*/ );

Udp.write(toto1);
Udp.write(toto2);
Udp.write(toto3);
Udp.write(toto4);
Udp.write(toto5);
Udp.write(toto6);

Udp.endPacket();


Au début j'avais quelques doutes quant au fait d'écrire 6 Udp.write() de suite mais ça compile.

En revanche j'ai une première petite question: admettons que ma variable toto2, type int de 16bits, ait pour valeur 0000000000111111. Est-ce qu'au moment du Udp.write() les 10 zéros sont conservés (parceque bon, dans l'absolu ils servent à rien) ou alors il n'apparaitra dans la trame que les 6 derniers bits?

Au niveau de la récupération des données je suis également un peu perdu. Avec 6 variables de type int on a une trame de données (utiles) de 96 bits. Mon idée pour récupérer chaque valeur dans tout ce bazar était d'appliquer au buffer qui les récupérera un masque pour ne conserver que les bits désirés, puis de faire un petit décalage à droite avant d'affecter la variable, le tout en fonction de la position des 16 bits dans la trame.
Question idiote peut-être, mais si j'écris chaque variable dans l'odre ci-dessus, toto1 va se retrouver dans la trame avec les bits de poids le plus fort ou les bits de poids le plus faible?

merci d'avance pour la lecture!