begin process at 2012 05 28 10:13:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Maths & Algorithmes

 > 

Calcul du point GPS a partir de l'acquisition en temps réel des trames d'un recepteur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Calcul du point GPS a partir de l'acquisition en temps réel des trames d'un recepteur

jeudi 23 février 2006 à 09:39:45 | Calcul du point GPS a partir de l'acquisition en temps réel des trames d'un recepteur

berenger_R

Bonjour,
    Je doit réaliser un programme orientée objet en C++ sous linux qui réalise le calcul du point GPS à partir de l'acquisition en temps réel des trames d'un recepteur.
    Plus précisément, il me faut récupérer en temps réel les differentes trames GPS qui proviennent d'un recepteur pour les traiter et ranger toutes les données utiles (contenu dans ces trames) dans une structure. Ceci me permetra ensuite de faire des calculs avec ces données.
    De plus si quelqu'un sait aussi comment passer des trames récupérées de type ASCII à un type struct bien ordonné.
    Donc si quelqu'un à des infos ou des classes déja faites et réutilisables pour mon programme je lui serais reconnaissant de bien vouloir m'aider.
    Je vous remercie par avance
jeudi 23 février 2006 à 09:55:43 | Re : Calcul du point GPS a partir de l'acquisition en temps réel des trames d'un recepteur

ymca2003

Cherche déjà le format NMEA 0183 sur le net.

ensuite c'est du parsing. j'ai un bout de code quelque part. Je met la main dessus et je te tiens au courant.
jeudi 23 février 2006 à 09:59:25 | Re : Calcul du point GPS a partir de l'acquisition en temps réel des trames d'un recepteur

DeAtHCrAsH

Les GPS éméttent sur le port série.
Dans leur trame, tu y retrouves pas mal d'informations telles que la position actuelle géoréférencée, l'altitude, le nombre de sattelite capté, la puissance du signal, l'heure UTC, ....
Pour ce qui est des coordonnées, tu devras peut etre les convertir sur la base souhaités (Lambert II, NTF, ....)

Pour la programmation a toi d'aviser en conséquence. Essaye deja de faire le tri sur la trame recue, et crées toi ensuite un structure qui corresponde au mieux a tes besoins.
Les données GPS sont de mémoire séparées par des points virgules ce qui devrait te simplifier la tache.

Je te conseil ainsi de commencer par prendre un stylo et une feuille et de noter tous les champs qui te seront utiles dans la trame.
Ensuite crées la structure qui va bien.

Après pour ce qui est du traitement du devrais t'en sortir sans trop de mal a l'aide du forum si nécéssaire.

Shell
jeudi 23 février 2006 à 10:28:50 | Re : Calcul du point GPS a partir de l'acquisition en temps réel des trames d'un recepteur

DeAtHCrAsH

Voici une trame émise par mon GPS. Dans cette trame, le GPS n'as aucun FIX.
Si tu as besoin d'une trame en mode de fonctionnement avec FIX je peux essayer de trouver un endroit ou mon GPS puisse capter.
Voici la trame :

$GPRMC,000405.984,V,0000.0000,N,00000.0000,E,,,101102,,*13
$GPGGA,000406.984,0000.0000,N,00000.0000,E,0,00,50.0,0.0,M,0.0,M,0.0,0000*71$GPGGA,000650.974,0000.0000,N,00000.0000,E,0,00,50.0,0.0,M,0.0,M,0.0,0000*7F
$GPGSA,A,1,,,,,,,,,,,,,50.0,50.0,50.0*05

Shell
jeudi 23 février 2006 à 11:08:46 | Re : Calcul du point GPS a partir de l'acquisition en temps réel des trames d'un recepteur

berenger_R

Merci pour ces infos

Je connais le format de mes trames. Ce que je n'arrive pas a faire, c'est récupérer la 20ène de valeur utile (ephéméride, psr, les differents temps) dans une structure afin de faire mes calculs.
J'ai toujours fais des programme ou je demandé a l'utilisateur de rentrer des valeurs ou de faire un truc. Là je doit comuniquer avec l'exterieur et ensuite gérer un fichier ASCII. Est ce qu'un fichier ASCII ce déclare  comme un char[] ?
Pour ce qui est des calculs qui suivent ca devrait aller.
Encore merci a vous pour la rapidité de vos réponse.

jeudi 23 février 2006 à 12:54:12 | Re : Calcul du point GPS a partir de l'acquisition en temps réel des trames d'un recepteur

DeAtHCrAsH

Réponse acceptée !
Tu parcours ta trame et tu comptes 20 virgules. A partir de la 20ieme, tus commences a lire les valeurs souhaitées.
Exemple :

int cpt;
char *pszTrame = new char[1024];
char *pszBuff = new char[1024];

strcpy(pszTrame, "$GPRMC,000405.984,V,0000.0000,N,00000.0000,E,,,101102,.....");

cpt = 0;
pszBuff = pszTrame;

while(*pszBuff && cpt < 20)
{
   if(*pszBuff == ',') cpt++;
   pszBuff++;
}

// Ici tu fais ton traitement a partir de *pszBuff pour stocker les valeurs dans ta structure

A toi d'adapter en conséquence, mais ca devrait ressembler a un truc du genre.
Par contre pour ce qui est de ta structure, je te conseil de la sauvegardée dans un fichier en binaire, a moins que tu ne fasses pas d'archivage.
A ce moment la, utilises alors un tableau de structures.

Shell
jeudi 23 février 2006 à 13:45:28 | Re : Calcul du point GPS a partir de l'acquisition en temps réel des trames d'un recepteur

berenger_R

Je te remerci pour la methode, ca me semble trés bien.
Je vais tenter comme ca quand j'aurrais réussie à récupérer en temps réel toutes les trames du recepteur.

Juste un truc sur cette ligne :
while(*pszBuff && cpt < 20)
Je comprend pas pk tu utilises *pszBuff ?    j'aurrais juste mis : while(cpt < 20)

Sinon, tu fais quoi dans la vie pour etre aussi doué en programation ?

jeudi 23 février 2006 à 14:11:59 | Re : Calcul du point GPS a partir de l'acquisition en temps réel des trames d'un recepteur

DeAtHCrAsH

J'utilise *pszBuff pour etre sur que je ne suis pas arrivée en fin de trame et que je peux donc encore lire les charactères suivants.
Ca évite les plantages dus au dépassement de buffer (bufferoverflow).

Sinon je suis programmeur analyste et étudiant à mi-temps.

Shell
jeudi 23 février 2006 à 15:31:23 | Re : Calcul du point GPS a partir de l'acquisition en temps réel des trames d'un recepteur

berenger_R

Moi je suis un vieux stagiaire de 30 ans qui a repris ces étude à 27 ans. Et là je doit valider mon école par ce stage. Mais comme je ne suis un expère en programation ca va etre dure.
Et vraiment merci de prendre de ton temps pour m'aider.

jeudi 23 février 2006 à 16:39:45 | Re : Calcul du point GPS a partir de l'acquisition en temps réel des trames d'un recepteur

1 2

Cette discussion est classée dans : temps, réel, gps, trames, recepteur


Répondre à ce message

Sujets en rapport avec ce message

LiNuX - Langage C - Appli Multiclient / Serveur [ par azurone ] Bonjour, Il a déja été fait pour un tp une application sous Win client/serveur, où les caractères envoyés par le client s'inscrive sur le serveur en t interrompre un programme de calcul en temps réel [ par koaber ] Bonjour, je souhaiterais utiliser une fonction qui interrompt le progamme en cours et renvoie au menu principal si on appuie sur 'm' (comme menu) ; c' affichage temps réel [ par coyotte63 ] Bonjour, Je réalise actuellement un projet qui consiste à afficher la valeur des angles dans des résolveurs en temps réel. Pour ça je passe par un sys Amplification et filtrage Audio en temps réel [ par pdc_666 ] Bonjour à tous, voilà j'aimerai pouvoir amplifié (et éventuellement filtré le bruit) d'un signal audio provenant d'un eligne téléphoniue. Mon principa Synthèse audio en temps réel [ par louba ] Bonjour à tous,Je cherche à faire de la synthèse audio en temps réel, c'est à dire que je voudrais générer un son qui changerait avec le mouvement de gestion temps réel avec interruptions en c++ [ par moonalex ] Bonjour à tous,pouvez-vous me référer un tutorial ( ou plusieurs) qui traitent de la gestion du temps réel avec les interruptions en c++.merci Détection de mouvement en temps réel [ par lili07 ] Bonjour,actuellement, je developpe une application sous builder c++6 de detection de mouvement en temps réel, mon probleme se situe dans les outils à Audio en temps réel [ par Pistol_Pete ] Bonjour,J'aimerai réaliser un programme qui réalise des actions différentes suivant le son du micro en temps réel. J'ai repris le programme http://cpp Noyau temps réel [ par AmineTheGreat ] Bonjour,Est ce que quelqu'un a un lien pour voir un exemple de programmation en c d'un noyau temps réel?Cdt."Si tu veux du miel, résiste au piqure des Interface Graphique en temps réel [ par MaSenCo ] Bonjour,Actuellement en Deuxième année de BTS IRIS, nous devons réaliser un projet sous c++ Builder 6, La gestion d'un trafic ferroviaire.Nous avons d


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,182 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales