7

GPS追跡デバイスからGPSデータを変換しようとしています。同社はプロトコルマニュアルを提供しましたが、明確ではありません。デバイスから受信したパケットからデコードできたほとんどのデータ。通信は TCP/IP を介して行われます。経度と緯度の 16 進値のデコードに問題があります。マニュアルの例を次に示します。

例: 22º32.7658'=(22X60+32.7658)X3000=40582974 を 16 進数に変換すると 40582974(10 進数)= 26B3F3E(16 進数) 最終的に値は 0x02 0x6B 0x3F 0x3E になります。

16 進数から経度と緯度に戻す方法を知りたいです。デバイスは 26B3F3E を送信します。22º32.7658を取得する過程を知りたいです。

このプロトコルは、GT06 および Heacent 908 に適用されます。

4

1 に答える 1

8
  1. 4 つの値すべてを符号なし 32 ビット変数に格納します。
    v1 = 0x02, v2 = 0x6b, v3 = 0x3f, v4 = 0x3e.

  2. これを計算(v4 << 48) | (v3 << 32) | (v2 << 16) | v1すると、10 進数で 40582974 という値を保持する変数が得られます。

  3. これを float に変換して 30,000.0 で割ります (3,000 はエラーです)。これにより、1,352.765 が得られます。

  4. 整数に切り、60 で割ります。これにより、22 が得られます。

  5. ステップ 4 で得た数値に 60 を掛けて、ステップ 3 で得た数値から引きます。これにより、1352.765 - 22*60または 32.765 が得られます。

あなたの答えがあります22, 32.765.

于 2013-06-28T01:04:35.540 に答える