protocole du gps Navirad v2

Transcription

protocole du gps Navirad v2
Protocole du Gps Navirad v2
Vitesse du port série au démarrage : 4800n1, sans dts ni ctr.
Toutes les lignes sont terminées par un CR/LF (\r\n). Le Navirad répète le nom de la commande et la réponse(OK). Plusieurs commandes peuvent être envoyées à la suite, les réponses arriveront dans le même ordre.
Exemple de dialogue Request: 07/06/2006 01:53:41.50264 (+689.6016 seconds)
61 74 0D 0A 61 74 0D 0A 61 74 0D 0A 61 74 0D 0A at..at..at..at..
61 74 0D 0A at.. Answer: 07/06/2006 01:53:41.07364 (+0.0701 seconds)
41 54 0D 0A 4F 4B 0D 0A AT..OK.. Request: 07/06/2006 01:53:41.20364 (+0.1302 seconds)
61 74 24 68 65 6C 70 0D 0A at$help.. Answer: 07/06/2006 01:53:41.21364 (+0.0100 seconds)
41 54 24 48 45 4C 50 0D 0A 47 50 53 2D 31 31 0D AT$HELP..GPS­11.
0A Request: 07/06/2006 01:54:28.91064 (+0.0000 seconds)
61 74 24 73 65 74 73 70 65 65 64 3D 30 2C 30 2C at$setspeed=0,0,
30 2C 30 2C 30 0D 0A 61 74 24 73 65 74 74 69 6D 0,0,0..at$settim
65 3D 32 0D 0A e=2.. Answer: 07/06/2006 01:54:33.41764 (+4.5065 seconds)
41 54 24 53 45 54 53 50 45 45 44 0D 0A 4F 4B 0D AT$SETSPEED..OK.
0A 41 54 24 53 45 54 54 49 4D 45 0D 0A 4F 4B 0D .AT$SETTIME..OK.
0A . Tableau des fonctionnalités
Fonction
Commande
Réponse
AT
OK
AT$HELP
GPS­11
AT$BAUD=b
OK
Change la vitesse de communication du GPS. b marche 'à 115200bauds avec le câble usb<­
>série fourni (chipset pl2303).
Définir les seuils de vitesse AT$SETSPEED=v1,v2,
v3,v4,v5
OK
Les vitesses sont en décimal. Mettre à 0 toutes les vitesses pour ne plus avoir les annonces de seuil.
Exemple : AT$SETSPEED=90,110,130,0,0
Ré initialiser
AT$RESET
OK
Réinitialise l'appareil, comme un démarrage à froid. La vitesse du port revient à 4800b
Il faut attendre que l'annonce sonore qui dure 5 secondes soit terminée avant de lancer d'autres commandes.
AT$SETTIME=f
OK
Indique le décalage horaire. AT$DELUSERDATA
OK
Efface les données personnelles (P.O.I.)
Connexion
Version
Changer la vitesse du port série
Définir le fuseau horaire
Effacer les données personnelles
Récupérer les données personnelles (POI)
AT$READUSERDATA
Commentaire
A faire obligatoirement avant tout autre commande ???.
GPS­11 pour un Gps Navirad v2
données POI Les données ressemble à des données GPS.
puis OK
Voir chapitre P.O.I.
Charger les données personnelles dans l'appareil
AT$DOWNUSER = 0x3f0000,s
ACK puis une Les données a envoyer sont en binaore, voir fois les données chapitre transferts binaires. chargées OK s est la taille des données.
L'adresse 0x3f0000 est la zone des P.O.I. personnelles, quelle est sa taille maximale ?
Charger les données cartographique (MAP.DAT)
AT$DOWNMAP = 0x250000,s
ACK puis une Les données sont transférées en binaire par fois les données block. Aprèc chaque bloc, l'appareil répond chargées, OK par ACK. Voir chapitre transferts binaires.
Là encore, 0x250000 ressemble à une adresse mémoire. Si on suppose que la zone des données personnelles suit celle des données cartographique, par soustraction on trouve que la taille maximale des données cartographique est de 1664 kilo­octets (0x3f0000­0x250000=1A0000).
Récupération des P.O.I.
Exemple de transfert : Request: 07/06/2006 01:33:02.27164 (+0.1302 seconds)
61 74 24 72 65 61 64 75 73 65 72 64 61 74 61 0D at$readuserdata.
0A . Answer: 07/06/2006 01:33:02.34164 (+0.0701 seconds)
41 54 24 52 45 41 44 55 53 45 52 44 41 54 41 0D AT$READUSERDATA.
0A 31 34 32 36 30 36 33 33 36 31 2C 36 30 36 30 .1426063361,6060
35 2C 66 30 35 30 64 2C 31 30 31 2C 4E 34 39 33 5,f050d,101,N493
34 33 32 37 2C 45 2D 35 31 38 32 34 2C 37 34 0D 4327,E­51824,74.
0A 31 34 32 36 30 36 33 33 36 32 2C 36 30 36 30 .1426063362,6060
33 2C 63 33 37 31 31 2C 31 30 31 2C 4E 34 39 31 3,c3711,101,N491
33 39 35 37 2C 45 34 39 36 37 2C 38 33 0D 0A 4F 3957,E4967,83..O
4B 0D 0A K..
Sur ce transfert, nous voyons qu'il y a un P.O.I. par ligne. Chaque ligne est composé de 7 colonnes séparées par une virgule :
Colonne
Exemple
Signification
1
1426063361
=0x5500 000,1 identifiant +0x5500 0000???
2
60605
Date (a/m/j) : 2006 juin 5
Justifié à droite
3
f050d
heure en hexa (hms) ! 1 octet par groupe
4
101
Indique si le point est valide.
Ceux effacés par une pression du bouton E pendant 4 secondes ont une valeur = 100.
Ceux valides ont 101.
5
N4934327
latitude : 49,34327
justifié à droite, 5 chiffres après la virgule
6
E­51824
longitude : ­0,51824
justifié à droite, 5 chiffres après la virgule
7
74
direction (­1 quand inconnu)
Transfert binaire des P.O.I
Le transfert binaire des P.O.I ressemble beaucoup au map.dat.
Pour l'instant, j'ai déchiffré les ¾ du format.
Transfert binaire du map.dat
Le premier octet du fichier map.dat est enlevé. Ensuite les données sont envoyées telles quelles par bloc de 512 octets. Le premier octet du fichier map.dat est 0x02. Peut­être que ça correspond à la version de l'appareil.
Chaque bloc est précédé d'un préfixe trois octets et suivi de 3 autres octets.
Le préfixe est toujours 0x02 suivi de la taille du bloc.
Les 3 octets qui suivent sont un checksum sur 16bits (CRC­16­CCITT) suivi de 0x03 (y compris le dernier bloc).