Erfahrungen mit UBX-Befehlen für gängige Einstellungen?

Fragen und Hinweise zu Software, die mit dem Thema GPS zu tun hat. Egal ob PC oder Handheld.

Moderator: Roland

Antworten
Hagen.Felix
Beiträge: 701
Registriert: 21.12.2008 - 12:07
Wohnort: Grimma
Kontaktdaten:

Erfahrungen mit UBX-Befehlen für gängige Einstellungen?

Beitrag von Hagen.Felix » 20.12.2011 - 23:00

Hat vielleicht jemand im Forum hier bereits Erfahrungen damit, die Einstellungen eines GPS-Empfängers von u-blox mit UBX-Befehlen aus einer eigenen Software, also eben nicht mit der Oberfläche des u-centers, vorzunehmen?
In der Beschreibung von u-blox (siehe u-blox6_ReceiverDescriptionProtocolSpec_(GPS.G6-SW-10018).pdf auf S. 82 ff.) stehen zwar alle UBX-Protokollteile ausführlich beschrieben, aber für den Einstieg in die Materie suche ich noch etwas echten Programmkode zur konkreten Veranschaulichung - am liebsten in C#, aber natürlich auch gerne in irgendeiner anderen C-Sprache oder auch in Java ...
Möglicherweise hat von Euch schon mal jemand so etwas gemacht und könnte mir mal bitte eine paar Kodezeilen zukommen lassen, als kleine Einstiegshilfe zum besseren Verständnis?
Vielen Dank vorab & beste Vorweihnachtsgrüße!
Hagen
Gewerbliche Tätigkeit u.a. im Bereich GNSS (siehe https://www.optimalsystem.de/os.aspx?x=411)
Nachrichten bitte bevorzugt als klassische E-Mail (siehe https://www.optimalsystem.de/os.aspx?x=8)

Josef Gerstenberg
Beiträge: 233
Registriert: 07.09.2009 - 20:00

Re: Erfahrungen mit UBX-Befehlen für gängige Einstellungen?

Beitrag von Josef Gerstenberg » 21.12.2011 - 00:40

Hallo Hagen,

ich habe so etwas ausführlich gemacht, jedoch in Delphi.
Von C habe ich leider nur wenig Ahnung.

Schau mal in RTKLIB rein, um Anhaltspunkte zu bekommen.
In rtklib\src\rcv\ublox.c wird überwiegend dekodiert, aber am Ende werden auch Befehle zusammengebaut.

Wenn du unabhängig von der Programmiersprache Fragen dazu hast, dann melde dich noch mal.

Gruß Josef

Hagen.Felix
Beiträge: 701
Registriert: 21.12.2008 - 12:07
Wohnort: Grimma
Kontaktdaten:

Re: Erfahrungen mit UBX-Befehlen für gängige Einstellungen?

Beitrag von Hagen.Felix » 22.12.2011 - 21:03

Liebe Forenkollegen,

ein wenig später schon sind die ersten Einstiegshürden genommen, und siehe da - so schwer ist es gar nicht ...

Für diejenigen unter Euch, die vielleicht mal selbst an dieser Stelle stehen sollten, hier mal als kleine Anregung ein möglicher Lösungsweg:

Die gewünschte Einstellung im u-center (dort unter „Messages View“) an den angeschlossenen Empfänger senden, die jeweilige Befehlssequenz steht dann als Hex-Kode im Teilfenster rechts unten.
Im Fall der Einstellung einer Update-Rate von 5 Hz (UBX-CFG-RATE) ist dies beispielsweise die Befehlssequenz
„0000 B5 62 06 08 06 00 C8 00 01 00 01 00 DE 6A“

In C# ergibt das dann das Byte-Array:
var myByteArray = new byte[] { 0xB5, 0x62, 0x06, 0x08, 0x06, 0x00, 0xC8, 0x00, 0x01, 0x00, 0x01, 0x00, 0xDE, 0x6A };

Das wird dann auf den (bereits geöffneten) Port gesendet:
mySerialPort.Write(myByteArray, 0, myByteArray.Length);

Hat bei mir (und einem kleinen USB-Stick mit einem u-blox 6) auf Anhieb funktioniert!

Möglich (und sinnvoll) kann und wird es dafür sein, mit einem Empfänger von u-blox innerhalb einer laufenden Anwendung wichtige Parameter ohne viel Mühe "auf dem Feld" schnell den aktuellen Anforderungen anpassen zu können (z.B. eben die Update-Rate, das "Dynamic Platform Model", die gesendeten Protokollbestandteile oder die Grenze, unterhalb der Satelliten über dem Horizont nicht mehr berücksichtigt werden sollen) ...

Ich werde an dieser Thematik in nächster Zeit noch weiter arbeiten und stehe daher für entsprechende An- bzw. Rückfragen gern zur Verfügung!

Damit Euch allen ein frohes Fest und angenehme Feiertage,
Hagen

P.S.: Habe den Beitrag nochmal geändert, da ein kleiner Fehler in der Befehlssequenz war (ein Zeilenende wie z.B. <CR><LF> ist nämlich beim Senden von UBX-Befehlen nicht erforderlich) ...
Gewerbliche Tätigkeit u.a. im Bereich GNSS (siehe https://www.optimalsystem.de/os.aspx?x=411)
Nachrichten bitte bevorzugt als klassische E-Mail (siehe https://www.optimalsystem.de/os.aspx?x=8)

Antworten