begin //il faut une boucle car taskCreateSync ne réappelle pas le programme, juste il lui donne la main périodiquement while true pHereEtat=here(tTool,world) jHereEtat=herej() //déclarer une variable string et utiliser la fonction tostring pour formater //adresse mac puis numéro de la première donnée capteur émise sEtat="DC:4F:22:00:00:00 100" sEtat=sEtat+" "+toString(".6",pHereEtat[0].trsf.x) sEtat=sEtat+" "+toString(".6",pHereEtat[0].trsf.y) sEtat=sEtat+" "+toString(".6",pHereEtat[0].trsf.z) sEtat=sEtat+" "+toString(".6",pHereEtat[0].trsf.rx) sEtat=sEtat+" "+toString(".6",pHereEtat[0].trsf.ry) sEtat=sEtat+" "+toString(".6",pHereEtat[0].trsf.rz) //sEtat=sEtat+" "+toString(".6",pHereEtat[0].config.shoulder) //shoulder n'est pas un numero, si je veux l'envoyer il faut faire une correpondante avec numéros siSocketUDP=sEtat //envoi en 2 temps de la config du robot, car sinon la chaine est tronquée car trop longue (>128 octets) //envoyer les paramètres suivants avec un offset par rapport aux précédents //adresse mac puis numéro de la première donnée capteur émise sEtat="DC:4F:22:00:00:00 106" sEtat=sEtat+" "+toString(".6",jHereEtat[0].j1) sEtat=sEtat+" "+toString(".6",jHereEtat[0].j2) sEtat=sEtat+" "+toString(".6",jHereEtat[0].j3) sEtat=sEtat+" "+toString(".6",jHereEtat[0].j4) sEtat=sEtat+" "+toString(".6",jHereEtat[0].j5) sEtat=sEtat+" "+toString(".6",jHereEtat[0].j6) siSocketUDP=sEtat //Il faut un delay de la periodicité de la tâche sinon les données s'accumulent dans la variable sEtat et le controleur plante delay(0.1) endWhile end