Gestion de chaine de caractère
ABouras
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
-
totof31 Messages postés 163 Date d'inscription Statut Membre Dernière intervention -
totof31 Messages postés 163 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je cherche à stocker dans un tableau "message" une chaîne de caractères envoyé régulièrement par un GPS par protocole XBee et reçu sur une clé USB XStick (Port série).
Le message est le suivant :
Je reçois de manière régulière ces messages, et j'aimerai stocker à chaque fois que j'appelle ma fonction de lecture, un seul de ces messages avec le bon ordre des caractères évidemment.
Il faudrait donc que je puisse repérer le début du message ("Head" par exemple avec la fonction "strstr"), puis que je stock les caractères dans le tableau "message[]" jusqu'à ce que j'arrive à la fin du message. Une fois que j'ai récupérer le premier message, j'efface le tableau puis je recommence avec le message suivant et ainsi de suite ...
Pour l'instant, j'arrive à stocker un nombre N de caractère (genre N=110) dans le tableau data[]. Mais quand je lance ma fonction, il stock N caractère dans data[] mais il commence au mauvais caractère, par exemple j'affiche :
Pouvez-vous m'aider svp ?
Merci d'avance !
je cherche à stocker dans un tableau "message" une chaîne de caractères envoyé régulièrement par un GPS par protocole XBee et reçu sur une clé USB XStick (Port série).
Le message est le suivant :
Heading: 274 Tilt: 7 Roll: -11 LAT=48.715961 LON=2.203730 SAT=5 PREC=300 CHARS=32386 SENTENCES=275 CSUM ERR=1
Je reçois de manière régulière ces messages, et j'aimerai stocker à chaque fois que j'appelle ma fonction de lecture, un seul de ces messages avec le bon ordre des caractères évidemment.
Il faudrait donc que je puisse repérer le début du message ("Head" par exemple avec la fonction "strstr"), puis que je stock les caractères dans le tableau "message[]" jusqu'à ce que j'arrive à la fin du message. Une fois que j'ai récupérer le premier message, j'efface le tableau puis je recommence avec le message suivant et ainsi de suite ...
Pour l'instant, j'arrive à stocker un nombre N de caractère (genre N=110) dans le tableau data[]. Mais quand je lance ma fonction, il stock N caractère dans data[] mais il commence au mauvais caractère, par exemple j'affiche :
oll: 0 LAT=83330.00LON=LAT=83330.00LON=0.00 SAT=0 PREC=500 Heading: 54 Tilt: -47 Roll: 0 LAT=83330.00LON=He
Pouvez-vous m'aider svp ?
Merci d'avance !
A voir également:
- Gestion de chaine de caractère
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Plus de chaine tv - Guide
- Chaine tnt gratuite sur mobile - Guide
3 réponses
Un truc du genre :
Ce n'est pas parfait car tu peux recevoir un paquet avec seulement un bout de "Head". A améliorer...
char * ptr; // Recherche du début do { ptr = NULL; lire data, nb_data if (nb_data>0) { data[nb_data] = 0; ptr = strstr (data, "Head"); if (ptr != NULL) printf("%s", ptr); } } while (ptr == NULL); // On a trouvé le début do { lire data, nb_data if (nb_data>0) { data[nb_data] = 0; printf("%s", data); } } while (1);
Ce n'est pas parfait car tu peux recevoir un paquet avec seulement un bout de "Head". A améliorer...