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..GPS11. 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 GPS11 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 ???. GPS11 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 kilooctets (0x3f00000x250000=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,E51824,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 E51824 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 (CRC16CCITT) suivi de 0x03 (y compris le dernier bloc).