Location Finding#

Location Finding.

These functions are related to the calculation of positions from angles and distances.

Modules#

sl_rtl_loc_locator_item

Enumerations#

enum
SL_RTL_LOC_LOCATOR_MEASUREMENT_AZIMUTH
SL_RTL_LOC_LOCATOR_MEASUREMENT_ELEVATION
SL_RTL_LOC_LOCATOR_MEASUREMENT_DISTANCE
SL_RTL_LOC_LOCATOR_MEASUREMENT_AZIMUTH_DEVIATION
SL_RTL_LOC_LOCATOR_MEASUREMENT_ELEVATION_DEVIATION
SL_RTL_LOC_LOCATOR_MEASUREMENT_DISTANCE_DEVIATION
SL_RTL_LOC_LOCATOR_LAST
}

Locator-specific measurements.

enum
SL_RTL_LOC_TARGET_MEASUREMENT_LAST
}

Target-specific measurements - Not yet supported.

enum
SL_RTL_LOC_ESTIMATION_MODE_TWO_DIM_FAST_RESPONSE
SL_RTL_LOC_ESTIMATION_MODE_THREE_DIM_FAST_RESPONSE
SL_RTL_LOC_ESTIMATION_MODE_TWO_DIM_HIGH_ACCURACY
SL_RTL_LOC_ESTIMATION_MODE_THREE_DIM_HIGH_ACCURACY
SL_RTL_LOC_ESTIMATION_MODE_LAST
}

Estimation mode.

enum
SL_RTL_LOC_MEASUREMENT_VALIDATION_MINIMUM
SL_RTL_LOC_MEASUREMENT_VALIDATION_MEDIUM
SL_RTL_LOC_MEASUREMENT_VALIDATION_FULL
}

Measurement validation method.

enum
SL_RTL_LOC_LOCATOR_PARAMETER_X_COORDINATE
SL_RTL_LOC_LOCATOR_PARAMETER_Y_COORDINATE
SL_RTL_LOC_LOCATOR_PARAMETER_Z_COORDINATE
SL_RTL_LOC_LOCATOR_PARAMETER_X_ORIENTATION
SL_RTL_LOC_LOCATOR_PARAMETER_Y_ORIENTATION
SL_RTL_LOC_LOCATOR_PARAMETER_Z_ORIENTATION
SL_RTL_LOC_LOCATOR_PARAMETER_LAST
}

Locator-specific parameters related to locationing.

enum
SL_RTL_LOC_DEFAULT_AZIMUTH_STDEV
SL_RTL_LOC_DEFAULT_ELEVATION_STDEV
SL_RTL_LOC_DEFAULT_MINIMUM_DISTANCE_STDEV
SL_RTL_LOC_DEFAULT_DISTANCE_STDEV_COEFF
}
enum
SL_RTL_LOC_TARGET_PARAMETER_TARGET_HEIGHT
SL_RTL_LOC_TARGET_CLEAR_TARGET_HEIGHT
SL_RTL_LOC_TARGET_PARAMETER_LAST
}

Target-specific parameters related to locationing.

enum
SL_RTL_LOC_RESULT_POSITION_X = 0
SL_RTL_LOC_RESULT_POSITION_Y
SL_RTL_LOC_RESULT_POSITION_Z
SL_RTL_LOC_RESULT_POSITION_RADIUS
SL_RTL_LOC_RESULT_POSITION_STDEV_X
SL_RTL_LOC_RESULT_POSITION_STDEV_Y
SL_RTL_LOC_RESULT_POSITION_STDEV_Z
SL_RTL_LOC_RESULT_POSITION_VELOCITY_X
SL_RTL_LOC_RESULT_POSITION_VELOCITY_Y
SL_RTL_LOC_RESULT_POSITION_VELOCITY_Z
SL_RTL_LOC_RESULT_POSITION_ACCELERATION_X
SL_RTL_LOC_RESULT_POSITION_ACCELERATION_Y
SL_RTL_LOC_RESULT_POSITION_ACCELERATION_Z
SL_RTL_LOC_RESULT_LAST
}

Locationing state results.

Typedefs#

typedef void *

Locationing library item.

Functions#

sl_rtl_loc_init(sl_rtl_loc_libitem *item)
sl_rtl_loc_deinit(sl_rtl_loc_libitem *item)
sl_rtl_loc_reinit(sl_rtl_loc_libitem *item)
sl_rtl_loc_set_mode(sl_rtl_loc_libitem *item, enum sl_rtl_loc_estimation_mode mode)
sl_rtl_loc_set_measurement_validation(sl_rtl_loc_libitem *item, enum sl_rtl_loc_measurement_validation_method method)
sl_rtl_loc_add_locator(sl_rtl_loc_libitem *item, struct sl_rtl_loc_locator_item *locator_item, uint32_t *locator_id_out)
sl_rtl_loc_add_tag(sl_rtl_loc_libitem *item, int32_t *tag_id_out)
sl_rtl_loc_remove_tag(sl_rtl_loc_libitem *item, int32_t tag_id)
sl_rtl_loc_set_locator_parameter(sl_rtl_loc_libitem *item, uint32_t locator_id, enum sl_rtl_loc_locator_parameter parameter, float value)
sl_rtl_loc_set_target_parameter(sl_rtl_loc_libitem *item, enum sl_rtl_loc_target_parameter parameter, float value)
sl_rtl_loc_set_target_parameter_tag(sl_rtl_loc_libitem *item, enum sl_rtl_loc_target_parameter parameter, float value, int32_t tag_id)
sl_rtl_loc_clear_measurements(sl_rtl_loc_libitem *item)
sl_rtl_loc_clear_measurements_tag(sl_rtl_loc_libitem *item, int32_t tag_id)
sl_rtl_loc_set_locator_measurement(sl_rtl_loc_libitem *item, uint32_t locator_id, enum sl_rtl_loc_locator_measurement_field field, float value)
sl_rtl_loc_set_locator_measurement_tag(sl_rtl_loc_libitem *item, uint32_t locator_id, enum sl_rtl_loc_locator_measurement_field field, float value, int32_t tag_id)
sl_rtl_loc_set_target_measurement(sl_rtl_loc_libitem *item, enum sl_rtl_loc_target_measurement_field field, float value)
sl_rtl_loc_set_default_accuracy(sl_rtl_loc_libitem *item, uint32_t locator_id, enum sl_rtl_loc_default_accuracy_parameter param, float value)
sl_rtl_loc_process(sl_rtl_loc_libitem *item, float time_step)
sl_rtl_loc_process_tag(sl_rtl_loc_libitem *item, float time_step, int32_t tag_id)
sl_rtl_loc_get_result(sl_rtl_loc_libitem *item, enum sl_rtl_loc_result result, float *value)
sl_rtl_loc_get_result_tag(sl_rtl_loc_libitem *item, enum sl_rtl_loc_result result, float *value, int32_t tag_id)
sl_rtl_loc_get_measurement_in_system_coordinates(sl_rtl_loc_libitem *item, uint32_t locator_id, enum sl_rtl_loc_locator_measurement_field field, float *value_out)
sl_rtl_loc_get_measurement_in_system_coordinates_tag(sl_rtl_loc_libitem *item, uint32_t locator_id, enum sl_rtl_loc_locator_measurement_field field, float *value_out, int32_t tag_id)
sl_rtl_loc_get_expected_direction(sl_rtl_loc_libitem *item, uint32_t locator_id, float *azimuth, float *elevation, float *distance)
sl_rtl_loc_get_expected_direction_tag(sl_rtl_loc_libitem *item, uint32_t locator_id, float *azimuth, float *elevation, float *distance, int32_t tag_id)
sl_rtl_loc_get_expected_deviation(sl_rtl_loc_libitem *item, uint32_t locator_id, float *azimuth, float *elevation, float *distance)
sl_rtl_loc_get_expected_deviation_tag(sl_rtl_loc_libitem *item, uint32_t locator_id, float *azimuth, float *elevation, float *distance, int32_t tag_id)
int
sl_rtl_loc_get_number_disabled(sl_rtl_loc_libitem *item)
int
sl_rtl_loc_get_number_disabled_tag(sl_rtl_loc_libitem *item, int32_t tag_id)
bool
sl_rtl_loc_filter_in_reach(sl_rtl_loc_libitem *item, uint32_t locator_id)
sl_rtl_loc_filter_clear(sl_rtl_loc_libitem *item, uint32_t locator_id)
sl_rtl_loc_filter_sphere(sl_rtl_loc_libitem *item, uint32_t locator_id, float radius, bool exclude_region)
sl_rtl_loc_filter_circle(sl_rtl_loc_libitem *item, uint32_t locator_id, float radius, bool exclude_region)
sl_rtl_loc_filter_box(sl_rtl_loc_libitem *item, uint32_t locator_id, float xDelta, float yDelta, float zDelta, bool exclude_region)
sl_rtl_loc_filter_rect(sl_rtl_loc_libitem *item, uint32_t locator_id, float xDelta, float yDelta, bool exclude_region)
sl_rtl_loc_filter_room(sl_rtl_loc_libitem *item, uint32_t locator_id, float minX, float maxX, float minY, float maxY, float minZ, float maxZ, bool exclude_region)
sl_rtl_loc_filter_floor(sl_rtl_loc_libitem *item, uint32_t locator_id, float minX, float maxX, float minY, float maxY, bool exclude_region)
sl_rtl_loc_enable_trilateration(sl_rtl_loc_libitem *item, bool value)
sl_rtl_loc_trilateration_prefer_below_plane(sl_rtl_loc_libitem *item, bool value)

Macros#

#define
#define

Enumeration Documentation#

sl_rtl_loc_locator_measurement_field#

sl_rtl_loc_locator_measurement_field

Locator-specific measurements.

Enumerator
SL_RTL_LOC_LOCATOR_MEASUREMENT_AZIMUTH

Measured azimuth from locator to tag.

SL_RTL_LOC_LOCATOR_MEASUREMENT_ELEVATION

Measured elevation from locator to tag.

SL_RTL_LOC_LOCATOR_MEASUREMENT_DISTANCE

Measured distance from locator to tag.

SL_RTL_LOC_LOCATOR_MEASUREMENT_AZIMUTH_DEVIATION

Azimuth stdev.

SL_RTL_LOC_LOCATOR_MEASUREMENT_ELEVATION_DEVIATION

Elevation stdev.

SL_RTL_LOC_LOCATOR_MEASUREMENT_DISTANCE_DEVIATION

Distance stdev.

SL_RTL_LOC_LOCATOR_LAST

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

sl_rtl_loc_target_measurement_field#

sl_rtl_loc_target_measurement_field

Target-specific measurements - Not yet supported.

Enumerator
SL_RTL_LOC_TARGET_MEASUREMENT_LAST

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

sl_rtl_loc_estimation_mode#

sl_rtl_loc_estimation_mode

Estimation mode.

Enumerator
SL_RTL_LOC_ESTIMATION_MODE_TWO_DIM_FAST_RESPONSE

Two-dimensional mode - Only X and Y plane considered, less filtered mode for fast moving assests.

SL_RTL_LOC_ESTIMATION_MODE_THREE_DIM_FAST_RESPONSE

Three-dimensional mode - Covers X, Y and Z planes, less filtered mode for fast moving assests.

SL_RTL_LOC_ESTIMATION_MODE_TWO_DIM_HIGH_ACCURACY

Two-dimensional mode - Only X and Y plane considered, more filtered mode for relatively static assets.

SL_RTL_LOC_ESTIMATION_MODE_THREE_DIM_HIGH_ACCURACY

Three-dimensional mode - Covers X, Y and Z planes, more filtered mode for relatively static assets.

SL_RTL_LOC_ESTIMATION_MODE_LAST

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

sl_rtl_loc_measurement_validation_method#

sl_rtl_loc_measurement_validation_method

Measurement validation method.

Enumerator
SL_RTL_LOC_MEASUREMENT_VALIDATION_MINIMUM

Only the basic validation integrated in the locationing algorithm (default)

SL_RTL_LOC_MEASUREMENT_VALIDATION_MEDIUM

May discard the most inaccurate measurements with an additional calculation round.

SL_RTL_LOC_MEASUREMENT_VALIDATION_FULL

May discard the most inaccurate measurements with several calculation rounds.


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

sl_rtl_loc_locator_parameter#

sl_rtl_loc_locator_parameter

Locator-specific parameters related to locationing.

Enumerator
SL_RTL_LOC_LOCATOR_PARAMETER_X_COORDINATE

Set X-axis coordinate of the locator.

SL_RTL_LOC_LOCATOR_PARAMETER_Y_COORDINATE

Set Y-axis coordinate of the locator.

SL_RTL_LOC_LOCATOR_PARAMETER_Z_COORDINATE

Set Z-axis coordinate of the locator.

SL_RTL_LOC_LOCATOR_PARAMETER_X_ORIENTATION

Set X-axis rotation of the locator (Euler angles) in degrees.

SL_RTL_LOC_LOCATOR_PARAMETER_Y_ORIENTATION

Set Y-axis rotation of the locator (Euler angles) in degrees.

SL_RTL_LOC_LOCATOR_PARAMETER_Z_ORIENTATION

Set Z-axis rotation of the locator (Euler angles) in degrees.

SL_RTL_LOC_LOCATOR_PARAMETER_LAST

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

sl_rtl_loc_default_accuracy_parameter#

sl_rtl_loc_default_accuracy_parameter
Enumerator
SL_RTL_LOC_DEFAULT_AZIMUTH_STDEV

Set the default azimuth stdev.

SL_RTL_LOC_DEFAULT_ELEVATION_STDEV

Set the default elevation stdev.

SL_RTL_LOC_DEFAULT_MINIMUM_DISTANCE_STDEV

Set the default minimum distance stdev, will be added to the effective stdev value.

SL_RTL_LOC_DEFAULT_DISTANCE_STDEV_COEFF

Set the default distance stdev coeff, will be added after multiplied with the distance measurement to the effective stdev value.


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

sl_rtl_loc_target_parameter#

sl_rtl_loc_target_parameter

Target-specific parameters related to locationing.

Enumerator
SL_RTL_LOC_TARGET_PARAMETER_TARGET_HEIGHT
SL_RTL_LOC_TARGET_CLEAR_TARGET_HEIGHT
SL_RTL_LOC_TARGET_PARAMETER_LAST

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

sl_rtl_loc_result#

sl_rtl_loc_result

Locationing state results.

Enumerator
SL_RTL_LOC_RESULT_POSITION_X

Estimated X-axis position of the target.

SL_RTL_LOC_RESULT_POSITION_Y

Estimated Y-axis position of the target.

SL_RTL_LOC_RESULT_POSITION_Z

Estimated Z-axis position of the target.

SL_RTL_LOC_RESULT_POSITION_RADIUS

The combined radius (stdev) of the location estimate.

SL_RTL_LOC_RESULT_POSITION_STDEV_X

The accuracy (stdev) of the location x-coordinate estimate.

SL_RTL_LOC_RESULT_POSITION_STDEV_Y

The accuracy (stdev) of the location y-coordinate estimate.

SL_RTL_LOC_RESULT_POSITION_STDEV_Z

The accuracy (stdev) of the location z-coordinate estimate.

SL_RTL_LOC_RESULT_POSITION_VELOCITY_X

Estimated X-axis velocity of the target.

SL_RTL_LOC_RESULT_POSITION_VELOCITY_Y

Estimated Y-axis velocity of the target.

SL_RTL_LOC_RESULT_POSITION_VELOCITY_Z

Estimated Z-axis velocity of the target.

SL_RTL_LOC_RESULT_POSITION_ACCELERATION_X

Estimated X-axis acceleration of the target.

SL_RTL_LOC_RESULT_POSITION_ACCELERATION_Y

Estimated Y-axis acceleration of the target.

SL_RTL_LOC_RESULT_POSITION_ACCELERATION_Z

Estimated Z-axis acceleration of the target.

SL_RTL_LOC_RESULT_LAST

Number of results.


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

Typedef Documentation#

sl_rtl_loc_libitem#

typedef void* sl_rtl_loc_libitem

Locationing library item.


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

Function Documentation#

sl_rtl_loc_init#

enum sl_rtl_error_code sl_rtl_loc_init (sl_rtl_loc_libitem * item)
Parameters
[in]item

Pointer to the libitem to be initialized

Initialize the locationing libitem instance.

Returns


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

sl_rtl_loc_deinit#

enum sl_rtl_error_code sl_rtl_loc_deinit (sl_rtl_loc_libitem * item)
Parameters
[in]item

Pointer to the libitem to be initialized

Deinitialize the locationing libitem instance.

Returns


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

sl_rtl_loc_reinit#

enum sl_rtl_error_code sl_rtl_loc_reinit (sl_rtl_loc_libitem * item)
Parameters
[in]item

Pointer to the libitem to be initialized

Reinitialize the locationing libitem instance.

Reset the libitem's internal values to the starting point so that it can start all over from the beginning. This can be used, for example, in testing instead of deleting and re-creating the libitem object.

Returns


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

sl_rtl_loc_set_mode#

enum sl_rtl_error_code sl_rtl_loc_set_mode (sl_rtl_loc_libitem * item, enum sl_rtl_loc_estimation_mode mode)
Parameters
[in]item

Pointer to the libitem

[in]mode

Estimation mode as enum

Set the locationing dimensionality mode. Possible choices are 2D or 3D modes. Two-dimensional mode does not vary the z-position of the target and assumes it is 0 at all times. When updating, for example, the distance measure- ment from the locator to the target in 2D mode, it should be noted that even if the locator and tag are on different z-planes, the distance should be given as the distance as if they were on the same z-plane.

Returns


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

sl_rtl_loc_set_measurement_validation#

enum sl_rtl_error_code sl_rtl_loc_set_measurement_validation (sl_rtl_loc_libitem * item, enum sl_rtl_loc_measurement_validation_method method)
Parameters
[in]item

Pointer to the libitem

[in]method

Validation method as enum

Set the measurement validation method. If not given, the minimum method is used. Possible choices are minimum, medium, and full. The minimum does not increase the calculation CPU load because it is integrated inside the algorithm's normal operation. The medium and full methods use additionally one or multiple calculation rounds respectively and may discard the most inaccurate measurements from the calculation. However, they will always leave enough of them to calculate the estimate.

Returns


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

sl_rtl_loc_add_locator#

enum sl_rtl_error_code sl_rtl_loc_add_locator (sl_rtl_loc_libitem * item, struct sl_rtl_loc_locator_item * locator_item, uint32_t * locator_id_out)
Parameters
[in]item

Pointer to the libitem

[in]locator_item

Locator item instance to be added

[out]locator_id_out

ID of the locator assigned by the library

Add a locator item into the locationing estimator after setting its position and orientation parameters. Add all locators using this function before calling sl_rtl_loc_create_position_estimator to create the estimator instance.

Returns


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

sl_rtl_loc_add_tag#

enum sl_rtl_error_code sl_rtl_loc_add_tag (sl_rtl_loc_libitem * item, int32_t * tag_id_out)
Parameters
[in]item

Pointer to the libitem

[out]tag_id_out

ID of the tag assigned by the library

Add an asset tag item into the locationing estimator.

Returns


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

sl_rtl_loc_remove_tag#

enum sl_rtl_error_code sl_rtl_loc_remove_tag (sl_rtl_loc_libitem * item, int32_t tag_id)
Parameters
[in]item

Pointer to the libitem

[out]tag_id

of the tag to be removed

Remove an asset tag item previously added with sl_rtl_loc_add_tag.

Returns


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

sl_rtl_loc_create_position_estimator#

enum sl_rtl_error_code sl_rtl_loc_create_position_estimator (sl_rtl_loc_libitem * item)
Parameters
[in]item

Pointer to the libitem

Create the position estimator instance after all locators have been added.

Returns


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

sl_rtl_loc_set_locator_parameter#

enum sl_rtl_error_code sl_rtl_loc_set_locator_parameter (sl_rtl_loc_libitem * item, uint32_t locator_id, enum sl_rtl_loc_locator_parameter parameter, float value)
Parameters
[in]item

Pointer to the libitem

[in]locator_id

ID of the locator for which the parameter will be set

[in]parameter

Parameter to be set (as enum)

[in]value

New value for the parameter

Set locator-specific parameters, such as the azimuth and elevation measurement covariances.

Returns


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

sl_rtl_loc_set_target_parameter#

enum sl_rtl_error_code sl_rtl_loc_set_target_parameter (sl_rtl_loc_libitem * item, enum sl_rtl_loc_target_parameter parameter, float value)
Parameters
[in]item

Pointer to the libitem

[in]parameter

Parameter to be set (as enum)

[in]value

New value for the parameter

Set target-specific parameters, such as the known target height.

Returns


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

sl_rtl_loc_set_target_parameter_tag#

enum sl_rtl_error_code sl_rtl_loc_set_target_parameter_tag (sl_rtl_loc_libitem * item, enum sl_rtl_loc_target_parameter parameter, float value, int32_t tag_id)
Parameters
[in]item

Pointer to the libitem

[in]parameter

Parameter to be set (as enum)

[in]value

New value for the parameter

[in]tag_id

TagID of the asset to be changed or SL_RTL_LOC_ALL_TAGS

Set target-specific parameters, such as the known target height for a specified tag.

Returns


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

sl_rtl_loc_clear_measurements#

enum sl_rtl_error_code sl_rtl_loc_clear_measurements (sl_rtl_loc_libitem * item)
Parameters
[in]item

Pointer to the libitem

Clear previous measurements. Call this function before setting new measurements if the previous measurements are not valid for the next iteration step.

Returns


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

sl_rtl_loc_clear_measurements_tag#

enum sl_rtl_error_code sl_rtl_loc_clear_measurements_tag (sl_rtl_loc_libitem * item, int32_t tag_id)
Parameters
[in]item

Pointer to the libitem

[in]tag_id

TagID of the asset to be changed or SL_RTL_LOC_ALL_TAGS

Clear previous measurements for a specified tag. Call this function before setting new measurements if the previous measurements are not valid for the next iteration step.

Returns


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

sl_rtl_loc_set_locator_measurement#

enum sl_rtl_error_code sl_rtl_loc_set_locator_measurement (sl_rtl_loc_libitem * item, uint32_t locator_id, enum sl_rtl_loc_locator_measurement_field field, float value)
Parameters
[in]item

Pointer to the libitem

[in]locator_id

ID of the locator for which the measurement will be set

[in]field

Measurement to be updated (as enum)

[in]value

New value for the measurement

Set a new measurement for a locator specified by the locator ID.

Returns


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

sl_rtl_loc_set_locator_measurement_tag#

enum sl_rtl_error_code sl_rtl_loc_set_locator_measurement_tag (sl_rtl_loc_libitem * item, uint32_t locator_id, enum sl_rtl_loc_locator_measurement_field field, float value, int32_t tag_id)
Parameters
[in]item

Pointer to the libitem

[in]locator_id

ID of the locator for which the measurement will be set

[in]field

Measurement to be updated (as enum)

[in]value

New value for the measurement

[in]tag_id

TagID of the asset to be changed

Set a new measurement for a locator specified by the locator ID for a specified tag.

Returns


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

sl_rtl_loc_set_target_measurement#

enum sl_rtl_error_code sl_rtl_loc_set_target_measurement (sl_rtl_loc_libitem * item, enum sl_rtl_loc_target_measurement_field field, float value)
Parameters
[in]item

Pointer to the libitem

[in]field

Measurement to be updated (as enum)

[in]value

New value for the measurement

Set a new measurement for the target. Because the current version does not support this function, calling it has no effect.

Returns


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

sl_rtl_loc_set_default_accuracy#

enum sl_rtl_error_code sl_rtl_loc_set_default_accuracy (sl_rtl_loc_libitem * item, uint32_t locator_id, enum sl_rtl_loc_default_accuracy_parameter param, float value)
Parameters
[in]item

Pointer to the libitem

[in]locator_id

ID of the locator whose parameter will be set

[in]param

Parameter to be set (as enum)

[in]value

New value for the default accuracy

Set the default accuracy value for direction / distance. This value will be used if not given explicitly by measurement.

Returns


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

sl_rtl_loc_process#

enum sl_rtl_error_code sl_rtl_loc_process (sl_rtl_loc_libitem * item, float time_step)
Parameters
[in]item

Pointer to the libitem

[in]time_step

Process time interval in seconds. This is the time separation between the previous step and this current step.

Process the current time step of the locationing filter. Call this function after old measurements are cleared and new measurements are set for the current time step. The process will step the filter forward and provide new state results and state covariance values, which can be retrieved with separate function calls.

Returns


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

sl_rtl_loc_process_tag#

enum sl_rtl_error_code sl_rtl_loc_process_tag (sl_rtl_loc_libitem * item, float time_step, int32_t tag_id)
Parameters
[in]item

Pointer to the libitem

[in]time_step

Process time interval in seconds. This is the time separation between the previous step and this current step.

[in]tag_id

TagID of the asset to be processed or SL_RTL_LOC_ALL_TAGS

Process the current time step of the locationing filter for a specified tag. Call this function after old measurements are cleared and new measurements are set for the current time step. The process will step the filter forward and provide new state results and state covariance values, which can be retrieved with separate function calls.

Returns


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

sl_rtl_loc_get_result#

enum sl_rtl_error_code sl_rtl_loc_get_result (sl_rtl_loc_libitem * item, enum sl_rtl_loc_result result, float * value)
Parameters
[in]item

Pointer to the libitem

[in]result

The desired state variable result as enum

[out]value

The value output of the state variable

Get result of the current state variables or state covariances.

Returns


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

sl_rtl_loc_get_result_tag#

enum sl_rtl_error_code sl_rtl_loc_get_result_tag (sl_rtl_loc_libitem * item, enum sl_rtl_loc_result result, float * value, int32_t tag_id)
Parameters
[in]item

Pointer to the libitem

[in]result

The desired state variable result as enum

[out]value

The value output of the state variable

[in]tag_id

TagID of the asset to fetch the results for

Get result of the current state variables or state covariances for a specified tag.

Returns


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

sl_rtl_loc_get_measurement_in_system_coordinates#

enum sl_rtl_error_code sl_rtl_loc_get_measurement_in_system_coordinates (sl_rtl_loc_libitem * item, uint32_t locator_id, enum sl_rtl_loc_locator_measurement_field field, float * value_out)
Parameters
[in]item

Pointer to the libitem

[in]locator_id

ID of the locator whose measurement will be retrieved

[in]field

Measurement to be retrieved (as enum)

[out]value_out

The value output of the state variable

Get the latest measurement converted into the coordinate system of the multi-locator system.

Returns


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

sl_rtl_loc_get_measurement_in_system_coordinates_tag#

enum sl_rtl_error_code sl_rtl_loc_get_measurement_in_system_coordinates_tag (sl_rtl_loc_libitem * item, uint32_t locator_id, enum sl_rtl_loc_locator_measurement_field field, float * value_out, int32_t tag_id)
Parameters
[in]item

Pointer to the libitem

[in]locator_id

ID of the locator whose measurement will be retrieved

[in]field

Measurement to be retrieved (as enum)

[out]value_out

The value output of the state variable

[in]tag_id

TagID of the asset

Get the latest measurement converted into the coordinate system of the multi-locator system for a specified tag.

Returns


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

sl_rtl_loc_get_expected_direction#

enum sl_rtl_error_code sl_rtl_loc_get_expected_direction (sl_rtl_loc_libitem * item, uint32_t locator_id, float * azimuth, float * elevation, float * distance)
Parameters
[in]item

Pointer to the libitem

[in]locator_id

ID of the locator whose measurement will be retrieved

[out]azimuth

The expected azimuth value

[out]elevation

The expected elevation value

[out]distance

The expected distance value

Get the expected direction of the asset for the locator.

Returns

Position calculation has a better overall view to the asset's location than any individual locator. If the direction angles differ too much from the expected direction, the locator can be instructed to correct its internal state so that in can recover from this incorrectness faster. See also sl_rtl_aox_set_expected_direction()


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

sl_rtl_loc_get_expected_direction_tag#

enum sl_rtl_error_code sl_rtl_loc_get_expected_direction_tag (sl_rtl_loc_libitem * item, uint32_t locator_id, float * azimuth, float * elevation, float * distance, int32_t tag_id)
Parameters
[in]item

Pointer to the libitem

[in]locator_id

ID of the locator whose measurement will be retrieved

[out]azimuth

The expected azimuth value

[out]elevation

The expected elevation value

[out]distance

The expected distance value

[in]tag_id

TagID of the asset

Get the expected direction of the asset for the locator for a specified tag.

Returns

Position calculation has a better overall view to the asset's location than any individual locator. If the direction angles differ too much from the expected direction, the locator can be instructed to correct its internal state so that in can recover from this incorrectness faster. See also sl_rtl_aox_set_expected_direction().


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

sl_rtl_loc_get_expected_deviation#

enum sl_rtl_error_code sl_rtl_loc_get_expected_deviation (sl_rtl_loc_libitem * item, uint32_t locator_id, float * azimuth, float * elevation, float * distance)
Parameters
[in]item

ID of the locator whose measurement will be retrieved

[out]locator_id

The expected azimuth value's standard deviation

[out]azimuth

The expected elevation value's standard deviation

[in]elevation

Pointer to the libitem

[out]distance

The expected distance value's standard deviation

Get the deviation values for expected direction of the asset for the locator.

Returns


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

sl_rtl_loc_get_expected_deviation_tag#

enum sl_rtl_error_code sl_rtl_loc_get_expected_deviation_tag (sl_rtl_loc_libitem * item, uint32_t locator_id, float * azimuth, float * elevation, float * distance, int32_t tag_id)
Parameters
[in]item

Pointer to the libitem

[in]locator_id

ID of the locator whose measurement will be retrieved

[out]azimuth

The expected azimuth value's standard deviation

[out]elevation

The expected elevation value's standard deviation

[out]distance

The expected distance value's standard deviation

[in]tag_id

TagID of the asset

Get the deviation values for expected direction of the asset for the locator for a specified tag.

Returns


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

sl_rtl_loc_get_number_disabled#

int sl_rtl_loc_get_number_disabled (sl_rtl_loc_libitem * item)
Parameters
[in]item

Pointer to the libitem

Get the number of locators, which are disabled from position calculation because the direction error is too large.

Returns

  • Number of locators needing correction, or -1 in case of any other error


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

sl_rtl_loc_get_number_disabled_tag#

int sl_rtl_loc_get_number_disabled_tag (sl_rtl_loc_libitem * item, int32_t tag_id)
Parameters
[in]item

Pointer to the libitem

[in]tag_id

TagID of the asset

Get the number of locators, which are disabled from position calculation because the direction error is too large, for a specified tag.

Returns

  • Number of locators needing correction, or -1 in case of any other error


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

sl_rtl_loc_filter_in_reach#

bool sl_rtl_loc_filter_in_reach (sl_rtl_loc_libitem * item, uint32_t locator_id)
Parameters
[in]item

Pointer to the libitem

[in]locator_id

ID of the locator to run the test

Check if the asset is in reach of a given locator according to the position-based filtering.

Returns


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

sl_rtl_loc_filter_clear#

enum sl_rtl_error_code sl_rtl_loc_filter_clear (sl_rtl_loc_libitem * item, uint32_t locator_id)
Parameters
[in]item

Pointer to the libitem

[in]locator_id

ID of a single locator or SL_RTL_LOC_ALL_LOCATORS

Clear all the position-based filters from a locator or from all locators.

Returns


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

sl_rtl_loc_filter_sphere#

enum sl_rtl_error_code sl_rtl_loc_filter_sphere (sl_rtl_loc_libitem * item, uint32_t locator_id, float radius, bool exclude_region)
Parameters
[in]item

Pointer to the libitem

[in]locator_id

ID of a single locator or SL_RTL_LOC_ALL_LOCATORS

[in]radius

Distance from the locator

[in]exclude_region

If true, define an excluded region instead

Add a position-based filter. This filter is based on the distance from a locator. The filter can be added to one locator or all locators. A locator may have several filters which are combined.

Returns


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

sl_rtl_loc_filter_circle#

enum sl_rtl_error_code sl_rtl_loc_filter_circle (sl_rtl_loc_libitem * item, uint32_t locator_id, float radius, bool exclude_region)
Parameters
[in]item

Pointer to the libitem

[in]locator_id

ID of a single locator or SL_RTL_LOC_ALL_LOCATORS

[in]radius

Distance from the locator

[in]exclude_region

If true, define an excluded region instead

Add a position-based filter. The two dimensional filter is based on the distance from a locator. The filter can be added to one locator or all locators. A locator may have several filters which are combined.

Returns


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

sl_rtl_loc_filter_box#

enum sl_rtl_error_code sl_rtl_loc_filter_box (sl_rtl_loc_libitem * item, uint32_t locator_id, float xDelta, float yDelta, float zDelta, bool exclude_region)
Parameters
[in]item

Pointer to the libitem

[in]locator_id

ID of a single locator or SL_RTL_LOC_ALL_LOCATORS

[in]xDelta

Maximum distance in X-coordinate direction

[in]yDelta

Maximum distance in Y-coordinate direction

[in]zDelta

Maximum distance in Z-coordinate direction

[in]exclude_region

If true, define an excluded region instead

Add a position-based filter. This filter defines relative distances in coordinate axes' directions. The filter can be added to one locator or all locators. A locator may have several filters which are combined.

Returns


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

sl_rtl_loc_filter_rect#

enum sl_rtl_error_code sl_rtl_loc_filter_rect (sl_rtl_loc_libitem * item, uint32_t locator_id, float xDelta, float yDelta, bool exclude_region)
Parameters
[in]item

Pointer to the libitem

[in]locator_id

ID of a single locator or SL_RTL_LOC_ALL_LOCATORS

[in]xDelta

Maximum distance in X-coordinate direction

[in]yDelta

Maximum distance in Y-coordinate direction

[in]exclude_region

If true, define an excluded region instead

Add a position-based filter. This two dimensional filter defines relative distances in coordinate axes' directions. The filter can be added to one locator or all locators. A locator may have several filters which are combined.

Returns


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

sl_rtl_loc_filter_room#

enum sl_rtl_error_code sl_rtl_loc_filter_room (sl_rtl_loc_libitem * item, uint32_t locator_id, float minX, float maxX, float minY, float maxY, float minZ, float maxZ, bool exclude_region)
Parameters
[in]item

Pointer to the libitem

[in]locator_id

ID of a single locator or SL_RTL_LOC_ALL_LOCATORS

[in]minX

Minimum X-coordinate value

[in]maxX

Maximum X-coordinate value

[in]minY

Minimum Y-coordinate value

[in]maxY

Maximum Y-coordinate value

[in]minZ

Minimum Z-coordinate value

[in]maxZ

Maximum Z-coordinate value

[in]exclude_region

If true, define an excluded region instead

Add a position-based filter. This filter defines an area in global coordinates. The filter can be added to one locator or all locators. A locator may have several filters which are combined.

Returns


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

sl_rtl_loc_filter_floor#

enum sl_rtl_error_code sl_rtl_loc_filter_floor (sl_rtl_loc_libitem * item, uint32_t locator_id, float minX, float maxX, float minY, float maxY, bool exclude_region)
Parameters
[in]item

Pointer to the libitem

[in]locator_id

ID of a single locator or SL_RTL_LOC_ALL_LOCATORS

[in]minX

Minimum X-coordinate value

[in]maxX

Maximum X-coordinate value

[in]minY

Minimum Y-coordinate value

[in]maxY

Maximum Y-coordinate value

[in]exclude_region

If true, define an excluded region instead

Add a position-based filter. The two dimensional filter defines an area in global coordinates. The filter can be added to one locator or all locators. A locator may have several filters which are combined.

Returns


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

sl_rtl_loc_enable_trilateration#

enum sl_rtl_error_code sl_rtl_loc_enable_trilateration (sl_rtl_loc_libitem * item, bool value)
Parameters
[in]item

Pointer to the libitem

[in]value

Turn the trilateration on or off

Enable trilateration method in location calculation.

The trilateration method calculates the position based on the distances from the locators rather than the direction angles. This function enables the method, but the location calculation may still utilize also the directon if available to further increase the accuracy.

Trilateration method is not turned on by default.

Returns


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

sl_rtl_loc_trilateration_prefer_below_plane#

enum sl_rtl_error_code sl_rtl_loc_trilateration_prefer_below_plane (sl_rtl_loc_libitem * item, bool value)
Parameters
[in]item

Pointer to the libitem

[in]value

Turn the trilateration on or off

Prefer the asset location below or above the locator plane.

If the locators are all in the same plane (or close to it), the height of the asset may become ambiguous. Set the preference to be below or above plane so that is more likely to end up in the correct position.

The default options is below the plane.

Returns


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

Macro Definition Documentation#

SL_RTL_LOC_ALL_LOCATORS#

#define SL_RTL_LOC_ALL_LOCATORS
Value:
(uint32_t)(-1)

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

SL_RTL_LOC_ALL_TAGS#

#define SL_RTL_LOC_ALL_TAGS
Value:
INT32_MAX

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