enum  sl_bt_gap_address_type_t { sl_bt_gap_public_address = 0x0, sl_bt_gap_static_address = 0x1, sl_bt_gap_random_resolvable_address = 0x2, sl_bt_gap_random_nonresolvable_address = 0x3 }
 These values define Bluetooth device address types.
enum  sl_bt_gap_phy_t { sl_bt_gap_phy_1m = 0x1, sl_bt_gap_phy_2m = 0x2, sl_bt_gap_phy_coded = 0x4, sl_bt_gap_phy_any = 0xff }
 Types of PHYs.
enum  sl_bt_gap_phy_coding_t { sl_bt_gap_phy_coding_1m_uncoded = 0x1, sl_bt_gap_phy_coding_2m_uncoded = 0x2, sl_bt_gap_phy_coding_125k_coded = 0x4, sl_bt_gap_phy_coding_500k_coded = 0x8 }
 PHY types with coding schemes.


sl_status_t sl_bt_gap_set_privacy_mode (uint8_t privacy, uint8_t interval)
sl_status_t sl_bt_gap_set_data_channel_classification (size_t channel_map_len, const uint8_t *channel_map)
sl_status_t sl_bt_gap_enable_whitelisting (uint8_t enable)
sl_status_t sl_bt_gap_set_identity_address (bd_addr address, uint8_t addr_type)

Detailed Description


The commands and events in this class are related to the Generic Access Profile (GAP) in Bluetooth.

Enumeration Type Documentation

◆ sl_bt_gap_address_type_t

These values define Bluetooth device address types.


(0x0) Public device address


(0x1) Static device address


(0x2) Resolvable private random address


(0x3) Non-resolvable private random address

◆ sl_bt_gap_phy_t

Types of PHYs.


(0x1) 1M PHY


(0x2) 2M PHY


(0x4) Coded PHY, 125k (S=8) or 500k (S=2)


(0xff) Any PHYs the device supports

◆ sl_bt_gap_phy_coding_t

PHY types with coding schemes.


(0x1) 1M PHY


(0x2) 2M PHY


(0x4) 125k Coded PHY (S=8)


(0x8) 500k Coded PHY (S=2)

Function Documentation

◆ sl_bt_gap_set_privacy_mode()

sl_status_t sl_bt_gap_set_privacy_mode ( uint8_t  privacy,
uint8_t  interval 

Enable or disable the privacy feature on all GAP roles. New privacy mode will take effect for advertising next time advertising is enabled, for scanning next time scanning is enabled, and for initiating on the next open connection command.

When privacy is enabled and the device is advertising or scanning, the stack will maintain a periodic timer with the specified time interval as a timeout value. At each timeout, the stack generates a new resolvable private address and uses it in scanning requests. For advertisers, the stack generates a new resolvable or non-resolvable private address and uses it in advertising data packets for each advertising set if its address is not application-managed, i.e., the address was not set by the application (with the sl_bt_advertiser_set_random_address command). The application is fully responsible for application-managed advertiser addresses. For an application-managed resolvable private address, the application should schedule periodic address updates for enhancing the privacy. It is recommended to use different schedules for different advertising sets.

Disabling the privacy during active advertising or scanning is not allowed.

By default, privacy feature is disabled.

  • 0: Disable privacy
  • 1: Enable privacy
[in]intervalThe minimum time interval between a private address change. This parameter is ignored if this command is issued to disable privacy mode. Values:
  • 0: Use default interval, 15 minutes
  • others: The time interval in minutes
SL_STATUS_OK if successful. Error code otherwise.

◆ sl_bt_gap_set_data_channel_classification()

sl_status_t sl_bt_gap_set_data_channel_classification ( size_t  channel_map_len,
const uint8_t *  channel_map 

Specify a channel classification for data channels. This classification persists until overwritten with a subsequent command or until the system is reset. The value length of channel_map must be 5 bytes.

[in]channel_map_lenLength of data in channel_map

5 byte bit field in little endian format. Only the first 37 bits are used. Bit 0 of the first byte is channel 0, bit 0 of the second byte is channel 8 etc. Bits 37-39 are reserved for future use and must be set to 0.

A channel is bad when its bit is 0. A channel is unknown when its bit is 1. At least two channels shall be marked as unknown.

SL_STATUS_OK if successful. Error code otherwise.

◆ sl_bt_gap_enable_whitelisting()

sl_status_t sl_bt_gap_enable_whitelisting ( uint8_t  enable)

Enable or disable accept list filtering. The setting will be effective the next time that scanning is enabled. Use command sl_bt_sm_add_to_whitelist to add devices to the accept list.

When the built-in bonding database (bluetooth_feature_builtin_bonding_database) is used, bonded devices are added into the accept list automatically by the stack. Note that the Bluetooth stack uses the built-in bonding database by default.

When the application specifically uses the external bonding database (bluetooth_feature_external_bonding_database), the application is fully responsible for managing the accept list using sl_bt_sm_add_to_whitelist and sl_bt_sm_delete_bondings commands.

[in]enable1 enable, 0 disable accept list filtering.
SL_STATUS_OK if successful. Error code otherwise.

◆ sl_bt_gap_set_identity_address()

sl_status_t sl_bt_gap_set_identity_address ( bd_addr  address,
uint8_t  addr_type 

Set the device's Bluetooth identity address to be used in advertising, scanning, connection initiation, and identity address exchange in bonding. The address is stored in RAM only and does not change the identity address in persistent storage. The address can be a public device address or static device address. It will be effective immediately in the next advertising, scanning, connection initiation, and bonding. Error SL_STATUS_INVALID_PARAMETER is returned if the address does not conform to the Bluetooth specification.

Note that advertising sets that have own addresses set by sl_bt_advertiser_set_random_address are not affected by this command, i.e., they will continue to use their own user defined addresses.

[in]addressThe address in little endian format
[in]addr_typeEnum sl_bt_gap_address_type_t. The address type. Values:
  • sl_bt_gap_public_address (0x0): Public device address
  • sl_bt_gap_static_address (0x1): Static device address
SL_STATUS_OK if successful. Error code otherwise.