Bon maintenant j'arrive a lire sur le port mais j'ai deux problème qui persiste:
-le 1er c'est que mon programme ne capte pas systématiquement toutes les messages du port com (j'ai fait un code sur l'arduino pour envoyer le message que quand j'appuis sur un bouton et la trame est lu au bout de n appui.
-Le 2eme est que quand je remet le tableau a 0 dans la fonction de lecture je n'arrive plus a lire le message entrant.
Code c de la fonction de lecture du port:
int readport()
{
//in[5]=0; dès que j'exécute ces lignes je n'arrive plus a lire sur le port.
//in[4]=0;
//in[3]=0;
//in[2]=0;
//in[1]=0;
//in[0]=0;
int i=1;
int reade;
int j;
//{
while(in[5]!='$')
{
reade=(read(fd,&in,6));
if(reade<0)
printf("erreur lecture\n code: %d\n",reade);
else printf("read=%d\n",reade);
printf("sizeof de table: %d\n",sizeof(in));
}
return ∈
// }
}
Main():
int main(int argc, char *argv[])
{
int c,j;
/******************************************
détection du port usb
*******************************************/
RecherchePort();
if(!RecherchePort()) return 0;
/*******************************************
fin de détection
********************************************/
printf("what USB port is your Arduino Board pluged into?");
printf("Example:\n/dev/tty.usbserial-A70041zl\nor\n/dev/tty.usbserial-A1001N2Y\n");
scanf("%s", &USBPort);
Ouverture_port();
if(!Ouverture_port()) return 0;
while(1)
{
c=readport();
printf("valeur recu =%c%c%c%c%c%c\n",in[0],in[1],in[2],in[3],in[4],in[5]);
}
return EXIT_SUCCESS;
}
Et le tableau dans lequel je range mes données venant du port série est déclaré comme ceci en variable globale:
char in[6]={0};
Si vous avez des idées elles sont le bienvenue car je stagne un peut la...