Telematics SDK - Interface Specification  v1.46.54
Location Services

Data Structures

class  telux::loc::IDgnssStatusListener
 Listener class for getting RTCM injection event notification information. More...
 
class  telux::loc::IDgnssManager
 IRtcmManager provides interface to inject RTCM data into modem, register event listener reported by cdfw(correction data framework). More...
 
class  telux::loc::ILocationConfigurator
 ILocationConfigurator allows general engine configurations (example: TUNC, PACE etc), configuration of specific engines like SPE (example: minSVElevation, minGPSWeek etc) or DRE, deletion of warm and cold aiding data, NMEA configuration and support for XTRA feature. ILocationConfigurator APIs strictly adheres to the principle of single client per process. More...
 
struct  telux::loc::GnssKinematicsData
 
struct  telux::loc::LLAInfo
 
struct  telux::loc::TimeInfo
 
struct  telux::loc::GlonassTimeInfo
 
union  telux::loc::SystemTimeInfo
 
struct  telux::loc::SystemTime
 
struct  telux::loc::GnssMeasurementInfo
 
struct  telux::loc::SvUsedInPosition
 
struct  telux::loc::GnssData
 
struct  telux::loc::SvBlackListInfo
 
struct  telux::loc::LeverArmParams
 
struct  telux::loc::GnssMeasurementsData
 
struct  telux::loc::GnssMeasurementsClock
 
struct  telux::loc::GnssMeasurements
 
struct  telux::loc::LeapSecondChangeInfo
 
struct  telux::loc::LeapSecondInfo
 
struct  telux::loc::LocationSystemInfo
 
struct  telux::loc::GnssEnergyConsumedInfo
 
struct  telux::loc::RobustLocationVersion
 
struct  telux::loc::RobustLocationConfiguration
 
struct  telux::loc::BodyToSensorMountParams
 
struct  telux::loc::DREngineConfiguration
 
struct  telux::loc::XtraConfig
 
struct  telux::loc::XtraStatus
 
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::ILocationSystemInfoListener
 
class  telux::loc::ILocationConfigListener
 ILocationConfigListener interface is used to receive notifications related to configuration events. 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::SbasCorrection = std::bitset< SBAS_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::LocCapability = uint32_t
 
using telux::loc::LocationTechnology = uint32_t
 
using telux::loc::LocationInfoValidity = uint32_t
 
using telux::loc::LocationInfoExValidity = uint64_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
 
typedef std::vector< SvBlackListInfo > telux::loc::SvBlackList
 
typedef std::unordered_map< LeverArmType, LeverArmParams > telux::loc::LeverArmConfigInfo
 
using telux::loc::GnssMeasurementsDataValidity = uint32_t
 
using telux::loc::GnssMeasurementsStateValidity = uint32_t
 
using telux::loc::GnssMeasurementsAdrStateValidity = uint32_t
 
using telux::loc::GnssMeasurementsClockValidity = uint32_t
 
using telux::loc::LeapSecondInfoValidity = uint32_t
 
using telux::loc::LocationSystemInfoValidity = uint32_t
 
using telux::loc::GnssEnergyConsumedInfoValidity = uint16_t
 
using telux::loc::AidingData = uint32_t
 
using telux::loc::TerrestrialTechnology = uint32_t
 
using telux::loc::NmeaSentenceConfig = uint32_t
 
using telux::loc::RobustLocationConfig = uint16_t
 
using telux::loc::DRConfigValidity = uint16_t
 
using telux::loc::GnssReportTypeMask = uint32_t
 
typedef std::unordered_set< GnssConstellationType > telux::loc::ConstellationSet
 
using telux::loc::LocConfigIndications = std::bitset< 32 >
 

Enumerations

enum  telux::loc::DgnssDataFormat { telux::loc::DgnssDataFormat::DATA_FORMAT_UNKNOWN = 0, telux::loc::DgnssDataFormat::DATA_FORMAT_RTCM_3 = 1, telux::loc::DgnssDataFormat::DATA_FORMAT_3GPP_RTK_R15 = 2 }
 
enum  telux::loc::DgnssStatus {
  telux::loc::DgnssStatus::DATA_SOURCE_NOT_SUPPORTED = 1, telux::loc::DgnssStatus::DATA_FORMAT_NOT_SUPPORTED = 2, telux::loc::DgnssStatus::OTHER_SOURCE_IN_USE = 3, telux::loc::DgnssStatus::MESSAGE_PARSE_ERROR = 4,
  telux::loc::DgnssStatus::DATA_SOURCE_NOT_USABLE = 5
}
 
enum  telux::loc::HorizontalAccuracyLevel { telux::loc::HorizontalAccuracyLevel::LOW = 1, telux::loc::HorizontalAccuracyLevel::MEDIUM = 2, telux::loc::HorizontalAccuracyLevel::HIGH = 3 }
 
enum  telux::loc::LocationReliability {
  telux::loc::LocationReliability::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_CORRECTION_RTK_FIXED,
  telux::loc::SBAS_CORRECTION_ONLY_SBAS_CORRECTED_SV_USED_, telux::loc::SBAS_COUNT
}
 
enum  telux::loc::AltitudeType { telux::loc::AltitudeType::UNKNOWN = -1, telux::loc::AltitudeType::CALCULATED = 0, telux::loc::AltitudeType::ASSUMED = 1 }
 
enum  telux::loc::GnssConstellationType {
  telux::loc::GnssConstellationType::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,
  telux::loc::GnssConstellationType::NAVIC = 8
}
 
enum  telux::loc::SVHealthStatus { telux::loc::SVHealthStatus::UNKNOWN = -1, telux::loc::SVHealthStatus::UNHEALTHY = 0, telux::loc::SVHealthStatus::HEALTHY = 1 }
 
enum  telux::loc::SVStatus { telux::loc::SVStatus::UNKNOWN = -1, telux::loc::SVStatus::IDLE = 0, telux::loc::SVStatus::SEARCH = 1, telux::loc::SVStatus::TRACK = 2 }
 
enum  telux::loc::SVInfoAvailability { telux::loc::SVInfoAvailability::UNKNOWN = -1, telux::loc::SVInfoAvailability::YES = 0, telux::loc::SVInfoAvailability::NO = 1 }
 
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), telux::loc::GNSS_VEHICLE = (1 << 9), telux::loc::GNSS_VISUAL = (1 << 10)
}
 
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), telux::loc::HAS_PITCH_RATE_BIT = (1<<10), telux::loc::HAS_PITCH_RATE_UNC_BIT = (1<<11),
  telux::loc::HAS_ROLL_BIT = (1<<12), telux::loc::HAS_ROLL_UNC_BIT = (1<<13), telux::loc::HAS_ROLL_RATE_BIT = (1<<14), telux::loc::HAS_ROLL_RATE_UNC_BIT = (1<<15),
  telux::loc::HAS_YAW_BIT = (1<<16), telux::loc::HAS_YAW_UNC_BIT = (1<<17)
}
 
enum  telux::loc::GnssSystem {
  telux::loc::GnssSystem::GNSS_LOC_SV_SYSTEM_UNKNOWN = -1, 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,
  telux::loc::GnssSystem::GNSS_LOC_SV_SYSTEM_NAVIC = 8
}
 
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::LocCapabilityType {
  telux::loc::TIME_BASED_TRACKING = (1<<0), telux::loc::DISTANCE_BASED_TRACKING = (1<<1), telux::loc::GNSS_MEASUREMENTS = (1<<2), telux::loc::CONSTELLATION_ENABLEMENT = (1<<3),
  telux::loc::CARRIER_PHASE = (1<<4), telux::loc::QWES_GNSS_SINGLE_FREQUENCY = (1<<5), telux::loc::QWES_GNSS_MULTI_FREQUENCY = (1<<6), telux::loc::QWES_VPE = (1<<7),
  telux::loc::QWES_CV2X_LOCATION_BASIC = (1<<8), telux::loc::QWES_CV2X_LOCATION_PREMIUM = (1<<9), telux::loc::QWES_PPE = (1<<10), telux::loc::QWES_QDR2 = (1<<11),
  telux::loc::QWES_QDR3 = (1<<12)
}
 
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),
  telux::loc::LOC_REFERENCE_LOCATION = (1 << 4), telux::loc::LOC_INJECTED_COARSE_POSITION = (1 << 5), telux::loc::LOC_AFLT = (1 << 6), telux::loc::LOC_HYBRID = (1 << 7),
  telux::loc::LOC_PPE = (1 << 8), telux::loc::LOC_VEH = (1 << 9), telux::loc::LOC_VIS = (1 << 10)
}
 
enum  telux::loc::LocationValidityType {
  telux::loc::HAS_LAT_LONG_BIT = (1<<0), telux::loc::HAS_ALTITUDE_BIT = (1<<1), telux::loc::HAS_SPEED_BIT = (1<<2), telux::loc::HAS_HEADING_BIT = (1<<3),
  telux::loc::HAS_HORIZONTAL_ACCURACY_BIT = (1<<4), telux::loc::HAS_VERTICAL_ACCURACY_BIT = (1<<5), telux::loc::HAS_SPEED_ACCURACY_BIT = (1<<6), telux::loc::HAS_HEADING_ACCURACY_BIT = (1<<7),
  telux::loc::HAS_TIMESTAMP_BIT = (1<<8), telux::loc::HAS_ELAPSED_REAL_TIME_BIT = (1<<9), telux::loc::HAS_ELAPSED_REAL_TIME_UNC_BIT = (1<<10)
}
 
enum  telux::loc::LocationInfoExValidityType {
  telux::loc::HAS_ALTITUDE_MEAN_SEA_LEVEL = (1ULL << 0), telux::loc::HAS_DOP = (1ULL << 1), telux::loc::HAS_MAGNETIC_DEVIATION = (1ULL << 2), telux::loc::HAS_HOR_RELIABILITY = (1ULL << 3),
  telux::loc::HAS_VER_RELIABILITY = (1ULL << 4), telux::loc::HAS_HOR_ACCURACY_ELIP_SEMI_MAJOR = (1ULL << 5), telux::loc::HAS_HOR_ACCURACY_ELIP_SEMI_MINOR = (1ULL << 6), telux::loc::HAS_HOR_ACCURACY_ELIP_AZIMUTH = (1ULL << 7),
  telux::loc::HAS_GNSS_SV_USED_DATA = (1ULL << 8), telux::loc::HAS_NAV_SOLUTION_MASK = (1ULL << 9), telux::loc::HAS_POS_TECH_MASK = (1ULL << 10), telux::loc::HAS_SV_SOURCE_INFO = (1ULL << 11),
  telux::loc::HAS_POS_DYNAMICS_DATA = (1ULL << 12), telux::loc::HAS_EXT_DOP = (1ULL << 13), telux::loc::HAS_NORTH_STD_DEV = (1ULL << 14), telux::loc::HAS_EAST_STD_DEV = (1ULL << 15),
  telux::loc::HAS_NORTH_VEL = (1ULL << 16), telux::loc::HAS_EAST_VEL = (1ULL << 17), telux::loc::HAS_UP_VEL = (1ULL << 18), telux::loc::HAS_NORTH_VEL_UNC = (1ULL << 19),
  telux::loc::HAS_EAST_VEL_UNC = (1ULL << 20), telux::loc::HAS_UP_VEL_UNC = (1ULL << 21), telux::loc::HAS_LEAP_SECONDS = (1ULL << 22), telux::loc::HAS_TIME_UNC = (1ULL << 23),
  telux::loc::HAS_NUM_SV_USED_IN_POSITION = (1ULL << 24), telux::loc::HAS_CALIBRATION_CONFIDENCE_PERCENT = (1ULL << 25), telux::loc::HAS_CALIBRATION_STATUS = (1ULL << 26), telux::loc::HAS_OUTPUT_ENG_TYPE = (1ULL << 27),
  telux::loc::HAS_OUTPUT_ENG_MASK = (1ULL << 28), telux::loc::HAS_CONFORMITY_INDEX_FIX = (1ULL << 29), telux::loc::HAS_LLA_VRP_BASED = (1ULL << 30), telux::loc::HAS_ENU_VELOCITY_VRP_BASED = (1ULL << 31),
  telux::loc::HAS_ALTITUDE_TYPE = (1ULL << 32), telux::loc::HAS_REPORT_STATUS = (1ULL << 33), telux::loc::HAS_INTEGRITY_RISK_USED = (1ULL << 34), telux::loc::HAS_PROTECT_LEVEL_ALONG_TRACK = (1ULL << 35),
  telux::loc::HAS_PROTECT_LEVEL_CROSS_TRACK = (1ULL << 36), telux::loc::HAS_PROTECT_LEVEL_VERTICAL = (1ULL << 37)
}
 
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), telux::loc::LOC_REQ_ENGINE_VPE_BIT = (1<<3) }
 
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, telux::loc::LOC_OUTPUT_ENGINE_VPE = 3 }
 
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), telux::loc::VP_POSITIONING_ENGINE = (1 << 3) }
 
enum  telux::loc::LeverArmType { telux::loc::LEVER_ARM_TYPE_GNSS_TO_VRP = 1, telux::loc::LEVER_ARM_TYPE_DR_IMU_TO_GNSS = 2, telux::loc::LEVER_ARM_TYPE_VEPP_IMU_TO_GNSS = 3, telux::loc::LEVER_ARM_TYPE_VPE_IMU_TO_GNSS = 3 }
 
enum  telux::loc::GnssMeasurementsDataValidityType {
  telux::loc::SV_ID_BIT = (1<<0), telux::loc::SV_TYPE_BIT = (1<<1), telux::loc::STATE_BIT = (1<<2), telux::loc::RECEIVED_SV_TIME_BIT = (1<<3),
  telux::loc::RECEIVED_SV_TIME_UNCERTAINTY_BIT = (1<<4), telux::loc::CARRIER_TO_NOISE_BIT = (1<<5), telux::loc::PSEUDORANGE_RATE_BIT = (1<<6), telux::loc::PSEUDORANGE_RATE_UNCERTAINTY_BIT = (1<<7),
  telux::loc::ADR_STATE_BIT = (1<<8), telux::loc::ADR_BIT = (1<<9), telux::loc::ADR_UNCERTAINTY_BIT = (1<<10), telux::loc::CARRIER_FREQUENCY_BIT = (1<<11),
  telux::loc::CARRIER_CYCLES_BIT = (1<<12), telux::loc::CARRIER_PHASE_BIT = (1<<13), telux::loc::CARRIER_PHASE_UNCERTAINTY_BIT = (1<<14), telux::loc::MULTIPATH_INDICATOR_BIT = (1<<15),
  telux::loc::SIGNAL_TO_NOISE_RATIO_BIT = (1<<16), telux::loc::AUTOMATIC_GAIN_CONTROL_BIT = (1<<17), telux::loc::GNSS_SIGNAL_TYPE = (1<<18), telux::loc::BASEBAND_CARRIER_TO_NOISE = (1<<19),
  telux::loc::FULL_ISB = (1<<20), telux::loc::FULL_ISB_UNCERTAINTY = (1<<21)
}
 
enum  telux::loc::GnssMeasurementsStateValidityType {
  telux::loc::UNKNOWN_BIT = 0, telux::loc::CODE_LOCK_BIT = (1<<0), telux::loc::BIT_SYNC_BIT = (1<<1), telux::loc::SUBFRAME_SYNC_BIT = (1<<2),
  telux::loc::TOW_DECODED_BIT = (1<<3), telux::loc::MSEC_AMBIGUOUS_BIT = (1<<4), telux::loc::SYMBOL_SYNC_BIT = (1<<5), telux::loc::GLO_STRING_SYNC_BIT = (1<<6),
  telux::loc::GLO_TOD_DECODED_BIT = (1<<7), telux::loc::BDS_D2_BIT_SYNC_BIT = (1<<8), telux::loc::BDS_D2_SUBFRAME_SYNC_BIT = (1<<9), telux::loc::GAL_E1BC_CODE_LOCK_BIT = (1<<10),
  telux::loc::GAL_E1C_2ND_CODE_LOCK_BIT = (1<<11), telux::loc::GAL_E1B_PAGE_SYNC_BIT = (1<<12), telux::loc::SBAS_SYNC_BIT = (1<<13)
}
 
enum  telux::loc::GnssMeasurementsAdrStateValidityType { telux::loc::UNKNOWN_STATE = 0, telux::loc::VALID_BIT = (1<<0), telux::loc::RESET_BIT = (1<<1), telux::loc::CYCLE_SLIP_BIT = (1<<2) }
 
enum  telux::loc::GnssMeasurementsMultipathIndicator { telux::loc::UNKNOWN_INDICATOR = 0, telux::loc::PRESENT = 1, telux::loc::NOT_PRESENT = 2 }
 
enum  telux::loc::GnssMeasurementsClockValidityType {
  telux::loc::LEAP_SECOND_BIT = (1<<0), telux::loc::TIME_BIT = (1<<1), telux::loc::TIME_UNCERTAINTY_BIT = (1<<2), telux::loc::FULL_BIAS_BIT = (1<<3),
  telux::loc::BIAS_BIT = (1<<4), telux::loc::BIAS_UNCERTAINTY_BIT = (1<<5), telux::loc::DRIFT_BIT = (1<<6), telux::loc::DRIFT_UNCERTAINTY_BIT = (1<<7),
  telux::loc::HW_CLOCK_DISCONTINUITY_COUNT_BIT = (1<<8)
}
 
enum  telux::loc::LeapSecondInfoValidityType { telux::loc::LEAP_SECOND_SYS_INFO_CURRENT_LEAP_SECONDS_BIT = (1ULL << 0), telux::loc::LEAP_SECOND_SYS_INFO_LEAP_SECOND_CHANGE_BIT = (1ULL << 1) }
 
enum  telux::loc::LocationSystemInfoValidityType { telux::loc::LOCATION_SYS_INFO_LEAP_SECOND = (1ULL << 0) }
 
enum  telux::loc::GnssEnergyConsumedInfoValidityType { telux::loc::ENERGY_CONSUMED_SINCE_FIRST_BOOT_BIT = (1<<0) }
 
enum  telux::loc::AidingDataType { telux::loc::AIDING_DATA_EPHEMERIS = (1 << 0), telux::loc::AIDING_DATA_DR_SENSOR_CALIBRATION = (1 << 1) }
 
enum  telux::loc::TerrestrialTechnologyType { telux::loc::GTP_WWAN = (1 << 0) }
 
enum  telux::loc::NmeaSentenceType {
  telux::loc::GGA = (1 << 0), telux::loc::RMC = (1 << 1), telux::loc::GSA = (1 << 2), telux::loc::VTG = (1 << 3),
  telux::loc::GNS = (1 << 4), telux::loc::DTM = (1 << 5), telux::loc::GPGSV = (1 << 6), telux::loc::GLGSV = (1 << 7),
  telux::loc::GAGSV = (1 << 8), telux::loc::GQGSV = (1 << 9), telux::loc::GBGSV = (1 << 10), telux::loc::GIGSV = (1 << 11),
  telux::loc::ALL = 0xffffffff
}
 
enum  telux::loc::RobustLocationConfigType { telux::loc::VALID_ENABLED = (1<<0), telux::loc::VALID_ENABLED_FOR_E911 = (1<<1), telux::loc::VALID_VERSION = (1<<2) }
 
enum  telux::loc::DRConfigValidityType {
  telux::loc::BODY_TO_SENSOR_MOUNT_PARAMS_VALID = (1<<0), telux::loc::VEHICLE_SPEED_SCALE_FACTOR_VALID = (1<<1), telux::loc::VEHICLE_SPEED_SCALE_FACTOR_UNC_VALID = (1<<2), telux::loc::GYRO_SCALE_FACTOR_VALID = (1<<3),
  telux::loc::GYRO_SCALE_FACTOR_UNC_VALID = (1<<4)
}
 
enum  telux::loc::GnssReportType {
  telux::loc::LOCATION = (1 << 0), telux::loc::SATELLITE_VEHICLE = (1 << 1), telux::loc::NMEA = (1 << 2), telux::loc::DATA = (1 << 3),
  telux::loc::MEASUREMENT = (1 << 4), telux::loc::HIGH_RATE_MEASUREMENT = (1 << 5)
}
 
enum  telux::loc::EngineType {
  telux::loc::EngineType::UNKNOWN = -1, telux::loc::EngineType::SPE = 1, telux::loc::EngineType::PPE = 2, telux::loc::EngineType::DRE = 3,
  telux::loc::EngineType::VPE = 4
}
 
enum  telux::loc::LocationEngineRunState { telux::loc::LocationEngineRunState::UNKNOWN = -1, telux::loc::LocationEngineRunState::SUSPENDED = 1, telux::loc::LocationEngineRunState::RUNNING = 2 }
 
enum  telux::loc::ReportStatus { telux::loc::ReportStatus::UNKNOWN = -1, telux::loc::ReportStatus::SUCCESS = 0, telux::loc::ReportStatus::INTERMEDIATE = 1, telux::loc::ReportStatus::FAILURE = 2 }
 
enum  telux::loc::DebugLogLevel {
  telux::loc::DebugLogLevel::DEBUG_LOG_LEVEL_NONE = 0, telux::loc::DebugLogLevel::DEBUG_LOG_LEVEL_ERROR = 1, telux::loc::DebugLogLevel::DEBUG_LOG_LEVEL_WARNING = 2, telux::loc::DebugLogLevel::DEBUG_LOG_LEVEL_INFO = 3,
  telux::loc::DebugLogLevel::DEBUG_LOG_LEVEL_DEBUG = 4, telux::loc::DebugLogLevel::DEBUG_LOG_LEVEL_VERBOSE = 5
}
 
enum  telux::loc::XtraDataStatus { telux::loc::XtraDataStatus::STATUS_UNKNOWN = 0, telux::loc::XtraDataStatus::STATUS_NOT_AVAIL = 1, telux::loc::XtraDataStatus::STATUS_NOT_VALID = 2, telux::loc::XtraDataStatus::STATUS_VALID = 3 }
 
enum  telux::loc::LocConfigIndicationsType { telux::loc::LOC_CONF_IND_XTRA_STATUS = 0 }
 

Variables

const float telux::loc::UNKNOWN_CARRIER_FREQ = -1
 
const int telux::loc::UNKNOWN_SIGNAL_MASK = 0
 
const double telux::loc::UNKNOWN_BASEBAND_CARRIER_NOISE = 0.0
 
const uint64_t telux::loc::UNKNOWN_TIMESTAMP = 0
 
const float telux::loc::DEFAULT_TUNC_THRESHOLD = 0.0
 
const int telux::loc::DEFAULT_TUNC_ENERGY_THRESHOLD = 0
 
const uint64_t telux::loc::INVALID_ENERGY_CONSUMED = 0xffffffffffffffff
 
const uint32_t telux::loc::DEFAULT_GNSS_REPORT = 0xffffffff
 

Detailed Description

This section contains APIs related to Location Services.


Data Structure Documentation

class telux::loc::IDgnssStatusListener

Listener class for getting RTCM injection event notification information.

Public Member Functions

virtual void onDgnssStatusUpdate (DgnssStatus status)
 
virtual ~IDgnssStatusListener ()
 

Constructor & Destructor Documentation

virtual telux::loc::IDgnssStatusListener::~IDgnssStatusListener ( )
virtual

Destructor of IRTCMStatusListener

Member Function Documentation

virtual void telux::loc::IDgnssStatusListener::onDgnssStatusUpdate ( DgnssStatus  status)
virtual

This function is called asynchronously to report RTCM injection status

Parameters
[in]status- the status enum.
class telux::loc::IDgnssManager

IRtcmManager provides interface to inject RTCM data into modem, register event listener reported by cdfw(correction data framework).

Public Member Functions

virtual bool isSubsystemReady ()=0
 
virtual telux::common::ServiceStatus getServiceStatus ()=0
 
virtual std::future< bool > onSubsystemReady ()=0
 
virtual telux::common::Status registerListener (std::weak_ptr< IDgnssStatusListener > listener)=0
 
virtual telux::common::Status deRegisterListener (void)=0
 
virtual telux::common::Status createSource (DgnssDataFormat dataFormat)=0
 
virtual telux::common::Status releaseSource (void)=0
 
virtual telux::common::Status injectCorrectionData (const uint8_t *buffer, uint32_t bufferSize)=0
 
virtual ~IDgnssManager ()
 

Constructor & Destructor Documentation

virtual telux::loc::IDgnssManager::~IDgnssManager ( )
virtual

Destructor of IRtcmManager

Member Function Documentation

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

Checks the status of location subsystems and returns the result.

Returns
True if location subsystem is ready for service otherwise false.
Deprecated:
use getServiceStatus()
virtual telux::common::ServiceStatus telux::loc::IDgnssManager::getServiceStatus ( )
pure virtual

This status indicates whether the object is in a usable state.

Returns
SERVICE_AVAILABLE - If Dgnss manager is ready for service. SERVICE_UNAVAILABLE - If Dgnss manager is temporarily unavailable. SERVICE_FAILED - If Dgnss manager encountered an irrecoverable failure.
virtual std::future<bool> telux::loc::IDgnssManager::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.
Deprecated:
The callback mechanism introduced in the LocationFactory::getDgnssManager() API will provide the similar notification mechanism as onSubsystemReady(). This API will soon be removed from further releases.
virtual telux::common::Status telux::loc::IDgnssManager::registerListener ( std::weak_ptr< IDgnssStatusListener listener)
pure virtual

Register a listener for Dgnss injection status update.

Parameters
[in]listener- Pointer of IDgnssStatusListener object that processes the notification.
Returns
Status of registerListener i.e success or suitable status code.
virtual telux::common::Status telux::loc::IDgnssManager::deRegisterListener ( void  )
pure virtual

deRegister a listener for Dgnss injection status update.

Returns
Status of registerListener i.e success or suitable status code.
virtual telux::common::Status telux::loc::IDgnssManager::createSource ( DgnssDataFormat  dataFormat)
pure virtual

Create a Dgnss injection source. Only one source is permitted at any given time. If a new source is to be used, user must call releaseSource() to release previous source before calling this function.

Parameters
[in]formatDgnss injection data format.
Returns
Success of suitable status code
virtual telux::common::Status telux::loc::IDgnssManager::releaseSource ( void  )
pure virtual

Release current Dgnss injection source (previously created by createSource() call) This function is to be called if it's determined that current injection data is not suitable anymore, and a new source will be created and used as injection source.

Parameters
none
Returns
none
virtual telux::common::Status telux::loc::IDgnssManager::injectCorrectionData ( const uint8_t *  buffer,
uint32_t  bufferSize 
)
pure virtual

Inject correction data This function is to be called when a source has been created, either through a explicit call to createSource(), or after DgnssManager object was instantiated through the factory method(The factory method create a default source for DgnssManager object).

Parameters
[in]bufferbuffer contains the data to be injected.
[in]bufferSizesize of the buffer.
Returns
success or suitable status code.
class telux::loc::ILocationConfigurator

ILocationConfigurator allows general engine configurations (example: TUNC, PACE etc), configuration of specific engines like SPE (example: minSVElevation, minGPSWeek etc) or DRE, deletion of warm and cold aiding data, NMEA configuration and support for XTRA feature. ILocationConfigurator APIs strictly adheres to the principle of single client per process.

Public Types

using GetSecondaryBandCallback = std::function< void(const telux::loc::ConstellationSet set, telux::common::ErrorCode error)>
 
using GetMinGpsWeekCallback = std::function< void(uint16_t minGpsWeek, telux::common::ErrorCode error)>
 
using GetMinSVElevationCallback = std::function< void(uint8_t minSVElevation, telux::common::ErrorCode error)>
 
using GetRobustLocationCallback = std::function< void(const telux::loc::RobustLocationConfiguration rLConfig, telux::common::ErrorCode error)>
 
using GetXtraStatusCallback = std::function< void(const telux::loc::XtraStatus xtraStatus, telux::common::ErrorCode error)>
 

Public Member Functions

virtual bool isSubsystemReady ()=0
 
virtual telux::common::ServiceStatus getServiceStatus ()=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 telux::common::Status configurePACE (bool enable, telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status deleteAllAidingData (telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status configureLeverArm (const LeverArmConfigInfo &info, telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status configureConstellations (const SvBlackList &list, telux::common::ResponseCallback callback=nullptr, bool resetToDefault=false)=0
 
virtual telux::common::Status configureSecondaryBand (const ConstellationSet &set, telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status requestSecondaryBandConfig (GetSecondaryBandCallback cb)=0
 
virtual telux::common::Status configureRobustLocation (bool enable, bool enableForE911=false, telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status requestRobustLocation (GetRobustLocationCallback cb)=0
 
virtual telux::common::Status configureMinGpsWeek (uint16_t minGpsWeek, telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status requestMinGpsWeek (GetMinGpsWeekCallback cb)=0
 
virtual telux::common::Status configureMinSVElevation (uint8_t minSVElevation, telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status requestMinSVElevation (GetMinSVElevationCallback cb)=0
 
virtual telux::common::Status deleteAidingData (AidingData aidingDataMask, telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status configureDR (const DREngineConfiguration &config, telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status configureEngineState (const EngineType engineType, const LocationEngineRunState engineState, telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status provideConsentForTerrestrialPositioning (bool userConsent, telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status configureNmeaTypes (const NmeaSentenceConfig nmeaType, telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status configureEngineIntegrityRisk (const EngineType engineType, uint32_t integrityRisk, telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status configureXtraParams (bool enable, const XtraConfig configParams, telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status requestXtraStatus (GetXtraStatusCallback callback)=0
 
virtual telux::common::Status registerListener (LocConfigIndications indicationList, std::weak_ptr< ILocationConfigListener > listener)=0
 
virtual telux::common::Status deRegisterListener (LocConfigIndications indicationList, std::weak_ptr< ILocationConfigListener > listener)=0
 
virtual ~ILocationConfigurator ()
 

Member Typedef Documentation

This function is called with the response to requestSecondaryBandConfig API.

Parameters
[in]set- disabled secondary band constellation configuration used by the GNSS standard position engine (SPE).
[in]error- Return code which indicates whether the operation succeeded or not.
using telux::loc::ILocationConfigurator::GetMinGpsWeekCallback = std::function<void(uint16_t minGpsWeek, telux::common::ErrorCode error)>

This function is called with the response to requestMinGpsWeek API.

Parameters
[in]minGpsWeek- minimum gps week.
[in]error- Return code which indicates whether the operation succeeded or not.
using telux::loc::ILocationConfigurator::GetMinSVElevationCallback = std::function<void(uint8_t minSVElevation, telux::common::ErrorCode error)>

This function is called with the response to requestMinSVElevation API.

Parameters
[in]minSVElevation- minimum SV Elevation angle in units of degree.
[in]error- Return code which indicates whether the operation succeeded or not.

This function is called with the response to requestRobustLocation API.

Parameters
[in]rLConfig- robust location settings information.
[in]error- Return code which indicates whether the operation succeeded or not.

This function is called with the response to requestXtraStatus API.

Parameters
[in]xtraStatus- Information pertaining to Xtra assistance data.
[in]error- Return code which indicates whether the operation succeeded or not.

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.
Deprecated:
use getServiceStatus()
virtual telux::common::ServiceStatus telux::loc::ILocationConfigurator::getServiceStatus ( )
pure virtual

This status indicates whether the object is in a usable state.

Returns
SERVICE_AVAILABLE - If location configurator is ready for service. SERVICE_UNAVAILABLE - If location configurator is temporarily unavailable. SERVICE_FAILED - If location configurator encountered an irrecoverable failure.
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.
Deprecated:
The callback mechanism introduced in the LocationFactory::getLocationConfigurator() API will provide the similar notification mechanism as onSubsystemReady(). This API will soon be removed from further releases.
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. For multiple invocations of this API, client should wait for the command to finish, e.g.: via ResponseCallback received before issuing a second configureCTunc command. Behavior is not defined if client issues a second request of configureCTunc without waiting for the finish of the previous configureCTunc request.

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. This parameter is ignored when the request is to disable this feature.
[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. This parameter is ignored when the request is to disable this feature.
Returns
Status of configureCTunc i.e. success or suitable status code.
virtual telux::common::Status telux::loc::ILocationConfigurator::configurePACE ( bool  enable,
telux::common::ResponseCallback  callback = nullptr 
)
pure virtual

This API enables or disables position assisted clock estimator feature. For multiple invocations of this API, client should wait for the command to finish, e.g.: via ResponseCallback received before issuing a second configurePACE command. Behavior is not defined if client issues a second request of configurePACE without waiting for the finish of the previous configurePACE request.

Parameters
[in]enable- to enable/disable position assisted clock estimator feature.
[in]callback- Optional callback to get the response of enablement/disablement of PACE.
virtual telux::common::Status telux::loc::ILocationConfigurator::deleteAllAidingData ( telux::common::ResponseCallback  callback = nullptr)
pure virtual

This API deletes all forms of aiding data from all position engines. This API deletes all assistance data used by GPS engine and force engine to do a cold start for next session. Invoking this API will trigger cold start of all position engines on the device and will cause significant delay for the position engines to produce next fix and may have other performance impact. So, this API should only be exercised with caution and only for very limited usage scenario, e.g.: for performance test and certification process.

Parameters
[in]callback- Optional callback to get the response of delete aiding data.
virtual telux::common::Status telux::loc::ILocationConfigurator::configureLeverArm ( const LeverArmConfigInfo info,
telux::common::ResponseCallback  callback = nullptr 
)
pure virtual

This API sets the lever arm parameters for the vehicle. LeverArm is sytem level parameters and it is not expected to change. So, it is needed to issue configureLeverArm once for every application processor boot-up. For multiple invocations of this API client should wait for the command to finish, e.g.: via ResponseCallback received before issuing a second configureLeverArm command. Behavior is not defined if client issues a second request of configureLeverArm without waiting for the finish of the previous configureLeverArm request.

Parameters
[in]info- lever arm configuration info regarding below three types of lever arm info: a: GNSS Antenna with respect to the origin at the IMU (inertial measurement unit) for DR engine b: GNSS Antenna with respect to the origin at the IMU (inertial measurement unit) for VEPP engine c: VRP (Vehicle Reference Point) with respect to the origin (at the GNSS Antenna). Vehicle manufacturers prefer the position output to be tied to a specific point in the vehicle rather than where the antenna is placed (midpoint of the rear axle is typical).
[in]callback- Optional callback to get the response of configure lever arm.
virtual telux::common::Status telux::loc::ILocationConfigurator::configureConstellations ( const SvBlackList list,
telux::common::ResponseCallback  callback = nullptr,
bool  resetToDefault = false 
)
pure virtual

This API blacklists some constellations or subset of SVs from the constellation from being used by the GNSS standard position engine (SPE). Supported constellations for this API are GLONASS, QZSS, BEIDOU, GALILEO and SBAS. For other constellations NOTSUPPORTED status will be returned. For SBAS, SVs are not used in positioning by the GNSS standard position engine (SPE) by default. Blacklisting SBAS SV only blocks SBAS data demodulation and will not disable SBAS cross-correlation detection algorithms as they are necessary for optimal GNSS standard position engine (SPE) performance. When resetToDefault is false then the list is expected to contain the constellations or SVs that should be blacklisted. An empty list could be specified to allow all constellations/SVs (i.e. none will be blacklisted) in determining the fix. When resetToDefault is set to true, the device will revert to the default list of SV/ constellations to be blacklisted. For multiple invocations of this API, client should wait for the command to finish, e.g.: via ResponseCallback received before issuing a second configureConstellations command. Behavior is not defined if client issues a second request of configureConstellations without waiting for the finish of the previous configureConstellations request. This API call is not incremental and the new settings will completely overwrite the previous call.

Parameters
[in]list- specify the set of constellations and SVs that should not be used by the GNSS engine on modem. Constellations and SVs not specified in blacklistedSvList could get used by the GNSS engine on modem.
[in]callback- Optional callback to get the response of configure constellations.
[in]resetToDefault- when set to true, the device will revert to the default list of SV/constellation to be blacklisted. When set to false, list will be inspected to determine what should be blacklisted.
virtual telux::common::Status telux::loc::ILocationConfigurator::configureSecondaryBand ( const ConstellationSet set,
telux::common::ResponseCallback  callback = nullptr 
)
pure virtual

This API configures the secondary band constellations used by the GNSS standard position engine. This API call is not incremental and the new settings will completely overwrite the previous call. The set specifies the supported constellations whose secondary band information should be disabled. The absence of a constellation in the set will result in the secondary band being enabled for that constellation. The modem has its own configuration in NV (persistent memory) about which constellation's secondary bands are allowed to be enabled. When a constellation is omitted when this API is invoked the secondary band for that constellation will only be enabled if the modem configuration allows it. If not allowed then this API would be a no-op for that constellation. Passing an empty set to this API will result in all constellations as allowed by the modem configuration to be enabled. For multiple invocations of this API, client should wait for the command to finish, e.g.: via ResponseCallback recieved, before issuing a second configureSecondaryBand command. Behavior is not defined if client issues a second request of configureSecondaryBand without waiting for the finish of the previous configureSecondaryBand request.

Parameters
[in]set- specifies the set of constellations whose secondary bands need to be disabled.
[in]callback- Optional callback to get the response of configureSecondaryBand.
virtual telux::common::Status telux::loc::ILocationConfigurator::requestSecondaryBandConfig ( GetSecondaryBandCallback  cb)
pure virtual

This API retrieves the secondary band configurations for constellation used by the standard GNSS engine (SPE).

Parameters
[in]cb- callback to retrieve secondary band information about constellations.
Returns
Status of requestSecondaryBandConfig i.e. success or suitable status code.
virtual telux::common::Status telux::loc::ILocationConfigurator::configureRobustLocation ( bool  enable,
bool  enableForE911 = false,
telux::common::ResponseCallback  callback = nullptr 
)
pure virtual

This API enables/disables robust location 2.0 feature and enables/disables robust location while device is on E911. When this API is enabled it reports confidence of the GNSS spoofing by the getConformityIndex() API defined in the ILocationInfoEx class, which is a measure of robustness of the underlying navigation solution. It indicates how well the various input data considered for navigation solution conform to expectations. In the presence of detected spoofed inputs, the navigation solution may take corrective actions to mitigate the spoofed inputs and improve robustness of the solution.

Parameters
[in]enable- true to enable robust location and false to disable robust location.
[in]enableForE911- true to enable robust location when the device is on E911 session and false to disable on E911 session. This parameter is only valid if robust location is enabled.
[in]callback- Optional callback to get the response of configure robust location.
virtual telux::common::Status telux::loc::ILocationConfigurator::requestRobustLocation ( GetRobustLocationCallback  cb)
pure virtual

This API retrieves the robust location 2.0 settings and version info used by the GNSS standard position engine (SPE).

Parameters
[in]cb- callback to retrieve robust location information.
Returns
Status of requestRobustLocation i.e. success or suitable status code.
virtual telux::common::Status telux::loc::ILocationConfigurator::configureMinGpsWeek ( uint16_t  minGpsWeek,
telux::common::ResponseCallback  callback = nullptr 
)
pure virtual

This API configures the minimum GPS week used by the modem GNSS standard position engine (SPE) and shall not be called while GNSS SPE is in the middle of a session. Client needs to assure that there is no active GNSS SPE session prior to issuing this command. Client should wait for the command to finish, e.g.: via ResponseCallback received before issuing a second configureMinGpsWeek command. Behavior is not defined if client issues a second request of configureMinGpsWeek without waiting for the previous configureMinGpsWeek to finish. Additionally minimum GPS week number shall NEVER be in the future of the current GPS Week.

Parameters
[in]minGpsWeek- minimum GPS week to be used by modem GNSS engine.
[in]callback- Optional callback to get the response of configure minimum GPS week.
Returns
Status of configureMinGpsWeek i.e. success or suitable status code.
virtual telux::common::Status telux::loc::ILocationConfigurator::requestMinGpsWeek ( GetMinGpsWeekCallback  cb)
pure virtual

This API retrieves the minimum GPS week configuration used by the modem GNSS standard position engine (SPE). If this API is called right after configureMinGpsWeek, the returned setting may not match the one specified in configureMinGpsWeek, as the setting configured via configureMinGpsWeek can not be applied to the GNSS standard position engine(SPE) when the engine is in middle of a session. In poor GPS signal condition, the session may take up to 255 seconds to finish. If after 255 seconds of invoking configureMinGpsWeek, the returned value still does not match, then the caller need to reapply the setting by invoking configureMinGpsWeek again.

Parameters
[in]cb- callback to retrieve the minimum gps week.
Returns
Status of requestMinGpsWeek i.e. success or suitable status code.
virtual telux::common::Status telux::loc::ILocationConfigurator::configureMinSVElevation ( uint8_t  minSVElevation,
telux::common::ResponseCallback  callback = nullptr 
)
pure virtual

This API configures the minimum SV elevation angle setting used by the GNSS standard position engine. Configuring minimum SV elevation setting will not cause SPE to stop tracking low elevation SVs. It only controls the list of SVs that are used in the filtered position solution, so SVs with elevation below the setting will be excluded from use in the filtered position solution. Configuring this setting to large angle will cause more SVs to get filtered out in the filtered position solution and will have negative performance impact.

This setting does not impact the SV information and SV measurement reports retrieved from APIs such as IGnssSvINfo::getSVInfoList, ILocationListener::onGnssMeasurementsInfo.

To apply the setting, the GNSS standard position engine(SPE) will require GNSS measurement engine and position engine to be turned off briefly. This may cause glitch for on-going tracking session and may have other performance impact. So, it is advised to use this API with caution and only for very limited usage scenario, e.g.: for performance test and certification process and for one-time device configuration.

Client should wait for the command to finish, e.g.: via ResponseCallback received, before issuing a second configureMinElevation command. If this API is called while the GNSS Position Engine is in the middle of a session, ResponseCallback will still be invoked shortly to indicate the setting has been received by the SPE engine. However the actual setting can not be applied until the current session ends, and this may take up to 255 seconds in poor GPS signal condition.

Parameters
[in]minSVElevation- minimum SV elevation to be used by GNSS standard position engine (SPE). Valid range is [0, 90] in unit of degree.
[in]callback- Optional callback to get the response of configure minimum SV Elevation angle.
Returns
Status of configureMinSVElevation i.e. success or suitable status code.
virtual telux::common::Status telux::loc::ILocationConfigurator::requestMinSVElevation ( GetMinSVElevationCallback  cb)
pure virtual

This API retrieves the minimum SV Elevation configuration used by the modem GNSS SPE engine. If this API is invoked right after the configureMinSVElevation, the returned setting may not match the one specified in configureMinSVElevation, as the setting received via configureMinSVElevation might not have been applied yet as it takes time to apply the setting if the GNSS SPE engine has an on-going session. In poor GPS signal condition, the session may take up to 255 seconds to finish. If after 255 seconds of invoking configureMinSVElevation, the returned value still does not match, then the caller need to reapply the setting by invoking configureMinSVElevation again.

Parameters
[in]cb- callback to retrieve the minimum SV elevation.
Returns
Status of requestMinSVElevation i.e. success or suitable status code.
virtual telux::common::Status telux::loc::ILocationConfigurator::deleteAidingData ( AidingData  aidingDataMask,
telux::common::ResponseCallback  callback = nullptr 
)
pure virtual

This API deletes specified aiding data from all position engines on the device. For example, removing ephemeris data may trigger GNSS engine to do a warm start. Invoking this API may cause noticeable delay for the position engine to produce first fix and may have other performance impact. So, this API should only be exercised with caution and only for very limited usage scenario, e.g.: for performance test and certification process.

Parameters
[in]aidingDataMask- specify the set of aiding data to be deleted from all position engines. Currently, only ephemeris deletion is supported.
[in]callback- Optional callback to get the response of delete aiding data.
Returns
Status of deleteAidingData i.e. success or suitable status code.
virtual telux::common::Status telux::loc::ILocationConfigurator::configureDR ( const DREngineConfiguration config,
telux::common::ResponseCallback  callback = nullptr 
)
pure virtual

This API configures various parameters for dead reckoning position engine. Clients should wait for the command to finish e.g.: via ResponseCallback to be received before issuing a second configureDR command. Behavior is not defined if client issues a second request of configureDR without waiting for the completion of the previous configureDR request.

Parameters
[in]config- specify dead reckoning engine configuration.
[in]callback- Optional callback to get the response of configureDR.
Returns
Status of configureDR i.e. success or suitable status code.
virtual telux::common::Status telux::loc::ILocationConfigurator::configureEngineState ( const EngineType  engineType,
const LocationEngineRunState  engineState,
telux::common::ResponseCallback  callback = nullptr 
)
pure virtual

This API is used to instruct the specified engine to be in the suspended/running state. When the engine is placed in suspended state, the engine will stop. If there is an on-going session, engine will no longer produce fixes. In the suspended state, calling API to delete aiding data from the paused engine may not have effect. Request to delete Aiding data shall be issued after engine resume.

Currently, only DR engine will support this request. The request to suspend/running DR engine can be made with or without an on-going session. With DR engine, on resume, GNSS position & heading re-acquisition may be needed for DR to engage.

Parameters
[in]engineType- the engine that is instructed to change its run state.
[in]engineState- the new engine run state that the engine is instructed to be in.
[in]callback- Optional callback to get the response of configureEngineState.
Returns
Status of configureEngineState i.e. success or suitable status code.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::loc::ILocationConfigurator::provideConsentForTerrestrialPositioning ( bool  userConsent,
telux::common::ResponseCallback  callback = nullptr 
)
pure virtual

Clients can request Terrestrial Positioning using ILocationManager::getTerrestrialPosition. Terrestrial Positioning requires sending device data to the cloud to get the position. This functionality requires user consent. This API needs to be invoked to provide the user consent.

The consent will remain effective across power cycles, until this API is called with a different value.

Parameters
[in]userConsent- true indicates user consents to sending device data to cloud, false indicates user does not consent.
[in]callback- Optional callback to get the response of provideConsentForTerrestrialPositioning.
Returns
Status of provideConsentForTerrestrialPositioning i.e. success or suitable status code.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::loc::ILocationConfigurator::configureNmeaTypes ( const NmeaSentenceConfig  nmeaType,
telux::common::ResponseCallback  callback = nullptr 
)
pure virtual

This API is used to configure the NMEA sentence types that clients will receive via ILocationManager::startDetailedReports or ILocationManager::startDetailedEngineReports. Without prior invocation to this API, all NMEA sentences supported in the system will get generated and delivered to all the clients that register to receive NMEA sentences. The NMEA sentence type configuration is common across all clients and updating it will affect all clients. This API call is not incremental and the new NMEA sentence types will completely overwrite the previous call to this API.

Parameters
[in]nmeaType- specify the set of NMEA sentences
[in]callback- Optional callback to get the response of configureNmeaTypes.
Returns
Status of configureNmeaTypes i.e. success or suitable status code.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::loc::ILocationConfigurator::configureEngineIntegrityRisk ( const EngineType  engineType,
uint32_t  integrityRisk,
telux::common::ResponseCallback  callback = nullptr 
)
pure virtual

This API is used to instruct the specified engine to use the provided integrity risk level for protection level calculation in position report. This API can be called when a position session is in progress. Prior to calling this API for a particular engine, the engine shall not calculate the protection levels and shall not include the protection levels in its position report. The implementation might not support protection levels across all engines. For engines that don't support it, ResponseCallback will get invoked with ErrorCode::NOT_SUPPORTED.

Parameters
[in]engineType- the engine that is instructed to use the specified integrity risk level for protection level calculation.
[in]integrityRisk- the integrity risk level used for calculating protection level. The integrity risk is defined as a probability per epoch, in unit of 2.5e-10. The valid range for actual integrity is [2.5e-10, 1-2.5e-10]), this corresponds to range of [1,4e9-1] of this parameter.
[in]callback- Optional callback to get the response of configureEngineIntegrityRisk.
Returns
Status of configureEngineIntegrityRisk i.e. success or suitable status code.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::loc::ILocationConfigurator::configureXtraParams ( bool  enable,
const XtraConfig  configParams,
telux::common::ResponseCallback  callback = nullptr 
)
pure virtual

This API is used to enable/disable the XTRA (Predicted GNSS Satellite Orbit Data) feature on device. If XTRA feature is to be enabled, this API is also used to configure the various XTRA settings in device.

Clients need to note the below-

  1. Wait for the ongoing request to finish prior to the next invocation else the behavior is undefined.
  2. The API is non-incremental i.e, the second call will overwrite the first call. Also the configured XTRA params will be persistent.
Parameters
[in]enable- Enable XTRA Feature on the device. False would disable both the XTRA Assistance Data and NTP Time Download.
[in]configParams- Configuration Parameters for XTRA on the device.
[in]callback- Optional callback stating the response errorcode.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::loc::ILocationConfigurator::requestXtraStatus ( GetXtraStatusCallback  callback)
pure virtual

This API is used to query xtra feature setting and xtra assistance data status used by the GNSS standard position engine (SPE). If XTRA_DATA_STATUS_UNKNOWN is returned but XTRA feature is enabled, the client shall wait a few seconds before calling this API again.

Parameters
[in]callback- Callback to get the Xtra data status information.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::loc::ILocationConfigurator::registerListener ( LocConfigIndications  indicationList,
std::weak_ptr< ILocationConfigListener listener 
)
pure virtual

This API is used to register a configuration listener for getting specific indications/updates.

Parameters
[in]indicationList- List of indications client wants to register under telux::loc::LocConfigIndicationsType.
[in]listener- Pointer of ILocationConfigListener object.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::loc::ILocationConfigurator::deRegisterListener ( LocConfigIndications  indicationList,
std::weak_ptr< ILocationConfigListener listener 
)
pure virtual

This API is used to deregister a configuration listener from specific indications/updates.

Parameters
[in]indicationList- List of indications client wants to deregister from under telux::loc::LocConfigIndicationsType.
[in]listener- Pointer of ILocationConfigListener object.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
struct telux::loc::GnssKinematicsData

Specifies kinematics related information related to device body frame parameters.

Data Fields
KinematicDataValidity bodyFrameDataMask

Contains Body frame data valid bits.

float longAccel

Forward Acceleration in body frame (meters/second^2)

float latAccel

Sideward Acceleration in body frame (meters/second^2)

float vertAccel

Vertical Acceleration in body frame (meters/second^2)

float yawRate

Heading Rate (Radians/second)

float pitch

Body pitch (Radians)

float longAccelUnc

Uncertainty of Forward Acceleration in body frame (meters/second^2) Uncertainty is defined with 68% confidence level.

float latAccelUnc

Uncertainty of Side-ward Acceleration in body frame meters/second^2) Uncertainty is defined with 68% confidence level.

float vertAccelUnc

Uncertainty of Vertical Acceleration in body frame (meters/second^2) Uncertainty is defined with 68% confidence level.

float yawRateUnc

Uncertainty of Heading Rate (Radians/second) Uncertainty is defined with 68% confidence level.

float pitchUnc

Uncertainty of Body pitch (Radians) Uncertainty is defined with 68% confidence level.

float pitchRate

Body pitch rate, in unit of radians/second.

float pitchRateUnc

Uncertainty of pitch rate, in unit of radians/second. Uncertainty is defined with 68% confidence level.

float roll

Roll of body frame, clockwise is positive, in unit of radian.

float rollUnc

Uncertainty of roll, in unit of radian. Uncertainty is defined with 68% confidence level.

float rollRate

Roll rate of body frame, clockwise is positive, in unit of radian/second.

float rollRateUnc

Uncertainty of roll rate, in unit of radian/second. Uncertainty is defined with 68% confidence level.

float yaw

Yaw of body frame, clockwise is positive, in unit of radian.

float yawUnc

Uncertainty of yaw, in unit of radian. Uncertainty is defined with 68% confidence level.

struct telux::loc::LLAInfo

The location info is calculated according to the vehicle's GNSS antenna where as Vehicle Reference Point(VRP) refers to a point on the vehicle where the display of the car sits. The VRP based info is calculated by adding that extra difference between GNSS antenna and the VRP on the top where the location info is recieved. The VRP parameters can be configured through ILocationConfigurator::configureLeverArm. LLAInfo specifies latitude, longitude and altitude info of location for VRP-based.

Data Fields
double latitude

Latitude, in unit of degrees, range [-90.0, 90.0].

double longitude

Longitude, in unit of degrees, range [-180.0, 180.0].

float altitude

Altitude above the WGS 84 reference ellipsoid, in unit of meters.

struct telux::loc::TimeInfo

Specify non-Glonass Gnss system time info.

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)]. 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.

float systemClkTimeBias

System clock time bias Units: Millisecond Note: System time (TOW Millisecond) = systemMsec - systemClkTimeBias.

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

Specifies Glonass system time info.

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 GlonassTimeInfo fields

uint32_t gloMsec

GLONASS time of day in Millisecond. Refer to GLONASS ICD. Units: Millisecond.

float gloClkTimeBias

GLONASS clock time bias. 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.

union telux::loc::SystemTimeInfo

Union to hold GNSS system time from different constellations in SystemTime.

Data Fields
TimeInfo gps

System time info from GPS constellation.

TimeInfo gal

System time info from GALILEO constellation.

TimeInfo bds

System time info from BEIDOU constellation.

TimeInfo qzss

System time info from QZSS constellation.

GlonassTimeInfo glo

System time info from GLONASS constellation.

TimeInfo navic

System time info from NAVIC constellation.

struct telux::loc::SystemTime

GNSS system time in ILocationInfoEx.

Data Fields
GnssSystem gnssSystemTimeSrc

Specify the source constellation for GNSS system time.

SystemTimeInfo time

Specify the GNSS system time corresponding to the source.

struct telux::loc::GnssMeasurementInfo

Specify the satellite vehicle measurements that are used to calculate location in ILocationInfoEx.

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, 96] or [97, 110]. [65, 96] if orbital slot number(OSN) is known. [97, 110] as frequency channel number(FCN) [-7, 6] plus 104. i.e. encode FCN (-7) as 97, FCN (0) as 104, FCN (6) as 110. For SBAS: 120 to 158 and 183 to 191. For QZSS: 193 to 197. For BDS: 201 to 263. For GAL: 301 to 336. For NAVIC: 401 to 414.

struct telux::loc::SvUsedInPosition

Specify the set of SVs that are used to calculate location in ILocationInfoEx.

Data Fields
uint64_t gps

Specify the set of SVs from GPS constellation that are used to compute the position. Bit 0 to Bit 31 corresponds to GPS SV id 1 to 32.

uint64_t glo

Specify the set of SVs from GLONASS constellation that are used to compute the position. Bit 0 to Bit 31 corresponds to GLO SV id 65 to 96.

uint64_t gal

Specify the set of SVs from GALILEO constellation that are used to compute the position. Bit 0 to Bit 35 corresponds to GAL SV id 301 to 336.

uint64_t bds

Specify the set of SVs from BEIDOU constellation that are used to compute the position. Bit 0 to Bit 62 corresponds to BDS SV id 201 to 263.

uint64_t qzss

Specify the set of SVs from QZSS constellation that are used to compute the position. Bit 0 to Bit 4 corresponds to QZSS SV id 193 to 197.

uint64_t navic

Specify the set of SVs from NAVIC constellation that are used to compute the position. Bit 0 to Bit 13 corresponds to NAVIC SV id 401 to 414.

struct telux::loc::GnssData

Specify the additional GNSS data that can be provided during a tracking session, currently jammer and automatic gain control data are available.

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 for each signal type. Each index represents the signal type in GnssDataSignalTypes.

double agc[GnssDataSignalTypes::GNSS_DATA_MAX_NUMBER_OF_SIGNAL_TYPES]

Automatic gain control for each signal type. Each index corresponds to the signal type in GnssDataSignalTypes.

struct telux::loc::SvBlackListInfo

Specify parameters related to enable/disable SVs

Data Fields
GnssConstellationType constellation

constellation for the sv

uint32_t svId

sv id for the constellation: 0 means blacklist for all SVIds of a given constellation type GLONASS SV id range: 65 to 96 QZSS SV id range: 193 to 197 BDS SV id range: 201 to 237 GAL SV id range: 301 to 336 SBAS SV id range: 120 to 158 and 183 to 191

struct telux::loc::LeverArmParams

Specify parameters related to lever arm

Data Fields
float forwardOffset

Offset along the vehicle forward axis, in unit of meters

float sidewaysOffset

Offset along the vehicle starboard axis, in unit of meters

float upOffset

Offset along the vehicle up axis, in unit of meters

struct telux::loc::GnssMeasurementsData

Specify the signal measurement information such as satellite vehicle pseudo range, satellite vehicle time, carrier phase measurement etc. from GNSS positioning engine.

Data Fields
GnssMeasurementsDataValidity valid

Bitwise OR of GnssMeasurementsDataValidityType to specify the valid fields in GnssMeasurementsData.

int16_t svId

Specify satellite vehicle ID number.

GnssConstellationType svType

SV constellation type.

double timeOffsetNs

Time offset when the measurement was taken, in unit of nanoseconds.

GnssMeasurementsStateValidity stateMask

Bitwise OR of GnssMeasurementsStateValidityType to specify the GNSS measurement state.

int64_t receivedSvTimeNs

Received GNSS time of the week in nanoseconds when the measurement was taken. Total time is: receivedSvTimeNs+receivedSvTimeSubNs.

float receivedSvTimeSubNs

Sub nanoseconds portion of the received GNSS time of the week when the measurement was taken. Total time is: receivedSvTimeNs+receivedSvTimeSubNs.

int64_t receivedSvTimeUncertaintyNs

Satellite time. All SV times in the current measurement block are already propagated to a common reference time epoch, in unit of nano seconds.

double carrierToNoiseDbHz

Signal strength, carrier to noise ratio, in unit of dB-Hz.

double pseudorangeRateMps

Uncorrected pseudorange rate, in unit of metres/second.

double pseudorangeRateUncertaintyMps

Uncorrected pseudorange rate uncertainty, in unit of meters/second.

GnssMeasurementsAdrStateValidity adrStateMask

Bitwise OR of GnssMeasurementsAdrStateValidityType.

double adrMeters

Accumulated delta range, in unit of meters.

double adrUncertaintyMeters

Accumulated delta range uncertainty, in unit of meters.

float carrierFrequencyHz

Carrier frequency of the tracked signal, in unit of Hertz.

int64_t carrierCycles

The number of full carrier cycles between the receiver and the satellite.

double carrierPhase

The RF carrier phase that the receiver has detected.

double carrierPhaseUncertainty

The RF carrier phase uncertainty.

GnssMeasurementsMultipathIndicator multipathIndicator

Multipath indicator, could be unknown, present or not present.

double signalToNoiseRatioDb

Signal to noise ratio, in unit of dB.

double agcLevelDb

Automatic gain control level, in unit of dB.

GnssSignal gnssSignalType

GnssSignalType mask

double basebandCarrierToNoise

Carrier-to-noise ratio of the signal measured at baseband, in unit of dB-Hz.

double fullInterSignalBias

The full inter-signal bias (ISB) in nanoseconds. This value is the sum of the estimated receiver-side and the space-segment-side inter-system bias, inter-frequency bias and inter-code bias.

double fullInterSignalBiasUncertainty

Uncertainty associated with the full inter-signal bias in nanoseconds.

struct telux::loc::GnssMeasurementsClock

Specify GNSS measurements clock. The main equation describing the relationship between various components is: utcTimeNs = timeNs - (fullBiasNs + biasNs) - leapSecond * 1,000,000,000

Data Fields
GnssMeasurementsClockValidity valid

Bitwise OR of GnssMeasurementsClockValidityType.

int16_t leapSecond

Leap second, in unit of seconds.

int64_t timeNs

Time, monotonically increasing as long as the power is on, in unit of nanoseconds.

double timeUncertaintyNs

Time uncertainty (one sigma), in unit of nanoseconds.

int64_t fullBiasNs

Full bias, in uint of nanoseconds.

double biasNs

Sub-nanoseconds bias, in unit of nonoseconds.

double biasUncertaintyNs

Bias uncertainty (one sigma), in unit of nanoseconds.

double driftNsps

Clock drift, in unit of nanoseconds/second.

double driftUncertaintyNsps

Clock drift uncertainty (one sigma), in unit of nanoseconds/second.

uint32_t hwClockDiscontinuityCount

HW clock discontinuity count - incremented for each discontinuity in HW clock.

struct telux::loc::GnssMeasurements

Specify GNSS measurements clock and data. GnssMeasurementInfo is used to convey the satellite vehicle info whose measurements are actually used to generate the current position report. While GnssMeasurements contains the satellite measurements that device observed during tracking session, regardless the measurement is used or not used to compute the fix. Furthermore GnssMeasurements contains much richer set of information which can enable other third party engines to utilize the measurements and compute the position by itself.

Data Fields
GnssMeasurementsClock clock

GNSS measurements clock info.

vector< GnssMeasurementsData > measurements

GNSS measurements data.

bool isNHz

Indicates the frequency for GNSS measurements generated at NHz or not.

struct telux::loc::LeapSecondChangeInfo

Specify leap second change event info.

Data Fields
TimeInfo timeInfo

GPS timestamp that corrresponds to the last known leap second change event. The info can be available on two scenario: 1: This leap second change event has been scheduled and yet to happen 2: This leap second change event has already happened and next leap second change event has not yet been scheduled.

uint8_t leapSecondsBeforeChange

Number of leap seconds prior to the leap second change event that corresponds to the timestamp at timeInfo.

uint8_t leapSecondsAfterChange

Number of leap seconds after the leap second change event that corresponds to the timestamp at timeInfo.

struct telux::loc::LeapSecondInfo

Specify leap second info, including current leap second and leap second change event info if available.

Data Fields
LeapSecondInfoValidity valid

Validity of LeapSecondInfo fields.

uint8_t current

Current leap seconds, in unit of seconds. This info will only be available only if the leap second change info is not available.

LeapSecondChangeInfo info

Leap second change event info. The info can be available on two scenario: 1: this leap second change event has been scheduled and yet to happen 2: this leap second change event has already happened and next leap second change event has not yet been scheduled. If leap second change info is available, to figure out the current leap second info, compare current gps time with LeapSecondChangeInfo::timeInfo to know whether to choose leapSecondBefore or leapSecondAfter as current leap second.

struct telux::loc::LocationSystemInfo

Specify location system information.

Data Fields
LocationSystemInfoValidity valid

validity of LocationSystemInfo::info

LeapSecondInfo info

Current leap second and leap second info.

struct telux::loc::GnssEnergyConsumedInfo

Specify the info regarding energy consumed by GNSS engine.

Data Fields
GnssEnergyConsumedInfoValidity valid

Bitwise OR of GnssEnergyConsumedInfoValidityType to specify the valid fields in GnssEnergyConsumedInfo.

uint64_t energySinceFirstBoot

Energy consumed by the modem GNSS engine since device first ever bootup, in unit of 0.1 milli watt seconds. For an invalid reading, INVALID_ENERGY_CONSUMED is returned.

struct telux::loc::RobustLocationVersion

Specify the versioning info of robust location module for the GNSS standard position engine (SPE).

Data Fields
uint8_t major

Major version number.

uint16_t minor

Minor version number.

struct telux::loc::RobustLocationConfiguration

Specify the robust location configuration used by the GNSS standard position engine (SPE)

Data Fields
RobustLocationConfig validMask

Validity mask

bool enabled

Specify whether robust location feature is enabled or not.

bool enabledForE911

Specify whether robust location feature is enabled or not when device is on E911 call.

RobustLocationVersion version

Specify the version info of robust location module used by the GNSS standard position engine (SPE).

struct telux::loc::BodyToSensorMountParams

Specify vehicle body-to-Sensor mount parameters for use by dead reckoning positioning engine.

Data Fields
float rollOffset

The misalignment of the sensor board along the horizontal plane of the vehicle chassis measured looking from the vehicle to forward direction. In unit of degrees. Range: [-180.0, 180.0].

float yawOffset

The misalignment along the horizontal plane of the vehicle chassis measured looking from the vehicle to the right side. Positive pitch indicates vehicle is inclined such that forward wheels are at higher elevation than rear wheels. In unit of degrees. Range: [-180.0, 180.0].

float pitchOffset

The angle between the vehicle forward direction and the sensor axis as seen from the top of the vehicle, and measured in counterclockwise direction. In unit of degrees. Range: [-180.0, 180.0].

float offsetUnc

Single uncertainty number that may be the largest of the uncertainties for roll offset, pitch offset and yaw offset. In unit of degrees. Range: [-180.0, 180.0].

struct telux::loc::DREngineConfiguration

Specify the dead reckoning engine configuration parameters.

Data Fields
DRConfigValidity validMask

Specify the valid fields.

BodyToSensorMountParams mountParam

Body to sensor mount parameters used by dead reckoning positioning engine.

float speedFactor

Vehicle Speed Scale Factor configuration input for the dead reckoning positioning engine. The multiplicative scale factor is applied to the received Vehicle Speed value (in meter/second) to obtain the true Vehicle Speed. Range is [0.9 to 1.1]. Note: The scale factor is specific to a given vehicle make & model.

float speedFactorUnc

Vehicle Speed Scale Factor Uncertainty (68% confidence) configuration input for the dead reckoning positioning engine. Range is [0.0 to 0.1]. Note: The scale factor uncertainty is specific to a given vehicle make & model.

float gyroFactor

Gyroscope Scale Factor configuration input for the dead reckoning positioning engine. The multiplicative scale factor is applied to received gyroscope value to obtain the true value. Range is [0.9 to 1.1]. Note: The scale factor is specific to the Gyroscope sensor and typically derived from either sensor data-sheet or from actual calibration.

float gyroFactorUnc

Gyroscope Scale Factor uncertainty (68% confidence) configuration input for the dead reckoning positioning engine. Range is [0.0 to 0.1]. Note: The scale factor uncertainty is specific to the Gyroscope sensor and typically derived from either sensor data-sheet or from actual calibration.

struct telux::loc::XtraConfig

Xtra feature configuration parameters

Data Fields
uint32_t downloadIntervalMinute

Number of minutes between periodic, consecutive successful XTRA assistance data downloads.

If 0 is specified, modem default download for XTRA assistance data will be performed.

uint32_t downloadTimeoutSec

Connection timeout when connecting backend for both xtra assistance data download and NTP time download.

If 0 is specified, the download timeout value will use device default values.

uint32_t downloadRetryIntervalMinute

Interval to wait before retrying for xtra assistance data's download in case of failure.

If 0 is specified, XTRA download retry will follow device default behavior and downloadRetryAttempts will also use device default value.

uint32_t downloadRetryAttempts

Total number of allowed retry attempts for assistance data's download in case of failure.

If 0 is specified, XTRA download retry will follow device default behavior and downloadRetryIntervalMinute will also use device default value.

string caPath

Path to the certificate authority (CA) repository that needs to be used for XTRA assistance data download. If empty string is specified, device default CA repositaory will be used.

vector< string > serverURLs

URLs from which XTRA assistance data will be fetched. At least one and up to three URLs need to be configured when this API is used.

The URLs, if provided, shall include the port number to be used for download.

Valid xtra server URLs should start with "https://".

Example of a valid URL : https://path.exampleserver.net:443

vector< string > ntpServerURLs

URLs for NTP server to fetch current time.

If no NTP server URL is provided, then device will use the default NTP server.

The URLs, if provided, shall include the port number to be used for download.

Example of a valid ntp server URL is: ntp.exampleserver.com:123.

bool isIntegrityDownloadEnabled

Enable or disable XTRA integrity download.

true: enable XTRA integrity download. false: disable XTRA integrity download.

uint32_t integrityDownloadIntervalMinute

Download interval for xtra integrity, only applicable if XTRA integrity download is enabled.

If 0 is specified, the download timeout value will use device default value.

DebugLogLevel daemonDebugLogLevel

Level of debug log messages that will be logged.

struct telux::loc::XtraStatus

Specify Xtra assistant data's current status, validity and whether it is enabled.

Data Fields
bool featureEnabled

XTRA assistance data and NTP time download is enabled or disabled.

XtraDataStatus xtraDataStatus

XTRA assistance data status. If XTRA assistance data download is not enabled, this field will be set to XTRA_DATA_STATUS_UNKNOWN.

uint32_t xtraValidForHours

Number of hours that xtra assistance data will remain valid.

This field will be valid when xtraDataStatus is set to XTRA_DATA_STATUS_VALID. For all other XtraDataStatus, this field will be set to 0.

class telux::loc::ILocationInfoBase

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

Public Member Functions

virtual LocationInfoValidity getLocationInfoValidity ()=0
 
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
 
virtual uint64_t getElapsedRealTime ()=0
 
virtual uint64_t getElapsedRealTimeUncertainty ()=0
 

Member Function Documentation

virtual LocationInfoValidity telux::loc::ILocationInfoBase::getLocationInfoValidity ( )
pure virtual

Retrieves the validity of the Location basic Info.

Returns
Location basic validity mask.
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/bearing.

  • 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.

  • Units: Meters Uncertainty is defined with 68% confidence level.
Returns
Horizontal uncertainty.
virtual float telux::loc::ILocationInfoBase::getVerticalUncertainty ( )
pure virtual

Retrieves the vertical uncertainty.

  • Units: Meters Uncertainty is defined with 68% confidence level.
Returns
Vertical uncertainty if available else returns NaN.
virtual uint64_t telux::loc::ILocationInfoBase::getTimeStamp ( )
pure virtual

Retrieves UTC timeInfo for the location fix.

  • Units: Milliseconds since Jan 1, 1970
Returns
TimeStamp in milliseconds if available else returns UNKNOWN_TIMESTAMP which is zero(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/accuracy.

  • Units: Meters per Second Uncertainty is defined with 68% confidence level.
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 Uncertainty is defined with 68% confidence level.
Returns
Heading uncertainty if available else returns NaN.
virtual uint64_t telux::loc::ILocationInfoBase::getElapsedRealTime ( )
pure virtual

Boot timestamp corresponding to the UTC timestamp for Location fix.

  • Units: Nano-second
Returns
elapsed real time.
virtual uint64_t telux::loc::ILocationInfoBase::getElapsedRealTimeUncertainty ( )
pure virtual

Retrieves elapsed real time uncertainty.

  • Units: Nano-second
Returns
elapsed real time uncertainty.
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 LocationInfoExValidity getLocationInfoExValidity ()=0
 
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 uint16_t getNumSvUsed ()=0
 
virtual SvUsedInPosition getSvUsedInPosition ()=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
 
virtual float getConformityIndex ()=0
 
virtual LLAInfo getVRPBasedLLA ()=0
 
virtual std::vector< float > getVRPBasedENUVelocity ()=0
 
virtual AltitudeType getAltitudeType ()=0
 
virtual ReportStatus getReportStatus ()=0
 
virtual uint32_t getIntegrityRiskUsed ()=0
 
virtual float getProtectionLevelAlongTrack ()=0
 
virtual float getProtectionLevelCrossTrack ()=0
 
virtual float getProtectionLevelVertical ()=0
 
- Public Member Functions inherited from telux::loc::ILocationInfoBase
virtual LocationInfoValidity getLocationInfoValidity ()=0
 
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
 
virtual uint64_t getElapsedRealTime ()=0
 
virtual uint64_t getElapsedRealTimeUncertainty ()=0
 

Member Function Documentation

virtual LocationInfoExValidity telux::loc::ILocationInfoEx::getLocationInfoExValidity ( )
pure virtual

Retrives the validity of the location info ex. It provides the validity of various information like dop, reliabilities, uncertainities etc.

Returns
Location ex validity mask
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 Uncertainty is defined with 39% confidence level.
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 Uncertainty is defined with 39% confidence level.
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 Confidence for uncertainty is not specified.
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 Uncertainty is defined with 68% confidence level.
Returns
East Standard Deviation.
virtual float telux::loc::ILocationInfoEx::getNorthStandardDeviation ( )
pure virtual

Retrieves north standard deviation.

  • Units: Meters Uncertainty is defined with 68% confidence level.
Returns
North Standard Deviation.
virtual uint16_t telux::loc::ILocationInfoEx::getNumSvUsed ( )
pure virtual

Retrieves number of satellite vehicles used in position report.

Returns
number of Sv used.
virtual SvUsedInPosition telux::loc::ILocationInfoEx::getSvUsedInPosition ( )
pure virtual

Retrives the set of satellite vehicles that are used to calculate position.

Returns
set of satellite vehicles for different constellations.
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. For PVT report from SPE engine, confidence level is at 99%. For PVT reports from other engines, confidence level is undefined.

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. Uncertainty is defined with 68% confidence level.

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.
virtual float telux::loc::ILocationInfoEx::getConformityIndex ( )
pure virtual

When robust location is enabled, this field will indicate how well the various input data considered for navigation solution conforms to expectations.

Returns
values in the range [0.0, 1.0], with 0.0 for least conforming and 1.0 for most conforming.
virtual LLAInfo telux::loc::ILocationInfoEx::getVRPBasedLLA ( )
pure virtual

Vehicle Reference Point(VRP) based latitude, longitude and altitude information.

virtual std::vector<float> telux::loc::ILocationInfoEx::getVRPBasedENUVelocity ( )
pure virtual

VRP-based east, north and up velocity information.

Returns
- vector of directional velocities in this order {east velocity, north velocity, up velocity}
virtual AltitudeType telux::loc::ILocationInfoEx::getAltitudeType ( )
pure virtual

Determination of altitude is assumed or calculated. ASSUMED means there may not be enough satellites to determine the precise altitude.

Returns
altitude type ASSUMED/CALCULATED or if not avalilable then UNKNOWN.
virtual ReportStatus telux::loc::ILocationInfoEx::getReportStatus ( )
pure virtual

Indicates the status of this report in terms of how optimally the report was calculated by the engine.

Returns
Status of the report. Returns ReportStatus::UNKNOWN if status is unavailable.
virtual uint32_t telux::loc::ILocationInfoEx::getIntegrityRiskUsed ( )
pure virtual

Integrity risk used for protection level parameters. Unit of 2.5e-10. Valid range is [1 to (4e9-1)]. Values other than valid range means integrity risk is disabled and ILocationInfoEx::getProtectionLevelAlongTrack, ILocationInfoEx::getProtectionLevelCrossTrack and ILocationInfoEx::getProtecttionLevelVertical will not be available.

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

Along-track protection level at specified integrity risk, in unit of meter.

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

Cross-track protection level at specified integrity risk, in unit of meter.

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

Vertical component protection level at specified integrity risk, in unit of meter.

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
 
virtual uint16_t getGlonassFcn ()=0
 
virtual double getBasebandCnr ()=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. SV id range of each supported constellations mentioned in GnssMeasurementInfo.

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 signal-to-noise ratio of the signal measured at antenna of the satellite vehicle.

  • Units: dB-Hz
Returns
SNR if available else returns 0.0 value.
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.
virtual uint16_t telux::loc::ISVInfo::getGlonassFcn ( )
pure virtual

Retrieves GLONASS frequency channel number in the range [1, 14] which is calculated as FCN [-7, 6] + 8.

Returns
GLONASS frequency channel number.
virtual double telux::loc::ISVInfo::getBasebandCnr ( )
pure virtual

Carrier-to-noise ratio of the signal measured at baseband.

  • Units: dB-Hz
Returns
carrier-to-noise ratio at baseband else returns UNKNOWN_BASEBAND_CARRIER_NOISE ratio 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 (telux::common::InitResponseCb callback=nullptr)
 
std::shared_ptr< ILocationConfiguratorgetLocationConfigurator (telux::common::InitResponseCb callback=nullptr)
 
std::shared_ptr< IDgnssManagergetDgnssManager (DgnssDataFormat dataFormat=DgnssDataFormat::DATA_FORMAT_RTCM_3, telux::common::InitResponseCb callback=nullptr)
 

Static Public Member Functions

static LocationFactorygetInstance ()
 

Member Function Documentation

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

Get Location Factory instance.

std::shared_ptr<ILocationManager> telux::loc::LocationFactory::getLocationManager ( telux::common::InitResponseCb  callback = nullptr)

Get instance of Location Manager

Parameters
[in]callbackOptional callback to get the response of the manager initialization.
Returns
Pointer of ILocationManager object.
std::shared_ptr<ILocationConfigurator> telux::loc::LocationFactory::getLocationConfigurator ( telux::common::InitResponseCb  callback = nullptr)

Get instance of Location Configurator.

Parameters
[in]callbackOptional callback pointer to get the response of the manager initialisation.
Returns
Pointer of ILocationConfigurator object.
std::shared_ptr<IDgnssManager> telux::loc::LocationFactory::getDgnssManager ( DgnssDataFormat  dataFormat = DgnssDataFormat::DATA_FORMAT_RTCM_3,
telux::common::InitResponseCb  callback = nullptr 
)

Get instance of Dgnss manager

Parameters
[in]callbackOptional callback pointer to get the response of the manager initialisation.
Returns
Pointer of IDgnssManager 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 onBasicLocationUpdate (const std::shared_ptr< ILocationInfoBase > &locationInfo)
 
virtual void onDetailedLocationUpdate (const std::shared_ptr< ILocationInfoEx > &locationInfo)
 
virtual void onDetailedEngineLocationUpdate (const std::vector< std::shared_ptr< ILocationInfoEx > > &locationEngineInfo)
 
virtual void onGnssSVInfo (const std::shared_ptr< IGnssSVInfo > &gnssSVInfo)
 
virtual void onGnssSignalInfo (const std::shared_ptr< IGnssSignalInfo > &info)
 
virtual void onGnssNmeaInfo (uint64_t timestamp, const std::string &nmea)
 
virtual void onGnssMeasurementsInfo (const telux::loc::GnssMeasurements &measurementInfo)
 
virtual void onCapabilitiesInfo (const telux::loc::LocCapability capabilityInfo)
 
virtual ~ILocationListener ()
 

Constructor & Destructor Documentation

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

Destructor of ILocationListener

Member Function Documentation

virtual void telux::loc::ILocationListener::onBasicLocationUpdate ( const std::shared_ptr< ILocationInfoBase > &  locationInfo)
virtual

This function is called when device receives location update. When there are multiple engines running on the system, the received location information is fused report from all engines.

Parameters
[in]locationInfo- Location information like latitude, longitude, timeInfo 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. When there are multiple engines running on the system, the received location information is fused report from all engines.

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

This function is called when device receives multiple Gnss location update from the different engine types requested, which are SPE/PPE/FUSED. This API will be called ONLY if we use startDetailedEngineReports.

Parameters
[in]locationInfo- Contains a list of location infos. Each element in the list corresponds to one of SPE/PPE/FUSED.
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
virtual void telux::loc::ILocationListener::onGnssNmeaInfo ( uint64_t  timestamp,
const std::string &  nmea 
)
virtual

This function is called when device receives GNSS NMEA sentences.

Parameters
[in]timestamp- Timestamp
[in]nmea- Nmea sentence
virtual void telux::loc::ILocationListener::onGnssMeasurementsInfo ( const telux::loc::GnssMeasurements measurementInfo)
virtual

This function is called when device receives signal measurement information such as satellite vehicle pseudo range, satellite vehicle clock time, carrier phase measurement etc. The frequency at which this API is called is determined by what was requested GnssReportType::MEASUREMENT or GnssReportType::HIGH_RATE_MEASUREMENT in ILocationManager::startDetailedReports and ILocationManager::startDetailedEngineReports.

Parameters
[in]measurementInfo- GNSS measurement information
virtual void telux::loc::ILocationListener::onCapabilitiesInfo ( const telux::loc::LocCapability  capabilityInfo)
virtual

This function is called when the capabilities of the location stack gets updated.

Parameters
[in]capabilityInfo- telux::loc::LocCapability, capability information
class telux::loc::ILocationSystemInfoListener

Public Member Functions

virtual void onLocationSystemInfo (const LocationSystemInfo &locationSystemInfo)
 
virtual ~ILocationSystemInfoListener ()
 

Constructor & Destructor Documentation

virtual telux::loc::ILocationSystemInfoListener::~ILocationSystemInfoListener ( )
virtual

Member Function Documentation

virtual void telux::loc::ILocationSystemInfoListener::onLocationSystemInfo ( const LocationSystemInfo locationSystemInfo)
virtual

This function is called when device receives location related system information such as leap second change.

Parameters
[in]locationSystemInfo- contains location system information such as current leap seconds change
class telux::loc::ILocationConfigListener

ILocationConfigListener interface is used to receive notifications related to configuration events.

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

Public Member Functions

virtual void onXtraStatusUpdate (const XtraStatus xtraStatus)
 
virtual ~ILocationConfigListener ()
 

Constructor & Destructor Documentation

virtual telux::loc::ILocationConfigListener::~ILocationConfigListener ( )
virtual

Member Function Documentation

virtual void telux::loc::ILocationConfigListener::onXtraStatusUpdate ( const XtraStatus  xtraStatus)
virtual

The API is invoked when there is any update in the Xtra assistance data.

Parameters
[in]xtraStatus- Xtra assistant data's current status, validity and whether it is enabled.
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 Types

using GetEnergyConsumedCallback = std::function< void(telux::loc::GnssEnergyConsumedInfo energyConsumed, telux::common::ErrorCode error)>
 
using GetYearOfHwCallback = std::function< void(uint16_t yearOfHw, telux::common::ErrorCode error)>
 
using GetTerrestrialInfoCallback = std::function< void(const std::shared_ptr< ILocationInfoBase > terrestrialInfo)>
 

Public Member Functions

virtual bool isSubsystemReady ()=0
 
virtual telux::common::ServiceStatus getServiceStatus ()=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=nullptr, GnssReportTypeMask reportMask=DEFAULT_GNSS_REPORT)=0
 
virtual telux::common::Status startDetailedEngineReports (uint32_t interval, LocReqEngine engineType, telux::common::ResponseCallback callback=nullptr, GnssReportTypeMask reportMask=DEFAULT_GNSS_REPORT)=0
 
virtual telux::common::Status startBasicReports (uint32_t distanceInMeters, uint32_t intervalInMs, telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status registerForSystemInfoUpdates (std::weak_ptr< ILocationSystemInfoListener > listener, telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status deRegisterForSystemInfoUpdates (std::weak_ptr< ILocationSystemInfoListener > listener, telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status requestEnergyConsumedInfo (GetEnergyConsumedCallback cb)=0
 
virtual telux::common::Status stopReports (telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status getYearOfHw (GetYearOfHwCallback cb)=0
 
virtual telux::common::Status getTerrestrialPosition (uint32_t timeoutMsec, TerrestrialTechnology techMask, GetTerrestrialInfoCallback cb, telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status cancelTerrestrialPositionRequest (telux::common::ResponseCallback callback=nullptr)=0
 
virtual telux::loc::LocCapability getCapabilities ()=0
 
virtual ~ILocationManager ()
 

Member Typedef Documentation

This function is called with the response to getEnergyConsumedInfoUpdate API.

Parameters
[in]energyConsumed- Information regarding energy consumed by Gnss engine.
[in]error- Return code which indicates whether the operation succeeded or not.
using telux::loc::ILocationManager::GetYearOfHwCallback = std::function<void(uint16_t yearOfHw, telux::common::ErrorCode error)>

This function is called with the response to getYearOfHw API.

Parameters
[in]yearOfHw- Year of hardware information.
[in]error- Return code which indicates whether the operation succeeded or not.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
using telux::loc::ILocationManager::GetTerrestrialInfoCallback = std::function<void( const std::shared_ptr<ILocationInfoBase> terrestrialInfo)>

This function is called with the response to getTerrestrialPosition API.

Parameters
[in]terrestrialInfo- basic position related information.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.

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.
Deprecated:
use getServiceStatus()
virtual telux::common::ServiceStatus telux::loc::ILocationManager::getServiceStatus ( )
pure virtual

This status indicates whether the object is in a usable state.

Returns
SERVICE_AVAILABLE - If location manager is ready for service. SERVICE_UNAVAILABLE - If location manager is temporarily unavailable. SERVICE_FAILED - If location manager encountered an irrecoverable failure.
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.
Deprecated:
The callback mechanism introduced in the LocationFactory::getLocationManager() API will provide the similar notification mechanism as onSubsystemReady(). This API will soon be removed from further releases.
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 = nullptr,
GnssReportTypeMask  reportMask = DEFAULT_GNSS_REPORT 
)
pure virtual

Starts the richer location reports by configuring the time between them as the interval. Any of the 3 APIs that is startDetailedReports or startDetailedEngineReports or startBasicReports can be called one after the other irrespective of order, without calling stopReports in between any of them and the API which is called last will be honored for providing the callbacks. In case of multiple clients invoking this API with different intervals, if the platforms is configured, then the clients will receive the reports at their requested intervals. If not configured then all the clients will be serviced at the smallest interval among all clients' intervals. The supported periodicities are 100ms, 200ms, 500ms, 1sec, 2sec, nsec and a periodicity that a caller send which is not one of these will result in the implementation picking one of these periodicities. Calling this Api will result in ILocationListener::onDetailedLocationUpdate, ILocationListener::onGnssSVInfo, ILocationListener::onGnssSignalInfo, ILocationListener::onGnssNmeaInfo and ILocationListener::onGnssMeasurementsInfo APIs on the listener being invoked, assuming they have not been disabled using the GnssReportTypeMask. If a client issues second request to this API then new request for GnssReportTypeMask will over write the previous call to this API.

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.
[in]reportMask- Optional field to specify which reports a client is interested in. By default all the reports will be enabled.
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 = nullptr,
GnssReportTypeMask  reportMask = DEFAULT_GNSS_REPORT 
)
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. Any of the 3 APIs that is startDetailedReports or startDetailedEngineReports or startBasicReports can be called one after the other irrespective of order, without calling stopReports in between any of them and the API which is called last will be honored for providing the callbacks. In case of multiple clients invoking this API with different intervals, if the platforms is configured, then the clients will receive the reports at their requested intervals. If not configured then all the clients will be serviced at the smallest interval among all clients' intervals. The supported periodicities are 100ms, 200ms, 500ms, 1sec, 2sec, nsec and a periodicity that a caller send which is not one of these will result in the implementation picking one of these periodicities. Calling this Api will result in ILocationListener::onDetailedEngineLocationUpdate, ILocationListener::onGnssSVInfo, ILocationListener::onGnssSignalInfo, ILocationListener::onGnssNmeaInfo and ILocationListener::onGnssMeasurementsInfo APIs on the listener being invoked, assuming they have not been disabled using the GnssReportTypeMask. If a client issues second request to this API then new request for GnssReportTypeMask will over write the previous call to this API.

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.
[in]reportMask- Optional field to specify which reports a client is interested in. By default all the reports will be enabled.
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 = nullptr 
)
pure virtual

Starts the Location report by configuring the time and distance between the consecutive reports. Any of the 3 APIs that is startDetailedReports or startDetailedEngineReports or startBasicReports can be called one after the other irrespective of order, without calling stopReports in between any of them and the API which is called last will be honored for providing the callbacks. In case of multiple clients invoking this API with different intervals, if the platforms is configured, then the clients will receive the reports at their requested intervals. If not configured then all the clients will be serviced at the smallest interval among all clients' intervals. The supported periodicities are 100ms, 200ms, 500ms, 1sec, 2sec, nsec and a periodicity that a caller send which is not one of these will result in the implementation picking one of these periodicities. 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::registerForSystemInfoUpdates ( std::weak_ptr< ILocationSystemInfoListener listener,
telux::common::ResponseCallback  callback = nullptr 
)
pure virtual

This API registers a ILocationSystemInfoListener listener and will receive information related to location system that are not tied with location fix session, e.g.: next leap second event. The startBasicReports, startDetailedReports, startDetailedEngineReports does not need to be called before calling this API, in order to receive updates.

Parameters
[in]listener- Pointer of ILocationSystemInfoListener object.
[in]callback- Optional callback to get the response of location system info.
Returns
Status of getLocationSystemInfo i.e success or suitable status code.
virtual telux::common::Status telux::loc::ILocationManager::deRegisterForSystemInfoUpdates ( std::weak_ptr< ILocationSystemInfoListener listener,
telux::common::ResponseCallback  callback = nullptr 
)
pure virtual

This API removes a previously registered listener and will also stop receiving informations related to location system for that particular listener.

Parameters
[in]listener- Previously registered ILocationSystemInfoListener that needs to be removed.
[in]callback- Optional callback to get the response of location system info.
Returns
Status of deRegisterForSystemInfoUpdates success or suitable status code.
virtual telux::common::Status telux::loc::ILocationManager::requestEnergyConsumedInfo ( GetEnergyConsumedCallback  cb)
pure virtual

This API receives information on energy consumed by modem GNSS engine. If this API is called on this object while this is already a pending request, then it will overwrite the callback to be invoked and the callback from the previous invocation will not be called.

Parameters
[in]cb- callback to get the information of Gnss energy consumed.
Returns
Status of requestEnergyConsumedInfo i.e success or suitable status code.
virtual telux::common::Status telux::loc::ILocationManager::stopReports ( telux::common::ResponseCallback  callback = nullptr)
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::getYearOfHw ( GetYearOfHwCallback  cb)
pure virtual

This API retrieves the year of hardware information.

Parameters
[in]cb- callback to get information of year of hardware.
Returns
Status of getYearOfHw i.e success or suitable status code.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::loc::ILocationManager::getTerrestrialPosition ( uint32_t  timeoutMsec,
TerrestrialTechnology  techMask,
GetTerrestrialInfoCallback  cb,
telux::common::ResponseCallback  callback = nullptr 
)
pure virtual

This API retrieves single-shot terrestrial position using the set of specified terrestrial technologies. This API can be invoked even while there is an on-going tracking session that was started using startBasicReports/startDetailedReports/startDetailedEngineReports. If this API is invoked while there is already a pending request for terrestrial position, the request will fail and ResponseCallback will get invoked with ErrorCode::OP_IN_PROGRESS. To cancel a pending request, use ILocationManager::cancelTerrestrialPositionRequest. Before using this API, user consent needs to be set true via ILocationConfigurator::provideConsentForTerrestrialPositioning.

Parameters
[in]timeoutMsec- the time in milliseconds within which the client is expecting a response. If the system is unable to provide a report within this time, the ResponseCallback will be invoked with ErrorCode::OPERATION_TIMEOUT.
[in]techMask- the set of terrestrial technologies that are allowed to be used for producing the position.
[in]cb- callback to receive terrestrial position. This callback will only be invoked when ResponseCallback is invoked with SUCCESS.
[in]callback- Optional callback to get the response of getTerrestrialPosition.
Returns
Status of getTerrestrialPosition i.e success or suitable status code.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::loc::ILocationManager::cancelTerrestrialPositionRequest ( telux::common::ResponseCallback  callback = nullptr)
pure virtual

This API cancels the pending request invoked by ILocationManager::getTerrestrialPosition. If this API is invoked while there is no pending request for terrestrial position from ILocationManager::getTerrestrialPosition, then ResponseCallback will be invoked with ErrorCode::INVALID_ARGUMENTS.

Parameters
[in]callback- Optional callback to get the response of cancelTerrestrialPositionRequest.
Returns
Status of cancelTerrestrialPositionRequest i.e success or suitable status code.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::loc::LocCapability telux::loc::ILocationManager::getCapabilities ( )
pure virtual

This API retrieves capability information.

Parameters
[in]cb- callback to get information related to capability.
Returns
Status of getCapabilities i.e success or suitable status code.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.

Typedef Documentation

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::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::LocCapability = typedef uint32_t
using telux::loc::LocationTechnology = typedef uint32_t
using telux::loc::LocationInfoValidity = typedef uint32_t
using telux::loc::LocationInfoExValidity = typedef uint64_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

typedef std::vector<SvBlackListInfo> telux::loc::SvBlackList
typedef std::unordered_map<LeverArmType, LeverArmParams> telux::loc::LeverArmConfigInfo
using telux::loc::GnssMeasurementsDataValidity = typedef uint32_t

Specifies GnssMeasurementsDataValidityType.

Specifies GnssMeasurementsStateValidityType.

Specifies GnssMeasurementsAdrStateValidityType.

Specifies GnssMeasurementsClockValidityType.

using telux::loc::LeapSecondInfoValidity = typedef uint32_t

Specifies LeapSecondInfoValidityType mask

using telux::loc::LocationSystemInfoValidity = typedef uint32_t

Specifies LocationSystemInfoValidityType mask

Specifies GnssEnergyConsumedInfoValidityType

using telux::loc::AidingData = typedef uint32_t

Specifies AidingDataType mask

using telux::loc::TerrestrialTechnology = typedef uint32_t

Specifies TerrestrialTechnologyType mask

using telux::loc::NmeaSentenceConfig = typedef uint32_t

Specifies NmeaSentenceType mask

using telux::loc::RobustLocationConfig = typedef uint16_t

Specifies RobustLocationConfigType mask

using telux::loc::DRConfigValidity = typedef uint16_t

Specifies DRConfigValidityType

using telux::loc::GnssReportTypeMask = typedef uint32_t

Specifies the applicable reports using the bits represented in GnssReportType

typedef std::unordered_set<GnssConstellationType> telux::loc::ConstellationSet

Define the set of constellations for secondary band.

using telux::loc::LocConfigIndications = typedef std::bitset<32>

This bitset represents the list of the Location Config Indications selected by the Client.

Enumeration Type Documentation

Defines RTCM injection data format

Enumerator
DATA_FORMAT_UNKNOWN 

Source data format is unknown

DATA_FORMAT_RTCM_3 

Source data format is RTCM_3

DATA_FORMAT_3GPP_RTK_R15 

Source data format is 3GPP RTK Rel-15

Defines status reported by cdfw for RTCM injection.

Enumerator
DATA_SOURCE_NOT_SUPPORTED 

Dgnss subsystem doesn't support the data source

DATA_FORMAT_NOT_SUPPORTED 

Dgnss subsystem doesn't support the data format

OTHER_SOURCE_IN_USE 

After the source injects the data, dgnss subsystem discovers there is another higher priority source injecting the data at the same time, and the current injected data is dropped

MESSAGE_PARSE_ERROR 

There is a parsing error such as unrecognized format, CRC check failure, value range check failure, etc.; the injected data is dropped

DATA_SOURCE_NOT_USABLE 

Data source is not usable anymore

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

Specifies the reliability of the position.

Enumerator
UNKNOWN 

Unknown location reliability

NOT_SET 

Location reliability is not set. The reliability of this position report could not be determined. It could be unreliable/reliable

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

Specify set of navigation solutions that contribute to Gnss Location. 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_CORRECTION_RTK_FIXED 

Bit mask to specify whether SBAS RTK fixed correction is used

SBAS_CORRECTION_ONLY_SBAS_CORRECTED_SV_USED_ 

Bit mask to specify only SBAS corrected SV is used

SBAS_COUNT 

Bitset

Indicates whether altitude is assumed or calculated.

Enumerator
UNKNOWN 

Unknown altitude type

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 

Unknown constellation type

GPS 

GPS satellite

GALILEO 

GALILEO satellite

SBAS 

SBAS satellite

COMPASS 

COMPASS satellite.

Deprecated:
constellation type is not supported.
GLONASS 

GLONASS satellite

BDS 

BDS satellite

QZSS 

QZSS satellite

NAVIC 

NAVIC satellite

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

Enumerator
UNKNOWN 

Unknown sv health status

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 

Unknown sv status

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 

Unknown sv info availability

YES 

Ephemeris or Almanac exits

NO 

Ephemeris or Almanac doesn't exist

Specifies which position technology was used to generate location information in the ILocationInfoEx.

Enumerator
GNSS_DEFAULT 

Technology used to generate location info is unknown.

GNSS_SATELLITE 

Satellites-based technology was used to generate location info.

GNSS_CELLID 

Cell towers were used to generate location info.

GNSS_WIFI 

Wi-Fi access points were used to generate location info.

GNSS_SENSORS 

Sensors were used to generate location info.

GNSS_REFERENCE_LOCATION 

Reference location was used to generate location info.

GNSS_INJECTED_COARSE_POSITION 

Coarse position injected into the location engine was used to generate location info.

GNSS_AFLT 

AFLT was used to generate location info.

GNSS_HYBRID 

GNSS and network-provided measurements were used to generate location info.

GNSS_PPE 

Precise position engine was used to generate location info.

GNSS_VEHICLE 

Location was calculated using Vehicular data.

GNSS_VISUAL 

Location was calculated using Visual data.

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

HAS_PITCH_RATE_BIT 

Navigation data has Body pitch rate

HAS_PITCH_RATE_UNC_BIT 

Navigation data has Body pitch rate uncertainty

HAS_ROLL_BIT 

Navigation data has roll

HAS_ROLL_UNC_BIT 

Navigation data has roll uncertainty

HAS_ROLL_RATE_BIT 

Navigation data has roll rate

HAS_ROLL_RATE_UNC_BIT 

Navigation data has roll rate uncertainty

HAS_YAW_BIT 

Navigation data has yaw

HAS_YAW_UNC_BIT 

Navigation data has yaw uncertainty

Specify the different types of constellation supported.

Enumerator
GNSS_LOC_SV_SYSTEM_UNKNOWN 

UNKNOWN satellite.

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.

Deprecated:
constellation type is not supported.
GNSS_LOC_SV_SYSTEM_GLONASS 

GLONASS satellite.

GNSS_LOC_SV_SYSTEM_BDS 

BDS satellite.

GNSS_LOC_SV_SYSTEM_QZSS 

QZSS satellite.

GNSS_LOC_SV_SYSTEM_NAVIC 

NAVIC satellite.

Validity field for different system time in struct TimeInfo.

Enumerator
GNSS_SYSTEM_TIME_WEEK_VALID 

valid systemWeek.

GNSS_SYSTEM_TIME_WEEK_MS_VALID 

valid systemMsec

GNSS_SYSTEM_CLK_TIME_BIAS_VALID 

valid systemClkTimeBias

GNSS_SYSTEM_CLK_TIME_BIAS_UNC_VALID 

valid systemClkTimeUncMs

GNSS_SYSTEM_REF_FCOUNT_VALID 

valid refFCount

GNSS_SYSTEM_NUM_CLOCK_RESETS_VALID 

valid numClockResets

Validity field for GLONASS time in struct GlonassTimeInfo.

Enumerator
GNSS_CLO_DAYS_VALID 

valid gloDays

GNSS_GLOS_MSEC_VALID 

valid gloMsec

GNSS_GLO_CLK_TIME_BIAS_VALID 

valid gloClkTimeBias

GNSS_GLO_CLK_TIME_BIAS_UNC_VALID 

valid gloClkTimeUncMs

GNSS_GLO_REF_FCOUNT_VALID 

valid refFCount

GNSS_GLO_NUM_CLOCK_RESETS_VALID 

valid numClockResets

GNSS_GLO_FOUR_YEAR_VALID 

valid gloFourYear

Specify GNSS Signal Type and RF Band used in struct GnssMeasurementInfo and ISVInfo class.

Enumerator
GPS_L1CA 

Gnss signal is of GPS L1CA RF Band.

GPS_L1C 

Gnss signal is of GPS L1C RF Band.

GPS_L2 

Gnss signal is of GPS L2 RF Band.

GPS_L5 

Gnss signal is of GPS L5 RF Band.

GLONASS_G1 

Gnss signal is of GLONASS G1 (L1OF) RF Band.

GLONASS_G2 

Gnss signal is of GLONASS G2 (L2OF) RF Band.

GALILEO_E1 

Gnss signal is of GALILEO E1 RF Band.

GALILEO_E5A 

Gnss signal is of GALILEO E5A RF Band.

GALILIEO_E5B 

Gnss signal is of GALILEO E5B RF Band.

BEIDOU_B1 

Gnss signal is of BEIDOU B1 RF Band.

BEIDOU_B2 

Gnss signal is of BEIDOU B2 RF Band.

QZSS_L1CA 

Gnss signal is of QZSS L1CA RF Band.

QZSS_L1S 

Gnss signal is of QZSS L1S RF Band.

QZSS_L2 

Gnss signal is of QZSS L2 RF Band.

QZSS_L5 

Gnss signal is of QZSS L5 RF Band.

SBAS_L1 

Gnss signal is of SBAS L1 RF Band.

BEIDOU_B1I 

Gnss signal is of BEIDOU B1I RF Band.

BEIDOU_B1C 

Gnss signal is of BEIDOU B1C RF Band.

BEIDOU_B2I 

Gnss signal is of BEIDOU B2I RF Band.

BEIDOU_B2AI 

Gnss signal is of BEIDOU B2AI RF Band.

NAVIC_L5 

Gnss signal is of NAVIC L5 RF Band.

BEIDOU_B2AQ 

Gnss signal is of BEIDOU B2A_Q RF Band.

Specify Location Capabilities Type.

Enumerator
TIME_BASED_TRACKING 

Support time based tracking session via ILocationManager::startDetailedReports, ILocationManager::startDetailedEngineReports and ILocationManager::startBasicReports with distanceInMeters set to 0.

DISTANCE_BASED_TRACKING 

Support distance based tracking session via ILocationManager::startBasicReports with distanceInMeters specified.

GNSS_MEASUREMENTS 

Support Gnss Measurement data via ILocationListener::onGnssMeasurementsInfo when a tracking session is enabled.

CONSTELLATION_ENABLEMENT 

Support configure constellations via ILocationConfigurator::configureConstellations.

CARRIER_PHASE 

Support carrier phase for Precise Positioning Measurement Engine (PPME).

QWES_GNSS_SINGLE_FREQUENCY 

Support GNSS Single Frequency feature.

QWES_GNSS_MULTI_FREQUENCY 

Supports GNSS Multi Frequency feature.

QWES_VPE 

Support VEPP license bundle is enabled. VEPP bundle include Carrier Phase features.

QWES_CV2X_LOCATION_BASIC 

Support for CV2X Location basic features. This includes features for GTS Time & Freq, ILocationConfigurator::configureCTunc.

QWES_CV2X_LOCATION_PREMIUM 

Support for CV2X Location premium features. This includes features for CV2X Location Basic features, QDR3 feature and ILocationConfigurator::configurePACE.

QWES_PPE 

Support PPE (Precise Positioning Engine) library is enabled or Precise Positioning Framework (PPF) is available. This includes features for Carrier Phase and SV Ephermeris.

QWES_QDR2 

Support QDR2_C license bundle is enabled.

QWES_QDR3 

Support QDR3_C license bundle is enabled.

Specify the set of technologies that contribute to ILocationInfoBase.

Enumerator
LOC_GNSS 

Location was calculated using GNSS-based technology.

LOC_CELL 

Location was calculated using Cell-based technology.

LOC_WIFI 

Location was calculated using WiFi-based technology.

LOC_SENSORS 

Location was calculated using Sensors-based technology.

LOC_REFERENCE_LOCATION 

Location was calculated using Reference location.

LOC_INJECTED_COARSE_POSITION 

Location was calculated using Coarse position injected into the location engine.

LOC_AFLT 

Location was calculated using AFLT.

LOC_HYBRID 

Location was calculated using GNSS and network-provided measurements.

LOC_PPE 

Location was calculated using Precise position engine.

LOC_VEH 

Location was calculated using Vehicular data.

LOC_VIS 

Location was calculated using Visual data.

Specify the valid fields in LocationInfoValidity User should determine whether a field in LocationInfoValidity is valid or not by checking the corresponding bit is set or not.

Enumerator
HAS_LAT_LONG_BIT 

Location has valid latitude and longitude.

HAS_ALTITUDE_BIT 

Location has valid altitude.

HAS_SPEED_BIT 

Location has valid speed.

HAS_HEADING_BIT 

Location has valid heading.

HAS_HORIZONTAL_ACCURACY_BIT 
HAS_VERTICAL_ACCURACY_BIT 

Location has valid vertical accuracy.

HAS_SPEED_ACCURACY_BIT 

Location has valid speed accuracy.

HAS_HEADING_ACCURACY_BIT 

Location has valid heading accuracy.

HAS_TIMESTAMP_BIT 

Location has valid timestamp.

HAS_ELAPSED_REAL_TIME_BIT 

Location has valid elapsed real time.

HAS_ELAPSED_REAL_TIME_UNC_BIT 

Location has valid elapsed real time uncertainty.

Specify the valid fields in LocationInfoExValidityType. User should determine whether a field in LocationInfoExValidityType is valid or not by checking the corresponding bit is set or not.

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_NUM_SV_USED_IN_POSITION 

valid number of sv used

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

HAS_CONFORMITY_INDEX_FIX 

valid conformity index

HAS_LLA_VRP_BASED 

valid lla vrp based

HAS_ENU_VELOCITY_VRP_BASED 

valid enu velocity vrp based

HAS_ALTITUDE_TYPE 

valid altitude type

HAS_REPORT_STATUS 

valid report status

HAS_INTEGRITY_RISK_USED 

valid integrity risk

HAS_PROTECT_LEVEL_ALONG_TRACK 

valid protect level along track

HAS_PROTECT_LEVEL_CROSS_TRACK 

valid protect level cross track

HAS_PROTECT_LEVEL_VERTICAL 

valid protect level vertical

Specify the GNSS signal type and RF band for jammer info and automatic gain control metric in GnssData.

Enumerator
GNSS_DATA_SIGNAL_TYPE_GPS_L1CA 

GPS L1CA RF Band.

GNSS_DATA_SIGNAL_TYPE_GPS_L1C 

GPS L1C RF Band.

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. Maximum number of signal types.

GNSS_DATA_MAX_NUMBER_OF_SIGNAL_TYPES 

Specify valid mask of data fields in GnssData.

Enumerator
HAS_JAMMER 

Jammer Indicator is available

HAS_AGC 

AGC is available

Specify the sensor calibration status in ILocationInfoEx.

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 set of engines whose position reports are requested via startDetailedEngineReports.

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.

LOC_REQ_ENGINE_VPE_BIT 

Indicate that the unmodified VPE 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 report from the fixes of all engines running on the system (e.g.: DR/SPE/PPE).

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 engine

LOC_OUTPUT_ENGINE_VPE 

This is the unmodified fix from VPE engine.

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

Enumerator
STANDARD_POSITIONING_ENGINE 

For standard GNSS position engines.

DEAD_RECKONING_ENGINE 

For dead reckoning position engines.

PRECISE_POSITIONING_ENGINE 

For precise position engines.

VP_POSITIONING_ENGINE 

For VP position engine.

Lever ARM type

Enumerator
LEVER_ARM_TYPE_GNSS_TO_VRP 

Lever arm parameters regarding the VRP (Vehicle Reference Point) w.r.t the origin (at the GNSS Antenna)

LEVER_ARM_TYPE_DR_IMU_TO_GNSS 

Lever arm regarding GNSS Antenna w.r.t the origin at the IMU (inertial measurement unit) for DR (dead reckoning engine)

LEVER_ARM_TYPE_VEPP_IMU_TO_GNSS 

Lever arm regarding GNSS Antenna w.r.t the origin at the IMU (inertial measurement unit) for VEPP (vision enhanced precise positioning engine)

Deprecated:
enum type is not supported.
LEVER_ARM_TYPE_VPE_IMU_TO_GNSS 

Lever arm regarding GNSS Antenna w.r.t the origin at the IMU (inertial measurement unit) for VPE (vision positioning engine)

Specify valid fields in GnssMeasurementsData.

Enumerator
SV_ID_BIT 

Validity of svId.

SV_TYPE_BIT 

Validity of svType.

STATE_BIT 

Validity of stateMask.

RECEIVED_SV_TIME_BIT 

Validity of receivedSvTimeNs and receivedSvTimeSubNs.

RECEIVED_SV_TIME_UNCERTAINTY_BIT 

Validity of receivedSvTimeUncertaintyNs.

CARRIER_TO_NOISE_BIT 

Validity of carrierToNoiseDbHz.

PSEUDORANGE_RATE_BIT 

Validity of pseudorangeRateMps.

PSEUDORANGE_RATE_UNCERTAINTY_BIT 

Validity of pseudorangeRateUncertaintyMps.

ADR_STATE_BIT 

Validity of adrStateMask.

ADR_BIT 

Validity of adrMeters.

ADR_UNCERTAINTY_BIT 

Validity of adrUncertaintyMeters.

CARRIER_FREQUENCY_BIT 

Validity of carrierFrequencyHz.

CARRIER_CYCLES_BIT 

Validity of carrierCycles.

CARRIER_PHASE_BIT 

Validity of carrierPhase.

CARRIER_PHASE_UNCERTAINTY_BIT 

Validity of carrierPhaseUncertainty.

MULTIPATH_INDICATOR_BIT 

Validity of multipathIndicator.

SIGNAL_TO_NOISE_RATIO_BIT 

Validity of signalToNoiseRatioDb.

AUTOMATIC_GAIN_CONTROL_BIT 

Validity of agcLevelDb.

GNSS_SIGNAL_TYPE 

Validity of signal type.

BASEBAND_CARRIER_TO_NOISE 

Validity of basebandCarrierToNoise.

FULL_ISB 

Validity of fullInterSignalBias.

FULL_ISB_UNCERTAINTY 

Validity of fullInterSignalBiasUncertainty.

Specify GNSS measurement state in GnssMeasurementsData::stateMask.

Enumerator
UNKNOWN_BIT 

State is unknown.

CODE_LOCK_BIT 

State is "code lock".

BIT_SYNC_BIT 

State is "bit sync".

SUBFRAME_SYNC_BIT 

State is "subframe sync".

TOW_DECODED_BIT 

State is "tow decoded".

MSEC_AMBIGUOUS_BIT 

State is "msec ambiguous".

SYMBOL_SYNC_BIT 

State is "symbol sync".

GLO_STRING_SYNC_BIT 

State is "GLONASS string sync".

GLO_TOD_DECODED_BIT 

State is "GLONASS TOD decoded".

BDS_D2_BIT_SYNC_BIT 

State is "BDS D2 bit sync".

BDS_D2_SUBFRAME_SYNC_BIT 

State is "BDS D2 subframe sync".

GAL_E1BC_CODE_LOCK_BIT 

State is "Galileo E1BC code lock".

GAL_E1C_2ND_CODE_LOCK_BIT 

State is "Galileo E1C second code lock".

GAL_E1B_PAGE_SYNC_BIT 

State is "Galileo E1B page sync".

SBAS_SYNC_BIT 

State is "SBAS sync".

Specify accumulated delta range state in GnssMeasurementsData::adrStateMask.

Enumerator
UNKNOWN_STATE 

State is unknown.

VALID_BIT 

State is valid.

RESET_BIT 

State is "reset".

CYCLE_SLIP_BIT 

State is "cycle slip".

Specify the GNSS multipath indicator state in GnssMeasurementsData::multipathIndicator.

Enumerator
UNKNOWN_INDICATOR 

Multipath indicator is unknown.

PRESENT 

Multipath indicator is present.

NOT_PRESENT 

Multipath indicator is not present.

Specify the valid fields in GnssMeasurementsClock.

Enumerator
LEAP_SECOND_BIT 

Validity of leapSecond.

TIME_BIT 

Validity of timeNs.

TIME_UNCERTAINTY_BIT 

Validity of timeUncertaintyNs.

FULL_BIAS_BIT 

Validity of fullBiasNs.

BIAS_BIT 

Validity of biasNs.

BIAS_UNCERTAINTY_BIT 

Validity of biasUncertaintyNs.

DRIFT_BIT 

Validity of driftNsps.

DRIFT_UNCERTAINTY_BIT 

Validity of driftUncertaintyNsps.

HW_CLOCK_DISCONTINUITY_COUNT_BIT 

Validity of hwClockDiscontinuityCount.

Specify the valid fields in LeapSecondInfo.

Enumerator
LEAP_SECOND_SYS_INFO_CURRENT_LEAP_SECONDS_BIT 

Validity of LeapSecondInfo::current.

LEAP_SECOND_SYS_INFO_LEAP_SECOND_CHANGE_BIT 

Validity of LeapSecondInfo::info.

Specify the set of valid fields in LocationSystemInfo

Enumerator
LOCATION_SYS_INFO_LEAP_SECOND 

contains current leap second or leap second change info

Specify the valid fields in GnssEnergyConsumedInfo.

Enumerator
ENERGY_CONSUMED_SINCE_FIRST_BOOT_BIT 

validity of GnssEnergyConsumedInfo

Specifies the set of aiding data. This is referenced in the deleteAidingData for deleting any aiding data.

Enumerator
AIDING_DATA_EPHEMERIS 

Mask to delete ephemeris aiding data

AIDING_DATA_DR_SENSOR_CALIBRATION 

Mask to delete calibration data from dead reckoning position engine

Specifies the set of terrestrial technologies.

Enumerator
GTP_WWAN 

Cell-based technology

Specifies the HLOS generated NMEA sentence types.

Enumerator
GGA 

GGA NMEA sentence

RMC 

RMC NMEA sentence

GSA 

GSA NMEA sentence

VTG 

VTG NMEA sentence

GNS 

GNS NMEA sentence

DTM 

DTM NMEA sentence

GPGSV 

GPGSV NMEA sentence for SVs from GPS constellation

GLGSV 

GLGSV NMEA sentence for SVs from GLONASS constellation

GAGSV 

GAGSV NMEA sentence for SVs from GALILEO constellation

GQGSV 

GQGSV NMEA sentence for SVs from QZSS constellation

GBGSV 

GBGSV NMEA sentence for SVs from BEIDOU constellation

GIGSV 

GIGSV NMEA sentence for SVs from NAVIC constellation

ALL 

All NMEA sentences

Specify the valid mask for robust location configuration used by the GNSS standard position engine (SPE).

Enumerator
VALID_ENABLED 

Validity of enabled

VALID_ENABLED_FOR_E911 

Validity of enabledForE911.

VALID_VERSION 

Validity of version.

Specify the valid mask for the configuration parameters of dead reckoning position engine

Enumerator
BODY_TO_SENSOR_MOUNT_PARAMS_VALID 

Validity of body to sensor mount parameters.

VEHICLE_SPEED_SCALE_FACTOR_VALID 

Validity of vehicle speed scale factor.

VEHICLE_SPEED_SCALE_FACTOR_UNC_VALID 

Validity of vehicle speed scale factor uncertainty.

GYRO_SCALE_FACTOR_VALID 

Validity of gyro scale factor.

GYRO_SCALE_FACTOR_UNC_VALID 

Validity of gyro scale factor uncertainty.

Specifies the set of gnss reports.

Enumerator
LOCATION 

Location reports

SATELLITE_VEHICLE 

Satellite reports

NMEA 

Nmea reports

DATA 

Data reports

MEASUREMENT 

Low rate measurement reports. Currently the rate is defined to be 1 Hz.

HIGH_RATE_MEASUREMENT 

High rate measurement reports. Currently the rate is defined to be 10 Hz. Client cannot specify rates. The data in high rate would be different that from low rate. Also there might be difference in accuracy of fields for the both the rates.

Specify the position engine types

Enumerator
UNKNOWN 

Unknown engine type.

SPE 

Standard GNSS position engine.

PPE 

Precise position engine.

DRE 

Dead reckoning position engine.

VPE 

Vision positioning engine.

Specify the position engine run state

Enumerator
UNKNOWN 

Unknown engine run state.

SUSPENDED 

Request the position engine to be put into suspended state.

RUNNING 

Request the position engine to be put into running state.

Specify the status of the report

Enumerator
UNKNOWN 

Report status is unknown.

SUCCESS 

Report status is successful. The engine is able to calculate the desired fix. Most of the fields in ILocationInfoEx will be valid.

INTERMEDIATE 

Report is still in progress. The engine has not completed its calculations when this report was generated. Accuracy of various fields is non-optimal. Only some of the fields in ILocationInfoEx will be valid.

FAILURE 

Report status has failed. The engine is not able to calculate the fix. Most of the fields in ILocationInfoEx will be invalid.

Specify the logcat debug level during XTRA's param configuration. Currently, only XTRA daemon will support the runtime configuration of the debug log level.

Enumerator
DEBUG_LOG_LEVEL_NONE 

No message is logged.

DEBUG_LOG_LEVEL_ERROR 

Only error level debug messages will get logged.

DEBUG_LOG_LEVEL_WARNING 

Only warning and error level debug messages will get logged.

DEBUG_LOG_LEVEL_INFO 

Only info, warning and error level debug messages will get logged.

DEBUG_LOG_LEVEL_DEBUG 

Only debug, info, warning and error level debug messages will get logged.

DEBUG_LOG_LEVEL_VERBOSE 

Verbose, debug, info, warning and error level debug messages will get logged.

Provides the status of the previously downloaded Xtra data.

Enumerator
STATUS_UNKNOWN 

If XTRA feature is disabled or if XTRA feature is enabled, but XTRA daemon has not yet retrieved the assistance data status from modem on early stage of device bootup, xtra data status will be unknown.

STATUS_NOT_AVAIL 

If XTRA feature is enabled, but XTRA data is not present on the device.

STATUS_NOT_VALID 

If XTRA feature is enabled, XTRA data has been downloaded ever but no longer valid.

STATUS_VALID 

If XTRA feature is enabled, XTRA data has been downloaded and is currently valid.

Enum of all the possible indications invoked by a Location Configurator listener.

Enumerator
LOC_CONF_IND_XTRA_STATUS 

Variable Documentation

const float telux::loc::UNKNOWN_CARRIER_FREQ = -1
const int telux::loc::UNKNOWN_SIGNAL_MASK = 0
const double telux::loc::UNKNOWN_BASEBAND_CARRIER_NOISE = 0.0
const uint64_t telux::loc::UNKNOWN_TIMESTAMP = 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.

const uint64_t telux::loc::INVALID_ENERGY_CONSUMED = 0xffffffffffffffff

0xffffffffffffffff indicates an invalid reading for energy consumed info.

const uint32_t telux::loc::DEFAULT_GNSS_REPORT = 0xffffffff

0xffffffff indicates all the reports are enabled.