Telematics SDK - API Reference  v1.55.0
WLAN Device Management

Data Structures

struct  telux::wlan::ApInfo
 
struct  telux::wlan::ApNetInfo
 
struct  telux::wlan::ApStatus
 
struct  telux::wlan::StaStatus
 
struct  telux::wlan::InterfaceStatus
 
class  telux::wlan::IWlanDeviceManager
 WlanDeviceManager is a primary interface for configuring Wireless LAN. it provide APIs to enable, configure, activate, and modify modes. More...
 
class  telux::wlan::IWlanListener
 
class  telux::wlan::WlanFactory
 WlanFactory is the central factory to create all wlan classes. More...
 

Enumerations

enum  telux::wlan::BandType { telux::wlan::BandType::BAND_5GHZ = 1, telux::wlan::BandType::BAND_2GHZ = 2 }
 
enum  telux::wlan::ConnectionStatus { telux::wlan::ConnectionStatus::UNKNOWN = 0, telux::wlan::ConnectionStatus::CONNECTED = 1, telux::wlan::ConnectionStatus::DISCONNECTED = 2 }
 
enum  telux::wlan::Id { telux::wlan::Id::PRIMARY = 1, telux::wlan::Id::SECONDARY = 2, telux::wlan::Id::TERTIARY = 3, telux::wlan::Id::QUATERNARY = 4 }
 
enum  telux::wlan::ApType { telux::wlan::ApType::UNKNOWN = 0, telux::wlan::ApType::PRIVATE = 1, telux::wlan::ApType::GUEST = 2 }
 
enum  telux::wlan::StaInterfaceStatus {
  telux::wlan::StaInterfaceStatus::UNKNOWN = 0, telux::wlan::StaInterfaceStatus::CONNECTING = 1, telux::wlan::StaInterfaceStatus::CONNECTED = 2, telux::wlan::StaInterfaceStatus::DISCONNECTED = 3,
  telux::wlan::StaInterfaceStatus::ASSOCIATION_FAILED = 4, telux::wlan::StaInterfaceStatus::IP_ASSIGNMENT_FAILED = 5
}
 
enum  telux::wlan::OperationType { telux::wlan::OperationType::WLAN_LOCAL = 0, telux::wlan::OperationType::WLAN_REMOTE }
 
enum  telux::wlan::IpFamilyType { telux::wlan::IpFamilyType::UNKNOWN = -1, telux::wlan::IpFamilyType::IPV4 = 0x04, telux::wlan::IpFamilyType::IPV6 = 0x06, telux::wlan::IpFamilyType::IPV4V6 = 0x0A }
 
enum  telux::wlan::ServiceOperation { telux::wlan::ServiceOperation::STOP = 0x00, telux::wlan::ServiceOperation::START = 0x01, telux::wlan::ServiceOperation::RESTART = 0x02 }
 
enum  telux::wlan::InterfaceState { telux::wlan::InterfaceState::INACTIVE = 0x00, telux::wlan::InterfaceState::ACTIVE = 0x01 }
 
enum  telux::wlan::HwDeviceType { telux::wlan::HwDeviceType::UNKNOWN = 0, telux::wlan::HwDeviceType::QCA6574 = 1, telux::wlan::HwDeviceType::QCA6696 = 2, telux::wlan::HwDeviceType::QCA6595 = 3 }
 

Functions

virtual telux::common::ServiceStatus telux::wlan::IWlanDeviceManager::getServiceStatus ()=0
 
virtual telux::common::ErrorCode telux::wlan::IWlanDeviceManager::enable (bool enable)=0
 
virtual telux::common::ErrorCode telux::wlan::IWlanDeviceManager::setMode (int numOfAp, int numOfSta)=0
 
virtual telux::common::ErrorCode telux::wlan::IWlanDeviceManager::getConfig (int &numAp, int &numSta)=0
 
virtual telux::common::ErrorCode telux::wlan::IWlanDeviceManager::getStatus (bool &isEnabled, std::vector< InterfaceStatus > &status)=0
 
virtual telux::common::ErrorCode telux::wlan::IWlanDeviceManager::registerListener (std::weak_ptr< IWlanListener > listener)=0
 
virtual telux::common::ErrorCode telux::wlan::IWlanDeviceManager::deregisterListener (std::weak_ptr< IWlanListener > listener)=0
 
virtual telux::wlan::IWlanDeviceManager::~IWlanDeviceManager ()
 
virtual void telux::wlan::IWlanListener::onServiceStatusChange (telux::common::ServiceStatus status)
 
virtual void telux::wlan::IWlanListener::onEnableChanged (bool enable)
 
virtual telux::wlan::IWlanListener::~IWlanListener ()
 

Variables

HwDeviceType telux::wlan::InterfaceStatus::device
 
std::vector< ApStatus > telux::wlan::InterfaceStatus::apStatus
 
std::vector< StaStatus > telux::wlan::InterfaceStatus::staStatus
 

Detailed Description

This section contains APIs related to device configuration management, such as the number of access points and stations enabled, WLAN enable/disable, etc


Data Structure Documentation

struct telux::wlan::ApInfo

AP Info - captures ap type (private/guest)

Data Fields
ApType apType

Ap type (private/guest)

struct telux::wlan::ApNetInfo

Ap Network Info

Data Fields
ApInfo info

Ap information (AP type)

struct telux::wlan::ApStatus

AP Status for enabled Networks

Data Fields
Id id

AP id

string name

AP network interface name

string ipv4Address

Local AP IP V4 address

string macAddress

AP MAC address

vector< ApNetInfo > network

Settings for AP info

struct telux::wlan::StaStatus

Station Status

Data Fields
Id id

Station Id

string name

Network interface name

string ipv4Address

Public IP V4 address

string ipv6Address

Public IP V6 address

string macAddress

MAC address

StaInterfaceStatus status

Interface status

struct telux::wlan::InterfaceStatus

Wlan Interface status

Data Fields
HwDeviceType device
vector< ApStatus > apStatus

WiFi hardware type

Vector of active APs status

vector< StaStatus > staStatus

Vector of active Sta status

class telux::wlan::IWlanDeviceManager

WlanDeviceManager is a primary interface for configuring Wireless LAN. it provide APIs to enable, configure, activate, and modify modes.

Public Member Functions

virtual telux::common::ServiceStatus getServiceStatus ()=0
 
virtual telux::common::ErrorCode enable (bool enable)=0
 
virtual telux::common::ErrorCode setMode (int numOfAp, int numOfSta)=0
 
virtual telux::common::ErrorCode getConfig (int &numAp, int &numSta)=0
 
virtual telux::common::ErrorCode getStatus (bool &isEnabled, std::vector< InterfaceStatus > &status)=0
 
virtual telux::common::ErrorCode registerListener (std::weak_ptr< IWlanListener > listener)=0
 
virtual telux::common::ErrorCode deregisterListener (std::weak_ptr< IWlanListener > listener)=0
 
virtual ~IWlanDeviceManager ()
 
class telux::wlan::IWlanListener

Public Member Functions

virtual void onServiceStatusChange (telux::common::ServiceStatus status)
 
virtual void onEnableChanged (bool enable)
 
virtual ~IWlanListener ()
 
class telux::wlan::WlanFactory

WlanFactory is the central factory to create all wlan classes.

Public Member Functions

virtual std::shared_ptr< IWlanDeviceManagergetWlanDeviceManager (telux::common::InitResponseCb clientCallback=nullptr)=0
 
virtual std::shared_ptr< IApInterfaceManagergetApInterfaceManager ()=0
 
virtual std::shared_ptr< IStaInterfaceManagergetStaInterfaceManager ()=0
 

Static Public Member Functions

static WlanFactorygetInstance ()
 

Protected Member Functions

 WlanFactory ()
 
virtual ~WlanFactory ()
 

Constructor & Destructor Documentation

telux::wlan::WlanFactory::WlanFactory ( )
protected
virtual telux::wlan::WlanFactory::~WlanFactory ( )
protectedvirtual

Member Function Documentation

static WlanFactory& telux::wlan::WlanFactory::getInstance ( )
static

Get Wlan Factory instance.

virtual std::shared_ptr<IWlanDeviceManager> telux::wlan::WlanFactory::getWlanDeviceManager ( telux::common::InitResponseCb  clientCallback = nullptr)
pure virtual

Get Wlan Device Manager

Parameters
[in]clientCallbackOptional callback to get the initialization status of WlanDeviceManager telux::common::InitResponseCb
Returns
instance of IWlanDeviceManager
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual std::shared_ptr<IApInterfaceManager> telux::wlan::WlanFactory::getApInterfaceManager ( )
pure virtual

Get Access Point Interface Manager

Returns
instance of IApInterfaceManager
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual std::shared_ptr<IStaInterfaceManager> telux::wlan::WlanFactory::getStaInterfaceManager ( )
pure virtual

Get Station Interface Manager

Returns
instance of IStaInterfaceManager
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.

Enumeration Type Documentation

enum telux::wlan::BandType
strong

Radio Band Types:

Enumerator
BAND_5GHZ 
BAND_2GHZ 

Connection Status

Enumerator
UNKNOWN 

Device connection is unknown

CONNECTED 

Device is connected

DISCONNECTED 

Device is disconnected

enum telux::wlan::Id
strong

Identifiers for Ap, Sta, P2p

Enumerator
PRIMARY 
SECONDARY 
TERTIARY 
QUATERNARY 
enum telux::wlan::ApType
strong

AP Types:

Enumerator
UNKNOWN 
PRIVATE 
GUEST 

Station Interface Status

Enumerator
UNKNOWN 

Station interface is unknown

CONNECTING 

Station interface is connecting

CONNECTED 

Station interface is connected

DISCONNECTED 

Station interface is disconnected

ASSOCIATION_FAILED 

Station is unable to associate with AP

IP_ASSIGNMENT_FAILED 

Station in unable to get IP address via DHCP

This applies in architectures where the modem is attached to an External Application Processor(EAP). An API that sets or configure Wlan can be invoked from the EAP or from the modems Internal Application Processor (IAP). This type specifies where the operation should be carried out.

Enumerator
WLAN_LOCAL 

Perform the operation on the processor where the API is invoked.

WLAN_REMOTE 

Perform the operation on the application processor other than where the API is invoked.

Preferred IP family for the connection

Enumerator
UNKNOWN 
IPV4 

IPv4 data connection

IPV6 

IPv6 data connection

IPV4V6 

IPv4 and IPv6 data connection

Service operations to be performed

Enumerator
STOP 

Stop service

START 

Start service

RESTART 

Restart service

Wlan Interface State

Enumerator
INACTIVE 

Interface is Inactive

ACTIVE 

Interface is Active

Wlan Interface Device

Enumerator
UNKNOWN 

Wlan device is Unknown

QCA6574 

Wlan device is QCA6574

QCA6696 

Wlan device is QCA6696

QCA6595 

Wlan device is QCA6595

Function Documentation

virtual telux::common::ServiceStatus telux::wlan::IWlanDeviceManager::getServiceStatus ( )
pure virtual

Checks the readiness status of wlan manager and returns the result.

Returns
SERVICE_AVAILABLE - If wlan manager is ready for service. SERVICE_UNAVAILABLE - If wlan manager is temporarily unavailable. SERVICE_FAILED - If wlan manager encountered an irrecoverable failure.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::ErrorCode telux::wlan::IWlanDeviceManager::enable ( bool  enable)
pure virtual

Enable or Disable Wlan Service. Configurations set by telux::wlan::IWlanDeviceManager::setMode must be completed before enabling Wlan. If any of configurations need to be changed after Wlan is enabled, this API must be called with enable set to false followed by a call with enable set to true for the new configurations to take effect. Calling this API with enable, will start hostapd and wpa_supplicant daemons. Further changes to hostapd and wpa_supplicant will require calling telux::wlan::IApInterfaceManager::manageApService and telux::wlan::IStaInterfaceManager::manageStaService respectively. Client shall wait for IWlanListener::onEnableChanged indication to confirm WLAN was enabled/disabled successfully

On platforms with Access control enabled, Caller needs to have TELUX_WLAN_DEVICE_CONFIG permission to invoke this API successfully.

Parameters
[in]enabletrue : Enable Wlan, false: Disable Wlan.
Returns
operation error code (if any). telux::common::ErrorCode
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::ErrorCode telux::wlan::IWlanDeviceManager::setMode ( int  numOfAp,
int  numOfSta 
)
pure virtual

Set Wlan mode - number of supported APs, and stations. This API shall be called when wlan is disabled. On enablement, wlan will enable APs and Stations set in this API.

Parameters
[in]numOfApNum of Access Points to be enabled. If no Access Point is enabled, this argument should be set to 0. Configuration of each AP is accomplished through telux::data::wlan::IApManager instance requested from factory.
[in]numOfStaNum of Stations to be enabled. If no station is enabled, this argument should be set to 0. Configuration of each Station is accomplished through telux::data::wlan::IStaManager instance requested from factory.

On platforms with Access control enabled, Caller needs to have TELUX_WLAN_DEVICE_CONFIG permission to invoke this API successfully.

Returns
operation error code (if any). telux::common::ErrorCode.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::ErrorCode telux::wlan::IWlanDeviceManager::getConfig ( int &  numAp,
int &  numSta 
)
pure virtual

Request Wlan configuration: Returns the configuration that was set using telus::wlan::IWlanDeviceManager::setMode. This might differ from what configuration is has actually been enabled in the system, for instance, when the hardware cannot fully support the configuration that was set. To get the status of current configuration an Wlan enablement, telux::wlan::IWlanDeviceManager::getStatus should be used.

Parameters
[in]numApNum of configured APs
[in]numStaNum of configured Stations
Returns
operation error code (if any). telux::common::ErrorCode
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
virtual telux::common::ErrorCode telux::wlan::IWlanDeviceManager::getStatus ( bool &  isEnabled,
std::vector< InterfaceStatus > &  status 
)
pure virtual

Request Wlan status: Return Wlan enablement status and Interface status of APs and Station such as active/inactive, network interface name and hardware device they are mapped to. Results are valid only if Wlan is enabled.

Parameters
[in]isEnabledtrue: Wlan is enabled. false: Wlan is Disabled.
[in]statusvector of interface status InterfaceStatus.
Returns
operation error code (if any). telux::common::ErrorCode
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
virtual telux::common::ErrorCode telux::wlan::IWlanDeviceManager::registerListener ( std::weak_ptr< IWlanListener listener)
pure virtual

Register a listener for specific events in the Wlan Manager

Parameters
[in]listenerpointer of IWlanListener object that processes the notification
Returns
Status of registerListener success or suitable status code
virtual telux::common::ErrorCode telux::wlan::IWlanDeviceManager::deregisterListener ( std::weak_ptr< IWlanListener listener)
pure virtual

Removes a previously added listener.

Parameters
[in]listenerpointer of IWlanListener object that needs to be removed
Returns
Status of deregisterListener success or suitable status code
virtual telux::wlan::IWlanDeviceManager::~IWlanDeviceManager ( )
virtual

Destructor for IWlanDeviceManager

virtual void telux::wlan::IWlanListener::onServiceStatusChange ( telux::common::ServiceStatus  status)
virtual

This function is called when service status changes.

Parameters
[in]status- ServiceStatus
virtual void telux::wlan::IWlanListener::onEnableChanged ( bool  enable)
virtual

This function is called when Wlan enablement has changed

Parameters
[in]enableTrue: Wlan is enabled, False: Wlan is disabled
virtual telux::wlan::IWlanListener::~IWlanListener ( )
virtual

Variable Documentation

HwDeviceType telux::wlan::InterfaceStatus::device
std::vector<ApStatus> telux::wlan::InterfaceStatus::apStatus

WiFi hardware type

Vector of active APs status

std::vector<StaStatus> telux::wlan::InterfaceStatus::staStatus

Vector of active Sta status