GAP#

Modules#

rsi_ble_set_smp_pairing_capabilty_data

rsi_ble_resp_read_phy_s

rsi_ble_resp_read_max_data_length_s

Functions#

int32_t

Request the local device to set a random address.

int32_t

Request the local device to set a given random address.

int32_t

Request the local device to start advertising.

int32_t

Request the local device to start advertising with specified values.

int32_t
rsi_ble_encrypt(uint8_t *key, uint8_t *data, uint8_t *resp)

Encrypt the plain text data fed by the user using the key provided.

int32_t

Stop advertising.

int32_t
rsi_ble_set_advertise_data(uint8_t *data, uint16_t data_len)

Set the advertising data.

int32_t
rsi_ble_set_scan_response_data(uint8_t *data, uint16_t data_len)

Request the local device to set the scan response data.

int32_t

Start scanning.

int32_t
rsi_ble_start_scanning_with_values(void *rsi_ble_scan_params)

Start scanning with values.

int32_t

Stop scanning.

int32_t
rsi_ble_connect_with_params(uint8_t remote_dev_addr_type, int8_t *remote_dev_addr, uint16_t scan_interval, uint16_t scan_window, uint16_t conn_interval_max, uint16_t conn_interval_min, uint16_t conn_latency, uint16_t supervision_tout)

Connect to the remote BLE device with the user configured parameters.

int32_t
rsi_ble_connect(uint8_t remote_dev_addr_type, int8_t *remote_dev_addr)

Connect to the remote BLE device.

int32_t
rsi_ble_enhance_connect_with_params(void *ble_enhance_conn_params)

Connect to the remote BLE device with the user configured parameters.

int32_t
rsi_ble_connect_cancel(int8_t *remote_dev_address)

Cancel the connection to the remote BLE device.

int32_t
rsi_ble_disconnect(int8_t *remote_dev_address)

Disconnect with the remote BLE device.

int32_t

Get the local device state.

int32_t
rsi_ble_set_smp_pairing_cap_data(rsi_ble_set_smp_pairing_capabilty_data_t *smp_pair_cap_data)

Set the SMP Pairing Capability of local device.

int32_t

Set the IRK value to the local device.

int32_t
rsi_ble_conn_param_resp(uint8_t *remote_dev_address, uint8_t status)

Give the response for the remote device connection parameter request.

int32_t
rsi_ble_smp_pair_request(uint8_t *remote_dev_address, uint8_t io_capability, uint8_t mitm_req)

Request the SMP pairing process with the remote device.

int32_t
rsi_ble_smp_pair_failed(uint8_t *remote_dev_address, uint8_t reason)

Send SMP pairing failure reason to the remote device.

int32_t
rsi_ble_ltk_req_reply(uint8_t *remote_dev_address, uint8_t reply_type, uint8_t *ltk)

Send the local long term key of its associated local EDIV and local Rand.

int32_t
rsi_ble_smp_pair_response(uint8_t *remote_dev_address, uint8_t io_capability, uint8_t mitm_req)

Send SMP pairing response during the process of pairing with the remote device.

int32_t
rsi_ble_smp_passkey(uint8_t *remote_dev_address, uint32_t passkey)

Send SMP passkey during SMP pairing process with the remote device.

int32_t
rsi_ble_get_le_ping_timeout(uint8_t *remote_dev_address, uint16_t *time_out)

Get the timeout value of the LE ping.

int32_t
rsi_ble_set_le_ping_timeout(uint8_t *remote_dev_address, uint16_t time_out)

Set the timeout value of the LE ping.

int32_t

Clear all the BD address present in accept list.

int32_t
rsi_ble_addto_acceptlist(int8_t *dev_address, uint8_t dev_addr_type)

Add BD address to accept list.

int32_t
rsi_ble_deletefrom_acceptlist(int8_t *dev_address, uint8_t dev_addr_type)

Delete particular BD address from accept list.

int32_t
rsi_ble_resolvlist(uint8_t process_type, uint8_t remote_dev_addr_type, uint8_t *remote_dev_address, uint8_t *peer_irk, uint8_t *local_irk)

resolvlist API used for multiple purpose based on the process type.

int32_t

Request to get resolving list size.

int32_t
rsi_ble_set_addr_resolution_enable(uint8_t enable, uint16_t tout)

Request to enable address resolution, and to set resolvable private address timeout.

int32_t
rsi_ble_set_privacy_mode(uint8_t remote_dev_addr_type, uint8_t *remote_dev_address, uint8_t privacy_mode)

Request to set privacy mode for particular device.

int32_t
rsi_ble_readphy(int8_t *remote_dev_address, rsi_ble_resp_read_phy_t *resp)

Reads the TX and RX PHY rates of the Connection.

int32_t
rsi_ble_setphy(int8_t *remote_dev_address, uint8_t tx_phy, uint8_t rx_phy, uint16_t coded_phy)

Set TX and RX PHY.

int32_t
rsi_ble_conn_params_update(uint8_t *remote_dev_address, uint16_t min_int, uint16_t max_int, uint16_t latency, uint16_t timeout)

Requests the connection parameters change with the remote device.

int32_t
rsi_ble_set_data_len(uint8_t *remote_dev_address, uint16_t tx_octets, uint16_t tx_time)

Sets the TX octets and the TX time of specified link (remote device connection).

int32_t
rsi_ble_read_max_data_len(rsi_ble_read_max_data_length_t *blereaddatalen)

reads the max supported values of TX octets, TX time, RX octets and Rx time.

int32_t
rsi_ble_accept_list_using_adv_data(uint8_t enable, uint8_t data_compare_index, uint8_t len_for_compare_data, uint8_t *payload)

Give vendor-specific command to set the acceptlist feature based on the advertisers advertising payload.

void
BT_LE_ADPacketExtract(uint8_t *remote_name, uint8_t *pbuf, uint8_t buf_len)

Used to extract remote Bluetooth device name from the received advertising report.

int32_t
rsi_ble_start_encryption(uint8_t *remote_dev_address, uint16_t ediv, uint8_t *rand, uint8_t *ltk)

Start the encryption process with the remote device.

int32_t
rsi_ble_set_ble_tx_power(uint8_t role, uint8_t *remote_dev_address, int8_t tx_power)

Set the TX power value per GAP role.

int32_t

Get maximum advertising data length.

int32_t

Get maximum number of advertising sets.

int32_t
rsi_ble_set_ae_set_random_address(uint8_t handle, uint8_t *rand_addr)

Update AE random address.

int32_t
rsi_ble_set_ae_data(void *ble_ae_data)

Update AE advertiser data.

int32_t
rsi_ble_set_ae_params(void *ble_ae_params, int8_t *sel_tx_pwr)

Update AE parameters.

int32_t

Enable or disable AE advertising.

int32_t
rsi_ble_app_adv_set_clear_or_remove(uint8_t type, uint8_t handle)

Clear or remove an advertising set.

int32_t
rsi_ble_app_set_periodic_ae_params(void *periodic_adv_params)

Update periodic AE parameters.

int32_t
rsi_ble_app_set_periodic_ae_enable(uint8_t enable, uint8_t handle)

Enable or disable periodic advertising.

int32_t
rsi_ble_ae_set_scan_params(void *ae_scan_params)

Update AE scan parameters.

int32_t
rsi_ble_ae_set_scan_enable(void *ae_scan_enable)

Enable or disable legacy and extended scanning.

int32_t
rsi_ble_ae_set_periodic_sync(uint8_t type, void *periodic_sync_data)

Synchronize periodic advertising with advertiser.

int32_t

Manage a device in the periodic advertiser list.

int32_t

Get periodic advertiser list size.

int32_t

Establish ACL connection to advertiser.

int32_t

Get supported transmit power range.

Typedef Documentation#

rsi_ble_set_smp_pairing_capabilty_data_t#

typedef struct rsi_ble_set_smp_pairing_capabilty_data rsi_ble_set_smp_pairing_capabilty_data_t

Definition at line 950 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_resp_read_phy_t#

typedef struct rsi_ble_resp_read_phy_s rsi_ble_resp_read_phy_t

Definition at line 976 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_read_max_data_length_t#

typedef struct rsi_ble_resp_read_max_data_length_s rsi_ble_read_max_data_length_t

Definition at line 1000 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

Function Documentation#

rsi_ble_set_random_address#

int32_t rsi_ble_set_random_address (void )

Request the local device to set a random address.

Parameters
[in]

This is a Blocking API

  • Pre-conditions:

    • Device should be initialized before calling this API.

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • If the return value is less than 0

    • -4 - Buffer not available to serve the command

Note

  • Refer Error Codes section for above error codes error-codes .


Definition at line 1469 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_set_random_address_with_value#

int32_t rsi_ble_set_random_address_with_value (uint8_t * random_addr)

Request the local device to set a given random address.

Parameters
[in]random_addr

- random address of the device to be set

This is a Blocking API

  • Pre-conditions:

    • Device should be initialized before calling this API.

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • If the return value is less than 0

    • -4 - Buffer not available to serve the command

Note

  • Refer Error Codes section for above error codes error-codes .


Definition at line 1488 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_start_advertising#

int32_t rsi_ble_start_advertising (void )

Request the local device to start advertising.

Parameters
[in]

This is a Blocking API

  • A received event rsi_ble_on_enhance_connect_t/ rsi_ble_on_connect_t indicates remote device given ble connect command and got connected

    • Pre-conditions:

  • Device should be initialized before calling this API. Returns

    • The following values are returned:

  • 0 - Success

  • Non-Zero Value - Failure

  • If the return value is less than 0

  • -4 - Buffer not available to serve the command

  • 0x4E0C - Command disallowed

  • 0x4046 - Invalid Arguments Note

    • Refer Error Codes section for above error codes error-codes .


Definition at line 1514 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_start_advertising_with_values#

int32_t rsi_ble_start_advertising_with_values (void * rsi_ble_adv)

Request the local device to start advertising with specified values.

Parameters
[in]rsi_ble_adv

- This structure pointer holds the information of advertising values

This is a Blocking API

  • A received event rsi_ble_on_enhance_connect_t/ rsi_ble_on_connect_t indicates remote device given ble connect command and got connected

    • Pre-conditions:

  • Device should be initialized before calling this API.

  • This variable is the pointer of the rsi_ble_req_adv_s structure Returns

    • The following values are returned:

  • 0 - Success

  • Non-Zero Value - Failure

  • If the return value is less than 0

  • -4 - Buffer not available to serve the command

  • 0x4E0C - Command disallowed

  • 0x4046 - Invalid Arguments Note

    • Refer Error Codes section for above error codes error-codes .


Definition at line 1541 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_encrypt#

int32_t rsi_ble_encrypt (uint8_t * key, uint8_t * data, uint8_t * resp)

Encrypt the plain text data fed by the user using the key provided.

Parameters
[in]key

- 16 Bytes key for Encryption of data.

[in]data

- 16 Bytes of Data request to encrypt.

[out]resp

- Encrypted data

  • It uses the AES-128 bit block cypher a logo to generate encrypted data. Refer to Bluetooth Spec 5.0 for further details.

    • Pre-conditions:

  • Device should be initialized before calling this API. This is a Blocking API Returns

    • The following values are returned:

  • 0 - Success

  • Non-Zero Value - Failure

  • If the return value is less than 0

  • -4 - Buffer not available to serve the command Note

    • Refer Error Codes section for above error codes error-codes .


Definition at line 1564 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_stop_advertising#

int32_t rsi_ble_stop_advertising (void )

Stop advertising.

Parameters
[in]

This is a Blocking API

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • If the return value is less than 0

    • -4 - Buffer not available to serve the command

    • 0x4E0C - Command disallowed

    • 0x4046 - Invalid Arguments

Note

  • Refer Error Codes section for above error codes error-codes .


Definition at line 1587 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_set_advertise_data#

int32_t rsi_ble_set_advertise_data (uint8_t * data, uint16_t data_len)

Set the advertising data.

Parameters
[in]data

- Advertising data.

[in]data_len

- Total length of advertising data.

This is a Blocking API

  • Pre-conditions:

    • Device should be initialized before calling this API.

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • If the return value is less than 0

    • -4 - Buffer not available to serve the command

Note

  • Refer Error Codes section for above error codes error-codes .

  • 1. The maximum length of advertising data payload is 31 bytes.

      1. The basic format of advertising payload record contains length and data.


Definition at line 1611 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_set_scan_response_data#

int32_t rsi_ble_set_scan_response_data (uint8_t * data, uint16_t data_len)

Request the local device to set the scan response data.

Parameters
[in]data

- Data about to be sent

[in]data_len

- Length of data, which is about to be sent

This is a Blocking API

    • Pre-conditions:

  • Device should be initialized before calling this API. Returns

    • The following values are returned:

  • 0 - Success

  • Non-Zero Value - Failure

  • If the return value is less than 0

  • -4 - Buffer not available to serve the command Note

    • Refer Error Codes section for above error codes error-codes .


Definition at line 1632 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_start_scanning#

int32_t rsi_ble_start_scanning (void )

Start scanning.

Parameters
[in]

This is a Blocking API A received event rsi_ble_on_adv_report_event_t indicates advertise report of remote device received.

  • Pre-conditions:

    • Device should be initialized before calling this API.

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • If the return value is less than 0

    • -4 - Buffer not available to serve the command

    • 0x4E0C - Command disallowed

    • 0x4046 - Invalid Arguments

Note

  • Refer Error Codes section for above error codes error-codes .


Definition at line 1656 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_start_scanning_with_values#

int32_t rsi_ble_start_scanning_with_values (void * rsi_ble_scan_params)

Start scanning with values.

Parameters
[in]rsi_ble_scan_params

- BLE scan parameters structure please refer rsi_ble_req_scan_s structure for more info

This is a Blocking API

  • A received event rsi_ble_on_adv_report_event_t indicates advertise report of remote device received.

    • Pre-conditions:

  • Device should be initialized before calling this API. Returns

    • The following values are returned:

  • 0 - Success

  • Non-Zero Value - Failure

  • 0x4E0C - Command disallowed

  • 0x4046 - Invalid Arguments Note

    • Refer Error Codes section for above error codes error-codes .


Definition at line 1678 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_stop_scanning#

int32_t rsi_ble_stop_scanning (void )

Stop scanning.

Parameters
[in]

This is a Blocking API

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • If the return value is less than 0

    • -4 - Buffer not available to serve the command 0x4E0C - Command disallowed

Note

  • Refer Error Codes section for above error codes error-codes .


Definition at line 1698 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_connect_with_params#

int32_t rsi_ble_connect_with_params (uint8_t remote_dev_addr_type, int8_t * remote_dev_addr, uint16_t scan_interval, uint16_t scan_window, uint16_t conn_interval_max, uint16_t conn_interval_min, uint16_t conn_latency, uint16_t supervision_tout)

Connect to the remote BLE device with the user configured parameters.

Parameters
[in]remote_dev_addr_type

- Supervision Timeout : N = 0xXXXX

[in]remote_dev_addr

- LE Scan Interval : N=0xXXXX

N/Ascan_interval
N/Ascan_window
N/Aconn_interval_max
N/Aconn_interval_min
N/Aconn_latency
N/Asupervision_tout

This is a blocking API.

  • A received event rsi_ble_on_enhance_connect_t / rsi_ble_on_connect_t indicates that the connection successful and

  • a received event rsi_ble_on_disconnect_t indicates that connection failures have occurred. Note

    • If a connection can't be established, for example, the remote device has gone out of range, has entered into deep sleep, or is not advertising,

  • the stack will try to connect forever. In this case, the application will not get an event related to the connection request.

  • To recover from this situation, the application can implement a timeout and call rsi_ble_connect_cancel() to cancel the connection request.

  • Subsequent calls of this command have to wait for the ongoing command to complete.

    • Pre-conditions:

  • Device should be initialized before calling this API.

  • 0 - Public Address

  • 1 - Random Address

  • It is defined as the time interval from when the Controller started its last LE scan until it

  • begins the subsequent LE scan.

  • Range: 0x0004 to 0x4000

  • Time = N * 0.625 msec

  • Time Range: 2.5 msec to 10 . 24 seconds

  • Amount of time for the duration of the LE scan. LE_Scan_Window must be less than or equal to LE_Scan_Interval

  • Range: 0x0004 to 0x4000

  • Time = N * 0.625 msec

  • Time Range: 2.5 msec to 10 . 24 seconds

  • Minimum value for the connection event interval, which must

  • be greater than or equal to Conn_Interval_Min.

  • Range: 0x0006 to 0x0C80

  • Time = N * 1.25 msec

  • Time Range: 7.5 msec to 4 seconds.

  • 0x0000 - 0x0005 and 0x0C81 - 0xFFFF - Reserved for future use

  • Minimum value for the connection event interval, which must be greater than or equal to Conn_Interval_Max.

  • Range: 0x0006 to 0x0C80

  • Time = N * 1.25 msec

  • Time Range: 7.5 msec to 4 seconds.

  • 0x0000 - 0x0005 and 0x0C81 - 0xFFFF - Reserved for future use

  • Peripheral latency for the connection in number of connection events.

  • Range: 0x0000 to 0x01F4

  • Supervision timeout for the LE Link.

  • Range: 0x000A to 0x0C80

  • Time = N * 10 msec

  • Time Range: 100 msec to 32 seconds

  • 0x0000 - 0x0009 and 0x0C81 - 0xFFFF - Reserved for future use Returns

    • The following values are returned:

  • 0 - Success

  • Non-Zero Value - Failure

  • 0x4E0C - Command disallowed

  • 0x4046 - Invalid Arguments Note

    • Refer Error Codes section for above error codes error-codes .


Definition at line 1803 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_connect#

int32_t rsi_ble_connect (uint8_t remote_dev_addr_type, int8_t * remote_dev_addr)

Connect to the remote BLE device.

Parameters
[in]remote_dev_addr_type

- This parameter describes the address type of the remote device

[in]remote_dev_addr

- This parameter describes the device address of the remote device

This is a blocking API.

  • A received event rsi_ble_on_enhance_connect_t/ rsi_ble_on_connect_t indicates that the connection successful and

  • a received event rsi_ble_on_disconnect_t indicates that connection failures have occurred. Note

    • If a connection can't be established, for example, the remote device has gone out of range, has entered into deep sleep, or is not advertising,

  • the stack will try to connect forever. In this case, the application will not get an event related to the connection request.

  • To recover from this situation, the application can implement a timeout and call rsi_ble_connect_cancel() to cancel the connection request.

  • Subsequent calls of this command have to wait for the ongoing command to complete.

    • Pre-conditions:

  • Device should be initialized before calling this API. Returns

    • The following values are returned:

  • 0 - Success

  • Non-Zero Value - Failure

  • 0x4E0C - Command disallowed

  • 0x4046 - Invalid Arguments Note

    • Refer Error Codes section for above error codes error-codes .


Definition at line 1841 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_enhance_connect_with_params#

int32_t rsi_ble_enhance_connect_with_params (void * ble_enhance_conn_params)

Connect to the remote BLE device with the user configured parameters.

Parameters
[in]ble_enhance_conn_params

- BLE enhance connection parameter structure. See notes for the fields in this structure.

  • Pre-conditions:

    • Device should be initialized before calling this API.

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • If the return value is less than 0

    • -4 - Buffer not available to serve the command

    • 0x4E0C - Command disallowed

    • 0x4046 - Invalid Arguments

Note

  • Refer Error Codes section for above error codes error-codes.

  • The following fields are included in the ble_enhance_conn_params parameter structure:

    • dev_addr_type - Address type of the device to connect.

      • 0 - Public Address

      • 1 - Random Address

    • dev_addr - Address of the device to connect.

    • filter_policy - Policy used to determine whether the filter accept list is used.

      • 0 - Filter accept list is not used to determine which advertiser to connect to.

      • 1 - Filter accept list is used to determine which advertiser to connect to.

    • own_addr_type - Own address type

    • le_scan_interval - The time interval from when the Controller started its last LE scan until it begins the subsequent LE scan.

      • Range: 0x0004 to 0x4000

      • Time = le_scan_interval * 0.625 msec

      • Time Range: 2.5 msec to 10 . 24 seconds

    • le_scan_window - Amount of time for the duration of the LE scan. This must be less than or equal to le_scan_interval.

      • Range: 0x0004 to 0x4000

      • Time = le_scan_window * 0.625 msec

      • Time Range: 2.5 msec to 10 . 24 seconds

    • conn_interval_min - Minimum value for the connection event interval. This must be greater than or equal to conn_interval_max.

      • Range: 0x0006 to 0x0C80

      • Time = conn_interval_min * 1.25 msec

      • Time Range: 7.5 msec to 4 seconds.

      • 0x0000 - 0x0005 and 0x0C81 - 0xFFFF - Reserved for future use

    • conn_interval_max - Maximum value for the connection event interval. This must be greater than or equal to conn_interval_min.

      • Range: 0x0006 to 0x0C80

      • Time = conn_interval_max * 1.25 msec

      • Time Range: 7.5 msec to 4 seconds.

      • 0x0000 - 0x0005 and 0x0C81 - 0xFFFF - Reserved for future use

    • conn_latency - Peripheral latency for the connection in number of connection events.

      • Range: 0x0000 to 0x01F4

    • supervision_tout - Supervision timeout for the LE Link.

      • Range: 0x000A to 0x0C80

      • Time = N * 10 msec

      • Time Range: 100 msec to 32 seconds

      • 0x0000 - 0x0009 and 0x0C81 - 0xFFFF - Reserved for future use

    • min_ce_length - Minimum length of connection event recommended for this LE connection.

      • Range: 0x0000 to 0xFFFF

      • Time = N * 0.625 msec

    • max_ce_length - Maximum length of connection event recommended for this LE connection.

      • Range: 0x0000 to 0xFFFF

      • Time = N * 0.625 msec


Definition at line 1905 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_connect_cancel#

int32_t rsi_ble_connect_cancel (int8_t * remote_dev_address)

Cancel the connection to the remote BLE device.

Parameters
[in]remote_dev_address

- This parameter describes the device address of the remote device

This is a blocking API.

  • A received event rsi_ble_on_disconnect_t indicates disconnect complete.

    • Pre-conditions:

  • rsi_ble_connect() API needs to be called before this API. Returns

    • The following values are returned:

  • 0 - Success

  • Non-Zero Value - Failure

  • 0x4E0C - Command disallowed

  • 0x4046 - Invalid Arguments

  • 0x4E02 - Unknown Connection Identifier

  • Note

    • Refer Error Codes section for above error codes error-codes .


Definition at line 1929 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_disconnect#

int32_t rsi_ble_disconnect (int8_t * remote_dev_address)

Disconnect with the remote BLE device.

Parameters
[in]remote_dev_address

- This parameter describes the device address of the remote device

This is a Blocking API

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • 0x4E0C - Command disallowed

    • 0x4D05 BLE socket not available

    • 0x4E62 Invalid Parameters

    • 0x4D04 BLE not connected

Note

  • Refer Error Codes section for above error codes error-codes .


Definition at line 1953 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_get_device_state#

int32_t rsi_ble_get_device_state (uint8_t * resp)

Get the local device state.

Parameters
[out]resp

- This is an output parameter which consists of local device state.

  • This is a 1-byte value. The possible states are described below

  • BIT(0) Advertising state

  • BIT(1) Scanning state

  • BIT(2) Initiating state

  • BIT(3) Connected state

This is a Blocking API. The state value is filled in "resp".

  • Pre-conditions:

    • Device should be initialized before calling this API.

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • If the return value is less than 0

    • -4 - Buffer not available to serve the command

Note

  • Refer Error Codes section for above error codes error-codes .


Definition at line 1983 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_set_smp_pairing_cap_data#

int32_t rsi_ble_set_smp_pairing_cap_data (rsi_ble_set_smp_pairing_capabilty_data_t * smp_pair_cap_data)

Set the SMP Pairing Capability of local device.

Parameters
[in]smp_pair_cap_data

- This structure pointer holds the information of the SMP capability data values

This is a Blocking API

  • Pre-conditions:

    • Device should be initialized before calling this API.

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • If the return value is less than 0

    • -4 - Buffer not available to serve the command

Note

  • Refer Error Codes section for above error codes error-codes .


Definition at line 2004 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_set_local_irk_value#

int32_t rsi_ble_set_local_irk_value (uint8_t * l_irk)

Set the IRK value to the local device.

Parameters
[in]l_irk

- l_irk Pointer to local_irk

This is a Blocking API

  • Pre-conditions:

    • Device should be initialized before calling this API.

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

Note

  • Refer Error Codes section for above error codes error-codes .


Definition at line 2019 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_conn_param_resp#

int32_t rsi_ble_conn_param_resp (uint8_t * remote_dev_address, uint8_t status)

Give the response for the remote device connection parameter request.

Parameters
[in]remote_dev_address

- remote device address

[in]status

- accept or reject the connection parameters update request

This is a Blocking API

  • A received event rsi_ble_on_conn_update_complete_t indicates connection update procedure is successful.

    • Pre-conditions:

  • rsi_ble_connect() API needs to be called before this API.

  • 0 - ACCEPT,

  • 1 - REJECT

  • Returns

    • The following values are returned:

  • 0 - Success

  • Non-Zero Value - Failure 0x4E0C - Command disallowed

  • 0x4046 - Invalid Arguments

  • 0x4E02 - Unknown Connection Identifier Note

    • Refer Error Codes section for above error codes error-codes .


Definition at line 2048 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_smp_pair_request#

int32_t rsi_ble_smp_pair_request (uint8_t * remote_dev_address, uint8_t io_capability, uint8_t mitm_req)

Request the SMP pairing process with the remote device.

Parameters
[in]remote_dev_address

- MITM enable/disable

[in]io_capability

- This is the device input output capability

N/Amitm_req

This is a Blocking API

  • A received event rsi_ble_on_smp_request_t indicated remote device is given Security Request and need to respond back with rsi_ble_smp_pair_request

  • A received event rsi_ble_on_smp_response_t indicated remote device is given SMP Pair Request and need to respond back with rsi_ble_smp_pair_response

  • A received event rsi_ble_on_smp_failed_t indicated SMP procedure have failed

    • Pre-conditions:

  • rsi_ble_connect() API needs to be called before this API.

  • 0x00 - Display Only

  • 0x01 - Display Yes/No

  • 0x02 - Keyboard Only

  • 0x03 - No Input No Output

  • 0 - Disable

  • 1 - Enable Returns

    • The following values are returned:

  • 0 - Success

  • Non-Zero Value - Failure

  • If the return value is less than 0

  • -4 - Buffer not available to serve the command

  • 0x4D05 BLE socket not available

  • 0x4E62 Invalid Parameters

  • 0x4D04 BLE not connected

  • Note

    • Refer Error Codes section for above error codes error-codes .


Definition at line 2094 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_smp_pair_failed#

int32_t rsi_ble_smp_pair_failed (uint8_t * remote_dev_address, uint8_t reason)

Send SMP pairing failure reason to the remote device.

Parameters
[in]remote_dev_address

- This is the remote device address

[in]reason

- This is the reason for SMP Pairing Failure

  • 0x05 - Pairing Not Supported

  • 0x08 - Unspecified Reason

  • 0x09 - Repeated Attempts

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • If the return value is less than 0

    • -4 - Buffer not available to serve the command


Definition at line 2120 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_ltk_req_reply#

int32_t rsi_ble_ltk_req_reply (uint8_t * remote_dev_address, uint8_t reply_type, uint8_t * ltk)

Send the local long term key of its associated local EDIV and local Rand.

Parameters
[in]remote_dev_address

- Long Term Key 16 bytes

[in]reply_type

- 0 - Negative reply

N/Altk

This is a Blocking API

  • A received event rsi_ble_on_encrypt_started_t indicated encrypted event is received from module

  • A received event rsi_ble_on_smp_failed_t indicated SMP procedure have failed

  • BIT(0) - Positive Reply (Encryption Enabled)

  • BIT(1) - Un authenticated LTK or STK-based Encryption Enabled

  • BIT(2) - Authenticated LTK or STK-based Encryption Enabled

  • BIT(3) - Authenticated LTK with LE Secure Connections based Encryption Enabled

  • BIT(4) to BIT(6) - Reserved for Future use

  • BIT(7) - LE Secure Connection Enabled

  • Returns

    • The following values are returned:

  • 0 - Success

  • Non-Zero Value - Failure

  • If the return value is less than 0

  • -4 - Buffer not available to serve the command

  • 0x4D05 BLE socket not available

  • 0x4E62 Invalid Parameters

  • 0x4D04 BLE not connected

  • Note

    • Refer Error Codes section for above error codes error-codes .


Definition at line 2164 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_smp_pair_response#

int32_t rsi_ble_smp_pair_response (uint8_t * remote_dev_address, uint8_t io_capability, uint8_t mitm_req)

Send SMP pairing response during the process of pairing with the remote device.

Parameters
[in]remote_dev_address

- MITM Request info

[in]io_capability

- This is the device input output capability

N/Amitm_req

This is a Blocking API

  • A received event rsi_ble_on_smp_passkey_t indicated Legacy SMP passkey is received and need to respond back with rsi_ble_smp_passkey()

  • A received event rsi_ble_on_sc_passkey_t indicated BLE SC passkey is received and need to respond back with rsi_ble_smp_passkey()

  • A received event rsi_ble_on_smp_passkey_display_t indicates SMP passkey display is received from the module

  • A received event rsi_ble_on_smp_failed_t indicated SMP Failed event is received

    • Pre-conditions:

  • rsi_ble_connect() API needs to be called before this API.

  • 0x00 - Display Only

  • 0x01 - Display Yes/No

  • 0x02 - Keyboard Only

  • 0x03 - No Input No Output

  • 0 - Disable

  • 1 - Enable Returns

    • The following values are returned:

  • 0 - Success

  • Non-Zero Value - Failure

  • If the return value is less than 0

  • -4 - Buffer not available to serve the command

  • 0x4D05 BLE socket not available

  • 0x4E62 Invalid Parameters

  • 0x4D04 BLE not connected

  • Note

    • Refer Error Codes section for above error codes error-codes .


Definition at line 2212 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_smp_passkey#

int32_t rsi_ble_smp_passkey (uint8_t * remote_dev_address, uint32_t passkey)

Send SMP passkey during SMP pairing process with the remote device.

Parameters
[in]remote_dev_address

- This is the remote device address

[in]passkey

- This is the key required in pairing process

This is a Blocking API

  • A received event rsi_ble_on_encrypt_started_t indicated encrypted event is received from module

  • A received event rsi_ble_on_le_security_keys_t indicates exchange of security keys completed after encryption

  • A received event rsi_ble_on_smp_failed_t indicated SMP procedure have failed

    • Pre-conditions:

  • Call rsi_ble_smp_pair_request and rsi_ble_smp_pair_response before calling this API. Returns

    • The following values are returned:

  • 0 - Success

  • Non-Zero Value - Failure

  • If the return value is less than 0

  • -4 - Buffer not available to serve the command

  • 0x4D05 BLE socket not available

  • 0x4E62 Invalid Parameters

  • 0x4D04 BLE not connected

  • Note

    • Refer Error Codes section for above error codes error-codes .


Definition at line 2246 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_get_le_ping_timeout#

int32_t rsi_ble_get_le_ping_timeout (uint8_t * remote_dev_address, uint16_t * time_out)

Get the timeout value of the LE ping.

Parameters
[in]remote_dev_address

- This is the remote device address

[out]time_out

- This a response parameter which holds timeout value for

  • authentication payload command.

This is a Blocking API

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • If the return value is less than 0

    • -4 - Buffer not available to serve the command

    • 0x4D05 BLE socket not available

    • 0x4E62 Invalid Parameters

    • 0x4D04 BLE not connected

Note

  • Refer Error Codes section for above error codes error-codes .

  • Currently Get ping is not supported.


Definition at line 2276 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_set_le_ping_timeout#

int32_t rsi_ble_set_le_ping_timeout (uint8_t * remote_dev_address, uint16_t time_out)

Set the timeout value of the LE ping.

Parameters
[in]remote_dev_address

- This is the remote device address

[out]time_out

- This input parameter sets timeout value for authentication

This is a Blocking API

  • A received event of rsi_ble_on_le_ping_payload_timeout_t indicates LE ping payload timeout expired

    • Pre-conditions:

  • rsi_ble_connect() API needs to be called before this API.

  • payload command.(in milliseconds) Returns

    • The following values are returned:

  • 0 - Success

  • Non-Zero Value - Failure

  • If the return value is less than 0

  • -4 - Buffer not available to serve the command

  • 0x4D05 BLE socket not available

  • 0x4E62 Invalid Parameters

  • 0x4D04 BLE not connected

  • Note

    • Refer Error Codes section for above error codes error-codes .


Definition at line 2307 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_clear_acceptlist#

int32_t rsi_ble_clear_acceptlist (void )

Clear all the BD address present in accept list.

Parameters
[in]

This is a Blocking API

  • Pre-conditions:

    • Device should be initialized before calling this API.

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • If the return value is less than 0

    • -4 - Buffer not available to serve the command

Note

  • Refer Error Codes section for above error codes error-codes .


Definition at line 2326 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_addto_acceptlist#

int32_t rsi_ble_addto_acceptlist (int8_t * dev_address, uint8_t dev_addr_type)

Add BD address to accept list.

Parameters
[in]dev_address

- Address of the device which is going to add in accept list

[in]dev_addr_type

- address type of BD address

This is a Blocking API

  • Pre-conditions:

    • Device should be initialized before calling this API.

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • If the return value is less than 0

    • -4 - Buffer not available to serve the command

Note

  • Maximum number of device address that firmware can store is 10.

    • Refer Error Codes section for above error codes error-codes .


Definition at line 2347 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_deletefrom_acceptlist#

int32_t rsi_ble_deletefrom_acceptlist (int8_t * dev_address, uint8_t dev_addr_type)

Delete particular BD address from accept list.

Parameters
[in]dev_address

- Address of the device which is going to delete from accept list

[in]dev_addr_type

- address type of BD address

This is a Blocking API

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • If the return value is less than 0

    • -4 - Buffer not available to serve the command

Note

  • Refer Error Codes section for above error codes error-codes .


Definition at line 2368 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_resolvlist#

int32_t rsi_ble_resolvlist (uint8_t process_type, uint8_t remote_dev_addr_type, uint8_t * remote_dev_address, uint8_t * peer_irk, uint8_t * local_irk)

resolvlist API used for multiple purpose based on the process type.

Parameters
[in]process_type

- Indicates which type of process this is, as follows:

  • 1 - add a device to the resolve list

  • 2 - remove a device from the resolve list

  • 3 - clear the entire resolve list

[in]remote_dev_addr_type

- typr of the remote device address

[in]remote_dev_address

- remote device address

  • 0 - Public identity address

  • 1 - Random (static) identity address

[in]peer_irk

- 16-byte IRK of the peer device

[in]local_irk

- 16-byte IRK of the local device

It will be used to add/remove/clear a device to/from the list. This is a Blocking API

  • Pre-conditions:

    • Device should be initialized before calling this API.

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • If the return value is less than 0

    • -4 - Buffer not available to serve the command

Note

  • Refer Error Codes section for above error codes error-codes .


Definition at line 2406 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_get_resolving_list_size#

int32_t rsi_ble_get_resolving_list_size (uint8_t * resp)

Request to get resolving list size.

Parameters
[out]resp

- output parameter which consists of supported resolving the list size.

This is a Blocking API

  • Pre-conditions:

    • Device should be initialized before calling this API.

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • If the return value is less than 0

    • -4 : Buffer not available to serve the command

Note

  • Refer Error Codes section for above error codes error-codes .


Definition at line 2430 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_set_addr_resolution_enable#

int32_t rsi_ble_set_addr_resolution_enable (uint8_t enable, uint16_t tout)

Request to enable address resolution, and to set resolvable private address timeout.

Parameters
[in]enable

- value to enable/disable address resolution

  • 1 - enables address resolution

  • 0 - disables address resolution

[in]tout

- the period for changing address of our local device in seconds

  • Value ranges from 0x0001 to 0xA1B8 (1 s to approximately 11.5 hours)

This is a Blocking API

  • Pre-conditions:

    • Device should be initialized before calling this API.

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • If the return value is less than 0

    • -4 : Buffer not available to serve the command


Definition at line 2455 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_set_privacy_mode#

int32_t rsi_ble_set_privacy_mode (uint8_t remote_dev_addr_type, uint8_t * remote_dev_address, uint8_t privacy_mode)

Request to set privacy mode for particular device.

Parameters
[in]remote_dev_addr_type

- type of the remote device address

  • 0 - Public Identity Address

  • 1 - Random (static) Identity Address

[in]remote_dev_address

- remote device address

[in]privacy_mode

- type of the privacy mode

  • 0 - Network privacy mode

  • 1 - Device privacy mode

This is a Blocking API

  • Pre-conditions:

    • Device should be initialized before calling this API.

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • If the return value is less than 0

    • -4 : Buffer not available to serve the command

Note

  • Refer Error Codes section for above error codes error-codes .


Definition at line 2485 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_readphy#

int32_t rsi_ble_readphy (int8_t * remote_dev_address, rsi_ble_resp_read_phy_t * resp)

Reads the TX and RX PHY rates of the Connection.

Parameters
[in]remote_dev_address

- remote device address

[out]resp

- pointer to store the response please refer rsi_ble_resp_read_phy_s structure for more info.

This is a Blocking API

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

Note

  • Refer Error Codes section for above error codes error-codes .


Definition at line 2502 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_setphy#

int32_t rsi_ble_setphy (int8_t * remote_dev_address, uint8_t tx_phy, uint8_t rx_phy, uint16_t coded_phy)

Set TX and RX PHY.

Parameters
[in]remote_dev_address

- TX/RX coded PHY rate

N/Atx_phy
N/Arx_phy
N/Acoded_phy

This is a Blocking API

  • A received event rsi_ble_on_phy_update_complete_t indicates PHY rate update complete.

    • Pre-conditions:

  • rsi_ble_connect() API needs to be called before this API.

  • BIT(0) - Host prefers to use the LE 1M transmitter PHY (possibly among others)

  • BIT(1) - Host prefers to use the LE 2M transmitter PHY (possibly among others)

  • BIT(2) - Host prefers to use the LE Coded transmitter PHY (possibly among others)

  • BIT(3) - BIT(7) Reserved for future use

  • BIT(0) - Host prefers to use the LE 1M receiver PHY (possibly among others)

  • BIT(1) - Host prefers to use the LE 2M receiver PHY (possibly among others)

  • BIT(2) - Host prefers to use the LE Coded receiver PHY (possibly among others)

  • BIT(3) - BIT(7) Reserved for future use

  • 0 = Host has no preferred coding when transmitting on the LE Coded PHY

  • 1 = Host prefers that S=2 coding be used when transmitting on the LE Coded PHY

  • 2 = Host prefers that S=8 coding be used when transmitting on the LE Coded PHY

  • 3 = Reserved for future use

  • Returns

    • The following values are returned:

  • 0 - Success

  • Non-Zero Value - Failure

  • 0x4D05 BLE socket not available

  • 0x4E62 Invalid Parameters

  • 0x4D04 BLE not connected

  • Note

    • Refer Error Codes section for above error codes error-codes .


Definition at line 2558 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_conn_params_update#

int32_t rsi_ble_conn_params_update (uint8_t * remote_dev_address, uint16_t min_int, uint16_t max_int, uint16_t latency, uint16_t timeout)

Requests the connection parameters change with the remote device.

Parameters
[in]remote_dev_address

- supervision timeout for the LE Link.

[in]min_int

- minimum value for the connection interval.

N/Amax_int
N/Alatency
N/Atimeout
  • When the Silicon Labs device acts as a central, this API is used to update the connection parameters.

  • When the Silicon Labs device acts as a peripheral, this API is used to request the central to initiate the connection update procedure. This is a Blocking API

  • A received event rsi_ble_on_conn_update_complete_t indicates connection parameters update complete.

    • Pre-conditions:

  • rsi_ble_connect() API needs to be called before this API.

  • this shall be less than or equal to max_int .

  • this shall be greater than or equal to min_int.

  • Ranges from 0 to 499

  • Ranges from 10 to 3200 (Time = N * 10 ms, Time Range: 100 ms to 32 s) Returns

    • The following values are returned:

  • 0 - Success

  • Non-Zero Value - Failure

  • 0x4D05 BLE socket not available

  • 0x4E62 Invalid Parameters

  • 0x4D04 BLE not connected

  • Note

    • Refer Error Codes section for above error codes error-codes .

    • min_int and max_int values ranges from 6 to 3200 (Time = N * 1.25 ms, Time Range: 7.5 ms to 4 s)

  • latency : If latency value is greater than 32 ,Limiting the peripheral latency value to 32

  • Max supported peripheral latency is 32 when Device is in peripheral Role.


Definition at line 2608 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_set_data_len#

int32_t rsi_ble_set_data_len (uint8_t * remote_dev_address, uint16_t tx_octets, uint16_t tx_time)

Sets the TX octets and the TX time of specified link (remote device connection).

Parameters
[in]remote_dev_address

- preferred maximum number of microseconds that the local Controller

N/Atx_octets
N/Atx_time

This is a Blocking API.

  • A received event rsi_ble_on_data_length_update_t indicates data length update complete.

    • Pre-conditions:

  • rsi_ble_connect() API needs to be called before this API.

  • should include in a single Link Layer packet on this connection.

  • should use to transmit a single Link Layer packet on this connection. Returns

    • The following values are returned:

  • 0 - LE_Set_Data_Length command succeeded.

  • Non-Zero Value - Failure

  • 0x4D05 BLE socket not available

  • 0x4E62 Invalid Parameters

  • 0x4D04 BLE not connected

  • Note

    • Refer Error Codes section for above error codes error-codes .


Definition at line 2644 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_read_max_data_len#

int32_t rsi_ble_read_max_data_len (rsi_ble_read_max_data_length_t * blereaddatalen)

reads the max supported values of TX octets, TX time, RX octets and Rx time.

Parameters
[out]blereaddatalen

- pointer to structure variable, Please refer rsi_ble_resp_read_max_data_length_s structure for more info.

This is a Blocking API

Returns

  • The following values are returned:

    • 0 - command success

    • Non-Zero Value - Failure

Note

  • Refer Error Codes section for above error codes error-codes .


Definition at line 2660 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_accept_list_using_adv_data#

int32_t rsi_ble_accept_list_using_adv_data (uint8_t enable, uint8_t data_compare_index, uint8_t len_for_compare_data, uint8_t * payload)

Give vendor-specific command to set the acceptlist feature based on the advertisers advertising payload.

Parameters
[in]enable

- enable/disable

[in]data_compare_index

- the starting index of the data to compare

[in]len_for_compare_data

- total length of data to compare

[in]payload

- Payload

This is a Blocking API

  • Pre-conditions:

    • Device should be initialized before calling this API.

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • If the return value is less than 0

    • -4 - Buffer not available to serve the command 0x4E62 Invalid Parameters

Note

  • Refer Error Codes section for above error codes error-codes .


Definition at line 2817 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

BT_LE_ADPacketExtract#

void BT_LE_ADPacketExtract (uint8_t * remote_name, uint8_t * pbuf, uint8_t buf_len)

Used to extract remote Bluetooth device name from the received advertising report.

Parameters
[in]remote_name

- device name

[in]pbuf

- advertise data packet buffer pointer

[in]buf_len

- buffer length

  • Pre-conditions:

    • Device should be initialized before calling this API.

Returns

  • The following values are returned:

    • void


Definition at line 2834 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_start_encryption#

int32_t rsi_ble_start_encryption (uint8_t * remote_dev_address, uint16_t ediv, uint8_t * rand, uint8_t * ltk)

Start the encryption process with the remote device.

Parameters
[in]remote_dev_address

- Remote BD address in string format

[in]ediv

- remote device ediv value.

[in]rand

- remote device rand value.

[in]ltk

- remote device ltk value.

This is a Blocking API

  • A received event rsi_ble_on_encrypt_started_t indicated encrypted event is received from module

  • A received event rsi_ble_on_le_security_keys_t indicates exchange of security keys completed after encryption.

  • A received event rsi_ble_on_smp_failed_t indicated SMP procedure have failed

    • Pre-conditions:

  • Encryption enabled event should come before calling this API for second time SMP connection. Returns

    • The following values are returned:

  • 0 - Success

  • Non-Zero Value - Failure

  • If the return value is less than 0

  • -4 - Buffer not available to serve the command 0x4D05 BLE socket not available

  • 0x4E62 Invalid Parameters

  • 0x4D04 BLE not connected

  • Note

    • Refer Error Codes section for above error codes error-codes .


Definition at line 2869 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_set_ble_tx_power#

int32_t rsi_ble_set_ble_tx_power (uint8_t role, uint8_t * remote_dev_address, int8_t tx_power)

Set the TX power value per GAP role.

Parameters
[in]role

ADV_ROLE 0x01

  • SCAN_AND_CENTRAL_ROLE 0x02

  • PERIPHERAL_ROLE 0x03

  • CONN_ROLE 0x04

[in]remote_dev_address

- Remote device address

[in]tx_power

- power value

This is a Blocking API Note

  • This API is not supported in the current release.

Note

  • remote_dev_address is valid only on role=CONN_ROLE

    • #define RSI_BLE_PWR_INX_DBM 0 indicate tx_power in index

    • Default Value for BLE TX Power Index is 31, The range for the BLE TX Power Index is 1 to 75 (0, 32 indexes are invalid)

    • 1 - 31 BLE - 0DBM Mode.

    • 33 - 63 BLE - 10DBM Mode.

    • 64 - 75 BLE - HP Mode.

    • Currently this API is supports only BLE LP mode . i.e. 1 to 63 BLE LP MODE

    • #define RSI_BLE_PWR_INX_DBM 1 indicate tx_power in dBm

    • tx_power in dBm (-8dBm to 15 dBm)

    • Currently this API is supports only BLE LP mode . i.e. -8 dBm to 4dBm BLE LP MODE

Returns

  • The following values are returned:

    • 0 - Success

    • Non-Zero Value - Failure

    • 0x4E02 Unknown Connection Identifier

    • 0x4E01 Unknown HCI Command

    • 0x4E0C Command disallowed

    • 0x4046 Invalid Arguments

    • 0x4D04 BLE not connected

    • 0x4D14 BLE parameter out of mandatory range

Note

  • Refer Error Codes section for above error codes error-codes .


Definition at line 2927 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_get_max_adv_data_len#

int32_t rsi_ble_get_max_adv_data_len (uint8_t * resp)

Get maximum advertising data length.

Parameters
[out]resp

Maximum supported advertising data length returned by the controller. Possible values range from 0x001F to 0x0672.

Returns

  • The following values are returned:

    • 0 = success

  • The following values are returned:

    • !0 = failure

Note

  • This function requests the controller to return the maximum supported advertising data length.


Definition at line 3864 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_get_max_no_of_supp_adv_sets#

int32_t rsi_ble_get_max_no_of_supp_adv_sets (uint8_t * resp)

Get maximum number of advertising sets.

Parameters
[out]resp

Number of supported advertising sets returned by the controller. Possible values range from 0x01 to 0xF0.

Returns

  • The following values are returned:

    • 0 = success

  • The following values are returned:

    • !0 = failure

Note

  • This function requests the controller to return the maximum number of supporting advertising sets.

  • The number of supported advertising sets can be configured through the operating modes.


Definition at line 3880 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_set_ae_set_random_address#

rsi_ble_set_ae_set_random_address (uint8_t handle, uint8_t * rand_addr)

Update AE random address.

Parameters
[in]handle

The advertising handle used to identify an advertising set

[in]rand_addr

Random device address set to either a static or private address

Returns

  • The following values are returned:

    • 0 = success

  • The following values are returned:

    • !0 = failure


Definition at line 3893 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_set_ae_data#

int32_t rsi_ble_set_ae_data (void * ble_ae_data)

Update AE advertiser data.

Parameters
[in]ble_ae_data

Extended Advertising data to be updated

Returns

  • The following values are returned:

    • 0 = success

  • The following values are returned:

    • !0 = failure

Note

  • This function sets the AE advertiser data used in advertising PDUs.

  • Refer to Bluetooth specification 5.3 for possible combinations ae_adv/scanresp data can be set for .


Definition at line 3908 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_set_ae_params#

int32_t rsi_ble_set_ae_params (void * ble_ae_params, int8_t * sel_tx_pwr)

Update AE parameters.

Parameters
[in]ble_ae_params

Extended Advertising parameters to be updated

[out]sel_tx_pwr

Output transmit power in dBm, ranging from -127 to +20.

Returns

  • The following values are returned:

    • 0 = success

  • The following values are returned:

    • !0 = failure


Definition at line 3921 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_start_ae_advertising#

int32_t rsi_ble_start_ae_advertising (void * adv_enable)

Enable or disable AE advertising.

Parameters
[in]adv_enable

Parameters to enable or disable specific advertising sets identified by advertising handle

Returns

  • The following values are returned:

    • 0 = success

  • The following values are returned:

    • !0 = failure


Definition at line 3933 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_app_adv_set_clear_or_remove#

int32_t rsi_ble_app_adv_set_clear_or_remove (uint8_t type, uint8_t handle)

Clear or remove an advertising set.

Parameters
[in]type

Set to 1 to clear, or 2 to remove an advertising set

[in]handle

Advertising handle identifying the advertising set to remove or clear. Possible values range from 0x00 to 0xEF.

Returns

  • The following values are returned:

    • 0 = success

  • The following values are returned:

    • !0 = failure


Definition at line 3946 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_app_set_periodic_ae_params#

int32_t rsi_ble_app_set_periodic_ae_params (void * periodic_adv_params)

Update periodic AE parameters.

Parameters
[in]periodic_adv_params

Periodic advertising parameters to be updated

Returns

  • The following values are returned:

    • 0 = success

  • The following values are returned:

    • !0 = failure


Definition at line 3958 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_app_set_periodic_ae_enable#

int32_t rsi_ble_app_set_periodic_ae_enable (uint8_t enable, uint8_t handle)

Enable or disable periodic advertising.

Parameters
[in]enable

Set to 0 to enable, or 1 to include the ADI field in AUX_SYNC_IND PDUs

[in]handle

Advertising handle of the advertising set to enable or disable

Returns

  • The following values are returned:

    • 0 = success

  • The following values are returned:

    • !0 = failure

Note

  • This function requests the controller to enable or disable periodic advertising for the specified advertising set.


Definition at line 3973 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_ae_set_scan_params#

int32_t rsi_ble_ae_set_scan_params (void * ae_scan_params)

Update AE scan parameters.

Parameters
[in]ae_scan_params

Extended scan parameters to be updated

Returns

  • The following values are returned:

    • 0 = success

  • The following values are returned:

    • !0 = failure

Note

  • This function sets the extended scan parameters to be used on the physical advertising channels.


Definition at line 3987 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_ae_set_scan_enable#

int32_t rsi_ble_ae_set_scan_enable (void * ae_scan_enable)

Enable or disable legacy and extended scanning.

Parameters
[in]ae_scan_enable

Parameters specify whether to enable or disable both legacy and extended advertising PDUs

Returns

  • The following values are returned:

    • 0 = success

  • The following values are returned:

    • !0 = failure


Definition at line 3999 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_ae_set_periodic_sync#

int32_t rsi_ble_ae_set_periodic_sync (uint8_t type, void * periodic_sync_data)

Synchronize periodic advertising with advertiser.

Parameters
[in]type

Set to 1 to begin, 2 to cancel, or 3 to terminate the periodic advertising sync

[in]periodic_sync_data

Parameters for starting a perodic advertising sync operation

Returns

  • The following values are returned:

    • 0 = success

  • The following values are returned:

    • 0x4E42 = unknown advertising identifier

  • The following values are returned:

    • 0x4E0C = command not permitted

Note

  • This function performs an operation to synchronize with a periodic advertising train from an advertiser and begin receiving periodic advertising packets.

  • The operation is either started, cancelled or terminated depending on the type parameter.


Definition at line 4018 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_ae_dev_to_periodic_list#

int32_t rsi_ble_ae_dev_to_periodic_list (void * dev_to_list)

Manage a device in the periodic advertiser list.

Parameters
[in]dev_to_list

Details of a device to be added to the periodic advertiser list

Returns

  • The following values are returned:

    • 0 = success

  • The following values are returned:

    • !0 = failure

Note

  • This function adds, removes, or clears a device from the periodic advertiser list.


Definition at line 4032 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_ae_read_periodic_adv_list_size#

int32_t rsi_ble_ae_read_periodic_adv_list_size (uint8_t * resp)

Get periodic advertiser list size.

Parameters
[out]resp

Periodic advertiser list size returned by the controller

Returns

  • The following values are returned:

    • 0 = success

  • The following values are returned:

    • !0 = failure


Definition at line 4044 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_extended_connect_with_params#

int32_t rsi_ble_extended_connect_with_params (void * ble_extended_conn_params)

Establish ACL connection to advertiser.

Parameters
[in]ble_extended_conn_params

Connection parameters

Returns

  • The following values are returned:

    • 0 = success

  • The following values are returned:

    • !0 = failure

Note

  • This function establishes an ACL connection to an advertiser, with the local device in the BLE central role.


Definition at line 4058 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h

rsi_ble_read_transmit_power#

int32_t rsi_ble_read_transmit_power (void * resp)

Get supported transmit power range.

Parameters
[out]resp

Minimum and maximum supported transmit power, returned by the controller. Power ranges from -127 dBm to +20 dBm.

Returns

  • The following values are returned:

    • 0 = success

  • The following values are returned:

    • !0 = failure

Note

  • This function requests the controller to return the minimum and maximum supported transmit power.


Definition at line 4072 of file components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h