Je travail avec une communication Bluetooth BLE sur Android ,
J’envoie plusieurs longs message terminés par un saut de ligne à la suite à partir de l’arduino et d’un module HM-10 .
Je reçois seulement des bout de message fragmentés, ce qui est normal, je les place dans un tampon fifo avec Enqueue(), ça fait bien le job tout seul
Code : Tout sélectionner
BoutDeMessageRecu = Encoding.ASCII.GetString (bytes); //Reception ici , ca change rien >> Encoding.UTF8 ou Encoding ASCII
stringFifoBoutDeMessage.Enqueue(BoutDeMessageRecu); // FIFO
Code : Tout sélectionner
MessageTemp = String.Concat(MessageTemp, Temp);
Code : Tout sélectionner
public void IMPORTFIFO()
{
FifoCount = stringFifoBoutDeMessage.Count; // nombre de fragments
if (FifoCount > 0)
{
Temp = stringFifoBoutDeMessage.Dequeue() ; // extrait le premier message de FIFO et décrémente FifoCount tout seul
MessageTemp = String.Concat(MessageTemp, Temp);
Debug.Log(Temp);
Debug.Log("______________________________MessageTemp " + MessageTemp);
if( Temp.EndsWith("\n") == true)
{
Debug.Log("CRLF OK");
SerialCOM.Parse(MessageTemp);
//Debug.Log("------------------------------------MessageTemp " + MessageTemp);
//MessageTemp = ("");
temp = ("");
PanEcran.AjoutObjet();
MessageTemp.Remove(0);
Debug.Log("______________________________MessageTemp VIDE " + MessageTemp);
}
}
}