Toutes les variables ont-elles été définies?
Les variables sont-elles utilisées selon leur type correct? Je vois déjà une erreur dans le premier code:
définit le deuxième paramètre "Donnees_A_Communiquer" comme un float, mais
utilise ce deuxième paramètre comme un entier.
"CarteEthernetUDP" est-elle bien définie comme une instance EthernetUDP?
Pour incrémenter la variable i, on n'écrit pas "i = i + 1" mais i++".
Quand on envoie une Dataref, il faut compléter le texte de la Dataref par des espaces, CHAR(32), ce qui est fait, mais il faut également marquer la fin du message par un caractère nul, CHAR(0), ce qui manque.
Ce caractère doit être présent au début du dernier groupe de 4 bytes/octets, c'est-à-dire :
Nombre total de caractères du message = 500 => insérer un caractère nul en position 500-4+1=497.
Il faut donc ajouter une instruction
avant d'envoyer le paquet.
Modification : j'ai déduit le numéro 497 du site b58.svglobe.com mais, j'aurais plutôt mis 496 car l'indice commence à zéro. A essayer...
Les variables sont-elles utilisées selon leur type correct? Je vois déjà une erreur dans le premier code:
Code:
void EnvoyerDonneesX_Plane (char DonneesDeReference[], float Donnees_A_Communiquer)
Code:
[B]const int BOUTON_RADIO_COM_2 = 3;
RadiosActive = BOUTON_RADIO_COM_2;
EnvoyerDonneesX_Plane ("sim/cockpit/radios/nav_com_adf_mode", RadiosActive);[/B]
"CarteEthernetUDP" est-elle bien définie comme une instance EthernetUDP?
Pour incrémenter la variable i, on n'écrit pas "i = i + 1" mais i++".
Quand on envoie une Dataref, il faut compléter le texte de la Dataref par des espaces, CHAR(32), ce qui est fait, mais il faut également marquer la fin du message par un caractère nul, CHAR(0), ce qui manque.
Ce caractère doit être présent au début du dernier groupe de 4 bytes/octets, c'est-à-dire :
Nombre total de caractères du message = 500 => insérer un caractère nul en position 500-4+1=497.
Il faut donc ajouter une instruction
Code:
PaquetUDP_Donnees [497] = char (0);
Modification : j'ai déduit le numéro 497 du site b58.svglobe.com mais, j'aurais plutôt mis 496 car l'indice commence à zéro. A essayer...
. On apprend aussi qu'il faut faire attention à ce qu'il appelle le "byte-order", plus connu comme "endian-ness" (ça vient de Guliver, les big-endians et little-endians), donc ce qui vient du PC devrait être en little-endian, pour l'arduino je ne sais pas. Il va falloir vérifier et s'assurer que tout est dans le bon ordre.
Commentaire