Channel Sounding (CS)#
Channel Sounding.
Distances are calculated by following the steps below:
Initialize a sl_rtl_cs_libitem instance.
Set up the algorithm mode and CS parameters.
Create the estimator.
Process the CS procedure data into distance.
Get distance and/or likeliness estimates.
Enumerations#
Typedefs#
CS library item.
Functions#
Enumeration Documentation#
sl_rtl_cs_role#
sl_rtl_cs_role
Enumerator | |
---|---|
SL_RTL_CS_ROLE_INITIATOR | Initiator role. |
SL_RTL_CS_ROLE_REFLECTOR | Reflector role. |
752
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_algo_mode#
sl_rtl_cs_algo_mode
Enumerator | |
---|---|
SL_RTL_CS_ALGO_MODE_REAL_TIME_BASIC | Suitable for real-time tracking. |
SL_RTL_CS_ALGO_MODE_STATIC_HIGH_ACCURACY | Suitable for ranging between static objects with high-accuracy. |
757
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_mode#
sl_rtl_cs_mode
Enumerator | |
---|---|
SL_RTL_CS_MODE_CALIBRATION | Calibration mode with no distance estimation enabled. |
SL_RTL_CS_MODE_RTT | Round-trip time based estimation (RTT). |
SL_RTL_CS_MODE_PBR | Round-trip phase based estimation (PBR). |
766
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_rtt_type#
sl_rtl_cs_rtt_type
Enumerator | |
---|---|
SL_RTL_CS_RTT_TYPE_AAONLY | |
SL_RTL_CS_RTT_TYPE_SS_32BIT | |
SL_RTL_CS_RTT_TYPE_SS_96BIT |
775
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_estimator_param_type#
sl_rtl_cs_estimator_param_type
Enumerator | |
---|---|
SL_RTL_LAST_KNOWN_DISTANCE | Last known distance from the user, if more recent than the last CS measurement. |
SL_RTL_RANGE_MIN | Minimum limit for the distance estimation range. |
SL_RTL_RANGE_MAX | Maximum limit for the distance estimation range. |
SL_RTL_REF_TX_POWER | Reference RSSI value of the TX-device at 1.0 m distance in dBm. Default value is -45.0 dBm. |
822
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_distance_estimate_type#
sl_rtl_cs_distance_estimate_type
Enumerator | |
---|---|
SL_RTL_CS_DISTANCE_ESTIMATE_TYPE_FILTERED | |
SL_RTL_CS_DISTANCE_ESTIMATE_TYPE_RSSI |
918
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_distance_estimate_confidence_type#
sl_rtl_cs_distance_estimate_confidence_type
Enumerator | |
---|---|
SL_RTL_CS_DISTANCE_ESTIMATE_CONFIDENCE_TYPE_LIKELINESS | |
SL_RTL_CS_DISTANCE_ESTIMATE_CONFIDENCE_TYPE_BIT_ERROR_RATE | Bit error rate is only supported for RTT with RTT types SS_32BIT and SS_96BIT. |
923
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_distance_estimate_extended_info_type#
sl_rtl_cs_distance_estimate_extended_info_type
Enumerator | |
---|---|
SL_RTL_CS_DISTANCE_ESTIMATE_EXTENDED_INFO_TYPE_PROGRESS_PERCENTAGE | Estimation progress in percentage.
|
935
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
Typedef Documentation#
sl_rtl_cs_libitem#
typedef void* sl_rtl_cs_libitem
CS library item.
942
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
Function Documentation#
typedef#
typedef (struct { uint32_t max_number_of_frequencies;uint32_t delta_f;} )
N/A |
781
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
typedef#
typedef (struct { uint8_t num_antenna_paths;uint8_t channel_map_repetition;uint32_t main_mode_repetition;uint8_t num_calib_steps;uint8_t T_PM_time;uint8_t T_IP1_time;uint8_t T_IP2_time;uint8_t T_FCS_time;uint8_t channel_selection_type;uint8_t ch3c_shape;uint8_t ch3c_jump;uint32_t subevent_len;uint8_t subevents_per_event;uint16_t subevent_interval;uint16_t event_interval;uint16_t procedure_interval;uint16_t procedure_count;uint8_t cs_sync_phy;sl_rtl_cs_rtt_type rtt_type :8;uint16_t acl_connection_interval;} )
N/A |
788
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
typedef#
typedef (union { float last_known_distance;float range_min;float range_max;float ref_tx_power;} )
N/A |
835
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
typedef#
typedef (struct { sl_rtl_cs_estimator_param_type type :8;sl_rtl_cs_estimator_param_value value;} )
N/A |
842
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
typedef#
typedef (struct { uint8_t packet_quality;uint8_t packet_rssi;uint8_t packet_antenna;int16_t measured_freq_offset;} )
N/A |
847
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
typedef#
typedef (struct { uint8_t packet_quality;uint8_t packet_nadm;int8_t packet_rssi;int16_t packet_rtt;uint8_t packet_antenna;} )
N/A |
854
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
typedef#
typedef (struct { uint8_t antenna_permutation_index;1(struct tone { int32_t pct_i:SL_RTL_CS_PCT_IQ_BIT_LEN;int32_t pct_q:SL_RTL_CS_PCT_IQ_BIT_LEN;uint8_t quality_indicator;}) tones[SL_RTL_CS_TONE_ARRAY_LEN];} )
N/A |
862
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
typedef#
typedef (struct { sl_rtl_cs_mode step_mode :SL_RTL_CS_STEP_MODE_BIT_LEN;uint8_t step_channel;uint8_t step_data_length;1(union { sl_rtl_cs_mode_calib_data mode_calib_step;sl_rtl_cs_mode_rtt_data mode_rtt_step;sl_rtl_cs_mode_pbr_data mode_pbr_step;});} )
N/A |
871
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
typedef#
typedef (struct { uint64_t subevent_timestamp_ms;int16_t frequency_compensation;int8_t reference_power_level;uint8_t num_steps;uint16_t step_data_count;uint8_t *step_data;} )
N/A |
883
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
typedef#
typedef (struct { sl_rtl_cs_config cs_config;uint8_t initiator_subevent_data_count;sl_rtl_cs_subevent_data *initiator_subevent_data;uint8_t reflector_subevent_data_count;sl_rtl_cs_subevent_data *reflector_subevent_data;} )
N/A |
910
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
typedef#
typedef (struct { struct timespec timestamp;uint64_t timestamp_ms;} )
N/A |
944
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_init#
enum sl_rtl_error_code sl_rtl_cs_init (sl_rtl_cs_libitem * item)
[in] | item | Pointer to the libitem to be initialized |
Initialize the CS libitem instance.
Returns
SL_RTL_ERROR_SUCCESS if successful
972
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_deinit#
enum sl_rtl_error_code sl_rtl_cs_deinit (sl_rtl_cs_libitem * item)
[in] | item | Pointer to the libitem to be deinitialized |
Deinitialize a libitem instance of the CS estimator.
Returns
SL_RTL_ERROR_SUCCESS if successful
980
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_set_algo_mode#
enum sl_rtl_error_code sl_rtl_cs_set_algo_mode (sl_rtl_cs_libitem * item, const sl_rtl_cs_algo_mode mode)
[in] | item | Pointer to the initialized CS libitem |
[in] | mode | Estimator mode as sl_rtl_cs_algo_mode |
Set the estimation algorithm mode.
Returns
SL_RTL_ERROR_SUCCESS if successful
Set the estimation algorithm mode. For further description of the modes, see the documentation of::sl_rtl_cs_algo_mode. CS libitem must be initialized before calling this method, or it will fail with return code SL_RTL_ERROR_NOT_INITIALIZED. This method should be called before estimator is created for CS libitem, or it will fail with error code SL_RTL_ERROR_ESTIMATOR_ALREADY_CREATED.
997
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_set_cs_mode#
enum sl_rtl_error_code sl_rtl_cs_set_cs_mode (sl_rtl_cs_libitem * item, const sl_rtl_cs_mode cs_mode)
[in] | item | Pointer to the initialized CS libitem |
[in] | cs_mode | cs_mode as sl_rtl_cs_mode |
Set the estimation CS mode.
Returns
SL_RTL_ERROR_SUCCESS if successful
Set the desired cs_mode. For example, SL_RTL_CS_MODE_PBR uses round-trip phase based cs_mode. CS libitem must be initialized before calling this method, or it will fail with return code SL_RTL_ERROR_NOT_INITIALIZED. This method should be called before estimator is created for CS libitem, or it will fail with error code SL_RTL_ERROR_ESTIMATOR_ALREADY_CREATED.
1014
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_set_cs_params#
enum sl_rtl_error_code sl_rtl_cs_set_cs_params (sl_rtl_cs_libitem * item, const sl_rtl_cs_params * parameters)
[in] | item | Pointer to the initialized CS libitem |
[in] | parameters | cs_params as ::sl_rtl_cs_params |
Set the estimation CS parameters.
Returns
SL_RTL_ERROR_SUCCESS if successful
Set the parameters for the estimator. CS libitem must be initialized before calling this method, or it will fail with return code SL_RTL_ERROR_NOT_INITIALIZED. This method should be called before estimator is created for CS libitem, or it will fail with error code SL_RTL_ERROR_ESTIMATOR_ALREADY_CREATED.
1031
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_create_estimator#
enum sl_rtl_error_code sl_rtl_cs_create_estimator (sl_rtl_cs_libitem * item)
[in] | item | Pointer to the initialized and configured CS libitem |
Create an estimator with the given parameters after initializing the libitem.
Returns
SL_RTL_ERROR_SUCCESS if successful
CS libitem must be initialized before calling this method, or it will fail with return code SL_RTL_ERROR_NOT_INITIALIZED. This method should be called before estimator is created for CS libitem, or it will fail with error code SL_RTL_ERROR_ESTIMATOR_ALREADY_CREATED.
1046
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_set_estimator_param#
enum sl_rtl_error_code sl_rtl_cs_set_estimator_param (sl_rtl_cs_libitem * item, const sl_rtl_cs_estimator_param * param)
[in] | item | Pointer to the initialized and configured CS libitem |
[in] | param | Data structure with the CS algorithm parameter to be set |
Set CS algorithm parameters. The function can be called any time before or during the processing calls.
Returns
SL_RTL_ERROR_SUCCESS if successful
CS libitem must be initialized before calling this method, or it will fail with return code SL_RTL_ERROR_NOT_INITIALIZED. This method should be called after estimator is created for CS libitem, or it will fail with error code SL_RTL_ERROR_ESTIMATOR_NOT_CREATED.
1063
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_process#
enum sl_rtl_error_code sl_rtl_cs_process (sl_rtl_cs_libitem * item, const uint8_t procedure_count, const sl_rtl_cs_procedure * procedure_data)
[in] | item | Pointer to the initialized and configured CS libitem |
[in] | procedure_count | Number of procedures in the procedure_data array |
[in] | procedure_data | Data structure with the completed CS procedures |
Calculate distance estimate based on CS procedures.
Returns
SL_RTL_ERROR_SUCCESS if successful and SL_RTL_ERROR_ESTIMATION_IN_PROGRESS if estimate is not yet final and more input data needs to be processed.
Calculate the distance estimate from the given procedure data. The function can be called with multiple procedures. Use sl_rtl_cs_get_distance to fetch the latest distance estimate. CS libitem must be initialized before calling this method, or it will fail with return code SL_RTL_ERROR_NOT_INITIALIZED. This method should be called after estimator is created for CS libitem, or it will fail with error code SL_RTL_ERROR_ESTIMATOR_NOT_CREATED.
1085
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_get_distance_estimate#
enum sl_rtl_error_code sl_rtl_cs_get_distance_estimate (sl_rtl_cs_libitem * item, const sl_rtl_cs_distance_estimate_type estimate_type, float * distance)
[in] | item | Pointer to the initialized CS libitem |
[in] | estimate_type | Type of distance estimate |
[out] | distance | Distance out in meters. |
Get distance estimate
Returns
SL_RTL_ERROR_SUCCESS if successful
CS libitem must be initialized before calling this method, or it will fail with return code SL_RTL_ERROR_NOT_INITIALIZED. This method should be called after estimator is created for CS libitem, or it will fail with error code SL_RTL_ERROR_ESTIMATOR_NOT_CREATED.
1104
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_get_distance_estimate_confidence#
enum sl_rtl_error_code sl_rtl_cs_get_distance_estimate_confidence (sl_rtl_cs_libitem * item, const sl_rtl_cs_distance_estimate_confidence_type confidence_type, float * confidence)
[in] | item | Pointer to the initialized CS libitem |
[in] | confidence_type | Type of confidence estimate |
[out] | confidence | Confidence between 0.0 - 1.0 (unlikely - likely) of the estimated distance |
Get distance estimate confidence.
Returns
SL_RTL_ERROR_SUCCESS if successful
CS libitem must be initialized before calling this method, or it will fail with return code SL_RTL_ERROR_NOT_INITIALIZED. This method should be called after estimator is created for CS libitem, or it will fail with error code SL_RTL_ERROR_ESTIMATOR_NOT_CREATED.
1124
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_get_distance_estimate_extended_info#
enum sl_rtl_error_code sl_rtl_cs_get_distance_estimate_extended_info (sl_rtl_cs_libitem * item, const sl_rtl_cs_distance_estimate_extended_info_type extended_info_type, float * extended_info)
[in] | item | Pointer to the initialized CS libitem |
[in] | extended_info_type | Type of distance estimate extended information |
[out] | extended_info | Extended info value depending on the extedended_info_type selection |
Get distance estimate extended information.
Returns
SL_RTL_ERROR_SUCCESS if successful
CS libitem must be initialized before calling this method, or it will fail with return code SL_RTL_ERROR_NOT_INITIALIZED. This method should be called after estimator is created for CS libitem, or it will fail with error code SL_RTL_ERROR_ESTIMATOR_NOT_CREATED.
1145
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_log_enable#
enum sl_rtl_error_code sl_rtl_cs_log_enable (sl_rtl_cs_libitem * item, const sl_rtl_cs_log_params * log_params)
[in] | item | Pointer to the CS libitem |
[in] | log_params | Pointer to the log initialisation parameters |
Enable logging for the given CS libitem.
Returns
SL_RTL_ERROR_SUCCESS if successful
CS libitem must be initialized before calling this method, or it will fail with return code SL_RTL_ERROR_NOT_INITIALIZED.
1161
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_log_disable#
enum sl_rtl_error_code sl_rtl_cs_log_disable (sl_rtl_cs_libitem * item)
[in] | item | Pointer to the CS libitem |
Disable logging for the given CS libitem.
Returns
SL_RTL_ERROR_SUCCESS if successful
CS libitem must be initialized before calling this method, or it will fail with return code SL_RTL_ERROR_NOT_INITIALIZED.
1173
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
sl_rtl_cs_log_get_instance_id#
uint8_t sl_rtl_cs_log_get_instance_id (sl_rtl_cs_libitem * item)
[in] | item | Pointer to the CS libitem |
Get the instance ID of the given CS libitem.
Returns
Instance ID of the given CS libitem. The value 0 is returned, if the libitem is not initialized.
1182
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
Macro Definition Documentation#
SL_RTL_CS_PCT_IQ_BIT_LEN#
#define SL_RTL_CS_PCT_IQ_BIT_LENValue:
12
Number of bits used for indicating I or Q sample in the phase correction term (PCT) in CS step data.
742
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
SL_RTL_CS_STEP_MODE_BIT_LEN#
#define SL_RTL_CS_STEP_MODE_BIT_LENValue:
8
Number of bits used for indicating step mode in CS step data.
745
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h
SL_RTL_CS_TONE_ARRAY_LEN#
#define SL_RTL_CS_TONE_ARRAY_LENValue:
2
Array length of tones in CS step data. This is calculated as number of antenna paths + 1. Note: Currently, RTL library supports only single antenna path.
747
of file /mnt/raid/workspaces/ws.Dg1ch1o1Y/overlay/gsdk/util/silicon_labs/rtl/inc/sl_rtl_clib_api.h