GNSS Location Library

The GNSS Location Library (GLL) is the core GNSS software.

Its contents are proprietary and the GLL is always supplied in object code format. The GLL interfaces are defined by the header file glgpsapi.h.

The GLL is called by the GLCT. Users of the GLCT will rarely need to interface directly to the GLL. The interfaces to the library are in C++.

The basic steps for interacting with the library include

  • Create the library engine by calling GlEngine::Instance to create a GlEngine object. The application supplies pointers for callback functions used by the engine to communicate events back to the application. These callbacks include:
    • GlEngine::GlEngineOnStart and GlEngine::GlEngineOnStop which inform the application when the engine object starts and stops
    • GlEngine::GlEngineOnTimerRq which is used by the engine to request that the application setup a timer
    • GlEngine::GlEngCbOnNvStgRead and GlEngine::GlEngCbOnNvStgRead which are used by the engine to read and write nonvolatile storage
    • GlEngine::GlEngCbOnLTOFileRead which is used by the engine to read an LTO file if present
    • GlEngine::GlOnMemAlloc and GlEngine::GlOnMemFree which are used by the engine to request a block of memory if the library has been built with the dynamic memory region option
    • Call GlEngine::SetCbOnSysLogLine to register a callback for sending logging messages
  • Create a request object by calling an appropriate instance function to the GlRequest class (i.e. GlRequest::MakePosReqPeriodic). Depending on the type of request, the application will specify parameters such as accuracy, time limit, and update rate. The application supplies callback function used to communicate events back from the request object to the application. These callbacks include:
    • GlRequest::GlReqOnStart called when the request starts
    • GlRequest::OnMemAlloc called when the library allocates memory
    • GlRequest::OnMemFree called when the library frees memory
    • The application registers additional callbacks with the request object such as GlRequest::SetOnResponse GlRequest::GlReqOnStart which is called when a position update is available and GlRequest::SetOnNmea which is called when a new NMEA sentence is available
  • Ask the library to perform the request by calling GlEngine::StartRequest with a pointer to the request object
  • Whenever a request is active the application must pass events from the hardware abstraction layer to the library
  • The library object will call a callback to indicate completion of a request.- When all desired requests are complete the library engine can be destroyed by calling GlEngine::Dispose. Other functions available to control the library include GlEngine::StopRequest and GlEngine::StopAllRequests.

If network assistance data is to be used the application first asks the library to identify the currently available assistance data. To do so the library creates an assistance status request object by calling GlRequest::MakeAsstStatReq. The library will call a callback function after the available assistance data has been determined. After the application has obtained additional assistance data it provides it the the library using following methods

 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines