我正在尝试从GPS追踪设备转换GPS数据.该公司提供了协议手册,但目前尚不清楚.我能够从设备收到的数据包中解码大部分数据.通信是通过TCP/IP进行的.我在解码经度和纬度的十六进制值时遇到问题.以下是手册中的示例:
例:22º32.7658'=(22X60 + 32.7658)X3000 = 40582974,然后转换成十六进制数40582974(十进制)= 26B3F3E(十六进制),最后该值为0x02 0x6B 0x3F 0x3E.
我想知道如何从十六进制逆转到经度和纬度.该设备将发送26B3F3E.我想知道获得22º32.7658的过程.
该协议适用于GT06和Heacent 908.
将所有四个值存储在无符号的32位变量中。
v1 = 0x02,v2 = 0x6b,v3 = 0x3f,v4 = 0x3e。
计算出(v4 << 48) | (v3 << 32) | (v2 << 16) | v1这将产生一个保留值为40582974(十进制)的变量。
将其转换为浮点数并将其除以30,000.0(您的3,000是一个错误),这将为您提供1,352.765
切成整数并除以60。这将得出22。
将您在第4步中获得的数字乘以60,然后从在第3步中获得的数字中减去。这将1352.765 - 22*60得出32.765。
有你的答案22,32.765。
| 归档时间: |
|
| 查看次数: |
15873 次 |
| 最近记录: |