# WLAN device management

**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

- *group* Telematics\_wlan

    - Enums

- enum BandType

    - Radio Band Types:

*Values:*

- enumerator BAND\_5GHZ

    - 

- enumerator BAND\_2GHZ

    - 

- enumerator BAND\_6GHZ

    -

- enum ConnectionStatus

    - Connection Status

*Values:*

- enumerator UNKNOWN

    - Device connection is unknown

- enumerator CONNECTED

    - Device is connected

- enumerator DISCONNECTED

    - Device is disconnected

- enum Id

    - Identifiers for Ap, Sta, P2p

*Values:*

- enumerator PRIMARY

    - 

- enumerator SECONDARY

    - 

- enumerator TERTIARY

    - 

- enumerator QUATERNARY

    -

- enum ApType

    - AP Types:

*Values:*

- enumerator UNKNOWN

    - 

- enumerator PRIVATE

    - 

- enumerator GUEST

    -

- enum StaInterfaceStatus

    - Station Interface Status

*Values:*

- enumerator UNKNOWN

    - Station interface is unknown

- enumerator CONNECTING

    - Station interface is connecting

- enumerator CONNECTED

    - Station interface is connected

- enumerator DISCONNECTED

    - Station interface is disconnected

- enumerator ASSOCIATION\_FAILED

    - Station is unable to associate with AP

- enumerator IP\_ASSIGNMENT\_FAILED

    - Station in unable to get IP address via DHCP

- enum StaConnectionStatus

    - Station Connection Status

*Values:*

- enumerator UNKNOWN

    - Station connection status is unknown

- enumerator SUCCESS

    - Station connection attempt was successful

- enumerator INCORRECT\_PSK

    - Station connection attempt failed with incorrect password/passkey

- enumerator AP\_NOT\_FOUND

    - Station connection attempt failed with AP not in range

- enum OperationType

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

*Values:*

- enumerator WLAN\_LOCAL

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

- enumerator WLAN\_REMOTE

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

- enum IpFamilyType

    - Preferred IP family for the connection

*Values:*

- enumerator UNKNOWN

    - 

- enumerator IPV4

    - IPv4 data connection

- enumerator IPV6

    - IPv6 data connection

- enumerator IPV4V6

    - IPv4 and IPv6 data connection

- enum ServiceOperation

    - Service operations to be performed

*Values:*

- enumerator STOP

    - Stop service

- enumerator START

    - Start service

- enumerator RESTART

    - Restart service

- enum InterfaceState

    - Wlan Interface State

*Values:*

- enumerator INACTIVE

    - Interface is Inactive

- enumerator ACTIVE

    - Interface is Active

- enum HwDeviceType

    - Wlan Interface Device

*Values:*

- enumerator UNKNOWN

    - Wlan device is Unknown

- enumerator QCA6574

    - Wlan device is QCA6574

- enumerator QCA6696

    - Wlan device is QCA6696

- enumerator QCA6595

    - Wlan device is QCA6595

- enum DevicePerfState

    - Wlan Device Performance State

*Values:*

- enumerator UNKNOWN

    - Device is in Unknown performance state

- enumerator FULL

    - Device is in full performance state

- enumerator REDUCED

    - Device is in reduced performance state

- enumerator SHUTDOWN

    - Device is shutdown

Functions

- virtual telux::common::[ServiceStatus](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga7063b4a1071b6581022e30b730684e4d.html#_CPPv4N5telux6common13ServiceStatusE) getServiceStatus() = 0

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

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) enable(bool enable) = 0

    - Enable or Disable Wlan Service. Configurations set by [telux::wlan::IWlanDeviceManager::setMode](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00798.html#a00003_1gaa3d74f0dce66f19bdae069278168bff8) must be completed before enabling Wlan.

It is strongly recommended that users configure AP and STA explicitly using the appropriate APIs such as [telux::wlan::IApInterfaceManager::setConfig](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00783.html#a00002_1ga172bd40641526e7e592cea84312c59e8) and [telux::wlan::IStaInterfaceManager::addNetworkConfig](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00791.html#a00028_1gae1fd1072a55640ee7cca5f38be6dbf5d) after setting mode with [telux::wlan::IWlanDeviceManager::setMode](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00798.html#a00003_1gaa3d74f0dce66f19bdae069278168bff8) but before enabling WLAN, rather than relying on default configurations to ensure that the intended settings are applied when WLAN is enabled.

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 set to true will start hostapd and wpa\_supplicant daemons. Further changes to hostapd and wpa\_supplicant will require calling [telux::wlan::IApInterfaceManager::manageApService](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00783.html#a00002_1ga1b88ea91e52335890b87e63a946e5446) and [telux::wlan::IStaInterfaceManager::manageStaService](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00791.html#a00028_1gaf655773ea2f0d89324e0624142bf30e3) respectively. Client shall wait for [IWlanListener::onEnableChanged](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00799.html#a00003_1ga47e80a8780c2648ce9c9a50f8be32981) 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:

    - **enable** – **[in]** true : Enable Wlan, false: Disable Wlan.

- Returns:

    - operation error code (if any). [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) setMode(int numOfAp, int numOfSta) = 0

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

On platforms with Access control enabled, Caller needs to have TELUX\_WLAN\_DEVICE\_CONFIG permission to invoke this API successfully.

- Parameters:

    - - **numOfAp** – **[in]** Num 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.
- **numOfSta** – **[in]** Num 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.

- Returns:

    - operation error code (if any). [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d).

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) getConfig(int &numAp, int &numSta) = 0

    - Request Wlan configuration: Returns the configuration that was set using [telux::wlan::IWlanDeviceManager::setMode](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00798.html#a00003_1gaa3d74f0dce66f19bdae069278168bff8). This might differ from the configuration that is actually enabled in the system, for instance, when the hardware cannot fully support the configuration that was set. To get the status of the current configuration on Wlan enablement, [telux::wlan::IWlanDeviceManager::getStatus](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00798.html#a00003_1gabe26449feb833bbf1a4a0ac544340e89) should be used.

- Parameters:

    - - **numAp** – **[in]** Num of configured APs
- **numSta** – **[in]** Num of configured Stations

- Returns:

    - operation error code (if any). [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) getStatus(bool &isEnabled, std::vector&lt;InterfaceStatus&gt; &status) = 0

    - 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:

    - - **isEnabled** – **[in]** true: Wlan is enabled. false: Wlan is Disabled.
- **status** – **[in]** vector of interface status [InterfaceStatus](https://docs.qualcomm.com/doc/80-PF458-8/topic/wlan_device_management.html#a00796).

- Returns:

    - operation error code (if any). [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) setActiveCountry(std::string country) = 0

    - Set the country in which the device is operating. The country code will be used to make the device operate using the regulatory parameters pertaining to the active country

On platforms with Access control enabled, Caller needs to have TELUX\_WLAN\_DEVICE\_CONFIG permission to invoke this API successfully.

- Parameters:

    - **country** – **[in]** Active country code according to ISO 3166 alpha-2 standard

- Returns:

    - operation error code (if any). [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) getRegulatoryParams(RegulatoryParams &regulatoryParams) = 0

    - Request Regulatory Parameters

This API can only be successfully invoked when at least one WLAN interface is in operational state. Specifically, when at least one of the configured access point is active, or the configured station interface is connected to an external access point.

- Parameters:

    - **regulatoryParams** – **[out]** Current Regulatory Settings [RegulatoryParams](https://docs.qualcomm.com/doc/80-PF458-8/topic/wlan_device_management.html#a00797).

- Returns:

    - operation error code (if any). [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) setTxPower(uint32\_t txPowerMw) = 0

    - Set Transmit Power

Immediately changes WLAN transmit power for the current session. This setting is not persistent across power cycles or service restarts.

This API can only be successfully invoked when at least one WLAN interface is in operational state. Specifically, when at least one of the configured access point is active, or the configured station interface is connected to an external access point.

This requirement exists because the underlying driver or firmware applies transmit power settings only when the interface is fully initialized and actively handling traffic.

To restore the default transmit power as defined by the regulatory domain associated with the active country set by [telux::wlan::IWlanDeviceManager::setActiveCountry](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00798.html#a00003_1gac9097b677fc2ff1adaf9fe635c2af7ec), either hostapd or wpa\_supplicant daemons need to be restarted via [telux::wlan::IApInterfaceManager::manageApService](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00783.html#a00002_1ga1b88ea91e52335890b87e63a946e5446) or [telux::wlan::IStaInterfaceManager::manageStaService](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00791.html#a00028_1gaf655773ea2f0d89324e0624142bf30e3).

On platforms with Access control enabled, Caller needs to have TELUX\_WLAN\_DEVICE\_CONFIG permission to invoke this API successfully.

- Parameters:

    - **txPowerMw** – **[in]** Transmit Power to be set in multiple of 100 milliwatts. For instance, if txPowerMw equals 15, transmit power will be set to 1500 milliwatts.

- Returns:

    - operation error code (if any). [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) getTxPower(uint32\_t &txPowerMw) = 0

    - Request Transmit Power

The transmit power value retrieved may not always match the value set using [telux::wlan::IWlanDeviceManager::setTxPower](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00798.html#a00003_1ga67354b70990bc3ce0f28e27970f7989c). This is expected behaviour, as the actual transmit power is determined based on multiple internal constraints. These constraints ensure compliance with platform specific and regulatory requirements. As a result, the value returned by the API will always be less than or equal to the value set using the [telux::wlan::IWlanDeviceManager::setTxPower](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00798.html#a00003_1ga67354b70990bc3ce0f28e27970f7989c) API.

This API can only be successfully invoked when at least one WLAN interface is in operational state. Specifically, when at least one of the configured access point is active, or the configured station interface is connected to an external access point.

This restriction exists because the driver or firmware provides transmit power information only when an interface is fully initialized and actively transmitting or receiving data.

- Parameters:

    - **txPowerMw** – **[out]** Current Transmit Power in multiple of 100 milliwatts.

- Returns:

    - operation error code (if any). [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) registerListener(std::weak\_ptr&lt;IWlanListener&gt; listener) = 0

    - Register a listener for specific events in the Wlan Manager

- Parameters:

    - **listener** – **[in]** pointer of [IWlanListener](https://docs.qualcomm.com/doc/80-PF458-8/topic/wlan_device_management.html#a00799) object that processes the notification

- Returns:

    - Status of registerListener success or suitable status code

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) deregisterListener(std::weak\_ptr&lt;IWlanListener&gt; listener) = 0

    - Removes a previously added listener.

- Parameters:

    - **listener** – **[in]** pointer of [IWlanListener](https://docs.qualcomm.com/doc/80-PF458-8/topic/wlan_device_management.html#a00799) object that needs to be removed

- Returns:

    - Status of deregisterListener success or suitable status code

- inline virtual ~IWlanDeviceManager()

    - Destructor for [IWlanDeviceManager](https://docs.qualcomm.com/doc/80-PF458-8/topic/wlan_device_management.html#a00798)

- inline virtual void onServiceStatusChange(telux::common::[ServiceStatus](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga7063b4a1071b6581022e30b730684e4d.html#_CPPv4N5telux6common13ServiceStatusE) status)

    - This function is called when service status changes.

- Parameters:

    - **status** – **[in]** - ServiceStatus

- inline virtual void onTempCrossed(float temperature, [DevicePerfState](https://docs.qualcomm.com/doc/80-PF458-8/topic/wlan_device_management.html#_CPPv415DevicePerfState) perfState)

    - This function is called when temperature has crossed threshold

- Parameters:

    - - **temperature** – **[in]** - current device temperature in Fahrenheit
- **perfState** – **[in]** - current performance state of device due to device temperature

- inline virtual void onEnableChanged(bool enable)

    - This function is called when Wlan enablement has changed

- Parameters:

    - **enable** – **[in]** True: Wlan is enabled, False: Wlan is disabled

- inline virtual ~IWlanListener()

    -

Variables

- [HwDeviceType](https://docs.qualcomm.com/doc/80-PF458-8/topic/wlan_device_management.html#_CPPv412HwDeviceType) device

    - 

- std::vector&lt;ApStatus&gt; apStatus

    - > 
> 
> WiFi hardware type

Vector of active APs status

- std::vector&lt;StaStatus&gt; staStatus

    - Vector of active Sta status

- std::string country

    - Country code according to ISO 3166 alpha-2 standard

- float opChannel

    - Operating channel according to IEEE 802.11 Standards

- std::vector&lt;float&gt; opClass

    - Operating class according to IEEE 802.11 Standards

- uint32\_t txPowerMw

    - Transmit power in multiple of 100 MilliWatts
    Copy to clipboard

 Actual transmit power = value set here \* 100 milliwatts

- struct ApInfo

    - AP Info - captures ap type (private/guest)

Public Members

- [BandType](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00003_1ga6880eb6b46f211d4e68f217e977f5bde.html#_CPPv4N5telux4wlan8BandTypeE) apRadio

    - Radio type (2.4/5.0/6.0 GHz)

- [ApType](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00003_1gafd4696a2327cd0dac37632281b652cef.html#_CPPv4N5telux4wlan6ApTypeE) apType

    - Ap type (private/guest)

- struct ApNetInfo

    - Ap Network Info

Public Members

- [ApInfo](https://docs.qualcomm.com/doc/80-PF458-8/topic/struct_a00779.html#_CPPv4N5telux4wlan6ApInfoE) info

    - Ap information (AP type)

- std::string ssid

    - SSID associated with this network

- struct ApStatus

    - AP Status for enabled Networks

Public Members

- [Id](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00003_1ga242a7978aad8f8b802d953873f0742ef.html#_CPPv4N5telux4wlan2IdE) id

    - AP id

- std::string name

    - AP network interface name

- std::string ipv4Address

    - Local AP IP V4 address

- std::string macAddress

    - AP MAC address

- std::vector&lt;[ApNetInfo](https://docs.qualcomm.com/doc/80-PF458-8/topic/struct_a00793.html#_CPPv4N5telux4wlan9ApNetInfoE)&gt; network

    - Settings for AP info

- struct StaStatus

    - Station Status

Public Members

- [Id](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00003_1ga242a7978aad8f8b802d953873f0742ef.html#_CPPv4N5telux4wlan2IdE) id

    - Station Id

- std::string name

    - Network interface name

- std::string ipv4Address

    - Public IP V4 address

- std::string ipv6Address

    - Public IP V6 address

- std::string macAddress

    - MAC address

- [StaInterfaceStatus](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00003_1ga199460ae32f865686c593eeb4c8f9bf0.html#_CPPv4N5telux4wlan18StaInterfaceStatusE) status

    - Interface status

- [StaConnectionStatus](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00003_1gafe089038d349dffef7b4457d8783ce04.html#_CPPv4N5telux4wlan19StaConnectionStatusE) connectionStatus

    - Station connection status

- struct InterfaceStatus

    - Wlan Interface status

Public Members

- [HwDeviceType](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00003_1ga5164da896194dbe5274c1fb01678e205.html#_CPPv4N5telux4wlan12HwDeviceTypeE) device

    - 

- std::vector&lt;[ApStatus](https://docs.qualcomm.com/doc/80-PF458-8/topic/struct_a00794.html#_CPPv4N5telux4wlan8ApStatusE)&gt; apStatus

    - > 
> 
> WiFi hardware type

Vector of active APs status

- std::vector&lt;[StaStatus](https://docs.qualcomm.com/doc/80-PF458-8/topic/struct_a00795.html#_CPPv4N5telux4wlan9StaStatusE)&gt; staStatus

    - Vector of active Sta status

- struct RegulatoryParams

    - Wlan Regulatory Setting

Public Members

- std::string country

    - Country code according to ISO 3166 alpha-2 standard

- float opChannel

    - Operating channel according to IEEE 802.11 Standards

- std::vector&lt;float&gt; opClass

    - Operating class according to IEEE 802.11 Standards

- uint32\_t txPowerMw

    - Transmit power in multiple of 100 MilliWatts
    Copy to clipboard

 Actual transmit power = value set here \* 100 milliwatts

- class IWlanDeviceManager

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

Public Functions

- virtual telux::common::[ServiceStatus](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga7063b4a1071b6581022e30b730684e4d.html#_CPPv4N5telux6common13ServiceStatusE) getServiceStatus() = 0

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

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) enable(bool enable) = 0

    - Enable or Disable Wlan Service. Configurations set by [telux::wlan::IWlanDeviceManager::setMode](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00798.html#a00003_1gaa3d74f0dce66f19bdae069278168bff8) must be completed before enabling Wlan.

It is strongly recommended that users configure AP and STA explicitly using the appropriate APIs such as [telux::wlan::IApInterfaceManager::setConfig](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00783.html#a00002_1ga172bd40641526e7e592cea84312c59e8) and [telux::wlan::IStaInterfaceManager::addNetworkConfig](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00791.html#a00028_1gae1fd1072a55640ee7cca5f38be6dbf5d) after setting mode with [telux::wlan::IWlanDeviceManager::setMode](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00798.html#a00003_1gaa3d74f0dce66f19bdae069278168bff8) but before enabling WLAN, rather than relying on default configurations to ensure that the intended settings are applied when WLAN is enabled.

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 set to true will start hostapd and wpa\_supplicant daemons. Further changes to hostapd and wpa\_supplicant will require calling [telux::wlan::IApInterfaceManager::manageApService](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00783.html#a00002_1ga1b88ea91e52335890b87e63a946e5446) and [telux::wlan::IStaInterfaceManager::manageStaService](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00791.html#a00028_1gaf655773ea2f0d89324e0624142bf30e3) respectively. Client shall wait for [IWlanListener::onEnableChanged](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00799.html#a00003_1ga47e80a8780c2648ce9c9a50f8be32981) 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:

    - **enable** – **[in]** true : Enable Wlan, false: Disable Wlan.

- Returns:

    - operation error code (if any). [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) setMode(int numOfAp, int numOfSta) = 0

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

On platforms with Access control enabled, Caller needs to have TELUX\_WLAN\_DEVICE\_CONFIG permission to invoke this API successfully.

- Parameters:

    - - **numOfAp** – **[in]** Num 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.
- **numOfSta** – **[in]** Num 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.

- Returns:

    - operation error code (if any). [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d).

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) getConfig(int &numAp, int &numSta) = 0

    - Request Wlan configuration: Returns the configuration that was set using [telux::wlan::IWlanDeviceManager::setMode](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00798.html#a00003_1gaa3d74f0dce66f19bdae069278168bff8). This might differ from the configuration that is actually enabled in the system, for instance, when the hardware cannot fully support the configuration that was set. To get the status of the current configuration on Wlan enablement, [telux::wlan::IWlanDeviceManager::getStatus](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00798.html#a00003_1gabe26449feb833bbf1a4a0ac544340e89) should be used.

- Parameters:

    - - **numAp** – **[in]** Num of configured APs
- **numSta** – **[in]** Num of configured Stations

- Returns:

    - operation error code (if any). [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) getStatus(bool &isEnabled, std::vector&lt;[InterfaceStatus](https://docs.qualcomm.com/doc/80-PF458-8/topic/struct_a00796.html#_CPPv4N5telux4wlan15InterfaceStatusE)&gt; &status) = 0

    - 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:

    - - **isEnabled** – **[in]** true: Wlan is enabled. false: Wlan is Disabled.
- **status** – **[in]** vector of interface status [InterfaceStatus](https://docs.qualcomm.com/doc/80-PF458-8/topic/wlan_device_management.html#a00796).

- Returns:

    - operation error code (if any). [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) setActiveCountry(std::string country) = 0

    - Set the country in which the device is operating. The country code will be used to make the device operate using the regulatory parameters pertaining to the active country

On platforms with Access control enabled, Caller needs to have TELUX\_WLAN\_DEVICE\_CONFIG permission to invoke this API successfully.

- Parameters:

    - **country** – **[in]** Active country code according to ISO 3166 alpha-2 standard

- Returns:

    - operation error code (if any). [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) getRegulatoryParams([RegulatoryParams](https://docs.qualcomm.com/doc/80-PF458-8/topic/struct_a00797.html#_CPPv4N5telux4wlan16RegulatoryParamsE) &regulatoryParams) = 0

    - Request Regulatory Parameters

This API can only be successfully invoked when at least one WLAN interface is in operational state. Specifically, when at least one of the configured access point is active, or the configured station interface is connected to an external access point.

- Parameters:

    - **regulatoryParams** – **[out]** Current Regulatory Settings [RegulatoryParams](https://docs.qualcomm.com/doc/80-PF458-8/topic/wlan_device_management.html#a00797).

- Returns:

    - operation error code (if any). [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) setTxPower(uint32\_t txPowerMw) = 0

    - Set Transmit Power

Immediately changes WLAN transmit power for the current session. This setting is not persistent across power cycles or service restarts.

This API can only be successfully invoked when at least one WLAN interface is in operational state. Specifically, when at least one of the configured access point is active, or the configured station interface is connected to an external access point.

This requirement exists because the underlying driver or firmware applies transmit power settings only when the interface is fully initialized and actively handling traffic.

To restore the default transmit power as defined by the regulatory domain associated with the active country set by [telux::wlan::IWlanDeviceManager::setActiveCountry](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00798.html#a00003_1gac9097b677fc2ff1adaf9fe635c2af7ec), either hostapd or wpa\_supplicant daemons need to be restarted via [telux::wlan::IApInterfaceManager::manageApService](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00783.html#a00002_1ga1b88ea91e52335890b87e63a946e5446) or [telux::wlan::IStaInterfaceManager::manageStaService](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00791.html#a00028_1gaf655773ea2f0d89324e0624142bf30e3).

On platforms with Access control enabled, Caller needs to have TELUX\_WLAN\_DEVICE\_CONFIG permission to invoke this API successfully.

- Parameters:

    - **txPowerMw** – **[in]** Transmit Power to be set in multiple of 100 milliwatts. For instance, if txPowerMw equals 15, transmit power will be set to 1500 milliwatts.

- Returns:

    - operation error code (if any). [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) getTxPower(uint32\_t &txPowerMw) = 0

    - Request Transmit Power

The transmit power value retrieved may not always match the value set using [telux::wlan::IWlanDeviceManager::setTxPower](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00798.html#a00003_1ga67354b70990bc3ce0f28e27970f7989c). This is expected behaviour, as the actual transmit power is determined based on multiple internal constraints. These constraints ensure compliance with platform specific and regulatory requirements. As a result, the value returned by the API will always be less than or equal to the value set using the [telux::wlan::IWlanDeviceManager::setTxPower](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00798.html#a00003_1ga67354b70990bc3ce0f28e27970f7989c) API.

This API can only be successfully invoked when at least one WLAN interface is in operational state. Specifically, when at least one of the configured access point is active, or the configured station interface is connected to an external access point.

This restriction exists because the driver or firmware provides transmit power information only when an interface is fully initialized and actively transmitting or receiving data.

- Parameters:

    - **txPowerMw** – **[out]** Current Transmit Power in multiple of 100 milliwatts.

- Returns:

    - operation error code (if any). [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) registerListener(std::weak\_ptr&lt;[IWlanListener](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00799.html#_CPPv4N5telux4wlan13IWlanListenerE)&gt; listener) = 0

    - Register a listener for specific events in the Wlan Manager

- Parameters:

    - **listener** – **[in]** pointer of [IWlanListener](https://docs.qualcomm.com/doc/80-PF458-8/topic/wlan_device_management.html#a00799) object that processes the notification

- Returns:

    - Status of registerListener success or suitable status code

- virtual telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) deregisterListener(std::weak\_ptr&lt;[IWlanListener](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00799.html#_CPPv4N5telux4wlan13IWlanListenerE)&gt; listener) = 0

    - Removes a previously added listener.

- Parameters:

    - **listener** – **[in]** pointer of [IWlanListener](https://docs.qualcomm.com/doc/80-PF458-8/topic/wlan_device_management.html#a00799) object that needs to be removed

- Returns:

    - Status of deregisterListener success or suitable status code

- inline virtual ~IWlanDeviceManager()

    - Destructor for [IWlanDeviceManager](https://docs.qualcomm.com/doc/80-PF458-8/topic/wlan_device_management.html#a00798)

- class IWlanListener : public telux::common::[ISDKListener](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00046.html#_CPPv4N5telux6common12ISDKListenerE)

    - Public Functions

- inline virtual void onServiceStatusChange(telux::common::[ServiceStatus](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga7063b4a1071b6581022e30b730684e4d.html#_CPPv4N5telux6common13ServiceStatusE) status)

    - This function is called when service status changes.

- Parameters:

    - **status** – **[in]** - ServiceStatus

- inline virtual void onTempCrossed(float temperature, [DevicePerfState](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00003_1ga91d46c89c64b4420f9255d2cac997796.html#_CPPv4N5telux4wlan15DevicePerfStateE) perfState)

    - This function is called when temperature has crossed threshold

- Parameters:

    - - **temperature** – **[in]** - current device temperature in Fahrenheit
- **perfState** – **[in]** - current performance state of device due to device temperature

- inline virtual void onEnableChanged(bool enable)

    - This function is called when Wlan enablement has changed

- Parameters:

    - **enable** – **[in]** True: Wlan is enabled, False: Wlan is disabled

- inline virtual ~IWlanListener()

    -

- class WlanFactory

    - [WlanFactory](https://docs.qualcomm.com/doc/80-PF458-8/topic/wlan_device_management.html#a00800) is the central factory to create all wlan classes.

Public Functions

- virtual std::shared\_ptr&lt;[IWlanDeviceManager](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00798.html#_CPPv4N5telux4wlan18IWlanDeviceManagerE)&gt; getWlanDeviceManager(telux::common::[InitResponseCb](https://docs.qualcomm.com/doc/80-PF458-8/topic/typedef_a00235_1ab92f90010203f914a62cec6bd7af0a1a.html#_CPPv4N5telux6common14InitResponseCbE) clientCallback = nullptr) = 0

    - Get Wlan Device Manager

- Parameters:

    - **clientCallback** – **[in]** Optional callback to get the initialization status of WlanDeviceManager [telux::common::InitResponseCb](https://docs.qualcomm.com/doc/80-PF458-8/topic/typedef_a00235_1ab92f90010203f914a62cec6bd7af0a1a.html#a00235_1ab92f90010203f914a62cec6bd7af0a1a)

- Returns:

    - instance of [IWlanDeviceManager](https://docs.qualcomm.com/doc/80-PF458-8/topic/wlan_device_management.html#a00798)

- virtual std::shared\_ptr&lt;[IApInterfaceManager](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00783.html#_CPPv4N5telux4wlan19IApInterfaceManagerE)&gt; getApInterfaceManager() = 0

    - Get Access Point Interface Manager

- Returns:

    - instance of [IApInterfaceManager](https://docs.qualcomm.com/doc/80-PF458-8/topic/access_point_management.html#a00783)

- virtual std::shared\_ptr&lt;[IStaInterfaceManager](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00791.html#_CPPv4N5telux4wlan20IStaInterfaceManagerE)&gt; getStaInterfaceManager() = 0

    - Get Station Interface Manager

- Returns:

    - instance of [IStaInterfaceManager](https://docs.qualcomm.com/doc/80-PF458-8/topic/station_management.html#a00791)

Public Static Functions

- static [WlanFactory](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00800.html#_CPPv4N5telux4wlan11WlanFactoryE) &getInstance()

    - Get Wlan Factory instance.

Protected Functions

- WlanFactory()

    - 

- virtual ~WlanFactory()

    -

Private Functions

- WlanFactory(const [WlanFactory](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00800.html#_CPPv4N5telux4wlan11WlanFactory11WlanFactoryERK11WlanFactory)&) = delete

    - 

- [WlanFactory](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00800.html#_CPPv4N5telux4wlan11WlanFactoryE) &operator=(const [WlanFactory](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00800.html#_CPPv4N5telux4wlan11WlanFactoryE)&) = delete

    -

Last Published: May 20, 2026

[Previous Topic
WLAN](https://docs.qualcomm.com/bundle/publicresource/80-PF458-8/topics/wlan.md) [Next Topic
Access point management](https://docs.qualcomm.com/bundle/publicresource/80-PF458-8/topics/access_point_management.md)