Telematics SDK - Interface Specification
|
Data Structures | |
struct | telux::tel::ECallMsdOptionals |
struct | telux::tel::ECallMsdControlBits |
struct | telux::tel::ECallVehicleIdentificationNumber |
struct | telux::tel::ECallVehiclePropulsionStorageType |
struct | telux::tel::ECallVehicleLocation |
struct | telux::tel::ECallVehicleLocationDelta |
struct | telux::tel::ECallOptionalPdu |
struct | telux::tel::ECallMsdData |
class | telux::tel::IPhone |
This class allows getting system information and registering for system events. Each Phone instance is associated with a single SIM. So on a dual SIM device you would have 2 Phone instances. More... | |
class | telux::tel::ISignalStrengthCallback |
Interface for Signal strength callback object. Client needs to implement this interface to get single shot responses for commands like get signal strength. More... | |
class | telux::tel::IVoiceRadioTechnologyCallback |
Interface for voice radio technology callback object. Client needs to implement this interface to get single shot responses for commands like request voice radio technology. More... | |
class | telux::tel::IVoiceServiceStateCallback |
Interface for voice service state callback object. Client needs to implement this interface to get single shot responses for commands like request voice radio technology. More... | |
class | telux::tel::IPhoneListener |
A listener class for monitoring changes in specific telephony states on the device, including service state and signal strength. Override the methods for the state that you wish to receive updates for. More... | |
class | telux::tel::IPhoneManager |
Phone Manager creates one or more phones based on SIM slot count, it allows clients to register for notification of system events. Clients should check if the subsystem is ready before invoking any of the APIs. More... | |
class | telux::tel::SignalStrength |
SignalStrength class provides access to LTE,GSM, CDMA signal strengths. More... | |
class | telux::tel::LteSignalStrengthInfo |
LTE signal strength class provides methods to get details of lte signals like dbm, signal level, reference signal signal-to-noise ratio, channel quality indicator and signal strength. More... | |
class | telux::tel::GsmSignalStrengthInfo |
GSM signal strength provides methods to get GSM signal strength in dBm and GSM signal level. More... | |
class | telux::tel::CdmaSignalStrengthInfo |
CDMA signal strength provides methods to get details of Cdma and Evdo like signal strength in dBm and signal level. More... | |
class | telux::tel::VoiceServiceInfo |
This section contains APIs related to Phone, Signal Strength and interfaces to register global listeners to event notifications.
struct telux::tel::ECallMsdOptionals |
Represents MsdOptionals class as per European eCall MSD standard. i.e. EN 15722.
Data Fields | ||
---|---|---|
ECallOptionalDataType | optionalDataType |
Type of optional data |
bool | optionalDataPresent |
Availability of Optional data: true - Present or false - Absent |
bool | recentVehicleLocationN1Present |
Availability of Recent Vehicle Location N1 data: true - Present or false - Absent |
bool | recentVehicleLocationN2Present |
Availability of Recent Vehicle Location N2 data: true - Present or false - Absent |
bool | numberOfPassengersPresent |
Availability of number of seat belts fastened data: true - Present or false - Absent |
struct telux::tel::ECallMsdControlBits |
Represents ECallMsdControlBits structure as per European eCall MSD standard. i.e. EN 15722.
Data Fields | ||
---|---|---|
bool | automaticActivation |
auto / manual activation |
bool | testCall |
test / emergency call |
bool | positionCanBeTrusted |
false if coincidence < 95% of reported pos within +/- 150m |
ECallVehicleType | vehicleType: 5 |
Represents a vehicle class as per EN 15722 |
struct telux::tel::ECallVehicleIdentificationNumber |
Represents VehicleIdentificationNumber structure as per European eCall MSD standard. i.e. EN 15722. Vehicle Identification Number confirming ISO3779.
struct telux::tel::ECallVehiclePropulsionStorageType |
Represents VehiclePropulsionStorageType structure as per European eCall MSD standard. i.e. EN 15722. Vehicle Propulsion type (energy storage): True- Present, False - Absent
struct telux::tel::ECallVehicleLocation |
struct telux::tel::ECallVehicleLocationDelta |
Represents VehicleLocationDelta structure as per European eCall MSD standard. i.e. EN 15722. Delta with respect to Current Vehicle location.
Data Fields | ||
---|---|---|
int16_t | latitudeDelta |
( 1 Unit = 100 milliarcseconds, range: -512 to 511) |
int16_t | longitudeDelta |
( 1 Unit = 100 milliarcseconds, range: -512 to 511) |
struct telux::tel::ECallOptionalPdu |
struct telux::tel::ECallMsdData |
Data structure to hold all details required to construct an MSD
Data Fields | ||
---|---|---|
ECallMsdOptionals | optionals |
Indicates presence of optionals in ECall MSD |
uint8_t | messageIdentifier |
Starts with 1 for each new , increment on retransmission |
ECallMsdControlBits | control |
ECallMsdControlBits structure as per European standard i.e. EN 15722 |
ECallVehicleIdentificationNumber | vehicleIdentificationNumber |
VIN (vehicle identification number) according to ISO3779 |
ECallVehiclePropulsionStorageType | vehiclePropulsionStorage |
VehiclePropulsionStorageType structure as per European standard i.e. EN 15722 |
uint32_t | timestamp |
Seconds elapsed since midnight 01.01.1970 UTC |
ECallVehicleLocation | vehicleLocation |
VehicleLocation structure as per European standard. i.e. EN 15722 |
uint8_t | vehicleDirection |
Direction of travel in 2 degrees steps from magnetic north |
ECallVehicleLocationDelta | recentVehicleLocationN1 |
Change in latitude and longitude compared to the last MSD transmission |
ECallVehicleLocationDelta | recentVehicleLocationN2 |
Change in latitude and longitude compared to the last but one MSD transmission |
uint8_t | numberOfPassengers |
Number of occupants in the vehicle |
ECallOptionalPdu | optionalPdu |
Optional information for the emergency rescue service (103 bytes, ASN.1 encoded); may also point to an address, where this information is locatedOptional information for the emergency rescue service |
class telux::tel::IPhone |
This class allows getting system information and registering for system events. Each Phone instance is associated with a single SIM. So on a dual SIM device you would have 2 Phone instances.
Public Member Functions | |
virtual telux::common::Status | getPhoneId (int &phId)=0 |
virtual RadioState | getRadioState ()=0 |
virtual telux::common::Status | requestVoiceRadioTechnology (std::weak_ptr< IVoiceRadioTechnologyCallback > callback)=0 |
virtual ServiceState | getServiceState ()=0 |
virtual telux::common::Status | requestVoiceServiceState (std::weak_ptr< IVoiceServiceStateCallback > callback)=0 |
virtual telux::common::Status | setRadioPower (bool enable, std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0 |
virtual telux::common::Status | requestSignalStrength (std::shared_ptr< ISignalStrengthCallback > callback=nullptr)=0 |
virtual | ~IPhone () |
|
virtual |
|
pure virtual |
Get the Phone ID corresponding to phone.
[out] | phoneId | Unique identifier for the phone |
|
pure virtual |
Get Radio state of device.
|
pure virtual |
Request for Radio technology type (3GPP/3GPP2) used for voice.
[in] | callback | callback pointer to get the response of radio power request |
|
pure virtual |
|
pure virtual |
Request for voice service state to get the information of phone serving states
[in] | callback | callback pointer to get the response of voice service state |
|
pure virtual |
Set the radio power on or off.
[in] | enable | Flag that determines whether to turn radio on or off |
[in] | callback | Optional callback pointer to get the response of set radio power request |
|
pure virtual |
Get current signal strength of the associated network.
[in] | callback | Optional callback pointer to get the response of signal strength request |
class telux::tel::ISignalStrengthCallback |
Interface for Signal strength callback object. Client needs to implement this interface to get single shot responses for commands like get signal strength.
The methods in callback can be invoked from multiple different threads. The implementation should be thread safe.
Public Member Functions | |
virtual void | signalStrengthResponse (std::shared_ptr< SignalStrength > signalStrength, telux::common::ErrorCode error) |
|
virtual |
This function is called with the response to requestSignalStrength API.
[out] | signalStrength | Pointer to signal strength object |
[out] | error | Return code for whether the operation succeeded or failed
|
class telux::tel::IVoiceRadioTechnologyCallback |
Interface for voice radio technology callback object. Client needs to implement this interface to get single shot responses for commands like request voice radio technology.
The methods in callback can be invoked from multiple different threads. The implementation should be thread safe.
Public Member Functions | |
virtual void | voiceRadioTechnologyResponse (RadioTechnology radioTech, telux::common::ErrorCode error) |
|
virtual |
This function is called with the response to requestVoiceRadioTechnology API.
[out] | radioTech | Pointer to radio technology |
[out] | error | Return code for whether the operation succeeded or failed
|
class telux::tel::IVoiceServiceStateCallback |
Interface for voice service state callback object. Client needs to implement this interface to get single shot responses for commands like request voice radio technology.
The methods in callback can be invoked from multiple different threads. The implementation should be thread safe.
Public Member Functions | |
virtual void | voiceServiceStateResponse (const std::shared_ptr< VoiceServiceInfo > &serviceInfo, telux::common::ErrorCode error) |
|
virtual |
This function is called with the response to requestVoiceServiceState API.
[out] | serviceInfo | Pointer to voice service info object |
[out] | error | Return code for whether the operation succeeded or failed
|
class telux::tel::IPhoneListener |
A listener class for monitoring changes in specific telephony states on the device, including service state and signal strength. Override the methods for the state that you wish to receive updates for.
The methods in listener can be invoked from multiple different threads. The implementation should be thread safe.
Public Member Functions | |
virtual void | onServiceStateChanged (int phoneId, ServiceState state) |
virtual void | onSignalStrengthChanged (int phoneId, std::shared_ptr< SignalStrength > signalStrength) |
virtual void | onRadioStateChanged (int phoneId, RadioState radioState) |
virtual void | onVoiceRadioTechnologyChanged (int phoneId, RadioTechnology radioTech) |
virtual void | onVoiceServiceStateChanged (int phoneId, const std::shared_ptr< VoiceServiceInfo > &serviceInfo) |
virtual | ~IPhoneListener () |
|
virtual |
|
virtual |
This function is called when device service state changes.
[in] | phoneId | Unique id of the phone on which service state changed. |
[in] | state | Service state of the phone ServiceState |
|
virtual |
This function is called when network signal strength changes.
[in] | phoneId | Unique id of the phone on which signal strength state changed. |
[in] | signalStrength | Pointer to signal strength object |
|
virtual |
This function is called when radio state changes on phone
[in] | phone | Unique id of the phone on which radio state changed |
[in] | radioState | Radio state of the phone RadioState |
|
virtual |
This function is called when the radio technology for voice service changes
[in] | phone | Unique id of the phone on which radio technology changed |
[in] | radioTech | Radio state of the phone RadioTechnology |
|
virtual |
This function is called when the service state for voice service changes
[in] | phone | Unique id of the phone on which radio technology changed |
[in] | serviceInfo | pointer of voice service state info object |
class telux::tel::IPhoneManager |
Phone Manager creates one or more phones based on SIM slot count, it allows clients to register for notification of system events. Clients should check if the subsystem is ready before invoking any of the APIs.
Public Member Functions | |
virtual bool | isSubsystemReady ()=0 |
virtual std::future< bool > | onSubsystemReady ()=0 |
virtual telux::common::Status | getPhoneIds (std::vector< int > &phoneIds)=0 |
virtual int | getPhoneIdFromSlotId (int slotId)=0 |
virtual int | getSlotIdFromPhoneId (int phoneId)=0 |
virtual std::shared_ptr< IPhone > | getPhone (int phoneId=DEFAULT_PHONE_ID)=0 |
virtual telux::common::Status | registerListener (std::weak_ptr< IPhoneListener > listener)=0 |
virtual telux::common::Status | removeListener (std::weak_ptr< IPhoneListener > listener)=0 |
virtual | ~IPhoneManager () |
|
virtual |
|
pure virtual |
Checks the status of telephony subsystems and returns the result.
|
pure virtual |
Wait for telephony subsystem to be ready.
|
pure virtual |
Retrieves a list of Phone Ids. Each id is unique per phone. For example: on a dual SIM device, there would be 2 Phones.
[out] | phoneIds | List of phone ids |
|
pure virtual |
Get the Phone Id for a given Slot Id.
[in] | slotId | SIM Card Slot Id |
|
pure virtual |
Get the SIM Slot Id for a given Phone Id.
[in] | phoneId | Phone Id of the phone |
|
pure virtual |
Get the phone instance for a given phone identifier.
[in] | phoneId | Identifier for phone instance, retrieved from getPhoneIds API |
|
pure virtual |
Register a listener for specific events in the telephony subsystem.
[in] | listener | Pointer to Phone Listener object that processes the notification |
|
pure virtual |
Remove a previously added listener.
[in] | listener | Pointer to Phone Listener object that needs to be removed |
class telux::tel::SignalStrength |
SignalStrength class provides access to LTE,GSM, CDMA signal strengths.
Public Member Functions | |
SignalStrength (std::shared_ptr< LteSignalStrengthInfo > lteSignalStrengthInfo, std::shared_ptr< GsmSignalStrengthInfo > gsmSignalStrengthInfo, std::shared_ptr< CdmaSignalStrengthInfo > cdmaSignalStrengthInfo) | |
std::shared_ptr < LteSignalStrengthInfo > | getLteSignalStrength () |
std::shared_ptr < GsmSignalStrengthInfo > | getGsmSignalStrength () |
std::shared_ptr < CdmaSignalStrengthInfo > | getCdmaSignalStrength () |
telux::tel::SignalStrength::SignalStrength | ( | std::shared_ptr< LteSignalStrengthInfo > | lteSignalStrengthInfo, |
std::shared_ptr< GsmSignalStrengthInfo > | gsmSignalStrengthInfo, | ||
std::shared_ptr< CdmaSignalStrengthInfo > | cdmaSignalStrengthInfo | ||
) |
std::shared_ptr<LteSignalStrengthInfo> telux::tel::SignalStrength::getLteSignalStrength | ( | ) |
Gives LTE signal strength instance.
std::shared_ptr<GsmSignalStrengthInfo> telux::tel::SignalStrength::getGsmSignalStrength | ( | ) |
Gives GSM signal strength instance.
std::shared_ptr<CdmaSignalStrengthInfo> telux::tel::SignalStrength::getCdmaSignalStrength | ( | ) |
Gives CDMA signal strength instance.
class telux::tel::LteSignalStrengthInfo |
LTE signal strength class provides methods to get details of lte signals like dbm, signal level, reference signal signal-to-noise ratio, channel quality indicator and signal strength.
Public Member Functions | |
LteSignalStrengthInfo (int lteSignalStrength, int lteRsrp, int lteRsrq, int lteRssnr, int lteCqi) | |
const SignalStrengthLevel | getLevel () const |
const int | getDbm () const |
const int | getLteSignalStrength () const |
const int | getLteReferenceSignalReceiveQuality () const |
const int | getLteReferenceSignalSnr () const |
const int | getLteChannelQualityIndicator () const |
telux::tel::LteSignalStrengthInfo::LteSignalStrengthInfo | ( | int | lteSignalStrength, |
int | lteRsrp, | ||
int | lteRsrq, | ||
int | lteRssnr, | ||
int | lteCqi | ||
) |
const SignalStrengthLevel telux::tel::LteSignalStrengthInfo::getLevel | ( | ) | const |
Get signal level in the range.
const int telux::tel::LteSignalStrengthInfo::getDbm | ( | ) | const |
Get the signal strength as dBm.
const int telux::tel::LteSignalStrengthInfo::getLteSignalStrength | ( | ) | const |
Get the LTE signal strength. Range:(0, 63) > 63 is invalid.
const int telux::tel::LteSignalStrengthInfo::getLteReferenceSignalReceiveQuality | ( | ) | const |
Get LTE reference signal receive quality in dB.
const int telux::tel::LteSignalStrengthInfo::getLteReferenceSignalSnr | ( | ) | const |
Get LTE reference signal signal-to-noise ratio in 0.1 dB units. Range: -200 to +300 (-200 = -20.0 dB, +300 = 30dB).
const int telux::tel::LteSignalStrengthInfo::getLteChannelQualityIndicator | ( | ) | const |
Get LTE channel quality indicator. Range: 0 to 15.
class telux::tel::GsmSignalStrengthInfo |
GSM signal strength provides methods to get GSM signal strength in dBm and GSM signal level.
Public Member Functions | |
GsmSignalStrengthInfo (int gsmSignalStrength, int gsmBitErrorRate) | |
const SignalStrengthLevel | getLevel () const |
const int | getDbm () const |
const int | getGsmSignalStrength () const |
const int | getGsmBitErrorRate () const |
telux::tel::GsmSignalStrengthInfo::GsmSignalStrengthInfo | ( | int | gsmSignalStrength, |
int | gsmBitErrorRate | ||
) |
const SignalStrengthLevel telux::tel::GsmSignalStrengthInfo::getLevel | ( | ) | const |
Get signal level in the range.
const int telux::tel::GsmSignalStrengthInfo::getDbm | ( | ) | const |
Get the signal strength as dBm.
const int telux::tel::GsmSignalStrengthInfo::getGsmSignalStrength | ( | ) | const |
Get the GSM signal strength.
const int telux::tel::GsmSignalStrengthInfo::getGsmBitErrorRate | ( | ) | const |
Get the GSM bit error rate (0-7, 99).
class telux::tel::CdmaSignalStrengthInfo |
CDMA signal strength provides methods to get details of Cdma and Evdo like signal strength in dBm and signal level.
Public Member Functions | |
CdmaSignalStrengthInfo (int cdmaDbm, int cdmaEcio, int evdoDbm, int evdoEcio, int evdoSignalNoiseRatio, int tdScdmaRscp) | |
const SignalStrengthLevel | getLevel () const |
const int | getDbm () const |
const int | getCdmaEcio () const |
const int | getTdScdmaReceivedSignalCodePower () const |
const int | getEvdoEcio () const |
const int | getEvdoSignalNoiseRatio () const |
telux::tel::CdmaSignalStrengthInfo::CdmaSignalStrengthInfo | ( | int | cdmaDbm, |
int | cdmaEcio, | ||
int | evdoDbm, | ||
int | evdoEcio, | ||
int | evdoSignalNoiseRatio, | ||
int | tdScdmaRscp | ||
) |
const SignalStrengthLevel telux::tel::CdmaSignalStrengthInfo::getLevel | ( | ) | const |
Get signal level in the range.
const int telux::tel::CdmaSignalStrengthInfo::getDbm | ( | ) | const |
Get the signal strength as dBm.
const int telux::tel::CdmaSignalStrengthInfo::getCdmaEcio | ( | ) | const |
Get the Cdma Ec/Io value in dB*10.
const int telux::tel::CdmaSignalStrengthInfo::getTdScdmaReceivedSignalCodePower | ( | ) | const |
Get TdScdma received signal code power in dBm.
const int telux::tel::CdmaSignalStrengthInfo::getEvdoEcio | ( | ) | const |
Get the Evdo Ec/Io value in dB*10.
const int telux::tel::CdmaSignalStrengthInfo::getEvdoSignalNoiseRatio | ( | ) | const |
Get the Evdo signal noise ratio and values are 0-8. 8 is the highest signal to noise ratio.
class telux::tel::VoiceServiceInfo |
VoiceServiceInfo is a container class for obtaining serving state details like phone is registered to home network, roaming, in service, out of service or only emergency calls allowed
Public Member Functions | |
VoiceServiceInfo (VoiceServiceState voiceServiceState, VoiceServiceDenialCause denialCause) | |
VoiceServiceState | getVoiceServiceState () |
VoiceServiceDenialCause | getVoiceServiceDenialCause () |
bool | isEmergency () |
bool | isInService () |
bool | isOutOfService () |
telux::tel::VoiceServiceInfo::VoiceServiceInfo | ( | VoiceServiceState | voiceServiceState, |
VoiceServiceDenialCause | denialCause | ||
) |
VoiceServiceState telux::tel::VoiceServiceInfo::getVoiceServiceState | ( | ) |
Get voice service state.
VoiceServiceDenialCause telux::tel::VoiceServiceInfo::getVoiceServiceDenialCause | ( | ) |
Get Voice service denial cause
bool telux::tel::VoiceServiceInfo::isEmergency | ( | ) |
Check if phone service is in emergency mode (i.e Only emergency numbers are allowed)
bool telux::tel::VoiceServiceInfo::isInService | ( | ) |
Check if phone is registered to home network or roaming network, phone is in service mode
bool telux::tel::VoiceServiceInfo::isOutOfService | ( | ) |
check if phone not registered, phone is in out of service mode
|
strong |
|
strong |
|
strong |
Represents a vehicle class as per European eCall MSD standard. i.e. EN 15722.
|
strong |
|
strong |
|
strong |
Defines the service states
|
strong |
Defines all available radio access technologies
|
strong |
Defines all the signal levels that SignalStrength class can return where level 1 is low and level 5 is high.
Enumerator | |
---|---|
LEVEL_1 | |
LEVEL_2 | |
LEVEL_3 | |
LEVEL_4 | |
LEVEL_5 | |
LEVEL_UNKNOWN |
|
strong |
Defines the voice service states
|
strong |
Defines the voice service denial cause why voice service state registration was denied See 3GPP TS 24.008, 10.5.3.6 and Annex G.