transmission float avec XBee pro S3 900 MHz

Bonjour.

Je souhaite transmettre la longitude et la latitude d'une source en mouvement à partir d'un Arduino et d'un shield GPS vers un autre arduino équipé lui aussi d'un shield GPS. L'idée est de calculer la distance séparant les deux arduinos. Un shield XBee pro S3 900 MHz est connecté à chaque Arduino. Je précise que ce sont des Arduinos uno.
Les deux modules GPS fonctionnent parfaitement et je tente en guise de test d'envoyer un float puisque les longitudes et latitudes sont à virgules. On connaît l'erreur de distance importante à l'arrivée si on perd des décimales sur les longitudes et lattitudes. J'utilise par ailleurs un port série virtuel avec softwareSerial. J'aimerai savoir comment envoyer un float. Mon port série virtuel se nomme XBee. Au niveau du code émetteur je me tente un XBee.write (1.345) par exemple. Sur le récepteur en faisant un :
float recep = XBee.read(), je ne récupère que la partie entière soit ici 1. J'ai également tenté un XBee.print(1.345) au niveau de l'émetteur mais idem.....

Si quelqu'un a déjà rencontré ce problème de l'envoi et de la réception d'un float...

pour éviter tout doute sur le format de la valeur reconnue par le compilateur et donc les données envoyées, au lieu de faire un XBee.write (1.345); mettez votre nombre flottant dans une variable de type float et envoyez la comme cela

float val = 1.345;
 XBee.write (val);

vous devriez aussi lire ce que retourne cette fonction, c'est le nombre d'octets effectivement envoyés; s'il a bien envoyé votre float depuis un UNO, cette réponse devrait être 4 octets

Par contre côté réception c'est là que vous avez un soucis - XBee.read(); ne vous retourne qu'un seul octet. hors vous en avez envoyé 4 (si tout c'est bien passé).

il vous faut donc attendre et lire 4 octets en les rengageant en mémoire au bon endroit pour refabriquer votre float.