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(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_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(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_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(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_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(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

0x0d

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 | uint8 | phy | The PHY on which the packet is received on a connection. Ingore this field for connectionless IQ reports.

  • 1: 1M PHY

  • 2: 2M PHY

9 | uint8 | channel | The channel on which the CTE packet was received
10 | int8 | rssi | RSSI in the received CTE packet. Unit: dBm
11 | uint8 | rssi_antenna_id | The ID of the antenna on which RSSI was measured
12 | uint8 | cte_type | The CTE type

  • 0: AoA CTE response

  • 1: AoD CTE response with 1us slots

  • 2: AoD CTE response with 2us slots

13 | uint8 | slot_durations | Slot durations

  • 1: Switching and sampling slots are 1 us each

  • 2: Switching and sampling slots are 2 us each

14-15 | uint16 | event_counter | The event counter of the periodic advertising train or the connection
16 | 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,  
  uint8 phy,  
  uint8 channel,  
  int8 rssi,  
  uint8 rssi_antenna_id,  
  uint8 cte_type,  
  uint8 slot_durations,  
  uint16 event_counter,  
  uint8array samples  
}