Telematics SDK - Interface Specification  v1.26.8
Location Services

Data Structures

class  telux::loc::ILocationConfigurator
 ILocationConfigurator allows for the enablement/disablement of the time uncertainty. It also allows to set the threshold and the required power level for the configureCTunc API. More...
 
struct  telux::loc::GnssKinematicsData
 
struct  telux::loc::TimeInfo
 
struct  telux::loc::GlonassTimeInfo
 
union  telux::loc::SystemTimeInfo
 
struct  telux::loc::SystemTime
 
struct  telux::loc::GnssMeasurementInfo
 
struct  telux::loc::GnssData
 
class  telux::loc::IGpsTime
 IGpsTime provides interface to get current GPS week and elapsed time in current GPS week. More...
 
class  telux::loc::ISensorDataUsage
 Specifies the sensors used for calculating the fixes and the type of measurements which were aided by sensor data. More...
 
class  telux::loc::ILocationInfo
 ILocationInfo provides interface to get basic position related information like latitude, longitude, altitude, timestamp and other information like time stamp, session status,. More...
 
class  telux::loc::ILocationInfoBase
 ILocationInfoBase provides interface to get basic position related information like latitude, longitude, altitude, timestamp. More...
 
class  telux::loc::ILocationInfoEx
 ILocationInfoEx provides interface to get richer position related information like latitude, longitude, altitude and other information like time stamp, session status, dop, reliabilities, uncertainities etc. More...
 
class  telux::loc::ISVInfo
 ISVInfo provides interface to retrieve information about Satellite Vehicles, their position and health status. More...
 
class  telux::loc::IGnssSVInfo
 IGnssSVInfo provides interface to retrieve the list of SV info available and whether altitude is assumed or calculated. More...
 
class  telux::loc::IGnssSignalInfo
 IGnssSignalInfo provides interface to retrieve GNSS data information like jammer metrics and automatic gain control for satellite signal type. More...
 
class  telux::loc::LocationFactory
 LocationFactory allows creation of location manager. More...
 
class  telux::loc::ILocationListener
 Listener class for getting location updates and satellite vehicle information. More...
 
class  telux::loc::ILocationManager
 ILocationManager provides interface to register and remove listeners. It also allows to set and get configuration/ criteria for position reports. The new APIs(registerListenerEx, deRegisterListenerEx, startDetailedReports, startBasicReports) and old/deprecated APIs(registerListener, removeListener, setPositionReportTimeout, setHorizontalAccuracyLevel, setMinIntervalForReports) should not be used interchangebly, either the new APIs should be used or the old APIs should be used. More...
 

Typedefs

using telux::loc::PositionTech = std::bitset< TECH_COUNT >
 
using telux::loc::SbasCorrection = std::bitset< SBAS_COUNT >
 
using telux::loc::Measurement = std::bitset< MEASUREMENT_COUNT >
 
using telux::loc::GnssPositionTech = uint32_t
 
using telux::loc::KinematicDataValidity = uint32_t
 
using telux::loc::GnssTimeValidity = uint32_t
 
using telux::loc::TimeValidity = uint32_t
 
using telux::loc::GnssSignal = uint32_t
 
using telux::loc::LocationTechnology = uint32_t
 
using telux::loc::LocationInfoExValidity = uint32_t
 
using telux::loc::GnssDataValidity = uint32_t
 
using telux::loc::DrCalibrationStatus = uint32_t
 
using telux::loc::LocReqEngine = uint16_t
 
using telux::loc::PositioningEngine = uint32_t
 

Enumerations

enum  telux::loc::FixRecurrence { telux::loc::FixRecurrence::PERIODIC = 1, telux::loc::FixRecurrence::SINGLE = 2 }
 
enum  telux::loc::HorizontalAccuracyLevel { telux::loc::HorizontalAccuracyLevel::LOW = 1, telux::loc::HorizontalAccuracyLevel::MEDIUM = 2, telux::loc::HorizontalAccuracyLevel::HIGH = 3 }
 
enum  telux::loc::PositionTechType {
  telux::loc::SATELLITE, telux::loc::CELLID, telux::loc::WIFI, telux::loc::SENSORS,
  telux::loc::REFERENCE_LOCATION, telux::loc::INJECTED_COARSE_POSITION, telux::loc::AFLT, telux::loc::HYBRID,
  telux::loc::TECH_COUNT
}
 
enum  telux::loc::LocationReliability {
  telux::loc::UNKNOWN = -1, telux::loc::LocationReliability::NOT_SET = 0, telux::loc::LocationReliability::VERY_LOW = 1, telux::loc::LocationReliability::LOW = 2,
  telux::loc::LocationReliability::MEDIUM = 3, telux::loc::LocationReliability::HIGH = 4
}
 
enum  telux::loc::SbasCorrectionType {
  telux::loc::SBAS_CORRECTION_IONO, telux::loc::SBAS_CORRECTION_FAST, telux::loc::SBAS_CORRECTION_LONG, telux::loc::SBAS_INTEGRITY,
  telux::loc::SBAS_CORRECTION_DGNSS, telux::loc::SBAS_CORRECTION_RTK, telux::loc::SBAS_CORRECTION_PPP, telux::loc::SBAS_COUNT
}
 
enum  telux::loc::SessionStatus {
  telux::loc::UNKNOWN = -1, telux::loc::SessionStatus::SUCCESS = 0, telux::loc::SessionStatus::IN_PROGRESS = 1, telux::loc::SessionStatus::GENERAL_FAILURE = 2,
  telux::loc::SessionStatus::TIMEOUT = 3, telux::loc::SessionStatus::USER_END = 4, telux::loc::SessionStatus::BAD_PARAMETER = 5, telux::loc::SessionStatus::PHONE_OFFLINE = 6,
  telux::loc::SessionStatus::ENGINE_LOCKED = 7
}
 
enum  telux::loc::AltitudeType { telux::loc::UNKNOWN = -1, telux::loc::AltitudeType::CALCULATED = 0, telux::loc::AltitudeType::ASSUMED = 1 }
 
enum  telux::loc::GnssConstellationType {
  telux::loc::UNKNOWN = -1, telux::loc::GnssConstellationType::GPS = 1, telux::loc::GnssConstellationType::GALILEO = 2, telux::loc::GnssConstellationType::SBAS = 3,
  telux::loc::GnssConstellationType::COMPASS = 4, telux::loc::GnssConstellationType::GLONASS = 5, telux::loc::GnssConstellationType::BDS = 6, telux::loc::GnssConstellationType::QZSS = 7
}
 
enum  telux::loc::SVHealthStatus { telux::loc::UNKNOWN = -1, telux::loc::SVHealthStatus::UNHEALTHY = 0, telux::loc::SVHealthStatus::HEALTHY = 1 }
 
enum  telux::loc::SVStatus { telux::loc::UNKNOWN = -1, telux::loc::SVStatus::IDLE = 0, telux::loc::SVStatus::SEARCH = 1, telux::loc::SVStatus::TRACK = 2 }
 
enum  telux::loc::SVInfoAvailability { telux::loc::UNKNOWN = -1 , telux::loc::SVInfoAvailability::NO = 1 }
 
enum  telux::loc::SensorType { telux::loc::UNKNOWN = -1, telux::loc::SensorType::ACCELEROMETER = 1, telux::loc::SensorType::GYROSCOPE = 2 }
 
enum  telux::loc::MeasurementType {
  telux::loc::UNKNOWN, telux::loc::UNKNOWN = -1, telux::loc::UNKNOWN = -1, telux::loc::UNKNOWN = -1,
  telux::loc::UNKNOWN = -1, telux::loc::UNKNOWN = -1, telux::loc::UNKNOWN = -1, telux::loc::UNKNOWN = -1,
  telux::loc::UNKNOWN = -1, telux::loc::HEADING, telux::loc::SPEED, telux::loc::POSITION,
  telux::loc::VELOCITY, telux::loc::MEASUREMENT_COUNT
}
 
enum  telux::loc::GnssPositionTechType {
  telux::loc::GNSS_DEFAULT = 0, telux::loc::GNSS_SATELLITE = (1 << 0), telux::loc::GNSS_CELLID = (1 << 1), telux::loc::GNSS_WIFI = (1 << 2),
  telux::loc::GNSS_SENSORS = (1 << 3), telux::loc::GNSS_REFERENCE_LOCATION = (1 << 4), telux::loc::GNSS_INJECTED_COARSE_POSITION = (1 << 5), telux::loc::GNSS_AFLT = (1 << 6),
  telux::loc::GNSS_HYBRID = (1 << 7), telux::loc::GNSS_PPE = (1 << 8)
}
 
enum  telux::loc::KinematicDataValidityType {
  telux::loc::HAS_LONG_ACCEL = (1 << 0), telux::loc::HAS_LAT_ACCEL = (1 << 1), telux::loc::HAS_VERT_ACCEL = (1 << 2), telux::loc::HAS_YAW_RATE = (1 << 3),
  telux::loc::HAS_PITCH = (1 << 4), telux::loc::HAS_LONG_ACCEL_UNC = (1 << 5), telux::loc::HAS_LAT_ACCEL_UNC = (1 << 6), telux::loc::HAS_VERT_ACCEL_UNC = (1 << 7),
  telux::loc::HAS_YAW_RATE_UNC = (1 << 8), telux::loc::HAS_PITCH_UNC = (1 << 9)
}
 
enum  telux::loc::GnssSystem {
  telux::loc::GnssSystem::GNSS_LOC_SV_SYSTEM_GPS = 1, telux::loc::GnssSystem::GNSS_LOC_SV_SYSTEM_GALILEO = 2, telux::loc::GnssSystem::GNSS_LOC_SV_SYSTEM_SBAS = 3, telux::loc::GnssSystem::GNSS_LOC_SV_SYSTEM_COMPASS = 4,
  telux::loc::GnssSystem::GNSS_LOC_SV_SYSTEM_GLONASS = 5, telux::loc::GnssSystem::GNSS_LOC_SV_SYSTEM_BDS = 6, telux::loc::GnssSystem::GNSS_LOC_SV_SYSTEM_QZSS = 7
}
 
enum  telux::loc::GnssTimeValidityType {
  telux::loc::GNSS_SYSTEM_TIME_WEEK_VALID = (1 << 0), telux::loc::GNSS_SYSTEM_TIME_WEEK_MS_VALID = (1 << 1), telux::loc::GNSS_SYSTEM_CLK_TIME_BIAS_VALID = (1 << 2), telux::loc::GNSS_SYSTEM_CLK_TIME_BIAS_UNC_VALID = (1 << 3),
  telux::loc::GNSS_SYSTEM_REF_FCOUNT_VALID = (1 << 4), telux::loc::GNSS_SYSTEM_NUM_CLOCK_RESETS_VALID = (1 << 5)
}
 
enum  telux::loc::GlonassTimeValidity {
  telux::loc::GNSS_CLO_DAYS_VALID = (1 << 0), telux::loc::GNSS_GLOS_MSEC_VALID = (1 << 1), telux::loc::GNSS_GLO_CLK_TIME_BIAS_VALID = (1 << 2), telux::loc::GNSS_GLO_CLK_TIME_BIAS_UNC_VALID = (1 << 3),
  telux::loc::GNSS_GLO_REF_FCOUNT_VALID = (1 << 4), telux::loc::GNSS_GLO_NUM_CLOCK_RESETS_VALID = (1 << 5), telux::loc::GNSS_GLO_FOUR_YEAR_VALID = (1 << 6)
}
 
enum  telux::loc::GnssSignalType {
  telux::loc::GPS_L1CA = (1<<0), telux::loc::GPS_L1C = (1<<1), telux::loc::GPS_L2 = (1<<2), telux::loc::GPS_L5 = (1<<3),
  telux::loc::GLONASS_G1 = (1<<4), telux::loc::GLONASS_G2 = (1<<5), telux::loc::GALILEO_E1 = (1<<6), telux::loc::GALILEO_E5A = (1<<7),
  telux::loc::GALILIEO_E5B = (1<<8), telux::loc::BEIDOU_B1 = (1<<9), telux::loc::BEIDOU_B2 = (1<<10), telux::loc::QZSS_L1CA = (1<<11),
  telux::loc::QZSS_L1S = (1<<12), telux::loc::QZSS_L2 = (1<<13), telux::loc::QZSS_L5 = (1<<14), telux::loc::SBAS_L1 = (1<<15),
  telux::loc::BEIDOU_B1I = (1<<16), telux::loc::BEIDOU_B1C = (1<<17), telux::loc::BEIDOU_B2I = (1<<18), telux::loc::BEIDOU_B2AI = (1<<19),
  telux::loc::NAVIC_L5 = (1<<20), telux::loc::BEIDOU_B2AQ = (1<<21)
}
 
enum  telux::loc::LocationTechnologyType { telux::loc::LOC_GNSS = (1 << 0), telux::loc::LOC_CELL = (1 << 1), telux::loc::LOC_WIFI = (1 << 2), telux::loc::LOC_SENSORS = (1 << 3) }
 
enum  telux::loc::LocationInfoExValidityType {
  telux::loc::HAS_ALTITUDE_MEAN_SEA_LEVEL = (1 << 0), telux::loc::HAS_DOP = (1 << 1), telux::loc::HAS_MAGNETIC_DEVIATION = (1 << 2), telux::loc::HAS_HOR_RELIABILITY = (1 << 3),
  telux::loc::HAS_VER_RELIABILITY = (1 << 4), telux::loc::HAS_HOR_ACCURACY_ELIP_SEMI_MAJOR = (1 << 5), telux::loc::HAS_HOR_ACCURACY_ELIP_SEMI_MINOR = (1 << 6), telux::loc::HAS_HOR_ACCURACY_ELIP_AZIMUTH = (1 << 7),
  telux::loc::HAS_GNSS_SV_USED_DATA = (1 << 8), telux::loc::HAS_NAV_SOLUTION_MASK = (1 << 9), telux::loc::HAS_POS_TECH_MASK = (1 << 10), telux::loc::HAS_SV_SOURCE_INFO = (1 << 11),
  telux::loc::HAS_POS_DYNAMICS_DATA = (1 << 12), telux::loc::HAS_EXT_DOP = (1 << 13), telux::loc::HAS_NORTH_STD_DEV = (1 << 14), telux::loc::HAS_EAST_STD_DEV = (1 << 15),
  telux::loc::HAS_NORTH_VEL = (1 << 16), telux::loc::HAS_EAST_VEL = (1 << 17), telux::loc::HAS_UP_VEL = (1 << 18), telux::loc::HAS_NORTH_VEL_UNC = (1 << 19),
  telux::loc::HAS_EAST_VEL_UNC = (1 << 20), telux::loc::HAS_UP_VEL_UNC = (1 << 21), telux::loc::HAS_LEAP_SECONDS = (1 << 22), telux::loc::HAS_TIME_UNC = (1 << 23),
  telux::loc::HAS_CALIBRATION_CONFIDENCE_PERCENT = (1 << 25), telux::loc::HAS_CALIBRATION_STATUS = (1 << 26), telux::loc::HAS_OUTPUT_ENG_TYPE = (1 << 27), telux::loc::HAS_OUTPUT_ENG_MASK = (1 << 28)
}
 
enum  telux::loc::GnssDataSignalTypes {
  telux::loc::GNSS_DATA_SIGNAL_TYPE_GPS_L1CA = 0, telux::loc::GNSS_DATA_SIGNAL_TYPE_GPS_L1C = 1, telux::loc::GNSS_DATA_SIGNAL_TYPE_GPS_L2C_L = 2, telux::loc::GNSS_DATA_SIGNAL_TYPE_GPS_L5_Q = 3,
  telux::loc::GNSS_DATA_SIGNAL_TYPE_GLONASS_G1 = 4, telux::loc::GNSS_DATA_SIGNAL_TYPE_GLONASS_G2 = 5, telux::loc::GNSS_DATA_SIGNAL_TYPE_GALILEO_E1_C = 6, telux::loc::GNSS_DATA_SIGNAL_TYPE_GALILEO_E5A_Q = 7,
  telux::loc::GNSS_DATA_SIGNAL_TYPE_GALILEO_E5B_Q = 8, telux::loc::GNSS_DATA_SIGNAL_TYPE_BEIDOU_B1_I = 9, telux::loc::GNSS_DATA_SIGNAL_TYPE_BEIDOU_B1C = 10, telux::loc::GNSS_DATA_SIGNAL_TYPE_BEIDOU_B2_I = 11,
  telux::loc::GNSS_DATA_SIGNAL_TYPE_BEIDOU_B2A_I = 12, telux::loc::GNSS_DATA_SIGNAL_TYPE_QZSS_L1CA = 13, telux::loc::GNSS_DATA_SIGNAL_TYPE_QZSS_L1S = 14, telux::loc::GNSS_DATA_SIGNAL_TYPE_QZSS_L2C_L = 15,
  telux::loc::GNSS_DATA_SIGNAL_TYPE_QZSS_L5_Q = 16, telux::loc::GNSS_DATA_SIGNAL_TYPE_SBAS_L1_CA = 17, telux::loc::GNSS_DATA_SIGNAL_TYPE_NAVIC_L5 = 18, telux::loc::GNSS_DATA_SIGNAL_TYPE_BEIDOU_B2A_Q = 19,
  telux::loc::GNSS_DATA_MAX_NUMBER_OF_SIGNAL_TYPES = 20
}
 
enum  telux::loc::GnssDataValidityType { telux::loc::HAS_JAMMER = (1ULL << 0), telux::loc::HAS_AGC = (1ULL << 1) }
 
enum  telux::loc::DrCalibrationStatusType {
  telux::loc::DR_ROLL_CALIBRATION_NEEDED = (1<<0), telux::loc::DR_PITCH_CALIBRATION_NEEDED = (1<<1), telux::loc::DR_YAW_CALIBRATION_NEEDED = (1<<2), telux::loc::DR_ODO_CALIBRATION_NEEDED = (1<<3),
  telux::loc::DR_GYRO_CALIBRATION_NEEDED = (1<<4)
}
 
enum  telux::loc::LocReqEngineType { telux::loc::LOC_REQ_ENGINE_FUSED_BIT = (1<<0), telux::loc::LOC_REQ_ENGINE_SPE_BIT = (1<<1), telux::loc::LOC_REQ_ENGINE_PPE_BIT = (1<<2) }
 
enum  telux::loc::LocationAggregationType { telux::loc::LOC_OUTPUT_ENGINE_FUSED = 0, telux::loc::LOC_OUTPUT_ENGINE_SPE = 1, telux::loc::LOC_OUTPUT_ENGINE_PPE = 2 }
 
enum  telux::loc::PositioningEngineType { telux::loc::STANDARD_POSITIONING_ENGINE = (1 << 0), telux::loc::DEAD_RECKONING_ENGINE = (1 << 1), telux::loc::PRECISE_POSITIONING_ENGINE = (1 << 2) }
 

Variables

const float telux::loc::UNKNOWN_CARRIER_FREQ = -1
 
const int telux::loc::UNKNOWN_SIGNAL_MASK = 0
 
const float telux::loc::DEFAULT_TUNC_THRESHOLD = 0.0
 
const int telux::loc::DEFAULT_TUNC_ENERGY_THRESHOLD = 0
 

Detailed Description

This section contains APIs related to Location Services.


Data Structure Documentation

class telux::loc::ILocationConfigurator

ILocationConfigurator allows for the enablement/disablement of the time uncertainty. It also allows to set the threshold and the required power level for the configureCTunc API.

Public Member Functions

virtual bool isSubsystemReady ()=0
 
virtual std::future< bool > onSubsystemReady ()=0
 
virtual telux::common::Status configureCTunc (bool enable, telux::common::ResponseCallback callback=nullptr, float timeUncertainty=DEFAULT_TUNC_THRESHOLD, uint32_t energyBudget=DEFAULT_TUNC_ENERGY_THRESHOLD)=0
 
virtual ~ILocationConfigurator ()
 

Constructor & Destructor Documentation

virtual telux::loc::ILocationConfigurator::~ILocationConfigurator ( )
virtual

Destructor of ILocationConfigurator

Member Function Documentation

virtual bool telux::loc::ILocationConfigurator::isSubsystemReady ( )
pure virtual

Checks the status of location configuration subsystems and returns the result.

Returns
True if location configuration subsystem is ready for service otherwise false.
virtual std::future<bool> telux::loc::ILocationConfigurator::onSubsystemReady ( )
pure virtual

Wait for location configuration subsystem to be ready.

Returns
A future that caller can wait on to be notified when location configuration subsystem is ready.
virtual telux::common::Status telux::loc::ILocationConfigurator::configureCTunc ( bool  enable,
telux::common::ResponseCallback  callback = nullptr,
float  timeUncertainty = DEFAULT_TUNC_THRESHOLD,
uint32_t  energyBudget = DEFAULT_TUNC_ENERGY_THRESHOLD 
)
pure virtual

This API enables or disables the constrained time uncertainty(C-TUNC) feature. When the vehicle is turned off this API helps to put constraint on the time uncertainty.

Parameters
[in]enable- true for enable C-TUNC feature and false for disable C-TUNC feature.
[in]callback- Optional callback to get the response of enablement/disablement of C-TUNC.
[in]timeUncertainty- specifies the time uncertainty threshold that gps engine needs to maintain, in unit of milli-seconds.
[in]energyBudget- specifies the power budget that the GPS engine is allowed to spend to maintain the time uncertainty, in the unit of 100 micro watt second. If the power exceeds the energyBudget then this API is disabled. This is a cumulative energy budget.
Returns
Status of configureCTunc i.e. success or suitable status code.
struct telux::loc::GnssKinematicsData

Specifies kinematics related information.

Data Fields
KinematicDataValidity bodyFrameDataMask

Contains Body frame LocPosDataMask bits.

float longAccel

Forward Acceleration in body frame (m/s2)

float latAccel

Sideward Acceleration in body frame (m/s2)

float vertAccel

Vertical Acceleration in body frame (m/s2)

float yawRate

Heading Rate (Radians/second)

float pitch

Body pitch (Radians)

float longAccelUnc

Uncertainty of Forward Acceleration in body frame

float latAccelUnc

Uncertainty of Side-ward Acceleration in body frame

float vertAccelUnc

Uncertainty of Vertical Acceleration in body frame

float yawRateUnc

Uncertainty of Heading Rate

float pitchUnc

Uncertainty of Body pitch

struct telux::loc::TimeInfo
Data Fields
GnssTimeValidity validityMask

Validity mask for below fields

uint16_t systemWeek

Extended week number at reference tick. Unit: Week. Set to 65535 if week number is unknown. For GPS: Calculated from midnight, Jan. 6, 1980. OTA decoded 10 bit GPS week is extended to map between: [NV6264 to (NV6264 + 1023)]. NV6264: Minimum GPS week number configuration. Default value of NV6264: 1738 For BDS: Calculated from 00:00:00 on January 1, 2006 of Coordinated Universal Time (UTC). For GAL: Calculated from 00:00 UT on Sunday August 22, 1999 (midnight between August 21 and August 22).

uint32_t systemMsec

Time in to the current week at reference tick. Unit: Millisecond. Range: 0 to 604799999. Check for systemClkTimeUncMs before use

float systemClkTimeBias

System clock time bias (sub-millisecond) Units: Millisecond Note: System time (TOW Millisecond) = systemMsec - systemClkTimeBias. Check for systemClkTimeUncMs before use.

float systemClkTimeUncMs

Single sided maximum time bias uncertainty Units: Millisecond

uint32_t refFCount

FCount (free running HW timer) value. Don't use for relative time purpose due to possible discontinuities. Unit: Millisecond

uint32_t numClockResets

Number of clock resets/discontinuities detected, affecting the local hardware counter value.

struct telux::loc::GlonassTimeInfo
Data Fields
uint16_t gloDays

GLONASS day number in four years. Refer to GLONASS ICD. Applicable only for GLONASS and shall be ignored for other constellations. If unknown shall be set to 65535

TimeValidity validityMask

Validity mask for below fields

uint32_t gloMsec

GLONASS time of day in Millisecond. Refer to GLONASS ICD. Units: Millisecond Check for gloClkTimeUncMs before use

float gloClkTimeBias

GLONASS clock time bias (sub-millisecond) Units: Millisecond Note: GLO time (TOD Millisecond) = gloMsec - gloClkTimeBias. Check for gloClkTimeUncMs before use.

float gloClkTimeUncMs

Single sided maximum time bias uncertainty Units: Millisecond

uint32_t refFCount

FCount (free running HW timer) value. Don't use for relative time purpose due to possible discontinuities. Unit: Millisecond

uint32_t numClockResets

Number of clock resets/discontinuities detected, affecting the local hardware counter value.

uint8_t gloFourYear

GLONASS four year number from 1996. Refer to GLONASS ICD. Applicable only for GLONASS and shall be ignored for other constellations. If unknown shall be set to 255

union telux::loc::SystemTimeInfo
Data Fields
TimeInfo gps
TimeInfo gal
TimeInfo bds
TimeInfo qzss
GlonassTimeInfo glo
struct telux::loc::SystemTime
Data Fields
GnssSystem gnssSystemTimeSrc

Specifies GNSS system time reported. Mandatory field

SystemTimeInfo time

Reporting of GPS system time is recommended. If GPS time is unknown & other satellite system time is known, it should be reported. Mandatory field

struct telux::loc::GnssMeasurementInfo
Data Fields
GnssSignal gnssSignalType

GnssSignalType mask

GnssSystem gnssConstellation

Specifies GNSS Constellation Type

uint16_t gnssSvId

GNSS SV ID. For GPS: 1 to 32 For GLONASS: 65 to 96. When slot-number to SV ID mapping is unknown, set as 255. For SBAS: 120 to 151 For QZSS-L1CA:193 to 197 For BDS: 201 to 237 For GAL: 301 to 336

struct telux::loc::GnssData
Data Fields
GnssDataValidity gnssDataMask[GnssDataSignalTypes::GNSS_DATA_MAX_NUMBER_OF_SIGNAL_TYPES]

bitwise OR of GnssDataValidityType

double jammerInd[GnssDataSignalTypes::GNSS_DATA_MAX_NUMBER_OF_SIGNAL_TYPES]

Jammer Indication Each index represents the measurement for the signal type in GnssDataSignalTypes

double agc[GnssDataSignalTypes::GNSS_DATA_MAX_NUMBER_OF_SIGNAL_TYPES]

Automatic gain control Each index represents the measurement for the signal type in GnssDataSignalTypes

class telux::loc::IGpsTime

IGpsTime provides interface to get current GPS week and elapsed time in current GPS week.

Public Member Functions

virtual uint32_t getWeek ()=0
 
virtual uint32_t getTimeOfWeekMsec ()=0
 

Member Function Documentation

virtual uint32_t telux::loc::IGpsTime::getWeek ( )
pure virtual

Retrieves current GPS week as calculated from midnight, Jan 6, 1980.

Returns
Unsigned 32-bit integer containing week number.
virtual uint32_t telux::loc::IGpsTime::getTimeOfWeekMsec ( )
pure virtual

Retrieves elapsed time in the current GPS week starting from 12:00 am on Sunday.

Returns
Unsigned 32-bit integer containing time in milliseconds.
class telux::loc::ISensorDataUsage

Specifies the sensors used for calculating the fixes and the type of measurements which were aided by sensor data.

Public Member Functions

virtual SensorType getSensorType ()=0
 
virtual Measurement getMeasurement ()=0
 

Member Function Documentation

virtual SensorType telux::loc::ISensorDataUsage::getSensorType ( )
pure virtual

Retrieves which sensors were used in calculating the position in the position report.

Returns
SensorType if available.
virtual Measurement telux::loc::ISensorDataUsage::getMeasurement ( )
pure virtual

Retrieves which measurements were aided by sensor data.

Returns
Measurement types if available.
class telux::loc::ILocationInfo

ILocationInfo provides interface to get basic position related information like latitude, longitude, altitude, timestamp and other information like time stamp, session status,.

Public Member Functions

virtual PositionTech getPositionTechnology ()=0
 
virtual double getLatitude ()=0
 
virtual double getLongitude ()=0
 
virtual double getAltitude ()=0
 
virtual float getHeading ()=0
 
virtual float getVerticalUncertainty ()=0
 
virtual uint64_t getTimeStamp ()=0
 
virtual float getSpeedUncertainty ()=0
 
virtual float getHeadingUncertainty ()=0
 
virtual float getAltitudeMeanSeaLevel ()=0
 
virtual float getPositionDop ()=0
 
virtual float getHorizontalDop ()=0
 
virtual float getVerticalDop ()=0
 
virtual float getMagneticDeviation ()=0
 
virtual LocationReliability getHorizontalReliability ()=0
 
virtual LocationReliability getVerticalReliability ()=0
 
virtual float getHorizontalUncertaintySemiMajor ()=0
 
virtual float getHorizontalUncertaintySemiMinor ()=0
 
virtual float getHorizontalUncertaintyAzimuth ()=0
 
virtual void getSVIds (std::vector< uint16_t > &idsOfUsedSVs)=0
 
virtual SbasCorrection getSbasCorrection ()=0
 
virtual SessionStatus getSessionStatus ()=0
 
virtual telux::common::Status getLeapSeconds (uint8_t &leapSeconds)=0
 
virtual std::shared_ptr< IGpsTimegetGpsTime ()=0
 
virtual telux::common::Status getCircularHorizontalUncertainty (float &circularHorizontalUncertainty)=0
 
virtual telux::common::Status getHorizontalConfidence (uint8_t &horizontalConfidence)=0
 
virtual float getHorizontalSpeed ()=0
 
virtual telux::common::Status getVerticalConfidence (uint8_t &verticalConfidence)=0
 
virtual float getVerticalSpeed ()=0
 
virtual telux::common::Status getSensorDataUsage (std::shared_ptr< ISensorDataUsage > &sensorDataUsage)=0
 
virtual telux::common::Status getFixId (uint32_t &fixId)=0
 
virtual telux::common::Status getVelocityEastNorthUp (std::vector< float > &velocityEastNorthUp)=0
 
virtual telux::common::Status getVelocityUncertaintyEastNorthUp (std::vector< float > &velocityUncertaintyEastNorthUp)=0
 

Member Function Documentation

virtual PositionTech telux::loc::ILocationInfo::getPositionTechnology ( )
pure virtual

Retrieves technology used in computing this fix.

Returns
Position technology.
virtual double telux::loc::ILocationInfo::getLatitude ( )
pure virtual

Retrieves latitude. Positive and negative values indicate northern and southern latitude respectively

  • Units: Degrees
  • Range: -90.0 to 90.0
Returns
Latitude if available else returns NaN.
virtual double telux::loc::ILocationInfo::getLongitude ( )
pure virtual

Retrieves longitude. Positive and negative values indicate eastern and western longitude respectively

  • Units: Degrees
  • Range: -180.0 to 180.0
Returns
Longitude if available else returns NaN.
virtual double telux::loc::ILocationInfo::getAltitude ( )
pure virtual

Retrieves altitude above the WGS 84 reference ellipsoid.

  • Units: Meters
Returns
Altitude if available else returns NaN.
virtual float telux::loc::ILocationInfo::getHeading ( )
pure virtual

Retrieves heading.

  • Units: Degrees
  • Range: 0 to 359.999
Returns
Heading if available else returns NaN.
virtual float telux::loc::ILocationInfo::getVerticalUncertainty ( )
pure virtual

Retrieves the vertical uncertainty.

  • Units: Meters
Returns
Vertical uncertainty if available else returns NaN.
virtual uint64_t telux::loc::ILocationInfo::getTimeStamp ( )
pure virtual

Retrieves UTC timeStamp for the location fix.

  • Units: Milliseconds since Jan 1, 1970
Returns
TimeStamp in seconds if available else returns 0 (as UTC timeStamp has elapsed since January 1, 1970, it cannot be 0)
virtual float telux::loc::ILocationInfo::getSpeedUncertainty ( )
pure virtual

Retrieves 3-D speed uncertainty.

  • Units: Meters per Second
Returns
Speed uncertainty if available else returns NaN.
virtual float telux::loc::ILocationInfo::getHeadingUncertainty ( )
pure virtual

Retrieves heading uncertainty.

  • Units: Degrees
  • Range: 0 to 359.999
Returns
Heading uncertainty if available else returns NaN.
virtual float telux::loc::ILocationInfo::getAltitudeMeanSeaLevel ( )
pure virtual

Retrieves the altitude with respect to mean sea level.

  • Units: Meters
Returns
Altitude with respect to mean sea level if available else returns NaN.
virtual float telux::loc::ILocationInfo::getPositionDop ( )
pure virtual

Retrieves position dilution of precision.

Returns
Position dilution of precision if available else returns NaN. Range: 1 (highest accuracy) to 50 (lowest accuracy)
virtual float telux::loc::ILocationInfo::getHorizontalDop ( )
pure virtual

Retrieves horizontal dilution of precision.

Returns
Horizontal dilution of precision if available else returns NaN. Range: 1 (highest accuracy) to 50 (lowest accuracy)
virtual float telux::loc::ILocationInfo::getVerticalDop ( )
pure virtual

Retrieves vertical dilution of precision.

Returns
Vertical dilution of precision if available else returns NaN Range: 1 (highest accuracy) to 50 (lowest accuracy)
virtual float telux::loc::ILocationInfo::getMagneticDeviation ( )
pure virtual

Retrieves the difference between the bearing to true north and the bearing shown on magnetic compass. The deviation is positive when the magnetic north is east of true north.

  • Units: Degrees
Returns
Magnetic Deviation if available else returns NaN
virtual LocationReliability telux::loc::ILocationInfo::getHorizontalReliability ( )
pure virtual

Specifies the reliability of the horizontal position.

Returns
LocationReliability of the horizontal position if available else returns UNKNOWN.
virtual LocationReliability telux::loc::ILocationInfo::getVerticalReliability ( )
pure virtual

Specifies the reliability of the vertical position.

Returns
LocationReliability of the vertical position if available else returns UNKNOWN.
virtual float telux::loc::ILocationInfo::getHorizontalUncertaintySemiMajor ( )
pure virtual

Retrieves semi-major axis of horizontal elliptical uncertainty.

  • Units: Meters
Returns
Semi-major horizontal elliptical uncertainty if available else returns NaN.
virtual float telux::loc::ILocationInfo::getHorizontalUncertaintySemiMinor ( )
pure virtual

Retrieves semi-minor axis of horizontal elliptical uncertainty.

  • Units: Meters
Returns
Semi-minor horizontal elliptical uncertainty if available else returns NaN.
virtual float telux::loc::ILocationInfo::getHorizontalUncertaintyAzimuth ( )
pure virtual

Retrieves elliptical horizontal uncertainty azimuth of orientation.

  • Units: Decimal degrees
  • Range: 0 to 180
Returns
Elliptical horizontal uncertainty azimuth of orientation if available else returns NaN.
virtual void telux::loc::ILocationInfo::getSVIds ( std::vector< uint16_t > &  idsOfUsedSVs)
pure virtual

Retrieves GNSS Satellite Vehicles used in position data.

Parameters
[out]idsOfUsedSVsVector of Satellite Vehicle identifiers.
virtual SbasCorrection telux::loc::ILocationInfo::getSbasCorrection ( )
pure virtual

Retrieves navigation solution mask used to indicate SBAS corrections.

Returns
- SBAS (Satellite Based Augmentation System) Correction mask used.
virtual SessionStatus telux::loc::ILocationInfo::getSessionStatus ( )
pure virtual

Retrieves status of the session that is requested by user application.

Returns
SessionStatus
virtual telux::common::Status telux::loc::ILocationInfo::getLeapSeconds ( uint8_t &  leapSeconds)
pure virtual

Retrieves leap seconds if available.

Parameters
[out]leapSeconds- leap seconds
  • Units: Seconds
Returns
Status of leap seconds.
virtual std::shared_ptr<IGpsTime> telux::loc::ILocationInfo::getGpsTime ( )
pure virtual

Retrieves GPS time structure.

Returns
Pointer of IGpsTime object if available else returns null pointer.
virtual telux::common::Status telux::loc::ILocationInfo::getCircularHorizontalUncertainty ( float &  circularHorizontalUncertainty)
pure virtual

Retrieves horizontal position uncertainty (circular) if available.

Parameters
[out]circularHorizontalUncertainty- circular horizontal uncertainty
  • Units: Meters
Returns
Status of circular horizontal uncertainty.
virtual telux::common::Status telux::loc::ILocationInfo::getHorizontalConfidence ( uint8_t &  horizontalConfidence)
pure virtual

Retrieves horizontal uncertainty confidence if available.

Parameters
[out]horizontalConfidence- horizontal uncertainty confidence
  • Units: Percent
  • Range: 0 to 99
Returns
Status of horizontal uncertainty confidence.
virtual float telux::loc::ILocationInfo::getHorizontalSpeed ( )
pure virtual

Retrieves horizontal speed.

  • Units: Meters/second
Returns
horizontal speed if available else returns NaN.
virtual telux::common::Status telux::loc::ILocationInfo::getVerticalConfidence ( uint8_t &  verticalConfidence)
pure virtual

Retrieves vertical uncertainty confidence if available.

Parameters
[out]verticalConfidence- vertical uncertainty confidence
  • Units: Percent
  • Range: 0 to 99
Returns
Status of vertical uncertainty confidence.
virtual float telux::loc::ILocationInfo::getVerticalSpeed ( )
pure virtual

Retrieves vertical speed.

  • Units: Meters/second
Returns
Float containing vertical speed if available else returns NaN.
virtual telux::common::Status telux::loc::ILocationInfo::getSensorDataUsage ( std::shared_ptr< ISensorDataUsage > &  sensorDataUsage)
pure virtual

Retrieves sensor data was used in computing the position if available.

Parameters
[out]sensorDataUsage- which sensors were used in calculating the position
Returns
Status of availability of sensorDataUsage.
virtual telux::common::Status telux::loc::ILocationInfo::getFixId ( uint32_t &  fixId)
pure virtual

Retrieves fix count if available. Fix count of a session starts with 0 and increments by one for each successive position report for a particular session.

Parameters
[out]fixId- identifier of fix for session
Returns
Status of availability of fix identifier.
virtual telux::common::Status telux::loc::ILocationInfo::getVelocityEastNorthUp ( std::vector< float > &  velocityEastNorthUp)
pure virtual

Retrieves east, North, Up velocity if available.

Parameters
[out]velocityEastNorthUp- east, North, Up velocity
  • Units: Meters/second
Returns
Status of availability of east, North, Up velocity.
virtual telux::common::Status telux::loc::ILocationInfo::getVelocityUncertaintyEastNorthUp ( std::vector< float > &  velocityUncertaintyEastNorthUp)
pure virtual

Retrieves east, North, Up velocity uncertainty if available.

Parameters
[out]velocityUncertaintyEastNorthUp- east, North, Up velocity uncertainty Units: Meters/second
Returns
Status of availability of east, North, Up velocity uncertainty.
class telux::loc::ILocationInfoBase

ILocationInfoBase provides interface to get basic position related information like latitude, longitude, altitude, timestamp.

Public Member Functions

virtual LocationTechnology getTechMask ()=0
 
virtual float getSpeed ()=0
 
virtual double getLatitude ()=0
 
virtual double getLongitude ()=0
 
virtual double getAltitude ()=0
 
virtual float getHeading ()=0
 
virtual float getHorizontalUncertainty ()=0
 
virtual float getVerticalUncertainty ()=0
 
virtual uint64_t getTimeStamp ()=0
 
virtual float getSpeedUncertainty ()=0
 
virtual float getHeadingUncertainty ()=0
 

Member Function Documentation

virtual LocationTechnology telux::loc::ILocationInfoBase::getTechMask ( )
pure virtual

Retrieves technology used in computing this fix.

Returns
Location technology mask.
virtual float telux::loc::ILocationInfoBase::getSpeed ( )
pure virtual

Retrieves Speed.

Returns
speed in meters per second.
virtual double telux::loc::ILocationInfoBase::getLatitude ( )
pure virtual

Retrieves latitude. Positive and negative values indicate northern and southern latitude respectively

  • Units: Degrees
  • Range: -90.0 to 90.0
Returns
Latitude if available else returns NaN.
virtual double telux::loc::ILocationInfoBase::getLongitude ( )
pure virtual

Retrieves longitude. Positive and negative values indicate eastern and western longitude respectively

  • Units: Degrees
  • Range: -180.0 to 180.0
Returns
Longitude if available else returns NaN.
virtual double telux::loc::ILocationInfoBase::getAltitude ( )
pure virtual

Retrieves altitude above the WGS 84 reference ellipsoid.

  • Units: Meters
Returns
Altitude if available else returns NaN.
virtual float telux::loc::ILocationInfoBase::getHeading ( )
pure virtual

Retrieves heading.

  • Units: Degrees
  • Range: 0 to 359.999
Returns
Heading if available else returns NaN.
virtual float telux::loc::ILocationInfoBase::getHorizontalUncertainty ( )
pure virtual

Retrieves the horizontal uncertainty.

Returns
Horizontal uncertainty.
virtual float telux::loc::ILocationInfoBase::getVerticalUncertainty ( )
pure virtual

Retrieves the vertical uncertainty.

  • Units: Meters
Returns
Vertical uncertainty if available else returns NaN.
virtual uint64_t telux::loc::ILocationInfoBase::getTimeStamp ( )
pure virtual

Retrieves UTC timeStamp for the location fix.

  • Units: Milliseconds since Jan 1, 1970
Returns
TimeStamp in seconds if available else returns 0 (as UTC timeStamp has elapsed since January 1, 1970, it cannot be 0)
virtual float telux::loc::ILocationInfoBase::getSpeedUncertainty ( )
pure virtual

Retrieves 3-D speed uncertainty.

  • Units: Meters per Second
Returns
Speed uncertainty if available else returns NaN.
virtual float telux::loc::ILocationInfoBase::getHeadingUncertainty ( )
pure virtual

Retrieves heading uncertainty.

  • Units: Degrees
  • Range: 0 to 359.999
Returns
Heading uncertainty if available else returns NaN.
class telux::loc::ILocationInfoEx

ILocationInfoEx provides interface to get richer position related information like latitude, longitude, altitude and other information like time stamp, session status, dop, reliabilities, uncertainities etc.

Public Member Functions

virtual float getAltitudeMeanSeaLevel ()=0
 
virtual float getPositionDop ()=0
 
virtual float getHorizontalDop ()=0
 
virtual float getVerticalDop ()=0
 
virtual float getGeometricDop ()=0
 
virtual float getTimeDop ()=0
 
virtual float getMagneticDeviation ()=0
 
virtual LocationReliability getHorizontalReliability ()=0
 
virtual LocationReliability getVerticalReliability ()=0
 
virtual float getHorizontalUncertaintySemiMajor ()=0
 
virtual float getHorizontalUncertaintySemiMinor ()=0
 
virtual float getHorizontalUncertaintyAzimuth ()=0
 
virtual float getEastStandardDeviation ()=0
 
virtual float getNorthStandardDeviation ()=0
 
virtual void getSVIds (std::vector< uint16_t > &idsOfUsedSVs)=0
 
virtual SbasCorrection getSbasCorrection ()=0
 
virtual GnssPositionTech getPositionTechnology ()=0
 
virtual GnssKinematicsData getBodyFrameData ()=0
 
virtual std::vector< GnssMeasurementInfogetmeasUsageInfo ()=0
 
virtual SystemTime getGnssSystemTime ()=0
 
virtual float getTimeUncMs ()=0
 
virtual telux::common::Status getLeapSeconds (uint8_t &leapSeconds)=0
 
virtual telux::common::Status getVelocityEastNorthUp (std::vector< float > &velocityEastNorthUp)=0
 
virtual telux::common::Status getVelocityUncertaintyEastNorthUp (std::vector< float > &velocityUncertaintyEastNorthUp)=0
 
virtual uint8_t getCalibrationConfidencePercent ()=0
 
virtual DrCalibrationStatus getCalibrationStatus ()=0
 
virtual LocationAggregationType getLocOutputEngType ()=0
 
virtual PositioningEngine getLocOutputEngMask ()=0
 
- Public Member Functions inherited from telux::loc::ILocationInfoBase
virtual LocationTechnology getTechMask ()=0
 
virtual float getSpeed ()=0
 
virtual double getLatitude ()=0
 
virtual double getLongitude ()=0
 
virtual double getAltitude ()=0
 
virtual float getHeading ()=0
 
virtual float getHorizontalUncertainty ()=0
 
virtual float getVerticalUncertainty ()=0
 
virtual uint64_t getTimeStamp ()=0
 
virtual float getSpeedUncertainty ()=0
 
virtual float getHeadingUncertainty ()=0
 

Member Function Documentation

virtual float telux::loc::ILocationInfoEx::getAltitudeMeanSeaLevel ( )
pure virtual

Retrieves the altitude with respect to mean sea level.

  • Units: Meters
Returns
Altitude with respect to mean sea level if available else returns NaN.
virtual float telux::loc::ILocationInfoEx::getPositionDop ( )
pure virtual

Retrieves position dilution of precision.

Returns
Position dilution of precision if available else returns NaN. Range: 1 (highest accuracy) to 50 (lowest accuracy)
virtual float telux::loc::ILocationInfoEx::getHorizontalDop ( )
pure virtual

Retrieves horizontal dilution of precision.

Returns
Horizontal dilution of precision if available else returns NaN. Range: 1 (highest accuracy) to 50 (lowest accuracy)
virtual float telux::loc::ILocationInfoEx::getVerticalDop ( )
pure virtual

Retrieves vertical dilution of precision.

Returns
Vertical dilution of precision if available else returns NaN Range: 1 (highest accuracy) to 50 (lowest accuracy)
virtual float telux::loc::ILocationInfoEx::getGeometricDop ( )
pure virtual

Retrieves geometric dilution of precision.

Returns
geometric dilution of precision.
virtual float telux::loc::ILocationInfoEx::getTimeDop ( )
pure virtual

Retrieves time dilution of precision.

Returns
Time dilution of precision.
virtual float telux::loc::ILocationInfoEx::getMagneticDeviation ( )
pure virtual

Retrieves the difference between the bearing to true north and the bearing shown on magnetic compass. The deviation is positive when the magnetic north is east of true north.

  • Units: Degrees
Returns
Magnetic Deviation if available else returns NaN
virtual LocationReliability telux::loc::ILocationInfoEx::getHorizontalReliability ( )
pure virtual

Specifies the reliability of the horizontal position.

Returns
LocationReliability of the horizontal position if available else returns UNKNOWN.
virtual LocationReliability telux::loc::ILocationInfoEx::getVerticalReliability ( )
pure virtual

Specifies the reliability of the vertical position.

Returns
LocationReliability of the vertical position if available else returns UNKNOWN.
virtual float telux::loc::ILocationInfoEx::getHorizontalUncertaintySemiMajor ( )
pure virtual

Retrieves semi-major axis of horizontal elliptical uncertainty.

  • Units: Meters
Returns
Semi-major horizontal elliptical uncertainty if available else returns NaN.
virtual float telux::loc::ILocationInfoEx::getHorizontalUncertaintySemiMinor ( )
pure virtual

Retrieves semi-minor axis of horizontal elliptical uncertainty.

  • Units: Meters
Returns
Semi-minor horizontal elliptical uncertainty if available else returns NaN.
virtual float telux::loc::ILocationInfoEx::getHorizontalUncertaintyAzimuth ( )
pure virtual

Retrieves elliptical horizontal uncertainty azimuth of orientation.

  • Units: Decimal degrees
  • Range: 0 to 180
Returns
Elliptical horizontal uncertainty azimuth of orientation if available else returns NaN.
virtual float telux::loc::ILocationInfoEx::getEastStandardDeviation ( )
pure virtual

Retrieves east standard deviation.

  • Units: Meters
Returns
East Standard Deviation.
virtual float telux::loc::ILocationInfoEx::getNorthStandardDeviation ( )
pure virtual

Retrieves north standard deviation.

  • Units: Meters
Returns
North Standard Deviation.
virtual void telux::loc::ILocationInfoEx::getSVIds ( std::vector< uint16_t > &  idsOfUsedSVs)
pure virtual

Retrieves GNSS Satellite Vehicles used in position data.

Parameters
[out]idsOfUsedSVsVector of Satellite Vehicle identifiers.
virtual SbasCorrection telux::loc::ILocationInfoEx::getSbasCorrection ( )
pure virtual

Retrieves navigation solution mask used to indicate SBAS corrections.

Returns
- SBAS (Satellite Based Augmentation System) Correction mask used.
virtual GnssPositionTech telux::loc::ILocationInfoEx::getPositionTechnology ( )
pure virtual

Retrieves position technology mask used to indicate which technology is used.

Returns
- Position technology used in computing this fix.
virtual GnssKinematicsData telux::loc::ILocationInfoEx::getBodyFrameData ( )
pure virtual

Retrieves position related information.

virtual std::vector<GnssMeasurementInfo> telux::loc::ILocationInfoEx::getmeasUsageInfo ( )
pure virtual

Retrieves gnss measurement usage info.

virtual SystemTime telux::loc::ILocationInfoEx::getGnssSystemTime ( )
pure virtual

Retrieves type of gnss system.

Returns
- Type of Gnss System.
virtual float telux::loc::ILocationInfoEx::getTimeUncMs ( )
pure virtual

Retrieves time uncertainity.

Returns
- Time uncertainty in milliseconds.
virtual telux::common::Status telux::loc::ILocationInfoEx::getLeapSeconds ( uint8_t &  leapSeconds)
pure virtual

Retrieves leap seconds if available.

Parameters
[out]leapSeconds- leap seconds
  • Units: Seconds
Returns
Status of leap seconds.
virtual telux::common::Status telux::loc::ILocationInfoEx::getVelocityEastNorthUp ( std::vector< float > &  velocityEastNorthUp)
pure virtual

Retrieves east, North, Up velocity if available.

Parameters
[out]velocityEastNorthUp- east, North, Up velocity
  • Units: Meters/second
Returns
Status of availability of east, North, Up velocity.
virtual telux::common::Status telux::loc::ILocationInfoEx::getVelocityUncertaintyEastNorthUp ( std::vector< float > &  velocityUncertaintyEastNorthUp)
pure virtual

Retrieves east, North, Up velocity uncertainty if available.

Parameters
[out]velocityUncertaintyEastNorthUp- east, North, Up velocity uncertainty
  • Units: Meters/second
Returns
Status of availability of east, North, Up velocity uncertainty.
virtual uint8_t telux::loc::ILocationInfoEx::getCalibrationConfidencePercent ( )
pure virtual

Sensor calibration confidence percent, range [0, 100].

Returns
the percentage of calibration taking all the parameters into account.
virtual DrCalibrationStatus telux::loc::ILocationInfoEx::getCalibrationStatus ( )
pure virtual

Sensor calibration status.

Returns
mask indicating the calibration status with respect to different parameters.
virtual LocationAggregationType telux::loc::ILocationInfoEx::getLocOutputEngType ( )
pure virtual

Location engine type. When the type is set to LOC_ENGINE_SRC_FUSED, the fix is the propagated/aggregated reports from all engines running on the system (e.g.: DR/SPE/PPE) based QTI algorithm. To check which location engine contributes to the fused output, check for locOutputEngMask.

Returns
the type of engine that was used for calculating the position fix.
virtual PositioningEngine telux::loc::ILocationInfoEx::getLocOutputEngMask ( )
pure virtual

When loc output eng type is set to fused, this field indicates the set of engines contribute to the fix.

Returns
the combination of position engines used in calculating the position report when the loc output end type is set to fused.
class telux::loc::ISVInfo

ISVInfo provides interface to retrieve information about Satellite Vehicles, their position and health status.

Public Member Functions

virtual GnssConstellationType getConstellation ()=0
 
virtual uint16_t getId ()=0
 
virtual SVHealthStatus getSVHealthStatus ()=0
 
virtual SVStatus getStatus ()=0
 
virtual SVInfoAvailability getHasEphemeris ()=0
 
virtual SVInfoAvailability getHasAlmanac ()=0
 
virtual SVInfoAvailability getHasFix ()=0
 
virtual float getElevation ()=0
 
virtual float getAzimuth ()=0
 
virtual float getSnr ()=0
 
virtual float getCarrierFrequency ()=0
 
virtual GnssSignal getSignalType ()=0
 

Member Function Documentation

virtual GnssConstellationType telux::loc::ISVInfo::getConstellation ( )
pure virtual

Indicates to which constellation this satellite vehicle belongs.

Returns
GnssConstellationType if available else returns UNKNOWN.
virtual uint16_t telux::loc::ISVInfo::getId ( )
pure virtual

GNSS satellite vehicle ID.

Returns
Identifier of the satellite vehicle otherwise 0(as 0 is not an ID for any of the SVs)
virtual SVHealthStatus telux::loc::ISVInfo::getSVHealthStatus ( )
pure virtual

Health status of satellite vehicle.

Returns
HealthStatus of Satellite Vehicle if available else returns UNKNOWN.
virtual SVStatus telux::loc::ISVInfo::getStatus ( )
pure virtual

Status of satellite vehicle.

Note
This API is work-in-progress and is subject to change.
Returns
Satellite Vehicle Status if available else returns UNKNOWN.
virtual SVInfoAvailability telux::loc::ISVInfo::getHasEphemeris ( )
pure virtual

Indicates whether ephemeris information(which allows the receiver to calculate the satellite's position) is available.

Returns
SVInfoAvailability if Ephemeris exists or not else returns UNKNOWN.
virtual SVInfoAvailability telux::loc::ISVInfo::getHasAlmanac ( )
pure virtual

Indicates whether almanac information(which allows receivers to know which satellites are available for tracking) is available.

Returns
SVInfoAvailability if almanac exists or not else returns UNKNOWN.
virtual SVInfoAvailability telux::loc::ISVInfo::getHasFix ( )
pure virtual

Indicates whether the satellite is used in computing the fix.

Returns
SVInfoAvailability, if satellite used or not else returns UNKNOWN.
virtual float telux::loc::ISVInfo::getElevation ( )
pure virtual

Retrieves satellite vehicle elevation angle.

  • Units: Degrees
  • Range: 0 to 90
Returns
Elevation if available else returns NaN.
virtual float telux::loc::ISVInfo::getAzimuth ( )
pure virtual

Retrieves satellite vehicle azimuth angle.

  • Units: Degrees
  • Range: 0 to 360
Returns
Azimuth if available else returns NaN.
virtual float telux::loc::ISVInfo::getSnr ( )
pure virtual

Retrieves satellite vehicle signal-to-noise ratio.

  • Units: dB-Hz
Returns
SNR if available else returns NaN.
virtual float telux::loc::ISVInfo::getCarrierFrequency ( )
pure virtual

Indicates the carrier frequency of the signal tracked.

Returns
carrier frequency in Hz else returns UNKNOWN_CARRIER_FREQ frequency when not supported.
virtual GnssSignal telux::loc::ISVInfo::getSignalType ( )
pure virtual

Indicates the validity for different types of signal for gps, galileo, beidou etc.

Returns
signalType mask else return UNKNOWN_SIGNAL_MASK when not supported.
class telux::loc::IGnssSVInfo

IGnssSVInfo provides interface to retrieve the list of SV info available and whether altitude is assumed or calculated.

Public Member Functions

virtual AltitudeType getAltitudeType ()=0
 
virtual std::vector< std::shared_ptr< ISVInfo > > getSVInfoList ()=0
 

Member Function Documentation

virtual AltitudeType telux::loc::IGnssSVInfo::getAltitudeType ( )
pure virtual

Indicates whether altitude is assumed or calculated.

Returns
AltitudeType if available else returns UNKNOWN.
virtual std::vector<std::shared_ptr<ISVInfo> > telux::loc::IGnssSVInfo::getSVInfoList ( )
pure virtual

Pointer to satellite vehicles information for all GNSS constellations except GPS.

Returns
Vector of pointer of ISVInfo object if available else returns empty vector.
class telux::loc::IGnssSignalInfo

IGnssSignalInfo provides interface to retrieve GNSS data information like jammer metrics and automatic gain control for satellite signal type.

Public Member Functions

virtual GnssData getGnssData ()=0
 

Member Function Documentation

virtual GnssData telux::loc::IGnssSignalInfo::getGnssData ( )
pure virtual

Retrieves jammer metric and Automatic Gain Control(AGC) corresponding to signal types.Jammer metric is linearly proportional to the sum of jammer and noise power at the GNSS antenna port.

Returns
List of jammer metric and a list of automatic gain control for signal type.
class telux::loc::LocationFactory

LocationFactory allows creation of location manager.

Public Member Functions

std::shared_ptr< ILocationManagergetLocationManager ()
 
std::shared_ptr< ILocationConfiguratorgetLocationConfigurator ()
 
 ~LocationFactory ()
 

Static Public Member Functions

static LocationFactorygetInstance ()
 

Constructor & Destructor Documentation

telux::loc::LocationFactory::~LocationFactory ( )

Member Function Documentation

static LocationFactory& telux::loc::LocationFactory::getInstance ( )
static

Get Location Factory instance.

std::shared_ptr<ILocationManager> telux::loc::LocationFactory::getLocationManager ( )

Get instance of Location Manager

Returns
Pointer of ILocationManager object.
std::shared_ptr<ILocationConfigurator> telux::loc::LocationFactory::getLocationConfigurator ( )

Get instance of Location Configurator.

Returns
Pointer of ILocationConfigurator object.
class telux::loc::ILocationListener

Listener class for getting location updates and satellite vehicle information.

The methods in listener can be invoked from multiple different threads. Client needs to make sure that implementation is thread-safe.

Public Member Functions

virtual void onLocationUpdate (const std::shared_ptr< ILocationInfo > &locationInfo)
 
virtual void onBasicLocationUpdate (const std::shared_ptr< ILocationInfoBase > &locationInfo)
 
virtual void onDetailedLocationUpdate (const std::shared_ptr< ILocationInfoEx > &locationInfo)
 
virtual void onGnssSVInfo (const std::shared_ptr< IGnssSVInfo > &gnssSVInfo)
 
virtual void onGnssSignalInfo (const std::shared_ptr< IGnssSignalInfo > &info)
 
virtual ~ILocationListener ()
 

Constructor & Destructor Documentation

virtual telux::loc::ILocationListener::~ILocationListener ( )
virtual

Destructor of ILocationListener

Member Function Documentation

virtual void telux::loc::ILocationListener::onLocationUpdate ( const std::shared_ptr< ILocationInfo > &  locationInfo)
virtual

This function is called when device receives location update.

Parameters
[in]locationInfo- Location information like latitude, longitude, timeStamp other information such as heading, altitude and velocity etc.
virtual void telux::loc::ILocationListener::onBasicLocationUpdate ( const std::shared_ptr< ILocationInfoBase > &  locationInfo)
virtual

This function is called when device receives location update.

Parameters
[in]locationInfo- Location information like latitude, longitude, timeStamp other information such as heading, altitude and velocity etc.
virtual void telux::loc::ILocationListener::onDetailedLocationUpdate ( const std::shared_ptr< ILocationInfoEx > &  locationInfo)
virtual

This function is called when device receives Gnss location update.

Parameters
[in]locationInfo- Contains richer set of location information like latitude, longitude, timeStamp, heading, altitude, velocity and other information such as deviations, elliptical accuracies etc.
virtual void telux::loc::ILocationListener::onGnssSVInfo ( const std::shared_ptr< IGnssSVInfo > &  gnssSVInfo)
virtual

This function is called when device receives GNSS satellite information.

Parameters
[in]gnssSVInfo- GNSS satellite information
virtual void telux::loc::ILocationListener::onGnssSignalInfo ( const std::shared_ptr< IGnssSignalInfo > &  info)
virtual

This function is called when device receives GNSS data information like jammer metrics and automatic gain control for satellite signal type.

Parameters
[in]info- GNSS signal info
class telux::loc::ILocationManager

ILocationManager provides interface to register and remove listeners. It also allows to set and get configuration/ criteria for position reports. The new APIs(registerListenerEx, deRegisterListenerEx, startDetailedReports, startBasicReports) and old/deprecated APIs(registerListener, removeListener, setPositionReportTimeout, setHorizontalAccuracyLevel, setMinIntervalForReports) should not be used interchangebly, either the new APIs should be used or the old APIs should be used.

Public Member Functions

virtual bool isSubsystemReady ()=0
 
virtual std::future< bool > onSubsystemReady ()=0
 
virtual telux::common::Status registerListenerEx (std::weak_ptr< ILocationListener > listener)=0
 
virtual telux::common::Status deRegisterListenerEx (std::weak_ptr< ILocationListener > listener)=0
 
virtual telux::common::Status startDetailedReports (uint32_t interval, telux::common::ResponseCallback callback)=0
 
virtual telux::common::Status startDetailedEngineReports (uint32_t interval, LocReqEngine engineType, telux::common::ResponseCallback callback)=0
 
virtual telux::common::Status startBasicReports (uint32_t distanceInMeters, uint32_t intervalInMs, telux::common::ResponseCallback callback)=0
 
virtual telux::common::Status stopReports (telux::common::ResponseCallback callback)=0
 
virtual telux::common::Status registerListener (std::weak_ptr< ILocationListener > listener)=0
 
virtual telux::common::Status removeListener (std::weak_ptr< ILocationListener > listener)=0
 
virtual telux::common::Status setPositionReportTimeout (uint32_t timeout, std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0
 
virtual telux::common::Status setHorizontalAccuracyLevel (HorizontalAccuracyLevel accuracy=HorizontalAccuracyLevel::LOW, std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0
 
virtual telux::common::Status setMinIntervalForReports (uint32_t minInterval, std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0
 
virtual uint32_t getPositionReportTimeout ()=0
 
virtual HorizontalAccuracyLevel getHorizontalAccuracyLevel ()=0
 
virtual uint32_t getMinIntervalForFinalReports ()=0
 
virtual ~ILocationManager ()
 

Constructor & Destructor Documentation

virtual telux::loc::ILocationManager::~ILocationManager ( )
virtual

Destructor of ILocationManager

Member Function Documentation

virtual bool telux::loc::ILocationManager::isSubsystemReady ( )
pure virtual

Checks the status of location subsystems and returns the result.

Returns
True if location subsystem is ready for service otherwise false.
virtual std::future<bool> telux::loc::ILocationManager::onSubsystemReady ( )
pure virtual

Wait for location subsystem to be ready.

Returns
A future that caller can wait on to be notified when location subsystem is ready.
virtual telux::common::Status telux::loc::ILocationManager::registerListenerEx ( std::weak_ptr< ILocationListener listener)
pure virtual

Register a listener for specific updates from location manager like location, jamming info and satellite vehicle info. If enhanced position, using Dead Reckoning etc., is enabled, enhanced fixes will be provided. Otherwise raw GNSS fixes will be provided. The position reports will start only when startDetailedReports or startBasicReports is invoked.

Parameters
[in]listener- Pointer of ILocationListener object that processes the notification.
Returns
Status of registerListener i.e success or suitable status code.
virtual telux::common::Status telux::loc::ILocationManager::deRegisterListenerEx ( std::weak_ptr< ILocationListener listener)
pure virtual

Remove a previously registered listener.

Parameters
[in]listener- Previously registered ILocationListener that needs to be removed.
Returns
Status of removeListener success or suitable status code
virtual telux::common::Status telux::loc::ILocationManager::startDetailedReports ( uint32_t  interval,
telux::common::ResponseCallback  callback 
)
pure virtual

Starts the richer location reports by configuring the time between them as the interval.

This Api enables the onDetailedLocationUpdate, onGnssSVInfo and onGnssSignalInfo Apis on the listener.

Parameters
[in]interval- Minimum time interval between two consecutive reports in milliseconds.

E.g. If minInterval is 1000 milliseconds, reports will be provided with a periodicity of 1 second or more depending on the number of applications listening to location updates.

Parameters
[in]callback- Optional callback to get the response of set minimum interval for reports.
Returns
Status of startDetailedReports i.e. success or suitable status code.
virtual telux::common::Status telux::loc::ILocationManager::startDetailedEngineReports ( uint32_t  interval,
LocReqEngine  engineType,
telux::common::ResponseCallback  callback 
)
pure virtual

Starts a session which may provide richer default combined position reports and position reports from other engines. The fused position report type will always be supported if at least one engine in the system is producing valid report.

This Api enables the onDetailedLocationUpdate, onGnssSVInfo and onGnssSignalInfo Apis on the listener.

Parameters
[in]interval- Minimum time interval between two consecutive reports in milliseconds.

E.g. If minInterval is 1000 milliseconds, reports will be provided with a periodicity of 1 second or more depending on the number of applications listening to location updates.

Parameters
[in]engineType- The type of engine requested for fixes such as SPE or PPE or FUSED. The FUSED includes all the engines that are running to generate the fixes such as reports from SPE, PPE and DRE.
[in]callback- Optional callback to get the response of set minimum interval for reports.
Returns
Status of startDetailedEngineReports i.e. success or suitable status code.
virtual telux::common::Status telux::loc::ILocationManager::startBasicReports ( uint32_t  distanceInMeters,
uint32_t  intervalInMs,
telux::common::ResponseCallback  callback 
)
pure virtual

Starts the Location report by configuring the time and distance between the consecutive reports.

This Api enables the onBasicLocationUpdate Api on the listener.

Parameters
[in]distanceInMeters- distanceInMeters between two consecutive reports in meters. intervalInMs - Minimum time interval between two consecutive reports in milliseconds.

E.g. If intervalInMs is 1000 milliseconds and distanceInMeters is 100m, reports will be provided according to the condition that happens first. So we need to provide both the parameters for evaluating the report.

The underlying system may have a minimum distance threshold(e.g. 1 meter). Effective distance will not be smaller than this lower bound.

The effective distance may have a granularity level higher than 1 m, e.g. 5 m. So distanceInMeters being 59 may be honored at 60 m, depending on the system.

Where there is another application in the system having a session with shorter distance, this client may benefit and receive reports at that distance.

Parameters
[in]callback- Optional callback to get the response of set minimum distance for reports.
Returns
Status of startBasicReports i.e. success or suitable status code.
virtual telux::common::Status telux::loc::ILocationManager::stopReports ( telux::common::ResponseCallback  callback)
pure virtual

This API will stop reports started using startDetailedReports or startBasicReports or registerListener or setMinIntervalForReports.

Parameters
[in]callback- Optional callback to get the response of stop reports.
Returns
Status of stopReports i.e. success or suitable status code.
virtual telux::common::Status telux::loc::ILocationManager::registerListener ( std::weak_ptr< ILocationListener listener)
pure virtual

Register a listener for specific updates from location manager like location and satellite vehicle info. As soon as the first listener is registered, position fixes will start being reported.

Parameters
[in]listener- Pointer of ILocationListener object that processes the notification.
Returns
Status of registerListener i.e success or suitable status code.
Deprecated:
API is not going to be supported in future releases. Clients should stop using this API. Once an API has been marked as Deprecated, the API could be removed in future releases.
virtual telux::common::Status telux::loc::ILocationManager::removeListener ( std::weak_ptr< ILocationListener listener)
pure virtual

Remove a previously registered listener.

Parameters
[in]listener- Previously registered ILocationListener that needs to be removed
Returns
Status of removeListener success or suitable status code
Deprecated:
API is not going to be supported in future releases. Clients should stop using this API. Once an API has been marked as Deprecated, the API could be removed in future releases.
virtual telux::common::Status telux::loc::ILocationManager::setPositionReportTimeout ( uint32_t  timeout,
std::shared_ptr< telux::common::ICommandResponseCallback callback = nullptr 
)
pure virtual

Configures position report timeout. LocationManager tries to determine the position until the position report timeout has elapsed. If the final position cannot be determined before the timeout period, it returns a position report with session status marked as SessionStatus::TIMEOUT instead of SessionStatus::SUCCESS. Position report timeout is an app spectific setting. E.g. If this API is called with timeout parameter value 5000, the LocationManager tries to determine the position before 5 seconds. If position report is determined, a position report will be returned with sessionStatus=SessionStatus::SUCCESS. Otherwise, a position report will be sent with sessionStatus=SessionStatus::TIMEOUT after 5 seconds.

Parameters
[in]timeout- Maximum time to get a position report in milliseconds.
[in]callback- Optional callback to get the response of set position report time out
Returns
Status as SUCCESS for setPositionReportTimeout.
Deprecated:
API is not going to be supported in future releases. Clients should stop using this API. Once an API has been marked as Deprecated, the API could be removed in future releases.
virtual telux::common::Status telux::loc::ILocationManager::setHorizontalAccuracyLevel ( HorizontalAccuracyLevel  accuracy = HorizontalAccuracyLevel::LOW,
std::shared_ptr< telux::common::ICommandResponseCallback callback = nullptr 
)
pure virtual

Configuring horizontal accuracy level. If the final position cannot be determined with the required horizontal accuracy level within the timeout period specified in the setPositionReportTimeout API, a timeout fix will be provided. Refer to setPositionReportTimeout API for more details.

Parameters
[in]accuracy- HorizontalAccuracyLevel
[in]callback- Optional callback to get the response of set horizontal accuracy level
Returns
Status as SUCCESS of setHorizontalAccuracyLevel.
Deprecated:
API is not going to be supported in future releases. Clients should stop using this API. Once an API has been marked as Deprecated, the API could be removed in future releases.
virtual telux::common::Status telux::loc::ILocationManager::setMinIntervalForReports ( uint32_t  minInterval,
std::shared_ptr< telux::common::ICommandResponseCallback callback = nullptr 
)
pure virtual

Configuring minimum time interval between two consecutive position reports.

Parameters
[in]minInterval- Minimum time interval between two consecutive reports in milliseconds. E.g. If minInterval is 1000 milliseconds, reports will be provided with a periodicity of 1 second or more depending on the number of applications listening to location updates.
[in]callback- Optional callback to get the response of set minimum interval for reports.
Returns
Status of setMinIntervalForReports i.e. success or suitable status code.
Deprecated:
API is not going to be supported in future releases. Clients should stop using this API. Once an API has been marked as Deprecated, the API could be removed in future releases.
virtual uint32_t telux::loc::ILocationManager::getPositionReportTimeout ( )
pure virtual

Get timeout of a position report.

Returns
Maximum time to get a position report.
Deprecated:
API is not going to be supported in future releases. Clients should stop using this API. Once an API has been marked as Deprecated, the API could be removed in future releases.
virtual HorizontalAccuracyLevel telux::loc::ILocationManager::getHorizontalAccuracyLevel ( )
pure virtual

Get horizontal accuracy level of a location fix.

Returns
HorizontalAccuracyLevel.
Deprecated:
API is not going to be supported in future releases. Clients should stop using this API. Once an API has been marked as Deprecated, the API could be removed in future releases.
virtual uint32_t telux::loc::ILocationManager::getMinIntervalForFinalReports ( )
pure virtual

Get the time interval between final reports.

Returns
Minimum time interval between final position reports.
Deprecated:
API is not going to be supported in future releases. Clients should stop using this API. Once an API has been marked as Deprecated, the API could be removed in future releases.

Typedef Documentation

using telux::loc::PositionTech = typedef std::bitset<TECH_COUNT>

Bitset that denotes which of the technologies defined in PositionTechType enum are used in the location fix.

using telux::loc::SbasCorrection = typedef std::bitset<SBAS_COUNT>

8 bit mask that denotes which of the SBAS corrections in SbasCorrection used to improve the performance of GNSS output.

using telux::loc::Measurement = typedef std::bitset<MEASUREMENT_COUNT>

8 bit mask that denotes which of the measurements in MeasurementType enum are aided by sensor data.

using telux::loc::GnssPositionTech = typedef uint32_t
using telux::loc::KinematicDataValidity = typedef uint32_t
using telux::loc::GnssTimeValidity = typedef uint32_t
using telux::loc::TimeValidity = typedef uint32_t
using telux::loc::GnssSignal = typedef uint32_t
using telux::loc::LocationTechnology = typedef uint32_t
using telux::loc::LocationInfoExValidity = typedef uint32_t
using telux::loc::GnssDataValidity = typedef uint32_t

Specifies GnssDataValidityType mask

using telux::loc::DrCalibrationStatus = typedef uint32_t

Specifies DrCalibrationStatusType mask

using telux::loc::LocReqEngine = typedef uint16_t

Specifies LocReqEngineType mask

using telux::loc::PositioningEngine = typedef uint32_t

Specifies PositioningEngineType mask

Enumeration Type Documentation

Defines recurrence type of the fix. Obsolete

Enumerator
PERIODIC 

Request periodic fixes, minimum interval between final reports will be the periodicity. Client can configure it using LocationService API i.e. setMinIntervalForFinalReports

SINGLE 

Request a single fix

Defines the horizontal accuracy level of the fix.

Enumerator
LOW 

Client requires low horizontal accuracy

MEDIUM 

Client requires medium horizontal accuracy

HIGH 

Client requires high horizontal accuracy

Defines technology used in computing the location fix.

Enumerator
SATELLITE 

Satellites used to generate the fix

CELLID 

Cell towers used to generate the fix

WIFI 

Wi-Fi access points used to generate the fix

SENSORS 

Sensors used to generate the fix

REFERENCE_LOCATION 

Reference location used to generate the fix

INJECTED_COARSE_POSITION 

Coarse position injected into the location engine used to generate the fix

AFLT 

Advanced Forward Link Trilateration(AFLT), the phone takes measurements of signals from nearby towers and reports the time/distance readings back to the network to generate the fix

HYBRID 

GNSS and network-provided measurements used to generate the fix

TECH_COUNT 

Bitset

Specifies the reliability of the position.

Enumerator
UNKNOWN 
NOT_SET 

Location reliability is not set

VERY_LOW 

Location reliability is very low

LOW 

Location reliability is low, little or no cross-checking is possible

MEDIUM 

Location reliability is medium, limited cross-check passed

HIGH 

Location reliability is high, strong cross-check passed

Defines Satellite Based Augmentation System(SBAS) corrections. SBAS contributes to improve the performance of GNSS system.

Enumerator
SBAS_CORRECTION_IONO 

Bit mask to specify whether SBAS ionospheric correction is used

SBAS_CORRECTION_FAST 

Bit mask to specify whether SBAS fast correction is used

SBAS_CORRECTION_LONG 

Bit mask to specify whether SBAS long correction is used

SBAS_INTEGRITY 

Bit mask to specify whether SBAS integrity information is used

SBAS_CORRECTION_DGNSS 

Bit mask to specify whether SBAS DGNSS correction is used

SBAS_CORRECTION_RTK 

Bit mask to specify whether SBAS RTK correction is used

SBAS_CORRECTION_PPP 

Bit mask to specify whether SBAS PPP correction is used

SBAS_COUNT 

Bitset

Defines status of the session that is requested by user application.

Enumerator
UNKNOWN 
SUCCESS 

Session successful

IN_PROGRESS 

Session is still in progress, further position reports will be generated until either the fix criteria specified by the client are met or the client response time out occurs

GENERAL_FAILURE 

Session failed

TIMEOUT 

Fix request failed because the session timed out

USER_END 

Fix request failed because the session was ended by the user

BAD_PARAMETER 

Fix request failed due to bad parameters in the request

PHONE_OFFLINE 

Fix request failed because the phone is offline

ENGINE_LOCKED 

Fix request failed because the engine is locked

Indicates whether altitude is assumed or calculated.

Enumerator
UNKNOWN 
CALCULATED 

Altitude is calculated

ASSUMED 

Altitude is assumed, there may not be enough satellites to determine the precise altitude

Defines constellation type of GNSS.

Enumerator
UNKNOWN 
GPS 

GPS satellite

GALILEO 

GALILEO satellite

SBAS 

SBAS satellite

COMPASS 

COMPASS satellite

GLONASS 

GLONASS satellite

BDS 

BDS satellite

QZSS 

QZSS satellite

Health status indicates whether satellite is operational or not. This information comes from the most recent data transmitted in satellite almanacs.

Enumerator
UNKNOWN 
UNHEALTHY 

satellite is not operational and cannot be used in position calculations

HEALTHY 

satellite is fully operational

enum telux::loc::SVStatus
strong

Satellite vehicle processing status.

Enumerator
UNKNOWN 
IDLE 

SV is not being actively processed

SEARCH 

The system is searching for this SV

TRACK 

SV is being tracked

Indicates whether Satellite Vehicle info like ephemeris and almanac are present or not

Enumerator
UNKNOWN 
NO 

Ephemeris or Almanac doesn't exist

Defines which sensors were used in calculating the position in the position report

Enumerator
UNKNOWN 
ACCELEROMETER 

Bitmask to specify whether an accelerometer was used

GYROSCOPE 

Bitmask to specify whether a gyroscope was used

Specifies which measurements were aided by sensors.

Enumerator
UNKNOWN 
UNKNOWN 
UNKNOWN 
UNKNOWN 
UNKNOWN 
UNKNOWN 
UNKNOWN 
UNKNOWN 
UNKNOWN 
HEADING 

Bitmask to specify whether a sensor was used to calculate heading

SPEED 

Bitmask to specify whether a sensor was used to calculate speed

POSITION 

Bitmask to specify whether a sensor was used to calculate position

VELOCITY 

Bitmask to specify whether a sensor was used to calculate velocity

MEASUREMENT_COUNT 

Bitset

Specifies which position technology was used.

Enumerator
GNSS_DEFAULT 
GNSS_SATELLITE 
GNSS_CELLID 
GNSS_WIFI 
GNSS_SENSORS 
GNSS_REFERENCE_LOCATION 
GNSS_INJECTED_COARSE_POSITION 
GNSS_AFLT 
GNSS_HYBRID 
GNSS_PPE 

Specifies related kinematics mask

Enumerator
HAS_LONG_ACCEL 

Navigation data has Forward Acceleration

HAS_LAT_ACCEL 

Navigation data has Sideward Acceleration

HAS_VERT_ACCEL 

Navigation data has Vertical Acceleration

HAS_YAW_RATE 

Navigation data has Heading Rate

HAS_PITCH 

Navigation data has Body pitch

HAS_LONG_ACCEL_UNC 

Navigation data has Forward Acceleration

HAS_LAT_ACCEL_UNC 

Navigation data has Sideward Acceleration

HAS_VERT_ACCEL_UNC 

Navigation data has Vertical Acceleration

HAS_YAW_RATE_UNC 

Navigation data has Heading Rate

HAS_PITCH_UNC 

Navigation data has Body pitch

Specifies type of system.

Enumerator
GNSS_LOC_SV_SYSTEM_GPS 

GPS satellite.

GNSS_LOC_SV_SYSTEM_GALILEO 

GALILEO satellite.

GNSS_LOC_SV_SYSTEM_SBAS 

SBAS satellite.

GNSS_LOC_SV_SYSTEM_COMPASS 

COMPASS satellite.

GNSS_LOC_SV_SYSTEM_GLONASS 

GLONASS satellite.

GNSS_LOC_SV_SYSTEM_BDS 

BDS satellite.

GNSS_LOC_SV_SYSTEM_QZSS 

QZSS satellite.

Validity field for different system time.

Enumerator
GNSS_SYSTEM_TIME_WEEK_VALID 
GNSS_SYSTEM_TIME_WEEK_MS_VALID 
GNSS_SYSTEM_CLK_TIME_BIAS_VALID 
GNSS_SYSTEM_CLK_TIME_BIAS_UNC_VALID 
GNSS_SYSTEM_REF_FCOUNT_VALID 
GNSS_SYSTEM_NUM_CLOCK_RESETS_VALID 

Validity field for GLONASS time.

Enumerator
GNSS_CLO_DAYS_VALID 
GNSS_GLOS_MSEC_VALID 
GNSS_GLO_CLK_TIME_BIAS_VALID 
GNSS_GLO_CLK_TIME_BIAS_UNC_VALID 
GNSS_GLO_REF_FCOUNT_VALID 
GNSS_GLO_NUM_CLOCK_RESETS_VALID 
GNSS_GLO_FOUR_YEAR_VALID 

GNSS Signal Type and RF Band

Enumerator
GPS_L1CA 

GPS L1CA Signal

GPS_L1C 

GPS L1C Signal

GPS_L2 

GPS L2 RF Band

GPS_L5 

GPS L5 RF Band

GLONASS_G1 

GLONASS G1 (L1OF) RF Band

GLONASS_G2 

GLONASS G2 (L2OF) RF Band

GALILEO_E1 

GALILEO E1 RF Band

GALILEO_E5A 

GALILEO E5A RF Band

GALILIEO_E5B 

GALILEO E5B RF Band

BEIDOU_B1 

BEIDOU B1 RF Band

BEIDOU_B2 

BEIDOU B2 RF Band

QZSS_L1CA 

QZSS L1CA RF Band

QZSS_L1S 

QZSS L1S RF Band

QZSS_L2 

QZSS L2 RF Band

QZSS_L5 

QZSS L5 RF Band

SBAS_L1 

SBAS L1 RF Band

BEIDOU_B1I 

BEIDOU B1I RF Band

BEIDOU_B1C 

BEIDOU B1C RF Band

BEIDOU_B2I 

BEIDOU B2I RF Band

BEIDOU_B2AI 

BEIDOU B2AI RF Band

NAVIC_L5 

NAVIC L5 RF Band

BEIDOU_B2AQ 

BEIDOU B2A_Q RF Band

Enumerator
LOC_GNSS 

location was calculated using GNSS

LOC_CELL 

location was calculated using Cell

LOC_WIFI 

location was calculated using WiFi

LOC_SENSORS 

location was calculated using Sensors

Gnss Location Information mask flags

Enumerator
HAS_ALTITUDE_MEAN_SEA_LEVEL 

valid altitude mean sea level

HAS_DOP 

valid pdop, hdop, and vdop

HAS_MAGNETIC_DEVIATION 

valid magnetic deviation

HAS_HOR_RELIABILITY 

valid horizontal reliability

HAS_VER_RELIABILITY 

valid vertical reliability

HAS_HOR_ACCURACY_ELIP_SEMI_MAJOR 

valid elipsode semi major

HAS_HOR_ACCURACY_ELIP_SEMI_MINOR 

valid elipsode semi minor

HAS_HOR_ACCURACY_ELIP_AZIMUTH 

valid accuracy elipsode azimuth

HAS_GNSS_SV_USED_DATA 

valid gnss sv used in pos data

HAS_NAV_SOLUTION_MASK 

valid navSolutionMask

HAS_POS_TECH_MASK 

valid LocPosTechMask

HAS_SV_SOURCE_INFO 

valid LocSvInfoSource

HAS_POS_DYNAMICS_DATA 

valid position dynamics data

HAS_EXT_DOP 

valid gdop, tdop

HAS_NORTH_STD_DEV 

valid North standard deviation

HAS_EAST_STD_DEV 

valid East standard deviation

HAS_NORTH_VEL 

valid North Velocity

HAS_EAST_VEL 

valid East Velocity

HAS_UP_VEL 

valid Up Velocity

HAS_NORTH_VEL_UNC 

valid North Velocity Uncertainty

HAS_EAST_VEL_UNC 

valid East Velocity Uncertainty

HAS_UP_VEL_UNC 

valid Up Velocity Uncertainty

HAS_LEAP_SECONDS 

valid leap_seconds

HAS_TIME_UNC 

valid timeUncMs

HAS_CALIBRATION_CONFIDENCE_PERCENT 

valid sensor calibrationConfidencePercent

HAS_CALIBRATION_STATUS 

valid sensor calibrationConfidence

HAS_OUTPUT_ENG_TYPE 

valid output engine type

HAS_OUTPUT_ENG_MASK 

valid output engine mask

Enumerator
GNSS_DATA_SIGNAL_TYPE_GPS_L1CA 

GPS L1CA Signal

GNSS_DATA_SIGNAL_TYPE_GPS_L1C 

GPS L1C Signal

GNSS_DATA_SIGNAL_TYPE_GPS_L2C_L 

GPS L2C_L RF Band

GNSS_DATA_SIGNAL_TYPE_GPS_L5_Q 

GPS L5_Q RF Band

GNSS_DATA_SIGNAL_TYPE_GLONASS_G1 

GLONASS G1 (L1OF) RF Band

GNSS_DATA_SIGNAL_TYPE_GLONASS_G2 

GLONASS G2 (L2OF) RF Band

GNSS_DATA_SIGNAL_TYPE_GALILEO_E1_C 

GALILEO E1_C RF Band

GNSS_DATA_SIGNAL_TYPE_GALILEO_E5A_Q 

GALILEO E5A_Q RF Band

GNSS_DATA_SIGNAL_TYPE_GALILEO_E5B_Q 

GALILEO E5B_Q RF Band

GNSS_DATA_SIGNAL_TYPE_BEIDOU_B1_I 

BEIDOU B1_I RF Band

GNSS_DATA_SIGNAL_TYPE_BEIDOU_B1C 

BEIDOU B1C RF Band

GNSS_DATA_SIGNAL_TYPE_BEIDOU_B2_I 

BEIDOU B2_I RF Band

GNSS_DATA_SIGNAL_TYPE_BEIDOU_B2A_I 

BEIDOU B2A_I RF Band

GNSS_DATA_SIGNAL_TYPE_QZSS_L1CA 

QZSS L1CA RF Band

GNSS_DATA_SIGNAL_TYPE_QZSS_L1S 

QZSS L1S RF Band

GNSS_DATA_SIGNAL_TYPE_QZSS_L2C_L 

QZSS L2C_L RF Band

GNSS_DATA_SIGNAL_TYPE_QZSS_L5_Q 

QZSS L5_Q RF Band

GNSS_DATA_SIGNAL_TYPE_SBAS_L1_CA 

SBAS L1_CA RF Band

GNSS_DATA_SIGNAL_TYPE_NAVIC_L5 

NAVIC L5 RF Band

GNSS_DATA_SIGNAL_TYPE_BEIDOU_B2A_Q 

BEIDOU B2A_Q RF Band

GNSS_DATA_MAX_NUMBER_OF_SIGNAL_TYPES 

Maximum number of signal types

Enumerator
HAS_JAMMER 

Jammer Indicator is available

HAS_AGC 

AGC is available

Enumerator
DR_ROLL_CALIBRATION_NEEDED 

Indicate that roll calibration is needed. Need to take more turns on level ground

DR_PITCH_CALIBRATION_NEEDED 

Indicate that pitch calibration is needed. Need to take more turns on level ground

DR_YAW_CALIBRATION_NEEDED 

Indicate that yaw calibration is needed. Need to accelerate in a straight line

DR_ODO_CALIBRATION_NEEDED 

Indicate that odo calibration is needed. Need to accelerate in a straight line

DR_GYRO_CALIBRATION_NEEDED 

Indicate that gyro calibration is needed. Need to take more turns on level ground

Specifies the type of engine requested for fixes

Enumerator
LOC_REQ_ENGINE_FUSED_BIT 

Indicate that the fused/default position is needed to be reported back for the tracking sessions. The default position is the propagated/aggregated reports from all engines running on the system (e.g.: DR/SPE/PPE) according to QTI algorithm.

LOC_REQ_ENGINE_SPE_BIT 

Indicate that the unmodified SPE position is needed to be reported back for the tracking sessions.

LOC_REQ_ENGINE_PPE_BIT 

Indicate that the unmodified PPE position is needed to be reported back for the tracking sessions.

Specifies the type of engine for the reported fixes

Enumerator
LOC_OUTPUT_ENGINE_FUSED 

This is the propagated/aggregated reports from all engines running on the system (e.g.: DR/SPE/PPE) according to QTI algorithm.

LOC_OUTPUT_ENGINE_SPE 

This fix is the unmodified fix from modem GNSS engine

LOC_OUTPUT_ENGINE_PPE 

This is the unmodified fix from PPP/RTK correction engine

Specifies the type of engine responsible for fixes when the engine type is fused

Enumerator
STANDARD_POSITIONING_ENGINE 
DEAD_RECKONING_ENGINE 
PRECISE_POSITIONING_ENGINE 

Variable Documentation

const float telux::loc::UNKNOWN_CARRIER_FREQ = -1
const int telux::loc::UNKNOWN_SIGNAL_MASK = 0
const float telux::loc::DEFAULT_TUNC_THRESHOLD = 0.0

Default value for threshold of time uncertainty. Units: milli-seconds.

const int telux::loc::DEFAULT_TUNC_ENERGY_THRESHOLD = 0

Default value for energy consumed of time uncertainty. The default here means that the engine is allowed to use infinite power. Units: 100 micro watt second.