Précédent   Forum du club des développeurs et IT Pro > Général Développement > Programmation système > Linux
Linux Forum d'entraide sur la programmation Linux : shell, système, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 21/11/2012, 14h45   #1
ABouras
Invité régulier
 
Homme
Étudiant
Inscription : juin 2012
Messages : 46
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 46
Points : 9
Points : 9
Par défaut Gestion de chaine de caractères

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 :
Code :
1
2
3
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 :
Code :
1
2
3
4
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 !
ABouras est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 16h30   #2
fransoo
Membre confirmé
 
Avatar de fransoo
 
frans
Inscription : novembre 2009
Messages : 208
Détails du profil
Informations personnelles :
Nom : frans

Informations forums :
Inscription : novembre 2009
Messages : 208
Points : 263
Points : 263
Quel langage ?
Pourquoi un tableau et pas un string ?
fransoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 16h53   #3
ABouras
Invité régulier
 
Homme
Étudiant
Inscription : juin 2012
Messages : 46
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 46
Points : 9
Points : 9
Bonjour merci de répondre !

char parce que j'ai commencé avec ça, mais rien ne m'empêche de repasser aux string ...
Mon programme est en C développé sur LINUX.
ABouras est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2012, 08h23   #4
gangsoleil
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 7 168
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 7 168
Points : 17 960
Points : 17 960
Bonjour,

Si tous tes messages ont le meme formatage, je te conseille sscanf :

Citation:
Heading: 274 Tilt: 7 Roll: -11
LAT=48.715961 LON=2.203730 SAT=5 PREC=300
CHARS=32386 SENTENCES=275 CSUM ERR=1
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int head, tilt, roll, sat, prec, sentences, err, ret_code;
double lat, lon;
long int chars;
 
/* bla bla bla */
 
ret_code = sscanf ("Heading: %d Tilt: %d Roll: %d\nLAT=%g LON=%g SAT=%d PREC=%d\nCHARS=%ld SENTENCES=%d CSUM ERR=%d", 
&head,
&tilt,
&roll,
&lat,
&lon,
&sat,
&prec,
&chars,
&sentences,
&err);
Tout est ici : http://xrenault.developpez.com/tutoriels/c/scanf
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 19h01.


 
 
 
 
Partenaires

Hébergement Web