CS Initiator#

Channel Sounding (CS) Initiator provides an instantiable initiator (central) logic that produce its own CS results and also collects CS results from CS Reflector (peripheral) devices. Once all initiator and reflector results collected correctly it is forwarded to the RTL lib that shall produce the high-level measurement values e.g. distance, likeliness of the current distance, etc.

Modules#

state_machine_event_data_t

Enumerations#

enum
CS_PROCEDURE_ACTION_CONTINUE = 0u
CS_PROCEDURE_ACTION_TRIGGER_RESET
CS_PROCEDURE_ACTION_TRIGGER_START
CS_PROCEDURE_ACTION_TRIGGER_STOP
}
enum
INITIATOR_EVT_INIT_STARTED = 0U
INITIATOR_EVT_INIT_COMPLETED
INITIATOR_EVT_START_PROCEDURE
INITIATOR_EVT_PROCEDURE_ENABLE_STARTING
INITIATOR_EVT_PROCEDURE_ENABLE_COMPLETED
INITIATOR_EVT_PROCEDURE_DISABLE_COMPLETED
INITIATOR_EVT_CS_RESULT
INITIATOR_EVT_DELETE_INSTANCE
INITIATOR_EVT_ERROR
}
enum
CS_PROCEDURE_STATE_IN_PROGRESS = 0u
CS_PROCEDURE_STATE_ABORTED
CS_PROCEDURE_STATE_COMPLETED
}

Typedefs#

typedef void(*
cs_error_cb_t)(uint8_t conn_handle, cs_error_event_t evt, sl_status_t sc)
typedef void(*
cs_result_cb_t)(const cs_result_t *result, const void *user_data)
typedef void(*
cs_intermediate_result_cb_t)(const cs_intermediate_result_t *result, const void *user_data)

Functions#

sl_status_t
cs_initiator_create(const uint8_t conn_handle, cs_initiator_config_t *initiator_config, const rtl_config_t *rtl_config, cs_result_cb_t result_cb, cs_intermediate_result_cb_t intermediate_result_cb, cs_error_cb_t error_cb)
sl_status_t
cs_initiator_delete(const uint8_t conn_handle)
bool
cs_initiator_on_event(sl_bt_msg_t *evt)

Macros#

#define
CS_INITIATOR_MAX_CONNECTIONS (1)
#define
CS_INITIATOR_MAX_SUBEVENT_PER_PROC (6)
#define
CS_INITIATOR_MAX_STEP_DATA_LEN (2048)
#define
CS_INITIATOR_LOG (1)
#define
CS_INITIATOR_LOG_PREFIX "[Initiator]"
#define
CS_INITIATOR_RTL_LOG (1)
#define
CS_INITIATOR_CS_EVENT_BUF_SIZE (16)
#define
CS_INITIATOR_MIN_INTERVAL (30)
#define
CS_INITIATOR_MAX_INTERVAL (30)
#define
CS_INITIATOR_ANTENNA_OFFSET 0
#define
CS_INITIATOR_ERROR_TIMEOUT_MS 3000
#define
CS_INITIATOR_PROCEDURE_TIMEOUT_MS 3000

Enumeration Documentation#

cs_procedure_action_t#

cs_procedure_action_t
Enumerator
CS_PROCEDURE_ACTION_CONTINUE
CS_PROCEDURE_ACTION_TRIGGER_RESET
CS_PROCEDURE_ACTION_TRIGGER_START
CS_PROCEDURE_ACTION_TRIGGER_STOP

state_machine_event_t#

state_machine_event_t
Enumerator
INITIATOR_EVT_INIT_STARTED
INITIATOR_EVT_INIT_COMPLETED
INITIATOR_EVT_START_PROCEDURE
INITIATOR_EVT_PROCEDURE_ENABLE_STARTING
INITIATOR_EVT_PROCEDURE_ENABLE_COMPLETED
INITIATOR_EVT_PROCEDURE_DISABLE_COMPLETED
INITIATOR_EVT_CS_RESULT
INITIATOR_EVT_DELETE_INSTANCE
INITIATOR_EVT_ERROR

cs_procedure_state_t#

cs_procedure_state_t
Enumerator
CS_PROCEDURE_STATE_IN_PROGRESS
CS_PROCEDURE_STATE_ABORTED
CS_PROCEDURE_STATE_COMPLETED

Typedef Documentation#

cs_error_cb_t#

typedef void(* cs_error_cb_t) (uint8_t conn_handle, cs_error_event_t evt, sl_status_t sc) )(uint8_t conn_handle, cs_error_event_t evt, sl_status_t sc)
Parameters
TypeDirectionArgument NameDescription
[in]conn_handle

connection handle.

[in]evt

error event.

[in]sc

status code.

Initiator error callback type Called in case any CS initiator related error occurred.


cs_result_cb_t#

typedef void(* cs_result_cb_t) (const cs_result_t *result, const void *user_data) )(const cs_result_t *result, const void *user_data)
Parameters
TypeDirectionArgument NameDescription
[in]result

pointer to the result structure.

[in]user_data

pointer to additional user data.

Initiator result callback type Called in case a CS procedure extracted successfully and based on the extracted data a distance measurement by the RTL library has been successfully performed.


cs_intermediate_result_cb_t#

typedef void(* cs_intermediate_result_cb_t) (const cs_intermediate_result_t *result, const void *user_data) )(const cs_intermediate_result_t *result, const void *user_data)
Parameters
TypeDirectionArgument NameDescription
[in]result

pointer to the intermediate result structure.

[in]user_data

pointer to additional user data.

Initiator intermediate result callback type Called only in case the static object tracking mode is active. That means not in every CS procedure the CS initiator gets a distance measurement. When the measurement is still in progress at the end of a successfully extracted CS procedure this callback will be called instead of the result callback.


Function Documentation#

cs_initiator_create#

sl_status_t cs_initiator_create (const uint8_t conn_handle, cs_initiator_config_t * initiator_config, const rtl_config_t * rtl_config, cs_result_cb_t result_cb, cs_intermediate_result_cb_t intermediate_result_cb, cs_error_cb_t error_cb)
Parameters
TypeDirectionArgument NameDescription
const uint8_t[in]conn_handle

connection handle

cs_initiator_config_t *[in]initiator_config

pointer to the initiator config

const rtl_config_t *[in]rtl_config

callback for result

cs_result_cb_t[in]result_cb

callback for error

cs_intermediate_result_cb_tN/Aintermediate_result_cb
cs_error_cb_tN/Aerror_cb

Create CS Initiator instance for the given connection handle. Returns

  • status of the operation.


cs_initiator_init#

void cs_initiator_init (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

Create and configure initiator instances.


cs_initiator_delete#

sl_status_t cs_initiator_delete (const uint8_t conn_handle)
Parameters
TypeDirectionArgument NameDescription
const uint8_t[in]conn_handle

connection handle

Delete CS Initiator instance associated with the given connection handle. Returns

  • status of the operation.


cs_initiator_deinit#

void cs_initiator_deinit (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

Deinitialization function of CS Initiator component.


cs_initiator_on_event#

bool cs_initiator_on_event (sl_bt_msg_t * evt)
Parameters
TypeDirectionArgument NameDescription
sl_bt_msg_t *[in]evt

Event coming from the Bluetooth stack.

Bluetooth stack event handler of the initiator events. Returns

  • true to send the event to the host in NCP case.