TP Telematique
TP Telematique
TP Telematique
BP 283
MEMBRES DU GROUPE :
Signifie que le GPS a obtenu une position fixe à 16:12:29.487 UTC, avec une latitude de
37°23.2475’N et une longitude de 121°58.3416’W.
exemple : $GPGSA,A,3,04,05,,09,12,,,24,,,,2.5,1.3,2.1*39
Signifie que le GPS est en mode automatique et qu’il a obtenu une position fixe en 3D en
utilisant les satellites 04, 05, 09, 12 et 24. Le PDOP est de 2.5, le HDOP est de 1.3 et le
VDOP est de 2.1.
• GPRMC : heure, date, position, cap et vitesse. Ce format contient l’heure UTC, l’état du
positionnement (A = valide, V = invalide), la latitude, la longitude, la vitesse sur le sol en
nœuds, le cap vrai en degrés, la date, la variation magnétique et le mode d’opération (A =
autonome, D = différentiel, E = estimé).
Par exemple :
$GPRMC,001225,A,2832.1834,N,08101.0536,W,12,25,251211,1.2,E,A*03
Signifie que le GPS a obtenu une position valide à 00 :12 :25 UTC le 25 décembre 2011,
avec une latitude de 28°32.1834’N et une longitude de 81°01.0536’W. La vitesse sur le sol est de
12 nœuds et le cap vrai est de 25°. La variation magnétique est de 1.2°E et le mode d’opération
est autonome.
La différence entre ces formats est donc le type d’informations qu’ils fournissent sur le
positionnement et la navigation du GPS. Le format GPGGA donne des informations sur la
position géographique et l’altitude du GPS. Le format GPGSA donne des informations sur le
mode de fonctionnement du GPS et les satellites utilisés pour calculer la position. Le format
GPRMC donne des informations sur l’heure, la date, la position, le cap et la vitesse du GPS.
CONVERTISSEUR DE FORMAT NMEA 0183
Nous avons réalisé un programme python qui dans une interface, demande à l’utilisateur d’entrer
la trame en format GPGGA et puis par la suite génère ses équivalents en format GPGSA et GPRMC.
trameGPGGA=ENTRER.get()
listeGPGSA=GPGSA.split(",")
listeGPGGA=trameGPGGA.split(",")
listetrameGPRMC=GPRMC.split(",")
trameGPRMCL=[]
trameGPGSAL=[]
trameGPGSAL.extend(listeGPGSA)
for i in range(0,len(trameGPGGA)):
if(i==4):
trameGPGSAL[i]=0
trameGPRMCL.extend(listetrameGPRMC)
for i in range(0,len(listetrameGPRMC)):
if(i==1):
listetrameGPRMC[i]=listeGPGGA[i]
if(i==3):
listetrameGPRMC[i]=listeGPGGA[i-1]
if(i==4):
listetrameGPRMC[i]=listeGPGGA[i-1]
if(i==5):
listetrameGPRMC[i]=listeGPGGA[i-1]
i +=1
listetrameGPRMC[i]=listeGPGGA[i-1]
for e in range(i+1,12):
if(i==2):
listetrameGPRMC[i]="A"
listetrameGPRMC[e]="000.0"
trameGPRMCL.clear()
trameGPRMCL.extend(listetrameGPRMC)
trameGPRMC=",".join(trameGPRMCL)
resu=trameGPGGA
Resultat1.configure(text=trameGPRMC)
Resultat2.configure(text=GPGSA)
#generation du fichier
FICHIERTRAMES=open("LESTRAMES(GPGGA,GPGSA,GPRMC).txt","w")
FICHIERTRAMES.close()
$GPGGA,134658.00,5106.9792,N,11402.3003,W,2,09,1.0,1048.47,M,-16.27,M,08,AAAA*60
Nous aurons donc une interface pareille :