en fait mon buffer de données sera toujours composé ainsi : STX-DATA-ETX ce qui n'est pas fixe c'est : la partie DATA.
Mais les 2 premiers caracteres de DATA m'indiqueront quel type de données je dois decomposer!
ainsi suivant le type de données je peux decomposer DATA avec pr mon exmple : 5caracteres pr le nom et 10 pr le prenom...
par contre je peux aussi avoir d'autre types de messages : ENQ et ACK donc
1/ je dois definir quel type de message m'arrive avec le premier octet de ma trame (ENQ,ACK,STX)
2/suivant le type de message je dois agir :
- Si c'est ENQ --> envoi d'un ACK
- Si c'est STX --> decomposition de DATA dans mes variables (memcpy)....
donc la solution de keniiyk me semble pas mal , car effectivement pr chaque chaine de caractere de DATA je sais de combien de caractere elle se compose.
il me reste juste a identifier les types ENQ ,STX ...
en faisant cela alors :
memcpy(MsgTyp, buffer, 1);
if (strcmp(MsgTyp,STX) ==0)
....
if (strcmp(MsgTyp,ENQ) ==0)
....
en declarant STX et ENQ comme ceci :
char STX = 0x02; // start transmission marker
char ETX = 0x03; // end transmission marker
char ACK = 0x06; // Acquittement du message
char ENQ = 0x05; // Enquiry
ca vous parait correct ?en tout cas merci pr votre aide!!!