Telematics SDK - Interface Specification
v1.46.14
|
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 for the enablement/disablement of the APIs such as CTunc, PACE, deleteAllAidingData, configureLeverArm, configureConstellations, configureRobustLocation, configureMinGpsWeek, requestMinGpsWeek, deleteAidingData, configureMinSVElevation, requestMinSVElevation, requestRobustLocation, configureSecondaryBand, requestSecondaryBandConfig, configureDR. ILocationConfigurator APIs strictly adheres to the principle of single client per process. ILocationConfigurator APIs follow the non persistence scheme, meaning when the processor crashes/reboots the settings need to be set again via the respective APIs. 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 |
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::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... | |
Variables | |
const float | telux::loc::UNKNOWN_CARRIER_FREQ = -1 |
const int | telux::loc::UNKNOWN_SIGNAL_MASK = 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 |
This section contains APIs related to Location Services.
class telux::loc::IDgnssStatusListener |
Listener class for getting RTCM injection event notification information.
Public Member Functions | |
virtual void | onDgnssStatusUpdate (DgnssStatus status) |
virtual | ~IDgnssStatusListener () |
|
virtual |
Destructor of IRTCMStatusListener
|
virtual |
This function is called asynchronously to report RTCM injection status
[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 () |
|
virtual |
Destructor of IRtcmManager
|
pure virtual |
Checks the status of location subsystems and returns the result.
|
pure virtual |
This status indicates whether the object is in a usable state.
|
pure virtual |
Wait for location subsystem to be ready.
|
pure virtual |
Register a listener for Dgnss injection status update.
[in] | listener | - Pointer of IDgnssStatusListener object that processes the notification. |
|
pure virtual |
deRegister a listener for Dgnss injection status update.
|
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.
[in] | format | Dgnss injection data format. |
|
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.
none |
|
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).
[in] | buffer | buffer contains the data to be injected. |
[in] | bufferSize | size of the buffer. |
class telux::loc::ILocationConfigurator |
ILocationConfigurator allows for the enablement/disablement of the APIs such as CTunc, PACE, deleteAllAidingData, configureLeverArm, configureConstellations, configureRobustLocation, configureMinGpsWeek, requestMinGpsWeek, deleteAidingData, configureMinSVElevation, requestMinSVElevation, requestRobustLocation, configureSecondaryBand, requestSecondaryBandConfig, configureDR. ILocationConfigurator APIs strictly adheres to the principle of single client per process. ILocationConfigurator APIs follow the non persistence scheme, meaning when the processor crashes/reboots the settings need to be set again via the respective APIs.
using telux::loc::ILocationConfigurator::GetSecondaryBandCallback = std::function<void(const telux::loc::ConstellationSet set, telux::common::ErrorCode error)> |
This function is called with the response to requestSecondaryBandConfig API.
[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.
[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.
[in] | minSVElevation | - minimum SV Elevation angle in units of degree. |
[in] | error | - Return code which indicates whether the operation succeeded or not. |
using telux::loc::ILocationConfigurator::GetRobustLocationCallback = std::function<void(const telux::loc:: RobustLocationConfiguration rLConfig, telux::common::ErrorCode error)> |
This function is called with the response to requestRobustLocation API.
[in] | rLConfig | - robust location settings information. |
[in] | error | - Return code which indicates whether the operation succeeded or not. |
|
virtual |
Destructor of ILocationConfigurator
|
pure virtual |
Checks the status of location configuration subsystems and returns the result.
|
pure virtual |
This status indicates whether the object is in a usable state.
|
pure virtual |
Wait for location configuration subsystem to be ready.
|
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.
[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. |
|
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.
[in] | enable | - to enable/disable position assisted clock estimator feature. |
[in] | callback | - Optional callback to get the response of enablement/disablement of PACE. |
|
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.
[in] | callback | - Optional callback to get the response of delete aiding data. |
|
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.
[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. |
|
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.
[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. |
|
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.
[in] | set | - specifies the set of constellations whose secondary bands need to be disabled. |
[in] | callback | - Optional callback to get the response of configureSecondaryBand. |
|
pure virtual |
This API retrieves the secondary band configurations for constellation used by the standard GNSS engine (SPE).
[in] | cb | - callback to retrieve secondary band information about constellations. |
|
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.
[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. |
|
pure virtual |
This API retrieves the robust location 2.0 settings and version info used by the GNSS standard position engine (SPE).
[in] | cb | - callback to retrieve robust location information. |
|
pure virtual |
This API configures the minimum GPS week used by the modem GNSS standard position engine (SPE). If this API is called while GNSS standard position engine(SPE) is in middle of a session, ResponseCallback will still be invoked shortly to indicate the setting has been accepted by 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. 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.
[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. |
|
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.
[in] | cb | - callback to retrieve the minimum gps week. |
|
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.
[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. |
|
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.
[in] | cb | - callback to retrieve the minimum SV elevation. |
|
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.
[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. |
|
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.
[in] | config | - specify dead reckoning engine configuration. |
[in] | callback | - Optional callback to get the response of configureDR. |
|
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.
[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. |
|
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.
[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. |
|
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.
[in] | nmeaType | - specify the set of NMEA sentences |
[in] | callback | - Optional callback to get the response of configureNmeaTypes. |
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.
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.
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 |
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. |
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. |
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 |
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.
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. |
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 |
|
pure virtual |
Retrieves the validity of the Location basic Info.
|
pure virtual |
Retrieves technology used in computing this fix.
|
pure virtual |
Retrieves Speed.
|
pure virtual |
Retrieves latitude. Positive and negative values indicate northern and southern latitude respectively
|
pure virtual |
Retrieves longitude. Positive and negative values indicate eastern and western longitude respectively
|
pure virtual |
Retrieves altitude above the WGS 84 reference ellipsoid.
|
pure virtual |
Retrieves heading/bearing.
|
pure virtual |
Retrieves the horizontal uncertainty.
|
pure virtual |
Retrieves the vertical uncertainty.
|
pure virtual |
Retrieves UTC timeInfo for the location fix.
|
pure virtual |
Retrieves 3-D speed uncertainty/accuracy.
|
pure virtual |
Retrieves heading 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.
|
pure virtual |
Retrives the validity of the location info ex. It provides the validity of various information like dop, reliabilities, uncertainities etc.
|
pure virtual |
Retrieves the altitude with respect to mean sea level.
|
pure virtual |
Retrieves position dilution of precision.
|
pure virtual |
Retrieves horizontal dilution of precision.
|
pure virtual |
Retrieves vertical dilution of precision.
|
pure virtual |
Retrieves geometric dilution of precision.
|
pure virtual |
Retrieves time dilution of precision.
|
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.
|
pure virtual |
Specifies the reliability of the horizontal position.
|
pure virtual |
Specifies the reliability of the vertical position.
|
pure virtual |
Retrieves semi-major axis of horizontal elliptical uncertainty.
|
pure virtual |
Retrieves semi-minor axis of horizontal elliptical uncertainty.
|
pure virtual |
Retrieves elliptical horizontal uncertainty azimuth of orientation.
|
pure virtual |
Retrieves east standard deviation.
|
pure virtual |
Retrieves north standard deviation.
|
pure virtual |
Retrieves number of satellite vehicles used in position report.
|
pure virtual |
Retrives the set of satellite vehicles that are used to calculate position.
|
pure virtual |
Retrieves GNSS Satellite Vehicles used in position data.
[out] | idsOfUsedSVs | Vector of Satellite Vehicle identifiers. |
|
pure virtual |
Retrieves navigation solution mask used to indicate SBAS corrections.
|
pure virtual |
Retrieves position technology mask used to indicate which technology is used.
|
pure virtual |
Retrieves position related information.
|
pure virtual |
Retrieves gnss measurement usage info.
|
pure virtual |
Retrieves type of gnss system.
|
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.
|
pure virtual |
Retrieves leap seconds if available.
[out] | leapSeconds | - leap seconds
|
|
pure virtual |
Retrieves east, North, Up velocity if available.
[out] | velocityEastNorthUp | - east, North, Up velocity
|
|
pure virtual |
Retrieves east, North, Up velocity uncertainty if available. Uncertainty is defined with 68% confidence level.
[out] | velocityUncertaintyEastNorthUp | - east, North, Up velocity uncertainty
|
|
pure virtual |
Sensor calibration confidence percent, range [0, 100].
|
pure virtual |
Sensor calibration status.
|
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.
|
pure virtual |
When loc output eng type is set to fused, this field indicates the set of engines contribute to the fix.
|
pure virtual |
When robust location is enabled, this field will indicate how well the various input data considered for navigation solution conforms to expectations.
|
pure virtual |
Vehicle Reference Point(VRP) based latitude, longitude and altitude information.
|
pure virtual |
VRP-based east, north and up velocity information.
|
pure virtual |
Determination of altitude is assumed or calculated. ASSUMED means there may not be enough satellites to determine the precise altitude.
|
pure virtual |
Indicates the status of this report in terms of how optimally the report was calculated by the engine.
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 |
|
pure virtual |
Indicates to which constellation this satellite vehicle belongs.
|
pure virtual |
GNSS satellite vehicle ID. SV id range of each supported constellations mentioned in GnssMeasurementInfo.
|
pure virtual |
Health status of satellite vehicle.
|
pure virtual |
Status of satellite vehicle.
|
pure virtual |
Indicates whether ephemeris information(which allows the receiver to calculate the satellite's position) is available.
|
pure virtual |
Indicates whether almanac information(which allows receivers to know which satellites are available for tracking) is available.
|
pure virtual |
Indicates whether the satellite is used in computing the fix.
|
pure virtual |
Retrieves satellite vehicle elevation angle.
|
pure virtual |
Retrieves satellite vehicle azimuth angle.
|
pure virtual |
Retrieves satellite vehicle signal-to-noise ratio.
|
pure virtual |
Indicates the carrier frequency of the signal tracked.
|
pure virtual |
Indicates the validity for different types of signal for gps, galileo, beidou etc.
|
pure virtual |
Retrieves GLONASS frequency channel number in the range [1, 14] which is calculated as FCN [-7, 6] + 8.
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 |
|
pure virtual |
Indicates whether altitude is assumed or calculated.
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 |
|
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.
class telux::loc::LocationFactory |
LocationFactory allows creation of location manager.
Public Member Functions | |
std::shared_ptr< ILocationManager > | getLocationManager (telux::common::InitResponseCb callback=nullptr) |
std::shared_ptr< ILocationConfigurator > | getLocationConfigurator (telux::common::InitResponseCb callback=nullptr) |
std::shared_ptr< IDgnssManager > | getDgnssManager (DgnssDataFormat dataFormat=DgnssDataFormat::DATA_FORMAT_RTCM_3, telux::common::InitResponseCb callback=nullptr) |
Static Public Member Functions | |
static 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
[in] | callback | Optional callback to get the response of the manager initialization. |
std::shared_ptr<ILocationConfigurator> telux::loc::LocationFactory::getLocationConfigurator | ( | telux::common::InitResponseCb | callback = nullptr | ) |
Get instance of Location Configurator.
[in] | callback | Optional callback pointer to get the response of the manager initialisation. |
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
[in] | callback | Optional callback pointer to get the response of the manager initialisation. |
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 | ~ILocationListener () |
|
virtual |
Destructor of ILocationListener
|
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.
[in] | locationInfo | - Location information like latitude, longitude, timeInfo other information such as heading, altitude and velocity etc. |
|
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.
[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 |
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.
[in] | locationInfo | - Contains a list of location infos. Each element in the list corresponds to one of SPE/PPE/FUSED. |
|
virtual |
This function is called when device receives GNSS satellite information.
[in] | gnssSVInfo | - GNSS satellite information |
|
virtual |
This function is called when device receives GNSS data information like jammer metrics and automatic gain control for satellite signal type.
[in] | info | - GNSS signal info |
|
virtual |
This function is called when device receives GNSS NMEA sentences.
[in] | timestamp | - Timestamp |
[in] | nmea | - Nmea sentence |
|
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.
[in] | measurementInfo | - GNSS measurement information |
class telux::loc::ILocationSystemInfoListener |
Public Member Functions | |
virtual void | onLocationSystemInfo (const LocationSystemInfo &locationSystemInfo) |
virtual | ~ILocationSystemInfoListener () |
|
virtual |
Destructor of ILocationSystemInfoListener
|
virtual |
This function is called when device receives location related system information such as leap second change.
[in] | locationSystemInfo | - contains location system information such as current leap seconds change |
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.
using telux::loc::ILocationManager::GetEnergyConsumedCallback = std::function<void(telux::loc::GnssEnergyConsumedInfo energyConsumed, telux::common::ErrorCode error)> |
This function is called with the response to getEnergyConsumedInfoUpdate API.
[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.
[in] | yearOfHw | - Year of hardware information. |
[in] | error | - Return code which indicates whether the operation succeeded or not. |
using telux::loc::ILocationManager::GetTerrestrialInfoCallback = std::function<void( const std::shared_ptr<ILocationInfoBase> terrestrialInfo)> |
This function is called with the response to getTerrestrialPosition API.
[in] | terrestrialInfo | - basic position related information. |
|
virtual |
Destructor of ILocationManager
|
pure virtual |
Checks the status of location subsystems and returns the result.
|
pure virtual |
This status indicates whether the object is in a usable state.
|
pure virtual |
Wait for location subsystem to be ready.
|
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.
[in] | listener | - Pointer of ILocationListener object that processes the notification. |
|
pure virtual |
Remove a previously registered listener.
[in] | listener | - Previously registered ILocationListener that needs to be removed. |
|
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.
[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.
[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. |
|
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.
[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.
[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. |
|
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.
[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.
[in] | callback | - Optional callback to get the response of set minimum distance for reports. |
|
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.
[in] | listener | - Pointer of ILocationSystemInfoListener object. |
[in] | callback | - Optional callback to get the response of location system info. |
|
pure virtual |
This API removes a previously registered listener and will also stop receiving informations related to location system for that particular listener.
[in] | listener | - Previously registered ILocationSystemInfoListener that needs to be removed. |
[in] | callback | - Optional callback to get the response of location system info. |
|
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.
[in] | cb | - callback to get the information of Gnss energy consumed. |
|
pure virtual |
This API will stop reports started using startDetailedReports or startBasicReports or registerListener or setMinIntervalForReports.
[in] | callback | - Optional callback to get the response of stop reports. |
|
pure virtual |
This API retrieves the year of hardware information.
[in] | cb | - callback to get information of year of hardware. |
|
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.
[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. |
|
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.
[in] | callback | - Optional callback to get the response of cancelTerrestrialPositionRequest. |
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::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.
using telux::loc::GnssMeasurementsStateValidity = typedef uint32_t |
Specifies GnssMeasurementsStateValidityType.
using telux::loc::GnssMeasurementsAdrStateValidity = typedef uint32_t |
Specifies GnssMeasurementsAdrStateValidityType.
using telux::loc::GnssMeasurementsClockValidity = typedef uint32_t |
Specifies GnssMeasurementsClockValidityType.
using telux::loc::LeapSecondInfoValidity = typedef uint32_t |
Specifies LeapSecondInfoValidityType mask
using telux::loc::LocationSystemInfoValidity = typedef uint32_t |
Specifies LocationSystemInfoValidityType mask
using telux::loc::GnssEnergyConsumedInfoValidity = typedef uint16_t |
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.
|
strong |
|
strong |
Defines status reported by cdfw for RTCM injection.
|
strong |
|
strong |
Specifies the reliability of the position.
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.
|
strong |
|
strong |
Defines constellation type of GNSS.
Enumerator | |
---|---|
UNKNOWN |
Unknown constellation type |
GPS |
GPS satellite |
GALILEO |
GALILEO satellite |
SBAS |
SBAS satellite |
COMPASS |
COMPASS satellite.
|
GLONASS |
GLONASS satellite |
BDS |
BDS satellite |
QZSS |
QZSS satellite |
NAVIC |
NAVIC satellite |
|
strong |
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 |
|
strong |
|
strong |
Specifies which position technology was used to generate location information in the ILocationInfoEx.
Specifies related kinematics mask
|
strong |
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.
|
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.
Validity field for GLONASS time in struct GlonassTimeInfo.
Specify GNSS Signal Type and RF Band used in struct GnssMeasurementInfo and ISVInfo class.
Specify the set of technologies that contribute to ILocationInfoBase.
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.
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.
Specify the GNSS signal type and RF band for jammer info and automatic gain control metric in GnssData.
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.
Specifies the set of engines whose position reports are requested via startDetailedEngineReports.
Specifies the type of engine for the reported fixes
Specifies the type of engine responsible for fixes when the engine type is fused
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)
|
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.
Specify GNSS measurement state in GnssMeasurementsData::stateMask.
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.
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 HLOS generated NMEA sentence types.
Specify the valid mask for the configuration parameters of dead reckoning position engine
|
strong |
|
strong |
|
strong |
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. |
const float telux::loc::UNKNOWN_CARRIER_FREQ = -1 |
const int telux::loc::UNKNOWN_SIGNAL_MASK = 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.