Comment convertir GPS Longitude et la latitude de hex
Je suis en train de convertir les données GPS de GPS dépistant le dispositif. La société a fourni des manuels de protocole, mais il n'est pas clair. La plupart des données que j'ai été en mesure de décodage de paquets que j'ai reçu de l'appareil. La communication est au-dessus de TCP/IP. Je vais avoir un problème de décodage de la valeur hexadécimale de la longitude et de la latitude. Voici un exemple à partir de la notice:
Exemple: 22º32.7658’=(22X60+32.7658)X3000=40582974, puis convertie en un nombre hexadécimal
40582974(Décimal)= 26B3F3E(Hexadécimal)
enfin, la valeur est 0x02 0x6B 0x3F 0x3E.
Je voudrais savoir comment faire pour annuler le code hexadécimal de la longitude et de la latitude. L'appareil envoie des 26B3F3E. Je veux savoir le processus d'obtention de 22º32.7658.
Le présent protocole s'applique à GT06 et Heacent 908.
unbelievale idiot qui a inventé cette représentation. degrés décimaux * 1e6 offre un int valeur, cette valeur est ensuite facile d'encoder et de décoder. juste diviser par 1e6 pour obtenir les degrés décimaux à nouveau.
OriginalL'auteur Adeed | 2013-06-28
Vous devez vous connecter pour publier un commentaire.
De stocker toutes les quatre valeurs de non signé de 32 bits variables.
v1 = 0x02
,v2 = 0x6b
,v3 = 0x3f
,v4 = 0x3e
.Calculer
(v4 << 48) | (v3 << 32) | (v2 << 16) | v1
cela donnera une variable contenant la valeur 40582974 décimal.Convertissez un flotteur et de le diviser par 30 000 personnes.0 (votre de 3 000 était une erreur), cela vous donnera de 1,352.765
Hacher en entier et de le diviser par 60. Cela vous donnera la 22.
Multiplier le nombre que vous avez obtenu dans l'étape 4 de 60 et de la soustraire le nombre que vous avez obtenu à l'étape 3. Cela vous donnera
1352.765 - 22*60
ou 32.765.Il n'y est une réponse
22
,32.765
.David, j'ai suivi vos conseils et ça marche. Encore une fois merci pour votre aide
Le
vX
valeurs sont octets, et non pas des valeurs 16 bits, et il y avait une erreur supplémentaire|
. Le code doit être(v4 << 24) | (v3 << 16) | (v2 << 8) | v1
.Ils sont des valeurs de 32 bits. Sinon, les mauvaises choses qui se passera lorsque vous déplacer.
si cette solution ne fonctionne pas, veuillez voir ce post - stackoverflow.com/questions/13543321/gps-tracker-received-data ...après avoir passé du temps sur cette approche, heureusement, j'ai trouvé un autre post et il a travaillé pour moi .. j'espère que cela peut aider les autres
OriginalL'auteur David Schwartz