Telematics SDK - Interface Specification
|
Data Structures | |
class | telux::loc::IGpsTime |
IGpsTime provides interface to get current GPS week and elapsed time in current GPS week. More... | |
class | telux::loc::ISensorDataUsage |
Specifies the sensors used for calculating the fixes and the type of measurements which were aided by sensor data. More... | |
class | telux::loc::ILocationInfo |
ILocationInfo provides interface to get postion related information like latitude, longitude, altitude and other information like timestamp, session status etc. More... | |
class | telux::loc::ISVInfo |
ISVInfo provides interface to retreive inforation 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::LocationFactory |
LocationFactory allows creation of location manager. More... | |
class | telux::loc::ILocationListener |
Listener class for getting location updates and satellite vehicle information. More... | |
class | telux::loc::ILocationManager |
ILocationManager provides interface to register and remove listeners. It also allows to set and get configuration/ criteria for position reports. More... | |
Typedefs | |
using | telux::loc::PositionTech = std::bitset< 16 > |
using | telux::loc::SbasCorrection = std::bitset< 8 > |
using | telux::loc::Measurement = std::bitset< 8 > |
This section contains APIs related to Location Services.
class telux::loc::IGpsTime |
IGpsTime provides interface to get current GPS week and elapsed time in current GPS week.
Public Member Functions | |
virtual uint32_t | getWeek ()=0 |
virtual uint32_t | getTimeOfWeekMsec ()=0 |
|
pure virtual |
Retrieves current GPS week as calculated from midnight, Jan 6, 1980.
|
pure virtual |
Retrieves elapsed time in the current GPS week starting from 12:00 am on Sunday.
class telux::loc::ISensorDataUsage |
Specifies the sensors used for calculating the fixes and the type of measurements which were aided by sensor data.
Public Member Functions | |
virtual SensorType | getSensorType ()=0 |
virtual Measurement | getMeasurement ()=0 |
|
pure virtual |
Retrieves which sensors were used in calculating the position in the position report.
|
pure virtual |
Retrieves which measurements were aided by sensor data.
class telux::loc::ILocationInfo |
ILocationInfo provides interface to get postion related information like latitude, longitude, altitude and other information like timestamp, session status etc.
Public Member Functions | |
virtual PositionTech | getPositionTechnology ()=0 |
virtual double | getLatitude ()=0 |
virtual double | getLongitude ()=0 |
virtual double | getAltitude ()=0 |
virtual float | getHeading ()=0 |
virtual float | getVerticalUncertainty ()=0 |
virtual uint64_t | getTimeStamp ()=0 |
virtual float | getAltitudeMeanSeaLevel ()=0 |
virtual float | getPositionDop ()=0 |
virtual float | getHorizontalDop ()=0 |
virtual float | getVerticalDop ()=0 |
virtual float | getMagneticDeviation ()=0 |
virtual float | getSpeedUncertainty ()=0 |
virtual float | getHeadingUncertainty ()=0 |
virtual LocationReliability | getHorizontalReliability ()=0 |
virtual LocationReliability | getVerticalReliability ()=0 |
virtual float | getHorizontalUncertaintySemiMajor ()=0 |
virtual float | getHorizontalUncertaintySemiMinor ()=0 |
virtual float | getHorizontalUncertaintyAzimuth ()=0 |
virtual void | getSVIds (std::vector< uint16_t > &idsOfUsedSVs)=0 |
virtual SbasCorrection | getSbasCorrection ()=0 |
virtual SessionStatus | getSessionStatus ()=0 |
virtual telux::common::Status | getLeapSeconds (uint8_t &leapSeconds)=0 |
virtual std::shared_ptr< IGpsTime > | getGpsTime ()=0 |
virtual telux::common::Status | getCircularHorizontalUncertainty (float &circularHorizontalUncertainty)=0 |
virtual telux::common::Status | getHorizontalConfidence (uint8_t &horizontalConfidence)=0 |
virtual float | getHorizontalSpeed ()=0 |
virtual telux::common::Status | getVerticalConfidence (uint8_t &verticalConfidence)=0 |
virtual float | getVerticalSpeed ()=0 |
virtual telux::common::Status | getSensorDataUsage (std::shared_ptr< ISensorDataUsage > &sensorDataUsage)=0 |
virtual telux::common::Status | getFixId (uint32_t &fixId)=0 |
virtual telux::common::Status | getVelocityEastNorthUp (std::vector< float > &velocityEastNorthUp)=0 |
virtual telux::common::Status | getVelocityUncertaintyEastNorthUp (std::vector< float > &velocityUncertaintyEastNorthUp)=0 |
|
pure virtual |
Retrieves technology used in computing this fix.
|
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.
|
pure virtual |
Retrieves the vertical uncertainty.
|
pure virtual |
Retrieves UTC timeStamp for the location fix.
|
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 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 |
Retrieves 3-D speed uncertainty.
|
pure virtual |
Retrieves heading uncertainty.
|
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 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 status of the session that is requested by user application.
|
pure virtual |
Retrieves leap seconds if available.
[out] | leapSeconds | - leap seconds
|
|
pure virtual |
Retrieves GPS time structure.
|
pure virtual |
Retrieves horizontal position uncertainty (circular) if available.
[out] | circularHorizontalUncertainty | - circular horizontal uncertainty
|
|
pure virtual |
Retrieves horizontal uncertainty confidence if available.
[out] | horizontalConfidence | - horizontal uncertainty confidence
|
|
pure virtual |
Retrieves horizontal speed.
|
pure virtual |
Retrieves vertical uncertainty confidence if available.
[out] | verticalConfidence | - vertical uncertainty confidence
|
|
pure virtual |
Retrieves vertical speed.
|
pure virtual |
Retrieves sensor data was used in computing the position if available.
[out] | sensorDataUsage | - which sensors were used in calculating the position |
|
pure virtual |
Retrieves fix count if available. Fix count of a session starts with 0 and increments by one for each successive position report for a particular session.
[out] | fixId | - identifier of fix for session |
|
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.
[out] | velocityUncertaintyEastNorthUp | - east, North, Up velocity uncertainty
|
class telux::loc::ISVInfo |
ISVInfo provides interface to retreive inforation 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 float | getElevation ()=0 |
virtual float | getAzimuth ()=0 |
virtual float | getSnr ()=0 |
|
pure virtual |
Indicates to which constellation this satellite vehicle belongs.
|
pure virtual |
GNSS satellite vehicle ID.
|
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 |
Retrieves satellite vehicle elevation angle.
|
pure virtual |
Retrieves satellite vehicle azimuth angle.
|
pure virtual |
Retrieves satellite vehicle signal-to-noise ratio.
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.
|
pure virtual |
Pointer to satellite vehicles information for all GNSS constellations except GPS.
class telux::loc::LocationFactory |
LocationFactory allows creation of location manager.
Public Member Functions | |
std::shared_ptr< ILocationManager > | getLocationManager () |
~LocationFactory () | |
Static Public Member Functions | |
static LocationFactory & | getInstance () |
telux::loc::LocationFactory::~LocationFactory | ( | ) |
|
static |
Get Location Factory instance.
std::shared_ptr<ILocationManager> telux::loc::LocationFactory::getLocationManager | ( | ) |
Get instance of Location Manager
class telux::loc::ILocationListener |
Listener class for getting location updates and satellite vehicle information.
The methods in listener can be invoked from multiple different threads. Client needs to make sure that implementation is thread-safe.
Public Member Functions | |
virtual void | onLocationUpdate (const std::shared_ptr< ILocationInfo > &locationInfo) |
virtual void | onGnssSVInfo (const std::shared_ptr< IGnssSVInfo > &gnssSVInfo) |
virtual | ~ILocationListener () |
|
virtual |
Destructor of ILocationListener
|
virtual |
This function is called when device receives location update.
[in] | locationInfo | - Location information like latitude, longitude, timeStamp and other information such as heading, altitude and velocity etc. |
|
virtual |
This function is called when device receives GNSS satellite information.
[in] | gnssSVInfo | - GNSS satellite information |
class telux::loc::ILocationManager |
ILocationManager provides interface to register and remove listeners. It also allows to set and get configuration/ criteria for position reports.
Public Member Functions | |
virtual bool | isSubsystemReady ()=0 |
virtual std::future< bool > | onSubsystemReady ()=0 |
virtual telux::common::Status | registerListener (std::weak_ptr< ILocationListener > listener)=0 |
virtual telux::common::Status | removeListener (std::weak_ptr< ILocationListener > listener)=0 |
virtual telux::common::Status | setPositionReportTimeout (uint32_t timeout, std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0 |
virtual telux::common::Status | setHorizontalAccuracyLevel (HorizontalAccuracyLevel accuracy=HorizontalAccuracyLevel::LOW, std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0 |
virtual telux::common::Status | setMinIntervalForReports (uint32_t minInterval, std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0 |
virtual uint32_t | getPositionReportTimeout ()=0 |
virtual HorizontalAccuracyLevel | getHorizontalAccuracyLevel ()=0 |
virtual uint32_t | getMinIntervalForFinalReports ()=0 |
virtual | ~ILocationManager () |
|
virtual |
Destructor of ILocationManager
|
pure virtual |
Checks the status of location subsystems and returns the result.
|
pure virtual |
Wait for location subsystem to be ready.
|
pure virtual |
Register a listener for specific updates from location manager like location 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.
[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 |
Configures position report timeout. LocationManager tries to determine the position until the position report timeout has elapsed. If the final position cannot be determined before the timeout period, it returns a position report with session status marked as SessionStatus::TIMEOUT instead of SessionStatus::SUCCESS. Position report timeout is an app spectific setting. E.g. If this API is called with timeout parameter value 5000, the LocationManager tries to determine the position before 5 seconds. If position report is determined, a position report will be returned with sessionStatus=SessionStatus::SUCCESS. Otherwise, a position report will be sent with sessionStatus=SessionStatus::TIMEOUT after 5 seconds.
[in] | timeout | - Maximum time to get a position report in milliseconds. |
[in] | callback | - Optional callback to get the response of set position report time out |
|
pure virtual |
Configuring horizontal accuracy level. If the final position cannot be determined with the required horizontal accuracy level within the timeout period specified in the setPositionReportTimeout API, a timeout fix will be provided. Refer to setPositionReportTimeout API for more details.
[in] | accuracy | - HorizontalAccuracyLevel |
[in] | callback | - Optional callback to get the response of set horizontal accuracy level |
|
pure virtual |
Configuring minimum time interval between two consecutive position reports.
[in] | minInterval | - Minimum time interval between two consecutive reports in milliseconds. E.g. If minInterval is 1000 milliseconds, reports will be provided with a periodicity of 1 second or more depending on the number of applications listening to location updates. |
[in] | callback | - Optional callback to get the response of set minimum interval for reports. |
|
pure virtual |
Get timeout of a position report.
|
pure virtual |
Get horizontal accuracy level of a location fix.
|
pure virtual |
Get the time interval between final reports.
using telux::loc::PositionTech = typedef std::bitset<16> |
16 bit mask that denotes which of the technologies defined in PositionTech enum are used in the location fix.
using telux::loc::SbasCorrection = typedef std::bitset<8> |
8 bit mask that denotes which of the SBAS corrections in SbasCorrection used to improve the performance of GNSS output.
using telux::loc::Measurement = typedef std::bitset<8> |
8 bit mask that denotes which of the measurements in MeasurementType enum are aided by sensor data.
|
strong |
|
strong |
Defines technology used in computing the location fix.
|
strong |
Specifies the reliability of the position.
Defines Satellite Based Augmentation System(SBAS) corrections. SBAS contributes to improve the performance of GNSS system.
|
strong |
Defines status of the session that is requested by user application.
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
Specifies which measurements were aided by sensors.