GPS/A-GPS PSY Overview

This document describes the GPS/A-GPS PSY, which connects the Location Server eposserver.exe to the A-GPS Location Manager.

Purpose

The GPS/A-GPS PSY connects the Location Server eposserver.exe to the A-GPS Location Manager. The PSY does not interface directly with GPS hardware. A device creator must install an A-GPS Integration Module to use the GPS/A-GPS PSY.

This document is for device creators.

Required background

This document assumes a knowledge of the material covered in the following:

Key concepts and terms

PSY

A Positioning Plug-in. The GPS/A-GPS PSY implements the Positioning Plug-in API to interface with the Location Server. It uses the Positioning Plug-in Information API (which defines Central Repository key/value pairs) to register itself with the Location Server.

Assisted GPS (A-GPS)

A mode of GPS operation that uses assistance data from the network to reduce the time required to get the first position fix (TTFF) from GPS hardware. The GPS/A-GPS PSY supports assisted GPS (terminal based mode and terminal assisted mode).

Autonomous GPS

A mode of GPS operation that does not use assistance data from the network. The TTFF is typically longer than if assistance data is used. The GPS/A-GPS PSY supports autonomous GPS.

Architecture

Figure 1 shows the GPS/A-GPS PSY component with associated LBS components.

Figure 1. Figure 1. GPS/A-GPS PSY with components on which it depends.

The GPS/A-GPS PSY implements the Positioning Plug-in API. This PSY does not interface directly with A-GPS hardware in the mobile device. It connects with hardware by using the A-GPS Location Manager and an A-GPS Integration Module. To use the GPS/A-GPS PSY, you must install an A-GPS Integration Module.

The GPS/A-GPS PSY contains two implementations of the PSY interface:

  • An A-GPS PSY that supports assisted GPS.

    Location Acquisition API client applications select this PSY to use assisted GPS. The exact GPS positioning mode that is used by the PSY is determined by the value of the LBS administration settings KLbsSettingHomeGpsMode (used when the mobile device is in the home network) and KLbsSettingRoamingGpsMode (used when the mobile device is outside of the home network).

    Note: If the administration setting specifies autonomous GPS then the A-GPS PSY will behave like the GPS PSY.

  • GPS PSY that supports only autonomous GPS.

    Location Acquisition API client applications select this PSY to use autonomous GPS. A user typically wants to use this PSY to ensure that there is no monetary charge caused by connecting to the network to get A-GPS assistance data.

The GPS/A-GPS PSY is packaged in the library lbsgpsagpspsy.dll. This DLL contains the two implementations of the PSY interface which can be instantiated by the Location Server. The code below shows the PSY implementations defined in the DLL.


const TImplementationProxy ImplementationTable[] = 
  {
  IMPLEMENTATION_PROXY_ENTRY(KPosGPSPSYImplUid,  CGpsPositioner::NewL),
  IMPLEMENTATION_PROXY_ENTRY(KPosAGPSPSYImplUid, CAgpsPositioner::NewL)
  };

You include the GPS/A-GPS PSY in your LBS ROM using the LBS buildrom macros. The GPS PSY and A-GPS PSY appear as two different PSYs to the Location Server. Each one can be selected by a Location Acquisition API client application either explicitly by UID, or by the Default PSY. See GPS/A-GPS PSY Tutorial for an explanation of how to configure and use the GPS/A-GPS PSY.

APIs

The GPS/A-GPS PSY implements the Positioning Plug-in API to integrate with the LBS subsystem. The code distribution for this PSY includes a Central Repository initialisation file that contains keys and values as specified by the Positioning Plug-in Information API.

The GPS/A-GPS PSY does not provide any APIs for use by device creators.

Typical uses

The GPS/A-GPS PSY is used by the LBS Location Server eposserver.exe to obtain position fixes using either autonomous or assisted GPS mode.