Par exemple j'envoie en bluetooth : "1-42-25" .
et les valeurs se serait misent dans les valeurs correspondantes : 1 dans la variable "heure" , 42 dans la variable "minutes" et 25 dans la variable "seconde" .
voir la fonction stroktu peux soit conserver le "-" comme separateur de champ de valeur, soit utiliser le "," comme le propose Sylvain
Le ";" etant souvent utilisé , par exemple dans les fichier Excel .CSV comma separator variable
le comma americain etant ; (et , pour les francais).
Pesro c'est aussi celui là que je prefere (le ";") à cause du separateur de decimales nombre qui est déja une virgule (en francais).
En C , la fonction strtok permet de desassembler un paquet séparé par une virgule (ou autre caractere specifique)
comme on peut le faire aussi coté Appinventor2 ! dans le Sens PIC -> Appli smart Phone
un exemple que j'ai utilisé pour commander la couleur de 3 leds via un terminal
ici le separateur est une virgule
le test commence apres les 3 lettres RGB
strok permet de gerer automatiquement la position du pointeur
qui se deplace sur chaque emplacement de virgule..
on peut faire autrement, mais pourqoui ne pas utiliser une fonction dédiée pour ..
Code : Tout sélectionner
strConstRamCpy(buffer1,"RGB1-123-245\r\n");
p1=0;
p1=strstr(buffer1,"RGB");
if (p1>0)
{
cc=*(p1+3); UART1_Write_CText("Led # ");UART1_Write(cc);
CRLF1();
p1=strtok(p1,"-"); UART1_Write_Text(p1);CRLF1();
Delay_ms(1000);
i=0;
do
{ p1=strtok(0, "-"); if (p1!=0)
{
UART1_Write_CText("Parametre ");
WordToStr(i,CRam1);
UART1_Write_Text(CRam1); UART1_Write(TAB);
UART1_Write_Text(p1);
ValColor=atoi(p1);
IntToStr(ValColor,CRam1);
UART1_Write_CText(" ValColor ");UART1_Write_CText(Colors[i]);
UART1_Write(TAB); UART1_Write_Text(CRam1);
CRLF1();
Delay_ms(1000);
i++;
}
}while (p1!=0) ;
CRLF1();
Delay_ms(1000);
}
strConstRamCpy(txt,"\n End of test \n");
UART1_Write_Text(txt);
CRLF1();
while(1);
}