public void Envoi_Deplacement(GameObject deplacement_panel) { TMP_InputField Destination_X; TMP_InputField Destination_Y; TMP_InputField Destination_Distance; TMP_InputField Destination_Theta; TMP_InputField Vitesse_Roue_Gauche; TMP_InputField Vitesse_Roue_Droite; Destination_X = FindChildByRecursion(deplacement_panel.transform, "X").GetComponent <TMP_InputField>(); Destination_Y = FindChildByRecursion(deplacement_panel.transform, "Y").GetComponent <TMP_InputField>(); Destination_Distance = FindChildByRecursion(deplacement_panel.transform, "Distance").GetComponent <TMP_InputField>(); Destination_Theta = FindChildByRecursion(deplacement_panel.transform, "Theta").GetComponent <TMP_InputField>(); Vitesse_Roue_Gauche = FindChildByRecursion(deplacement_panel.transform, "Vitesse Roue Gauche").GetComponent <TMP_InputField>(); Vitesse_Roue_Droite = FindChildByRecursion(deplacement_panel.transform, "Vitesse Roue Droite").GetComponent <TMP_InputField>(); st_COORDONNEES coord = new st_COORDONNEES(); st_DESTINATION_ROBOT dest = new st_DESTINATION_ROBOT(); if (Destination_X.text != "") { coord.X = short.Parse(Destination_X.text, Common_settings.culture); } if (Destination_Y.text != "") { coord.Y = short.Parse(Destination_Y.text, Common_settings.culture); } if (Destination_Distance.text != "") { coord.Distance = short.Parse(Destination_Distance.text, Common_settings.culture); } if (Destination_Theta.text != "") { float temp_ang = float.Parse(Destination_Theta.text, Common_settings.culture); temp_ang *= Mathf.Deg2Rad; temp_ang *= 100; coord.Angle = (short)temp_ang; } if (Vitesse_Roue_Gauche.text != "") { coord.Vitesse_Roue_Gauche = short.Parse(Vitesse_Roue_Gauche.text, Common_settings.culture); } if (Vitesse_Roue_Droite.text != "") { coord.Vitesse_Roue_Droite = short.Parse(Vitesse_Roue_Droite.text, Common_settings.culture); } coord.Type_Deplacement = (enum_TYPE_MOVE_)FindChildByRecursion(deplacement_panel.transform, "type deplacement").GetComponent <TMP_Dropdown>().value; coord.Type_Arret = (enum_TYPE_ARRET_)FindChildByRecursion(deplacement_panel.transform, "Freinage").GetComponent <TMP_Dropdown>().value; st_Parametre_Deplacement parametres = new st_Parametre_Deplacement(); parametres.Distance_Detection_Fin_Trajectoire = 3 * 100; parametres.Angle_Avant_Debut_Avance = (byte)(0.1F * 100); parametres.Angle_Detection_Fin_Trajectoire = (byte)(0.05F * 100); coord.ptrParameters = parametres; dest.coord = coord; if (FindChildByRecursion(deplacement_panel.transform, "Effacement").GetComponent <TMP_Dropdown>().value == 0) { dest.Replace = false; } else { dest.Replace = true; } Communication.Communication_Trame trame = new Communication.Communication_Trame(); trame = Communication.GetTrameFromClass <st_DESTINATION_ROBOT>(dest); trame.Slave_Adresse = Communication.Slave_Adresses.MultiFct_1; //uniquement la carte 1 qui gère les déplacement trame.Instruction = Communication.Com_Instruction.DESTINATION_ROBOT; trame.XBEE_DEST_ADDR = Communication.Adress_Xbee.ALL_XBEE; GameObject.FindWithTag("Communication port").GetComponent <Message_Sender>().Send_Trame(trame); }
/*************************************************/ #endregion public void Envoi_Ordre_Deplacement() { st_COORDONNEES coord = new st_COORDONNEES(); st_DESTINATION_ROBOT dest = new st_DESTINATION_ROBOT(); if (destination_x.text != "") { coord.X = (short)Convert.ToSingle(destination_x.text.Replace('.', ',')); } if (destination_y.text != "") { coord.Y = (short)Convert.ToSingle(destination_y.text.Replace('.', ',')); } if (angle.text != "") { coord.Angle = (short)Convert.ToSingle(angle.text.Replace('.', ',')); } coord.Angle *= 100; if (distance.text != "") { coord.Distance = (short)Convert.ToSingle(distance.text.Replace('.', ',')); } coord.Type_Deplacement = (enum_TYPE_MOVE_)Type_deplacement.value; coord.Type_Arret = (enum_TYPE_ARRET_)Freinage.value; st_Parametre_Deplacement parametres = new st_Parametre_Deplacement(); parametres.Distance_Detection_Fin_Trajectoire = 3 * 100; parametres.Angle_Avant_Debut_Avance = (byte)(0.1F * 100); parametres.Angle_Detection_Fin_Trajectoire = (byte)(0.05F * 100); coord.ptrParameters = parametres; dest.coord = coord; if (Effacement.value == 0) { dest.Replace = false; } else { dest.Replace = true; } Communication.Communication_Trame trame = new Communication.Communication_Trame(); trame.Slave_Adresse = Communication.Slave_Adresses.ALL_CARDS; trame.Instruction = Communication.Com_Instruction.DESTINATION_ROBOT; trame.XBEE_DEST_ADDR = Communication.Adress_Xbee.ALL_XBEE; int size = Marshal.SizeOf(dest); byte[] arr = new byte[size]; IntPtr ptr = Marshal.AllocHGlobal(size); Marshal.StructureToPtr(dest, ptr, true); Marshal.Copy(ptr, arr, 0, size); Marshal.FreeHGlobal(ptr); trame.Data = arr; trame.Length = (byte)size; Communication_port.GetComponent <Communication_Send_Instructions>().Send_Instruction(trame); }