ubloxcfg
u-blox 9 configuration helpers
|
Copyright (c) 2020-2021 Philippe Kehl (flipflip at oinkzwurgl dot org)
https://oinkzwurgl.org/hacking/ubloxcfg
This implements a library (API) do deal with the new configuration interface introduced in u-blox 9 positioning receivers (e.g. [1]).
A command line cfgtool
is provided to configure a receiver from the configuration defined in a human-readable configuration file, as well as a few other functions.
The tool uses a number of small libraries (a UBX/NMEA/RTCM3 message parser, a serial port library, a receiver control library, and some other things), which could be useful for other projects.
The configuration library is thread-safe, free of dynamic memory allocation and written in c (ISO C99 with no further dependencies).
The configuration tool and the other libraries use some gcc/libc stuff ("GNU99").
This is tested in Linux (GCC). It should work in Windows (Mingw-w64).
Note that this probably only works when building on Linux.
To build and run the tests:
To build the command line tool:
To build the API documentation:
To build the tests and the tool for Windows:
To get a list of all build targets:
See the Makefile
for details.
You may need to install some dependencies:
GCC for Windows is available from mingw-w64.org. Since you might need Perl to generate the configuration definitions (see below) you could also use the GCC that comes with Strawberry Perl.
Depending on the availability of other tools (make, rm, etc.) on your system you will be able to use the Makefile.
To manually compile, start a Strawberry Perl shell, navigate to the source code, and use this command to compile:
Parts of this can be compiled as a shared library:
The definitions for the configuration items (parameters) have been taken from u-blox manuals and converted into a JSON file (with comments): ubloxcfg.json
.
The ubloxcfg_gen.pl
script converts this to c source code: ubloxcfg_gen.h
and ubloxcfg_gen.c
.
The configuration library provides the following:
See ubloxcfg.h
or the generated HTML documentation for details and examples.
The cfgtool
command line tool can do the following:
Run cfgtool -h
or see cfgtool.txt
for more information.
ubloxcfg*.[ch]
): GNU Lesser General Public License (LGPL), see COPYING.LESSER
cfgtool*.[ch]
) and the other libraries (ff_*.[ch]
): GNU General Public License (GPL), see COPYING
3rdparty/
and belowSee the individual source files and scripts for details.
The tool uses the following third-party code:
crc24q.c
) and license (crc24q.COPYING
).