Utility Functionality#

Utility Functionality.

These functions provide supporting functionality such as conversions, additional filtering, diagnostics, and setup functions.

Enumerations#

enum
SL_RTL_UTIL_PARAMETER_AMOUNT_OF_FILTERING = 0
}

Util parameter.

Typedefs#

typedef void *

Utility library item.

Functions#

sl_rtl_util_init(sl_rtl_util_libitem *item)
sl_rtl_util_deinit(sl_rtl_util_libitem *item)
sl_rtl_util_set_parameter(sl_rtl_util_libitem *item, enum sl_rtl_util_parameter parameter, float value)
sl_rtl_util_filter(sl_rtl_util_libitem *item, float value_in, float *value_out)
sl_rtl_util_rssi2distance(float tx_power, float rssi, float *distance_out)
sl_rtl_util_iq_sample_qa_setup(sl_rtl_util_libitem *item, uint32_t level, uint32_t num_antennas, bool raw_samples)
sl_rtl_util_iq_sample_qa_set_parameters(sl_rtl_util_libitem *item, uint32_t sample_rate, uint8_t sample_offset, uint8_t samples_in_slot, uint8_t number_of_channels)
sl_rtl_util_iq_sample_qa_set_data_offset(sl_rtl_util_libitem *item, uint32_t offset)
sl_rtl_util_iq_sample_qa_set_switch_pattern(sl_rtl_util_libitem *item, uint32_t size, uint32_t *pattern)
sl_rtl_util_iq_sample_qa_add_reference(sl_rtl_util_libitem *item, uint32_t num_samples, float *i_samples, float *q_samples)
sl_rtl_util_iq_sample_qa_add_data(sl_rtl_util_libitem *item, uint32_t num_snapshots, float **i_samples, float **q_samples, uint8_t channel)
uint32_t
sl_rtl_util_iq_sample_qa_get_results(sl_rtl_util_libitem *item)
sl_rtl_util_iq_sample_qa_get_details(sl_rtl_util_libitem *item, sl_rtl_clib_iq_sample_qa_dataset_t *iq_sample_qa_results, sl_rtl_clib_iq_sample_qa_antenna_data_t *antenna_data)
sl_rtl_util_iq_sample_qa_get_channel_details(sl_rtl_util_libitem *item, uint8_t channel, sl_rtl_clib_iq_sample_qa_dataset_t *iq_sample_qa_results, sl_rtl_clib_iq_sample_qa_antenna_data_t *antenna_data)
char *
sl_rtl_util_iq_sample_qa_code2string(char *buf, int size, uint32_t code)
sl_rtl_util_validate_bluetooth_cs_channel_map(const sl_rtl_cs_mode cs_mode, const sl_rtl_cs_algo_mode algo_mode, const uint8_t channel_map[10])

Enumeration Documentation#

sl_rtl_util_parameter#

sl_rtl_util_parameter

Util parameter.

Enumerator
SL_RTL_UTIL_PARAMETER_AMOUNT_OF_FILTERING

Amount of filtering in range [0.0f, 1.0f].


Definition at line 1842 of file /mnt/raid/workspaces/ws.PnjKN2fAf/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h

Typedef Documentation#

sl_rtl_util_libitem#

typedef void* sl_rtl_util_libitem

Utility library item.


Definition at line 1839 of file /mnt/raid/workspaces/ws.PnjKN2fAf/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h

Function Documentation#

sl_rtl_util_init#

enum sl_rtl_error_code sl_rtl_util_init (sl_rtl_util_libitem * item)
Parameters
TypeDirectionArgument NameDescription
sl_rtl_util_libitem *[in]item

Pointer to the libitem to be initialized

Initialize the Util libitem instance.

Returns


Definition at line 1852 of file /mnt/raid/workspaces/ws.PnjKN2fAf/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h

sl_rtl_util_deinit#

enum sl_rtl_error_code sl_rtl_util_deinit (sl_rtl_util_libitem * item)
Parameters
TypeDirectionArgument NameDescription
sl_rtl_util_libitem *[in]item

Pointer to the libitem to be deinitialized

Deinitialize a Util libitem instance.

Returns


Definition at line 1860 of file /mnt/raid/workspaces/ws.PnjKN2fAf/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h

sl_rtl_util_set_parameter#

enum sl_rtl_error_code sl_rtl_util_set_parameter (sl_rtl_util_libitem * item, enum sl_rtl_util_parameter parameter, float value)
Parameters
TypeDirectionArgument NameDescription
sl_rtl_util_libitem *[in]item

Pointer to the initialized Util libitem

enum sl_rtl_util_parameter[in]parameter

Parameter to change

float[in]value

Value of the parameter

Set util parameters.

Returns


Definition at line 1870 of file /mnt/raid/workspaces/ws.PnjKN2fAf/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h

sl_rtl_util_filter#

enum sl_rtl_error_code sl_rtl_util_filter (sl_rtl_util_libitem * item, float value_in, float * value_out)
Parameters
TypeDirectionArgument NameDescription
sl_rtl_util_libitem *[in]item

Pointer to the initialized Util libitem

float[in]value_in

Value to be fed to the filter

float *[out]value_out

Pointer to the filtered value

Filter a value using the moving average.

Returns


Definition at line 1880 of file /mnt/raid/workspaces/ws.PnjKN2fAf/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h

sl_rtl_util_rssi2distance#

enum sl_rtl_error_code sl_rtl_util_rssi2distance (float tx_power, float rssi, float * distance_out)
Parameters
TypeDirectionArgument NameDescription
float[in]tx_power

Reference RSSI value of the TX-device at 1.0 m distance in dBm, for example -45.0f

float[in]rssi

Measured RSSI from the receiver

float *[out]distance_out

Distance in meters

Convert an RSSI-value to distance in meters.

Returns


Definition at line 1890 of file /mnt/raid/workspaces/ws.PnjKN2fAf/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h

sl_rtl_util_iq_sample_qa_setup#

enum sl_rtl_error_code sl_rtl_util_iq_sample_qa_setup (sl_rtl_util_libitem * item, uint32_t level, uint32_t num_antennas, bool raw_samples)
Parameters
TypeDirectionArgument NameDescription
sl_rtl_util_libitem *[in]item

Pointer to the initialized Util libitem

uint32_t[in]level

Analysis level

uint32_t[in]num_antennas

The number of antennas in the array

bool[in]raw_samples

Data contains raw samples instead of picked ones

Set up the IQ sample quality analysis.

Returns


Definition at line 1901 of file /mnt/raid/workspaces/ws.PnjKN2fAf/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h

sl_rtl_util_iq_sample_qa_set_parameters#

enum sl_rtl_error_code sl_rtl_util_iq_sample_qa_set_parameters (sl_rtl_util_libitem * item, uint32_t sample_rate, uint8_t sample_offset, uint8_t samples_in_slot, uint8_t number_of_channels)
Parameters
TypeDirectionArgument NameDescription
sl_rtl_util_libitem *[in]item

Pointer to the initialized Util libitem

uint32_t[in]sample_rate

The sampling rate

uint8_t[in]sample_offset

The offset for the picked sample in the sampling slot

uint8_t[in]samples_in_slot

Number of samples in the sampling slot

uint8_t[in]number_of_channels

Number of radio channels

Set up parameters for the IQ sample quality analysis.

Returns


Definition at line 1913 of file /mnt/raid/workspaces/ws.PnjKN2fAf/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h

sl_rtl_util_iq_sample_qa_set_downsampling_factor#

enum sl_rtl_error_code sl_rtl_util_iq_sample_qa_set_downsampling_factor (sl_rtl_util_libitem * item, float dsf)
Parameters
TypeDirectionArgument NameDescription
sl_rtl_util_libitem *[in]item

Pointer to the initialized Util libitem

float[in]dsf

The downsampling factor

Set up IQ sample QA downsampling ratio.

Set the downsampling factor used during the antenna samples (related to the sampling rate of the reference period)

Returns


Definition at line 1925 of file /mnt/raid/workspaces/ws.PnjKN2fAf/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h

sl_rtl_util_iq_sample_qa_set_data_offset#

enum sl_rtl_error_code sl_rtl_util_iq_sample_qa_set_data_offset (sl_rtl_util_libitem * item, uint32_t offset)
Parameters
TypeDirectionArgument NameDescription
sl_rtl_util_libitem *[in]item

Pointer to the initialized Util libitem

uint32_t[in]offset

The data samples' offset

Set data samples offset.

Set the offset for the data samples from the start of the reference period. The use of this function is optional and, if not given, the default values are used.

Returns


Definition at line 1938 of file /mnt/raid/workspaces/ws.PnjKN2fAf/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h

sl_rtl_util_iq_sample_qa_set_switch_pattern#

enum sl_rtl_error_code sl_rtl_util_iq_sample_qa_set_switch_pattern (sl_rtl_util_libitem * item, uint32_t size, uint32_t * pattern)
Parameters
TypeDirectionArgument NameDescription
sl_rtl_util_libitem *[in]item

Pointer to the initialized Util libitem

uint32_t[in]size

The size of the switch pattern

uint32_t *[in]pattern

Array of integers representing the switch pattern

Set the switch pattern for the IQ sample quality.

Returns


Definition at line 1948 of file /mnt/raid/workspaces/ws.PnjKN2fAf/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h

sl_rtl_util_iq_sample_qa_add_reference#

enum sl_rtl_error_code sl_rtl_util_iq_sample_qa_add_reference (sl_rtl_util_libitem * item, uint32_t num_samples, float * i_samples, float * q_samples)
Parameters
TypeDirectionArgument NameDescription
sl_rtl_util_libitem *[in]item

Pointer to the initialized Util libitem

uint32_t[in]num_samples

The size of data

float *[in]i_samples

I-part of the sample data

float *[in]q_samples

Q-part of the sample data

Feed the IQ sample quality analysis the reference period data.

Returns


Definition at line 1959 of file /mnt/raid/workspaces/ws.PnjKN2fAf/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h

sl_rtl_util_iq_sample_qa_add_data#

enum sl_rtl_error_code sl_rtl_util_iq_sample_qa_add_data (sl_rtl_util_libitem * item, uint32_t num_snapshots, float ** i_samples, float ** q_samples, uint8_t channel)
Parameters
TypeDirectionArgument NameDescription
sl_rtl_util_libitem *[in]item

Pointer to the initialized Util libitem

uint32_t[in]num_snapshots

The size of the data

float **[in]i_samples

I-part of the sample data

float **[in]q_samples

Q-part of the sample data

uint8_t[in]channel

Radio channel the packet is using.

Feed the IQ sample quality analysis the antenna data.

Returns


Definition at line 1970 of file /mnt/raid/workspaces/ws.PnjKN2fAf/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h

sl_rtl_util_iq_sample_qa_get_results#

uint32_t sl_rtl_util_iq_sample_qa_get_results (sl_rtl_util_libitem * item)
Parameters
TypeDirectionArgument NameDescription
sl_rtl_util_libitem *[in]item

Pointer to the initialized Util libitem

Get the overall results of the IQ sample quality analysis.

Returns

  • Bitmask of the failing tests, zero if everything passed


Definition at line 1979 of file /mnt/raid/workspaces/ws.PnjKN2fAf/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h

sl_rtl_util_iq_sample_qa_get_details#

enum sl_rtl_error_code sl_rtl_util_iq_sample_qa_get_details (sl_rtl_util_libitem * item, sl_rtl_clib_iq_sample_qa_dataset_t * iq_sample_qa_results, sl_rtl_clib_iq_sample_qa_antenna_data_t * antenna_data)
Parameters
TypeDirectionArgument NameDescription
sl_rtl_util_libitem *[in]item

Pointer to the initialized Util libitem

sl_rtl_clib_iq_sample_qa_dataset_t *[out]iq_sample_qa_results

The data structure with data related to the previous data packet

sl_rtl_clib_iq_sample_qa_antenna_data_t *[out]antenna_data

The array of antenna-specific results

Get the detailed results of the IQ sample quality analysis.

Returns


Definition at line 1989 of file /mnt/raid/workspaces/ws.PnjKN2fAf/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h

sl_rtl_util_iq_sample_qa_get_channel_details#

enum sl_rtl_error_code sl_rtl_util_iq_sample_qa_get_channel_details (sl_rtl_util_libitem * item, uint8_t channel, sl_rtl_clib_iq_sample_qa_dataset_t * iq_sample_qa_results, sl_rtl_clib_iq_sample_qa_antenna_data_t * antenna_data)
Parameters
TypeDirectionArgument NameDescription
sl_rtl_util_libitem *[in]item

Pointer to the initialized Util libitem

uint8_t[in]channel

Radio channel to show results for.

sl_rtl_clib_iq_sample_qa_dataset_t *[out]iq_sample_qa_results

The data structure with data related to the last data packet using the requested channel

sl_rtl_clib_iq_sample_qa_antenna_data_t *[out]antenna_data

The array of antenna specific results

Get the detailed results of the IQ sample quality analysis for the specified radio channel.

Returns


Definition at line 2000 of file /mnt/raid/workspaces/ws.PnjKN2fAf/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h

sl_rtl_util_iq_sample_qa_code2string#

char * sl_rtl_util_iq_sample_qa_code2string (char * buf, int size, uint32_t code)
Parameters
TypeDirectionArgument NameDescription
char *[in]buf

Buffer for the results to be written

int[in]size

Size of the buffer

uint32_t[in]code

The results previously received from the sl_rtl_util_iq_sample_qa_get_results()

Write the IQ sample quality analysis code as human readable strings in the provided buffer.

Returns

  • pointer to the buffer containing data, or to a constant string


Definition at line 2010 of file /mnt/raid/workspaces/ws.PnjKN2fAf/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h

sl_rtl_util_validate_bluetooth_cs_channel_map#

enum sl_rtl_error_code sl_rtl_util_validate_bluetooth_cs_channel_map (const sl_rtl_cs_mode cs_mode, const sl_rtl_cs_algo_mode algo_mode, const uint8_t channel_map)
Parameters
TypeDirectionArgument NameDescription
const sl_rtl_cs_mode[in]cs_mode

Channel sounding mode (see the CS API)

const sl_rtl_cs_algo_mode[in]algo_mode

Channel sounding algorithm mode (see the CS API)

const uint8_t[in]channel_map

Bluetooth channel bitmap to validate

Validate Bluetooth channel map for Channel Sounding (CS) measurement based on the user input parameters. The function will return SL_RTL_ERROR_SUCCESS if the requested channel map is compatible with the algorithm and the selected mode settings. Otherwise an error will be returned. This function does not check for any Bluetooth-related constraints (for example skipping of the advertisement channels).

Returns


Definition at line 2025 of file /mnt/raid/workspaces/ws.PnjKN2fAf/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h