1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
char readBuffer[10];
char writeBuffer[10];
char checkCmd[10];
char tabCmd[10] = {"cmd1", "cmd2"};
char *ptr;
char detectCMD[10] = {"#CMD"}; //4 char
int res;
int i;
//Recherche le format des commandes
ptr = strstr(readBuffer, detectCMD);
if (ptr != NULL) {
res = ptr - readBuffer + 1;
printf("\r\n\"%s\" found at position %d\r\n",
detectCMD, res);
//définit la position de la commande reçue (4char)
res += sizeOfCmd; //position de #CMD + 4 pour débuter la capture de la cmd
//On place le tout dans un string pour ensuite le comparer au tableau de cmd
for (i = res; i < res + 4; i++) {
strcat(checkCmd, readBuffer[i]);
}
printf("\r\nCMD need to be check : \"%s\" \r\n", checkCmd);
//Pour chaque possibilité de commande (2) on check si le string est comparable
for (i = 0; i < 2; i++) {
if (strcmp(tabCmd[i], checkCmd) == 0) {
printf("\r\nCmd match %s\r\n", checkCmd);
} else {
printf("\r\nNot valide Cmd %s\r\n", checkCmd);
}
}
} else {
printf("\r\n\"%s\" not found\r\n", detectCMD);
printf("\r\nProbably a incoming message\r\n");
} |