CTE Receiver (cte_receiver)

Commands and events in this class can be used to manage Constant Tone Extension (CTE) receiving.

CTE feature is only supported by specific devices. Commands from this class will return bg_err_not_supported on devices that do not support CTE.

cte_receiver commands

cte_receiver_clear_dtm_parameters

This command can be used to clear CTE related parameters that were previously set for LE receiver test. Default values will be restored for these parameters.

Command

Byte Type Name Description
0 0x20 hilen Message type: Command
1 0x00 lolen Minimum payload length
2 0x45 class Message class:CTE Receiver
3 0x06 method Message ID

Response

Byte Type Name Description
0 0x20 hilen Message type: Response
1 0x02 lolen Minimum payload length
2 0x45 class Message class:CTE Receiver
3 0x06 method Message ID
4-5 uint16 result Result code
  • 0: success
  • Non-zero: an error occurred
For other values refer to the Error codes

API

/* Function */
struct gecko_msg_cte_receiver_clear_dtm_parameters_rsp_t *gecko_cmd_cte_receiver_clear_dtm_parameters();

/* Response id */
gecko_rsp_cte_receiver_clear_dtm_parameters_id

/* Response structure */
struct gecko_msg_cte_receiver_clear_dtm_parameters_rsp_t
{
  uint16 result
}

cte_receiver_configure

This commmand can be used to configure the CTE sampling mode.

Command

Byte Type Name Description
0 0x20 hilen Message type: Command
1 0x01 lolen Minimum payload length
2 0x45 class Message class:CTE Receiver
3 0x00 method Message ID
4 uint8 flags Values:
  • 0: Disable raw sample mode
  • 1: Enable raw sample mode

Response

Byte Type Name Description
0 0x20 hilen Message type: Response
1 0x02 lolen Minimum payload length
2 0x45 class Message class:CTE Receiver
3 0x00 method Message ID
4-5 uint16 result Result code
  • 0: success
  • Non-zero: an error occurred
For other values refer to the Error codes

API

/* Function */
struct gecko_msg_cte_receiver_configure_rsp_t *gecko_cmd_cte_receiver_configure(uint8 flags);

/* Response id */
gecko_rsp_cte_receiver_configure_id

/* Response structure */
struct gecko_msg_cte_receiver_configure_rsp_t
{
  uint16 result
}

cte_receiver_set_dtm_parameters

This command can be used to set CTE related parameters of LE receiver test.

Command

Byte Type Name Description
0 0x20 hilen Message type: Command
1 0x04 lolen Minimum payload length
2 0x45 class Message class:CTE Receiver
3 0x05 method Message ID
4 uint8 cte_length Expected length of the Constant Tone Extension in 8 us units
5 uint8 cte_type Expected CTE type
  • 0: Expect AoA CTE
  • 1: Expect AoD CTE with 1 us slots
  • 2: Expect AoD CTE with 2 us slots
6 uint8 slot_durations Slot durations
  • 1: Switching and sampling slots are 1 us each
  • 2: Switching and sampling slots are 2 us each
7 uint8array switching_pattern Antenna switching pattern

Response

Byte Type Name Description
0 0x20 hilen Message type: Response
1 0x02 lolen Minimum payload length
2 0x45 class Message class:CTE Receiver
3 0x05 method Message ID
4-5 uint16 result Result code
  • 0: success
  • Non-zero: an error occurred
For other values refer to the Error codes

API

/* Function */
struct gecko_msg_cte_receiver_set_dtm_parameters_rsp_t *gecko_cmd_cte_receiver_set_dtm_parameters(uint8 cte_length, uint8 cte_type, uint8 slot_durations, uint8 switching_pattern_len, const uint8 *switching_pattern_data);

/* Response id */
gecko_rsp_cte_receiver_set_dtm_parameters_id

/* Response structure */
struct gecko_msg_cte_receiver_set_dtm_parameters_rsp_t
{
  uint16 result
}

cte_receiver_start_connectionless_iq_sampling

This command can be used to start IQ sampling on a periodic advertising synchronization.

Command

Byte Type Name Description
0 0x20 hilen Message type: Command
1 0x04 lolen Minimum payload length
2 0x45 class Message class:CTE Receiver
3 0x03 method Message ID
4 uint8 sync Periodic advertising synchronization handle
5 uint8 slot_durations Slot durations
  • 1: Switching and sampling slots are 1 us each
  • 2: Switching and sampling slots are 2 us each
6 uint8 cte_count
  • 0: Sample and report all available CTEs
  • Other values: Maximum number of sampled CTEs in each periodic advertising interval
7 uint8array switching_pattern Antenna switching pattern

Response

Byte Type Name Description
0 0x20 hilen Message type: Response
1 0x02 lolen Minimum payload length
2 0x45 class Message class:CTE Receiver
3 0x03 method Message ID
4-5 uint16 result Result code
  • 0: success
  • Non-zero: an error occurred
For other values refer to the Error codes

API

/* Function */
struct gecko_msg_cte_receiver_start_connectionless_iq_sampling_rsp_t *gecko_cmd_cte_receiver_start_connectionless_iq_sampling(uint8 sync, uint8 slot_durations, uint8 cte_count, uint8 switching_pattern_len, const uint8 *switching_pattern_data);

/* Response id */
gecko_rsp_cte_receiver_start_connectionless_iq_sampling_id

/* Response structure */
struct gecko_msg_cte_receiver_start_connectionless_iq_sampling_rsp_t
{
  uint16 result
}

Events generated

Event Description
cte_receiver_iq_report Triggered when IQ samples have been received.

cte_receiver_start_iq_sampling

This command can be used to start IQ samplings on a connection.

Command

Byte Type Name Description
0 0x20 hilen Message type: Command
1 0x07 lolen Minimum payload length
2 0x45 class Message class:CTE Receiver
3 0x01 method Message ID
4 uint8 connection Connection handle
5-6 uint16 interval Measurement interval
  • 0: No interval. The request is initiated only once.
  • Other values N: Initiate the request every N-th connection events
7 uint8 cte_length Minimum length of the CTE being requested in 8 us units
8 uint8 cte_type Requested CTE type
  • 0: AoA CTE
  • 1: AoD CTE with 1 us slots
  • 2: AoD CTE with 2 us slots
9 uint8 slot_durations Slot durations
  • 1: Switching and sampling slots are 1 us each
  • 2: Switching and sampling slots are 2 us each
10 uint8array switching_pattern Antenna switching pattern

Response

Byte Type Name Description
0 0x20 hilen Message type: Response
1 0x02 lolen Minimum payload length
2 0x45 class Message class:CTE Receiver
3 0x01 method Message ID
4-5 uint16 result Result code
  • 0: success
  • Non-zero: an error occurred
For other values refer to the Error codes

API

/* Function */
struct gecko_msg_cte_receiver_start_iq_sampling_rsp_t *gecko_cmd_cte_receiver_start_iq_sampling(uint8 connection, uint16 interval, uint8 cte_length, uint8 cte_type, uint8 slot_durations, uint8 switching_pattern_len, const uint8 *switching_pattern_data);

/* Response id */
gecko_rsp_cte_receiver_start_iq_sampling_id

/* Response structure */
struct gecko_msg_cte_receiver_start_iq_sampling_rsp_t
{
  uint16 result
}

Events generated

Event Description
cte_receiver_iq_report Triggered when IQ samples have been received.

cte_receiver_stop_connectionless_iq_sampling

This command can be used to stop IQ sampling on a periodic advertising synchronization.

Command

Byte Type Name Description
0 0x20 hilen Message type: Command
1 0x01 lolen Minimum payload length
2 0x45 class Message class:CTE Receiver
3 0x04 method Message ID
4 uint8 sync Periodic advertising synchronization handle

Response

Byte Type Name Description
0 0x20 hilen Message type: Response
1 0x02 lolen Minimum payload length
2 0x45 class Message class:CTE Receiver
3 0x04 method Message ID
4-5 uint16 result Result code
  • 0: success
  • Non-zero: an error occurred
For other values refer to the Error codes

API

/* Function */
struct gecko_msg_cte_receiver_stop_connectionless_iq_sampling_rsp_t *gecko_cmd_cte_receiver_stop_connectionless_iq_sampling(uint8 sync);

/* Response id */
gecko_rsp_cte_receiver_stop_connectionless_iq_sampling_id

/* Response structure */
struct gecko_msg_cte_receiver_stop_connectionless_iq_sampling_rsp_t
{
  uint16 result
}

cte_receiver_stop_iq_sampling

This command can be used to stop the IQ sampling on a connection.

Command

Byte Type Name Description
0 0x20 hilen Message type: Command
1 0x01 lolen Minimum payload length
2 0x45 class Message class:CTE Receiver
3 0x02 method Message ID
4 uint8 connection Connection handle

Response

Byte Type Name Description
0 0x20 hilen Message type: Response
1 0x02 lolen Minimum payload length
2 0x45 class Message class:CTE Receiver
3 0x02 method Message ID
4-5 uint16 result Result code
  • 0: success
  • Non-zero: an error occurred
For other values refer to the Error codes

API

/* Function */
struct gecko_msg_cte_receiver_stop_iq_sampling_rsp_t *gecko_cmd_cte_receiver_stop_iq_sampling(uint8 connection);

/* Response id */
gecko_rsp_cte_receiver_stop_iq_sampling_id

/* Response structure */
struct gecko_msg_cte_receiver_stop_iq_sampling_rsp_t
{
  uint16 result
}

cte_receiver events

cte_receiver_iq_report

IQ samples report from connection or connectionless CTE packets.

Event

Byte Type Name Description
0 0xa0 hilen Message type: Event
1 0x07 lolen Minimum payload length
2 0x45 class Message class:CTE Receiver
3 0x00 method Message ID
4-5 uint16 status Status of CTE IQ sampling
6 uint8 packet_type CTE packet type
  • 0: Connection
  • 1: Connectionless
  • 2: DTM. This value is possible only in some testing circumstances
7 uint8 handle Connection handle or periodic advertising synchronization handle
8 int8 rssi RSSI in the received CTE packet. Unit: dBm
9 uint8 channel The channel on which the CTE packet was received
10 uint8array samples IQ samples in received CTE packet

API

/* event id*/
gecko_evt_cte_receiver_iq_report_id

/* event structure*/
struct gecko_msg_cte_receiver_iq_report_evt_t
{
  uint16 status,
  uint8 packet_type,
  uint8 handle,
  int8 rssi,
  uint8 channel,
  uint8array samples
}