Skip to content

Example SUPL 3GPP LPP client for connecting and requesting assistance information. Including support for converting 3GPP LPP assistance data to RTCM.

License

Notifications You must be signed in to change notification settings

erlang-network/SUPL-3GPP-LPP-client

 
 

Repository files navigation

SUPL-3GPP-LPP-client

SUPL-3GPP-LPP-client is an example client for that connects to a location server using SUPL and requests assistance data using 3GPP LPP (Release 16.4). The code contains libraries for building a custom client for your specific needs. The example client is written in C++ and is designed to be portable and easy to use. It should be sufficient to get started or use as a simple client for testing.

The source code for the ASN.1 definitions from 3GPP LPP Release 16.4 are generated by ASN.1 C (https://github.com/vlm/asn1c). All other code is in C++ and should be portable to must unix-like systems. The example client is tested on Ubuntu 20.04 and Raspberry PI OS (32-bit) with gcc-4.8.


Table of Contents


Examples

The repository has a few examples:

  • LPP - Example client that requests assistance data from a location server. It supports OSR, SSR, and AGNSS requests. The assistance data can be outputted to a file, serial port, TCP, UDP or stdout. It can also be converted to RTCM messages that can be transmitted to any GNSS receiver that supports it.
  • u-blox - Example program that demonstrates how to use the u-Blox receiver library. The program takes an interface and port associated with the receiver as arguments. It will the connect, configure the u-blox to output UBX-NAV-PVT, and print all received messages to stdout.

Prerequisites

These are the prerequisites required for building:

sudo apt install g++ cmake libssl-dev ninja-build

Building

Building using CMake and Ninja:

cmake -S . -B build -G Ninja
cmake --build build --config Debug

After a successful build, the example executables should be located in the build folder with a prefix of example-. E.g., build/example-lpp.

GCC-4.8

To verify compatibility with gcc-4.8 and older compilers, use the build script (build-with-gcc4.8.sh), that will build the client with gcc 4.8. This help guarantee that the source code will compile on smaller devices such as a Raspberry PI or BeagleBone. This is done with the help of a docker image with the compiler preinstalled. (This requires that you have docker installed)

License

See LICENSE file.

About

Example SUPL 3GPP LPP client for connecting and requesting assistance information. Including support for converting 3GPP LPP assistance data to RTCM.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 91.4%
  • C++ 8.5%
  • Other 0.1%