mikrocontroller.net

Forum: Offtopic GPS Koordinaten CAN Bus Codierung


Autor: Filth __ (filth)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ein Gerät sendet die GPS Koordinaten auf einem CanBus.
Was bekannt ist: Byte 0-3 für Latitude und Byte 4-7 Longitude. Little 
Endian.

Beispielwerte:

07 123 165 30 243 54 17 04
200 121 165 30 185 53 17 04
136 121 165 30 19 53 17 04
130 118 165 30 59 44 17 04

Kann mir jemand sagen, wie man das "entschlüsselt"?

Danke

: Bearbeitet durch User
Autor: Paule H. (stk500-besitzer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Filth _. schrieb:
> 07 123 165 30 243 54 17 04
> 200 121 165 30 185 53 17 04
> 136 121 165 30 19 53 17 04
> 130 118 165 30 59 44 17 04
>
> Kann mir jemand sagen, wie man das "entschlüsselt"?

In umgekehrter Reihenfolge?!
Ich gehe davon aus, dass die Daten an einer Stelle gemessen wurden.
Schreibt man die so auf, dann ergeben sie etwas mehr Sinn:

30 165 123 07  04 17 54 243
30 165 121 200 04 17 53 19
etc.

Wenn jetzt noch die Position bekannt wäre, wo die Daten aufgenommen 
wurden, käme man wieder einen Schritt weiter.
Ich vermute eine Fließkommazahl (float hat 4 Byte?).

Autor: Filth __ (filth)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habs schon gelöst: ist ein float

        int asIntLat = (Integer.valueOf(result[0]) & 0xFF)
                | ((Integer.valueOf(result[1]) & 0xFF) << 8)
                | ((Integer.valueOf(result[2]) & 0xFF) << 16)
                | ((Integer.valueOf(result[3]) & 0xFF) << 24);

asIntLat *= 0.0000001f;

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail, Yahoo oder Facebook? Keine Anmeldung erforderlich!
Mit Google-Account einloggen | Mit Facebook-Account einloggen
Noch kein Account? Hier anmelden.