DÉCODER UN CODE NMEA ENVOYER PAR UN GPS (À L'AIDE MSCOMM - RS232)

cs_mak10 Messages postés 18 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 3 novembre 2006 - 27 sept. 2004 à 15:36
Milamber51 Messages postés 1 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 30 juin 2009 - 30 juin 2009 à 14:17
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/26380-decoder-un-code-nmea-envoyer-par-un-gps-a-l-aide-mscomm-rs232

Milamber51 Messages postés 1 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 30 juin 2009
30 juin 2009 à 14:17
Bonjour je sais que le sujet date de 4ans mais avec un peu de chance on me répondra peut être.
Alors voilà je dois développer une application dont une partie est de récupérer les données GPS et de les traiter et ce code m'a aidé à comprendre comment il fallait faire, mais voilà j'ai pour contrainte de ne pas utiliser de timer mais plutôt de traiter les données au fur et à mesure qu'elles arrivent car en effet les GPS (dans mon cas un garmin) envoie les données en continue.
Je pense qu'il faut utiliser la commande comEvReceive mais j'ai du mal à le mettre en application.
Quelqu'un serait en mesure de m'aider?
Merci d'avance.
bondex86 Messages postés 2 Date d'inscription vendredi 7 octobre 2005 Statut Membre Dernière intervention 23 novembre 2005
8 nov. 2005 à 17:44
bonjour moi j'ai un projet sur le gps et je dois trouver le code nmea pour decoder les infos si vous pouvez me le donner ou me donner des informations le concernant
merci d'avance
cs_kortex Messages postés 2 Date d'inscription vendredi 28 avril 2000 Statut Membre Dernière intervention 22 août 2005
22 août 2005 à 14:27
j'ai fait un code similaire avec une carte en 2d et je suis en train de faire un passage en vrai 3d (pas une simple carte 2d avec un angle de 75°) pour info ceux qui veulent réaliser ça et sans faire de spam chez www.radiospares.fr le recepteur serie gps35 390-3823 fait parfaitement l'affaire il fonctionne aussi avec autoroute express et ne coute que 149? pour du gps c'est honete...
cs_mak10 Messages postés 18 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 3 novembre 2006
19 mai 2005 à 13:29
bjr
pour le code ca marcherait tres bein avec un port serie et un gps serie, mais personnellement je ne sais pas comment traiter avce une entrée USB,cherches un peu du coté utilisation d'un port usb en vb, sinon au moins avec un gps serie tu aura la lecture directe des entrées et parfois la seul chose pour que ca soit correct a lire c'est de changer le mode text ou binaire du type de la lecture!!
mais la deja regardes un peu pour l'utilisation du port usb en vb!!
.pour le programme c'est pas la peine d'ouvrir le port quand on appuis sur le bouton, tu risque apres d'avoir des erreur ou de penser a gener l'erreur si le port est ouvert et tu demande a l'ouvrir encore une fois, ,, alors ouvre le port au debut et fermes le a la fin de ton programme!!!
et pour la variable qui v ate recuperer les données , soit un label1.caption ou un text1.text ou autre varible a declarer en exterieur de ta boucle ou ton timer et aussi ecrits que cette variabe=variable & portxxx.input
comme ca tu pourra lire toute la chaine mais bon apres tu fera ta limitation de la chaine nmea dont le debut est un $ ,,,,
remf Messages postés 8 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 19 mai 2005
19 mai 2005 à 13:11
bonjour est ce que quelqu'un pourrait m'éclairer un peu?...
merci
remf Messages postés 8 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 19 mai 2005
17 mai 2005 à 13:23
non il s'agit de "bon code" comme celui ci dessus?...
cs_mak10 Messages postés 18 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 3 novembre 2006
17 mai 2005 à 12:30
bjr a preciser quand vous ddites que vous avez recupere des morceaux de codes,,, de bon code ou des symboles a leatoires;;???
remf Messages postés 8 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 19 mai 2005
17 mai 2005 à 09:19
Bonjour,
bon j'ai essayé de recevoir des informations du GPS en temps réel mais aucun résultat! J'ai récupéré des parties de code ici ou la, soit par ex:

Private Sub CmdTransfGps_Click()
With MSComm1
.CommPort = 4
'seul le port 4 fonctionne les autres renvoient un message d'erreur.
.Settings = "4800,N,8,1"
.InputLen = 0
.PortOpen = True
End With

Dim DonneesGps As String
DonneesGps = MSComm1.Input
'et ensuite le traitement de la trame qui marche très bien avec une simulation de fichier NMEA
remarque : je n'ai pas mis de Timer parce que je veux que la personne puisse prendre un point en appuyant sur une commande. De toute facon le GPS de poche ne se vide pas toutes les 2 secondes...

donc avec ce code DonneesGps est vide!
Pourriez vous m'aidez?
Aussi comment savoir quel port occupé, certains font une boucle en ouvrant le port i et en lui envoyant une trame, mais un message d'erreur m'est renvoyé quand on ouvre le port si le numéro est mauvais.
Je précise que j'ai un GPSMap60 avec connection USB, le problème vient peut être de la.

merci d'avance
cs_mak10 Messages postés 18 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 3 novembre 2006
10 mai 2005 à 13:58
juste quelques petits infos en attendant tes remarques apres,,, e gps des son demarrage, il donne des phrases au format NMEA sur sa sortie serie, meme s'il n'a pas encore tourvé sa position. le fichier dont j'ai parlé n'est pas dans le GPS mais dans l'ordinateur ou le pda qui va recuperer ces phrases dans un fichier pour sauvregarde sinon tu peux traiter en temps reel ta position sans utiliser un fichier. autre choses le waypoint ce sont des points tournants que l'utilisateur programme dans le gps pour que ce dernier lui informe de la distance et temps restant et la direction a prendre pour atteindre ce point la, ca pourrait etre un port ou autre,, c an arien a voir avec ce que le gps donne au format nmea
remf Messages postés 8 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 19 mai 2005
10 mai 2005 à 13:47
ok je vous remercie, alors si j'ai bien compris, le fichier au format NMEA est le seul fichier de sortie du GPS de poche. Le fichier NMEA fait le plein d'information des que le GPS de poche est allumé et que le nombre de satellite est suffisant pour avoir la position.

Mais quand l'utilisateur prend un point, des coordonnées sont associées à ce point. En temps réel, ca serait assez simple, il suffirait de récupérer les coordonnées au moment ou la personne prend un point (en appuyant sur une commande de l'ordinateur).
Mais ca se complique lorsqu'il s'agit de récupérer les coordonnées des points pris (waypoint) en fin "de mission" (points pris par le GPS seul, la connection avec l'ordinateur se faisant à la fin) car il faut juste récupérer les coordonnées des waypoints et non l'ensemble du fichier NMEA...

Je vais me lancer et vous tiendrais au courant de mes difficultés...
merci
cs_mak10 Messages postés 18 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 3 novembre 2006
10 mai 2005 à 10:25
bon la c'est a peu pres clair!!!
detail pour les choix,, dan sle premier cas j ecomprend que le programme tourne en attente d'une demande de l'utilisateur pour afficher le point, donc la il faut capturer les phrases venant du GPS au format NMEZ sur le port serie ou usb , selon le GPS, et prendre uniquement une des phrases qui se rapporte au données latutue et longitude issu du gps, la par exemple personnellement et sans aller chercher des dll specialisé telechargeable sur le net, je faits une synchronisation sur le debut de des phrases en verifiant le caractere $ debut de toute les phrases GPs et apres je choisis le titre de la phrase, et apres je recupere par exemple avec l'instruction MID pour recuperer un epartie de la chaine de caractere qui correspond a ma phrase GPS voulu. mais apres je dispose de la position en format deg minute pour la lat et la long et la a vous de voir avec la carte a utiliser si c'est une image il faut avoir une relation entre x,y, pixels en phi et G degre minute donc il te faut au moins 1 ou des points de reperes connus en x,y pixel et en phi et G.
pour le 2eme choix, il apris un ensemble de point, , oui mais sur quoi ? si c'est sur le portable ou PDA, alors soit a copier directement les phrases données bruts du GPS sur un fichier txt et apres faire le traitement a la maison, soit alleger un peu le fichier qui se remplira tres vite et enregistrer uniquement la phrase voulu qui contient la position, soit il traite tout et n'affiche rien et il memorise dans un fichier le temps et la position et apres a la maison il fera la lecture du fichier et affichage sur carte!!! tu parle de PCX5 , c'est quoi? pour moi je me ferai la lecture du fichier texte par ligen ou caractere et j egarde le meme traitement mais au lieu de regarder le port serie je regarde le fichier!!!
j'epsere donner quelques infos sinon pour plus de contact ,, mak_fr@yahoo.fr
a+
remf Messages postés 8 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 19 mai 2005
10 mai 2005 à 08:58
bonjour,

en faite je dois créer une application où il serait possible de charger une carte et de visualiser les points GPS sur cette carte. Je sais qu'il existe des logiciels freeware offrant cette possibilité mais je n'ai besoin que de certaines fonctionnalités et j'aimerais ensuite inclure d'autres options qui n'ont rien à voir avec le GPS.

Concernant le transfert des coordonnées, l'utilisateur aurait deux choix :
- 1 ) Il est sur le terrain avec son GPS de poche relié à un ordinateur portable (ou penpad) et prend un point en appuyant sur une commande de l'application. Il verrait alors directement le point sur la carte topo du lieux.
- 2 ) Il a pris un ensemble de point et rentre chez lui. Il fait le transfert non plus en temps réel point par point, mais pour tous les points.

Je crois que le format du 1° cas est le format NMEA et celui du 2° cas, le format PCX5... D'ailleurs ce dernier format est il standard?
j'arriverai peut être à décripter les fichiers mais je ne sais pas comment les récupérer. Je sais vaguement qu'il faut faire des liens vers les ports de l'ordinateurs (com pour les vieux GPS et USB pour les nouveaux)...

bien sur après le transfert, il faudra tenir compte des projections, mais ca c'est un autre problème..

j'espère avoir été plus clair, pouvez m'indiquer comment faire pour les deux cas?

merci beaucoup.
cs_mak10 Messages postés 18 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 3 novembre 2006
9 mai 2005 à 19:31
pouvez vous donner + de details!!!!
mais d'une facon tres general een attandant vos explications, , les phrases GPs sont connus en format NMEA, et peuvent etre facilement interpretés!!!
remf Messages postés 8 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 19 mai 2005
9 mai 2005 à 16:58
Bonjour, je suis étudiant et débutant en Visual Basic , comme Anthony.
Mon problème est peut être plus simple à expliquer et il reste néanmoins compliqué pour moi.
Je souhaite recevoir des données du GPS, suivant deux cas :
- soit faire un transfert après avoir pris quelques points
- soit prendre un point en appuyant sur une commande de mon application (le GPS serait bien sur relié en continu à mon ordinateur).

Pourriez m'expliquer comment faire?

Merci d'avance
cs_robotdj Messages postés 3 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 22 avril 2005
22 avril 2005 à 15:01
I need for this
davidauche Messages postés 150 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 8 janvier 2008
12 avril 2005 à 21:14
le code NMEA est gere par le GPS à toi de decoder et recupere les info envoyer par les satellites chaque 2s...
a+
cs_mak10 Messages postés 18 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 3 novembre 2006
8 avril 2005 à 16:18
alors, maintenant c'est clair, et j'ai deja utilisé les deux equipements d'extremité a savoir le radar et le gps!!! donc pour vous c'est de transformer les infos de l'equipement qui ne gere pas en sortie le format nmea et faire croire au radar qu'il recoit des infos nmea, ll donc tout c asera bien clair pour vous en lisant le format nmea il est standard et en regardant ce que votre radar accepte comme type de phrase au format nmea!!!
et ensuite a vous de voir comment faire cette transformation, soit en soft logiciel donc un pc sera l'intermediaire sinon en hard.
autre chose qu'est ce que vous voulez voir sur le radar a partir de ces coordonnes x, y et z ( on oublis z pour le radar non!!?)
vous ppouvez me contactez directement si vous voulez sur mon email mak_fr@yahoo.fr, vu que pour le moment on va sortir du theme de VB!!!
anthonydurget Messages postés 2 Date d'inscription jeudi 7 avril 2005 Statut Membre Dernière intervention 8 avril 2005
8 avril 2005 à 10:02
bonjour,
voilà en fait le fond de l'histoire. Je souhaite utiliser ce que l'on appelle une station totale (appareil de mesure utilisé par les géomètres) pour transmettre des jeux de coordonnées à un appareil radar.
Or, cette appareil n'est paramétré que pour recevoir des coordonnées au format NMEA à partir d'un GPS.
C'est pourquoi je dois mettre en forme les coordonnées initiales fournies par la station totale pour obtenir un code au format NMEA pour que le récepteur du radar puisse les prendre en compte.
J'espère avoir été plus clair.
cs_mak10 Messages postés 18 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 3 novembre 2006
7 avril 2005 à 21:00
bjr
encore de details, ,, car ce que j'ai compris c'est que tu veux simuler une emission de chaine au format NMEA,, et en recpetion tu as un equipement qui ne gere pas l'nmea??? j'ai pas tres bien saisi !!
anthonydurget Messages postés 2 Date d'inscription jeudi 7 avril 2005 Statut Membre Dernière intervention 8 avril 2005
7 avril 2005 à 18:09
Bonjour,

je suis étudiant et débutant en VB.
Il faudrait que j'arrive à générer un CODE NMEA pour simuler une arrivée d'information provenant d'un GPS alors que j'utilise un autre type de matériel ne pouvant pas engendrer le format NMEA. Je ne possède en effet qu'un jeu de cordonnées (x,y,z).
Je vais donc essayer de générer ce code pour que mon récepteur prévu pour être utilisé avec un GPS puisse l'être également avec l'outil dont je dispose.
Si qqu'un à des informations à ce sujet...

Merci
fapou Messages postés 1 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 31 janvier 2005
31 janv. 2005 à 14:58
Comment optenir la Vitesse en K/h ?
Merci
davidauche Messages postés 150 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 8 janvier 2008
4 oct. 2004 à 14:53
ahh alors meme principe, et memes problèmes rencontrer, :-). mais bon, j'ai résolu tous ça apres un grand galère avec les zoom (surtout j'ai bien aimé de faire tt les types des zoom possible), j'ai crée une magic pictureBox qui fait tt ça (zoom, réferencer, strech,....), je n'ai pas trouvé le temps a l'adapter pour des utilisations simples, cette période je bosse sur un ti projet (créateur des menus XP ;)), bientot je met l'ocx sur ce site. Ah! pour les cartes, ça m'interresse aussi, je ne pense pas que je trouverai une autre solution beaucoup mieux avec les cartes vectorielles.
merci d'avance
Pour les zoom, ne t'inquiète plus, j'ai ttes les solutions avec mon ctl :p ;)
a+
cs_mak10 Messages postés 18 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 3 novembre 2006
4 oct. 2004 à 12:14
de meme j'ai utilisé des cartes en jpg et calculer tout dans le picture box en x y et convertir a partir de refs connus , en lat et long, c'etait bien mais le probleme c'est de faire des zooms c'est pour cela avec des bases de données de cartes vectorielles ca devrait etre bien et evter de se balader avec des cartes en jpg, si tu veux d'autres cartes de n'importe ou dans le monde j'ai un programme de lecture qui utilise la base C-MAP.
a+
davidauche Messages postés 150 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 8 janvier 2008
4 oct. 2004 à 11:27
re bjr, dans mon programme, j'utilise les simples cartes (jpg, bmp,...). ces cartes sont referencer de facon on peut connaitre l'atitude et longitude a n'importe point de la carte en fonction de x et y du picturebox (deplacer l pointeur de la sourie par exemple sur un lieu). j'ai utilisé la projection mercator avec deux points de réferences connus (latitude et longitude) de la carte. les cartes vectorielles ne sont pas clair ni jolies :p. Avec les cartes, c'est vrai il y a le probleme de trouver les cartes des region en jpg et bmp (scanner...), mais j'ai arrivé a faire une grande precission (incertitude ne depasse pas 1 m) :p, alors c'est l'important ;).
a++, si tu veux des autres explications sur des autres détailles demande chef!.
salut
cs_mak10 Messages postés 18 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 3 novembre 2006
4 oct. 2004 à 09:10
bjr de meme, davidauche, peut etre on va sortir un peu des commentaires du vb mais pour ton logiciel tu utilises quoi comme fond d'affichage cad les cartes , comment tu les manipule est ce qu'elles sont des cartes vectorielles ou de simples images et tu te repere par pixel? merci pour les infos car j'ai travaillé sur un projet similaire. merci
davidauche Messages postés 150 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 8 janvier 2008
1 oct. 2004 à 21:54
lol :)
les théorèmes, les règles, les définitions.... sont toujours les memes, alors se trouve partout...
eh!! ça fait un an que j'ai fais ce code, je le met ici apres une demande..., je travail sur le GPS depuis 13 mois, j'ai terminé un logiciel de naviguation par GPS (position, mercator, zoom, référencer les cartes...), maintenant nous sommes en train de travailler sur la fabrication d'un GPS, alors si qlqn veut qlq informations, l'aide ou veut participer c'est avec plaisir :-)
Merci mak 10
goooo!!! a +++
davidauche@icqmail.com
cs_mak10 Messages postés 18 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 3 novembre 2006
1 oct. 2004 à 09:17
bjr et bien je ne cherche pas a presenter des infos et mes capacités en la matiere , mais juste une remarque, essais de ne plus faire du copier coller quand tu expose des infos d'un autre site:
paragraphe copié du site:
http://artemmis.univ-mrs.fr/cybermeca/Formcont/mecaspa/COURS_SA/GPS/GPS.htm

voir 4eme partie lol

allez l'essentiel c'est que tu as reussi a faire decrypter les messages NMEA et surtout partager tes connaissances . merci et bonne journée
davidauche Messages postés 150 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 8 janvier 2008
30 sept. 2004 à 21:56
lol mak10,
tu me fais rire vraiment, bah O_o : j'ai bien dis au début "Ce code permet de décoder les phrases reçues par le GPS".....
en plus, j'ai dis "les satellites envoient
les phrases qui contient les informations !!!" alors je n'ai pas dis quel type de phrase, peut etre c'est mal exprimer, mais c'est sur que les satelittes envoient que des fréquences.
pour + d'infos :
Chaque satellite possède une horloge atomique maintenue à 7ms du temps UTCet émet à 2 fréquences élevées en bande L de L1=1575.42 MHz et L2=1227.6 MHz avec une stabilité de 10..23 MHz. Cette fréquence ne traverse ni le béton ni un feuillage dense. Il est donc nécessaire que le récepteur soit dans une zone dégagée.
alors sans commentaire :p ;)
merci!
salut
cs_mak10 Messages postés 18 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 3 novembre 2006
27 sept. 2004 à 15:36
bjr c'est bien en general, mais juste n'ecrits pas des infos qui ne sont pas corrects, ce n'est pas les satellites qui envoient ces phrases la , mais c'est le GPS qui les constituent pour etre a la norma de comm NMEA, les satellites envoient des signaux codees et ca na rien a voir. bonne continuation
Rejoignez-nous