Modules#

sl_rtl_abr_rtt_data

sl_rtl_abr_rtp_data

Accurate Bluetooth Ranging (ABR)#

Accurate Bluetooth Ranging.

These functions are related to the phase-based estimation of distance from I/Q-samples. The distances can be calculated following these steps:

  1. Initialize a sl_rtl_abr_libitem instance

  2. Set up the calculation parameters

  3. Create the estimator

  4. Process the I/Q data into a distance

  5. Get distance estimate

Enumerations#

enum
SL_RTL_ABR_ALGO_MODE_REAL_TIME_BASIC = 1
SL_RTL_ABR_ALGO_MODE_LAST
}

ABR estimator mode.

enum
SL_RTL_ABR_CS_MODE_RTP = 0
SL_RTL_ABR_CS_MODE_RTT = 1
SL_RTL_ABR_CS_MODE_LAST
}
enum
SL_RTL_ABR_TONE_QUALITY_GOOD = 0
SL_RTL_ABR_TONE_QUALITY_MEDIUM = 1
SL_RTL_ABR_TONE_QUALITY_LOW = 2
SL_RTL_ABR_TONE_QUALITY_UNAVAILABLE = 3
}

Typedefs#

typedef void *

ABR library item.

Functions#

sl_rtl_abr_init(sl_rtl_abr_libitem *item)
sl_rtl_abr_deinit(sl_rtl_abr_libitem *item)
sl_rtl_abr_set_algo_mode(sl_rtl_abr_libitem *item, enum sl_rtl_abr_algo_mode mode)
sl_rtl_abr_set_cs_mode(sl_rtl_abr_libitem *item, enum sl_rtl_abr_cs_mode cs_mode)
sl_rtl_abr_create_estimator(sl_rtl_abr_libitem *item)
sl_rtl_abr_process_rtp(sl_rtl_abr_libitem *item, sl_rtl_abr_rtp_data *rtp_data)
sl_rtl_abr_process_rtt(sl_rtl_abr_libitem *item, sl_rtl_abr_rtt_data *rtt_data)
sl_rtl_abr_get_distance(sl_rtl_abr_libitem *item, float *distance)
sl_rtl_abr_get_distance_likeliness(sl_rtl_abr_libitem *item, float *distance_likeliness)

Enumeration Documentation#

sl_rtl_abr_algo_mode#

sl_rtl_abr_algo_mode

ABR estimator mode.

Enumerator
SL_RTL_ABR_ALGO_MODE_REAL_TIME_BASIC

Medium filtering, medium response, medium CPU cost. Suitable for real-time tracking.

SL_RTL_ABR_ALGO_MODE_LAST

Placeholder.


Definition at line 722 of file /mnt/raid/workspaces/ws.SZ9MaSA5u/overlay/gsdk/util/silicon_labs/aox/inc/sl_rtl_clib_api.h

sl_rtl_abr_cs_mode#

sl_rtl_abr_cs_mode
Enumerator
SL_RTL_ABR_CS_MODE_RTP

Round-trip phase based estimation (RTP)

SL_RTL_ABR_CS_MODE_RTT

Round-trip time based estimation (RTT)

SL_RTL_ABR_CS_MODE_LAST

Placeholder.


Definition at line 729 of file /mnt/raid/workspaces/ws.SZ9MaSA5u/overlay/gsdk/util/silicon_labs/aox/inc/sl_rtl_clib_api.h

sl_rtl_abr_tone_quality#

sl_rtl_abr_tone_quality
Enumerator
SL_RTL_ABR_TONE_QUALITY_GOOD
SL_RTL_ABR_TONE_QUALITY_MEDIUM
SL_RTL_ABR_TONE_QUALITY_LOW
SL_RTL_ABR_TONE_QUALITY_UNAVAILABLE

Definition at line 737 of file /mnt/raid/workspaces/ws.SZ9MaSA5u/overlay/gsdk/util/silicon_labs/aox/inc/sl_rtl_clib_api.h

Typedef Documentation#

sl_rtl_abr_libitem#

typedef void* sl_rtl_abr_libitem

ABR library item.


Definition at line 770 of file /mnt/raid/workspaces/ws.SZ9MaSA5u/overlay/gsdk/util/silicon_labs/aox/inc/sl_rtl_clib_api.h

Function Documentation#

sl_rtl_abr_init#

enum sl_rtl_error_code sl_rtl_abr_init (sl_rtl_abr_libitem * item)
Parameters
[in]item

Pointer to the libitem to be initialized

Initialize the ABR libitem instance.

Returns


Definition at line 778 of file /mnt/raid/workspaces/ws.SZ9MaSA5u/overlay/gsdk/util/silicon_labs/aox/inc/sl_rtl_clib_api.h

sl_rtl_abr_deinit#

enum sl_rtl_error_code sl_rtl_abr_deinit (sl_rtl_abr_libitem * item)
Parameters
[in]item

Pointer to the libitem to be deinitialized

Deinitialize a libitem instance of the ABR estimator.

Returns


Definition at line 786 of file /mnt/raid/workspaces/ws.SZ9MaSA5u/overlay/gsdk/util/silicon_labs/aox/inc/sl_rtl_clib_api.h

sl_rtl_abr_set_algo_mode#

enum sl_rtl_error_code sl_rtl_abr_set_algo_mode (sl_rtl_abr_libitem * item, enum sl_rtl_abr_algo_mode mode)
Parameters
[in]item

Pointer to the initialized ABR libitem

[in]mode

Estimator mode as sl_rtl_abr_algo_mode

Set the estimation mode.

Returns

Set the estimation mode. For example, ::SL_RTL_ABR_ALGO_MODE_BASIC sets medium filtering. For further description of the modes, see the documentation of sl_rtl_abr_algo_mode.


Definition at line 799 of file /mnt/raid/workspaces/ws.SZ9MaSA5u/overlay/gsdk/util/silicon_labs/aox/inc/sl_rtl_clib_api.h

sl_rtl_abr_set_cs_mode#

enum sl_rtl_error_code sl_rtl_abr_set_cs_mode (sl_rtl_abr_libitem * item, enum sl_rtl_abr_cs_mode cs_mode)
Parameters
[in]item

Pointer to the initialized ABR libitem

[in]cs_mode

cs_mode as sl_rtl_abr_cs_mode

Set the estimation cs_mode.

Returns

Set the desired cs_mode. For example, SL_RTL_ABR_CS_MODE_RTP uses round-trip phase based cs_mode.


Definition at line 811 of file /mnt/raid/workspaces/ws.SZ9MaSA5u/overlay/gsdk/util/silicon_labs/aox/inc/sl_rtl_clib_api.h

sl_rtl_abr_create_estimator#

enum sl_rtl_error_code sl_rtl_abr_create_estimator (sl_rtl_abr_libitem * item)
Parameters
[in]item

Pointer to the initialized and configured ABR libitem

Create the estimator after initializing the libitem and setting parameters.

Returns


Definition at line 819 of file /mnt/raid/workspaces/ws.SZ9MaSA5u/overlay/gsdk/util/silicon_labs/aox/inc/sl_rtl_clib_api.h

sl_rtl_abr_process_rtp#

enum sl_rtl_error_code sl_rtl_abr_process_rtp (sl_rtl_abr_libitem * item, sl_rtl_abr_rtp_data * rtp_data)
Parameters
[in]item

Pointer to the initialized and configured ABR libitem

[in]rtp_data

Data structure with the RTP measurement data

Calculate distance estimate based on RTP.

Returns

Calculate the distance estimate from the given I/Q samples captured at the given frequencies. Use sl_rtl_abr_get_distance to fetch the latest distance estimate.


Definition at line 836 of file /mnt/raid/workspaces/ws.SZ9MaSA5u/overlay/gsdk/util/silicon_labs/aox/inc/sl_rtl_clib_api.h

sl_rtl_abr_process_rtt#

enum sl_rtl_error_code sl_rtl_abr_process_rtt (sl_rtl_abr_libitem * item, sl_rtl_abr_rtt_data * rtt_data)
Parameters
[in]item

Pointer to the initialized and configured ABR libitem

[in]rtt_data

Data structure with the RTT measurement data

Calculate distance estimate based on RTT.

Returns

Calculate the distance estimate from the given device time samples. Use sl_rtl_abr_get_distance to fetch the latest distance estimate.


Definition at line 851 of file /mnt/raid/workspaces/ws.SZ9MaSA5u/overlay/gsdk/util/silicon_labs/aox/inc/sl_rtl_clib_api.h

sl_rtl_abr_get_distance#

enum sl_rtl_error_code sl_rtl_abr_get_distance (sl_rtl_abr_libitem * item, float * distance)
Parameters
[in]item

Pointer to the initialized ABR libitem

[out]distance

Distance out in meters.

Get likeliness of the distance estimate.

Returns


Definition at line 862 of file /mnt/raid/workspaces/ws.SZ9MaSA5u/overlay/gsdk/util/silicon_labs/aox/inc/sl_rtl_clib_api.h

sl_rtl_abr_get_distance_likeliness#

enum sl_rtl_error_code sl_rtl_abr_get_distance_likeliness (sl_rtl_abr_libitem * item, float * distance_likeliness)
Parameters
[in]item

Pointer to the initialized ABR libitem

[out]distance_likeliness

Likeliness between 0.0 - 1.0 (unlikely - likely) of the estimated distance

Get distance estimate.

Returns


Definition at line 871 of file /mnt/raid/workspaces/ws.SZ9MaSA5u/overlay/gsdk/util/silicon_labs/aox/inc/sl_rtl_clib_api.h