Radio Control Layer (RCL)
ble_cs.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2022-2025, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
33 #ifndef ti_drivers_RCL_commands_ble_cs_h__include
34 #define ti_drivers_RCL_commands_ble_cs_h__include
35 
39 
40 #include <ti/drivers/utils/List.h>
41 
42 /* Forward declaration of types */
43 typedef struct RCL_CMD_BLE_CS_t RCL_CmdBleCs;
44 typedef struct RCL_CMD_BLE_CS_STEP_INTERNAL_t RCL_CmdBleCs_Step_Internal;
45 typedef struct RCL_CMD_BLE_CS_STEP_RESULT_INTERNAL_t RCL_CmdBleCs_StepResult_Internal;
46 typedef struct RCL_CMD_BLE_CS_STEP_t RCL_CmdBleCs_Step;
47 typedef struct RCL_CMD_BLE_CS_SUBEVENT_RESULTS_t RCL_CmdBleCs_SubeventResults;
48 typedef struct RCL_CMD_BLE_CS_SUBEVENT_RESULTS_CONTINUE_t RCL_CmdBleCs_SubeventResultsContinue;
49 typedef struct RCL_CMD_BLE_CS_S2R_t RCL_CmdBleCs_S2r;
50 typedef struct RCL_CMD_BLE_CS_STATS_t RCL_CmdBleCs_Stats;
51 typedef struct RCL_CMD_BLE_CS_IQ_SAMPLE_t RCL_CmdBleCs_IQSample;
52 typedef struct RCL_CMD_BLE_CS_DC_SAMPLE_t RCL_CmdBleCs_DCSample;
53 typedef struct RCL_CMD_BLE_CS_PRECAL_t RCL_CmdBleCs_Precal;
54 typedef struct RCL_CMD_BLE_CS_PRECAL_TABLE_t RCL_CmdBleCs_PrecalTable;
55 typedef struct RCL_CMD_BLE_CS_PRECAL_ENTRY_t RCL_CmdBleCs_PrecalEntry;
56 
57 typedef struct RCL_CMD_BLE_CS_PCT_COMP_TABLE_t RCL_CmdBleCs_PctCompTable;
58 typedef struct RCL_CMD_BLE_CS_PCT_COMP_ENTRY_t RCL_CmdBleCs_PctCompEntry;
59 
60 typedef struct RCL_CMD_BLE_CS_STEP_RESULTS_TONE_t RCL_CmdBleCs_Tone;
61 typedef struct RCL_CMD_BLE_CS_STEP_RESULTS_t RCL_CmdBleCs_Result;
62 typedef struct RCL_CMD_BLE_CS_STEP_RESULTS_I0_t RCL_CmdBleCs_ResultI0;
63 typedef struct RCL_CMD_BLE_CS_STEP_RESULTS_R0_t RCL_CmdBleCs_ResultR0;
64 typedef struct RCL_CMD_BLE_CS_STEP_RESULTS_IR1_t RCL_CmdBleCs_ResultIR1;
65 typedef struct RCL_CMD_BLE_CS_STEP_RESULTS_IR2_t RCL_CmdBleCs_ResultIR2;
66 typedef struct RCL_CMD_BLE_CS_STEP_RESULTS_IR3_t RCL_CmdBleCs_ResultIR3;
67 
81 
85 
86 /* Command IDs for generic commands */
87 #define RCL_CMDID_BLE_CS 0x1101U
88 #define RCL_CMDID_BLE_CS_PRECAL 0x1102U
89 
90 /* Helper macros to convert between time units */
91 #define RCL_BLE_CS_US_TO_MCE_TIMER(x) ((x)*48)
92 #define RCL_BLE_CS_US_TO_PBE_TIMER(x) ((x)*4)
93 #define RCL_BLE_CS_MCE_TIMER_TO_US(x) ((x)/48)
94 #define RCL_BLE_CS_PBE_TIMER_TO_US(x) ((x)/12)
95 #define RCL_BLE_CS_MCE_TIMER_TO_PBE_TIMER(x) ((x)/4)
96 #define RCL_BLE_CS_DELAY_PS_TO_LUT(x) (((x)+16)/32)
97 
98 /* Helper macros for constants */
99 #define RCL_BLE_CS_MAX_NUM_ANT 4
100 #define RCL_BLE_CS_MAX_NUM_ANT_PATH 5
101 #define RCL_BLE_CS_MAX_PAYLOAD_SIZE 4
102 #define RCL_BLE_CS_NUM_CORR 3
103 #define RCL_BLE_CS_NUM_STIM 2
104 #define RCL_BLE_CS_MAX_S2R_LEN 1024
105 #define RCL_BLE_CS_NUM_RX_GAIN_LEVEL 2
106 #define RCL_BLE_CS_STEP_RX_GAIN_DB 3
107 #define RCL_BLE_CS_NUM_PRECAL_CHANNELS 8
108 
115  int16_t i;
116  int16_t q;
117 };
118 
125  RCL_Command common;
126  struct {
127  uint16_t role:2;
128  uint16_t phy:2;
129  uint16_t repeatSteps:1;
130  uint16_t chFilterEnable:1;
131  uint16_t precal:1;
132  uint16_t reserved:1;
133  uint16_t nSteps:8;
134  } mode;
135 
136  struct {
137  uint8_t select;
138  uint8_t gpoMask;
139  uint8_t gpoVal[RCL_BLE_CS_MAX_NUM_ANT];
140  } antennaConfig;
141 
142  struct {
143  uint16_t tFcs;
144  uint16_t tFm;
145  uint16_t tPm;
146  uint16_t tIp1;
147  uint16_t tIp2;
148  uint16_t tRxWideningR0;
149  uint16_t tSw;
150  uint16_t tSwAdjustA;
151  uint16_t tSwAdjustB;
152  } timing;
153 
154  struct {
155  RCL_Command_TxPower txPower;
156  uint8_t rxGain;
157  } frontend;
158 
159  int16_t foffOverride;
160  uint8_t foffOverrideEnable:1;
162  uint8_t reportFormat;
164  RCL_CmdBleCs_PrecalTable *precalTable;
165  RCL_CmdBleCs_StepResult_Internal *results;
166  RCL_CmdBleCs_Stats *stats;
167  List_List stepBuffers;
168  List_List stepBuffersDone;
169  List_List resultBuffers;
170  List_List resultBuffersDone;
171  List_List s2rBuffers;
172  List_List s2rBuffersDone;
173 };
174 
175 /* Default configuration of command */
176 #define RCL_CmdBleCs_Default() \
177 { \
178  .common = RCL_Command_Default(RCL_CMDID_BLE_CS, \
179  RCL_Handler_BLE_CS), \
180 }
181 #define RCL_CmdBleCs_DefaultRuntime() (RCL_CmdBleCs) RCL_CmdBleCs_Default()
182 
189  uint16_t channelIdx;
190  uint16_t mode;
191  uint16_t toneExtension;
192  uint16_t payloadLen;
193  uint16_t foffErr;
194  uint16_t tAdjustA;
195  uint16_t tAdjustB;
196  uint16_t reserved0;
197  RCL_CmdBleCs_IQSample dcComp[RCL_BLE_CS_NUM_RX_GAIN_LEVEL];
198  uint32_t payloadTx[RCL_BLE_CS_MAX_PAYLOAD_SIZE];
199  uint32_t payloadRx[RCL_BLE_CS_MAX_PAYLOAD_SIZE];
200  uint32_t aaTx;
201  uint32_t aaRx;
202  uint8_t antennaPermIdx;
203  uint8_t antennaPacket;
204  uint16_t antennaSequence;
205  uint16_t tStep;
206  uint16_t tAntennaA;
207  uint16_t tAntennaB;
208  uint16_t reserved1;
209 };
210 
216 typedef struct {
217  int16_t magnMin;
218  int16_t magnMax;
219  int16_t magnAvg;
220  int16_t magnAvgdB;
221 } MagnData;
222 
229  uint16_t channelIdx;
230  uint16_t mode;
231  uint16_t toneExtension;
232  uint16_t payloadLen;
233  uint16_t reserved;
234  int16_t foffMeasured;
235  uint16_t pktResult;
236  uint8_t gain;
237  int8_t pktRssi;
238  uint16_t rtt;
239  uint16_t corr[RCL_BLE_CS_NUM_CORR];
240  RCL_CmdBleCs_IQSample dc;
241  RCL_CmdBleCs_IQSample pct[RCL_BLE_CS_MAX_NUM_ANT_PATH];
242  uint32_t payload[RCL_BLE_CS_MAX_PAYLOAD_SIZE];
245  /* Echoed by PBE */
246  uint8_t antennaPermIdx;
247  uint8_t antennaPacket;
248  uint16_t reserved1;
249 };
250 
256 typedef union {
257  uint32_t word;
258  uint8_t byte[4];
259  RCL_CmdBleCs_IQSample iq;
260 } S2RSample;
261 
268  uint8_t idx;
269  uint8_t phy;
270  uint8_t channel;
271  uint8_t payloadLen;
272  uint32_t payload0;
273  uint32_t payload1;
274  uint32_t payload2;
275  uint32_t payload3;
276  uint16_t iqLength;
277  uint16_t reserved;
279 };
280 
287  uint16_t nStepsWritten;
288  uint16_t nResultsRead;
289  uint16_t nStepsDone;
290  uint16_t nRxOk;
291  uint16_t nRxNok;
292  uint8_t nS2RDone;
293  int8_t lastRssi;
294  int16_t lastFoff;
295  int16_t foffComp;
296  uint8_t numAntennaPath;
297  uint8_t rplScaler;
298  uint16_t reserved;
299 };
300 
311 };
312 
322 };
323 
335 };
336 
348 };
349 
361 };
362 
373 };
374 
387 };
388 
401 };
402 
419 };
420 
433 };
434 
444 };
445 
457 };
458 
469 };
470 
479 };
480 
481 /*****************************************************
482  DC precalibration
483 *****************************************************/
484 
490 typedef void (*RCL_CmdBleCs_PrecalCallback)(RCL_CmdBleCs_PrecalTable *table, uint8_t channel, RCL_CmdBleCs_IQSample *pHigh, RCL_CmdBleCs_IQSample *pLow);
491 
498  int16_t i;
499  int16_t q;
500  int8_t phaseStart;
501  int8_t phaseStop;
502  uint16_t magnMin;
503  uint16_t magnMax;
504  uint16_t magnAvg;
505 };
506 
513  uint8_t channel;
514  uint8_t lowValid : 1;
515  uint8_t highValid : 1;
516  RCL_CmdBleCs_DCSample high;
517  RCL_CmdBleCs_DCSample low;
518 };
519 
527  uint32_t timestamp;
528  uint8_t highThreshold;
529  uint8_t lowThreshold;
530  uint8_t rxGain;
531  int8_t temperature;
532  uint8_t chSpacing;
533  uint8_t numEntries : 7;
534  uint8_t valid : 1;
535  RCL_CmdBleCs_PrecalEntry entries[];
536 };
537 
538 /* Default callback implemented in the driver */
539 void RCL_Handler_BLE_CS_PrecalDefaultCallback(RCL_CmdBleCs_PrecalTable *table, uint8_t channel, RCL_CmdBleCs_IQSample *pHigh, RCL_CmdBleCs_IQSample *pLow);
541 /* Default configuration of DC precalibration */
542 #define RCL_CmdBleCs_PrecalTable_Default() \
543 { \
544  .callback = RCL_Handler_BLE_CS_PrecalDefaultCallback, \
545  .timestamp = 0, \
546  .highThreshold = 50, \
547  .lowThreshold = 10, \
548  .rxGain = 0xF7, \
549  .temperature = 0, \
550  .chSpacing = 10, \
551  .numEntries = 8, \
552  .valid = 0, \
553  .entries = {{.channel = 5}, \
554  {.channel = 15}, \
555  {.channel = 25}, \
556  {.channel = 35}, \
557  {.channel = 45}, \
558  {.channel = 55}, \
559  {.channel = 65}, \
560  {.channel = 75}}, \
561 }
562 
569  RCL_Command common;
570  RCL_CmdBleCs_PrecalTable *table;
571 };
572 
573 /* Default configuration of DC precalibration command */
574 #define RCL_CmdBleCs_Precal_Default(pTable) \
575 { \
576  .common = RCL_Command_Default(RCL_CMDID_BLE_CS_PRECAL, \
577  RCL_Handler_BLE_CS_Precal), \
578  .table = pTable \
579 }
580 #define RCL_CmdBleCs_Precal_DefaultRuntime(pTable) (RCL_CmdBleCs_Precal) RCL_CmdBleCs_Precal_Default(pTable)
581 
582 /*****************************************************
583  PCT compensation for antenna/front-end delay
584 *****************************************************/
585 
592  uint8_t phaseDelay;
593  uint8_t magnCoeff;
594 };
595 
602  uint8_t firstChannelIdx;
603  uint8_t chSpacing : 7;
604  uint8_t enPhaseComp : 1;
605  uint8_t enMagnComp : 1;
606  uint8_t numEntries : 7;
607  RCL_CmdBleCs_PctCompEntry entries[];
608 };
609 
610 
611 /* Adjust RCL_BLE_CS_PHASE_DELAY_PS for linear PCT phase compensation due to antenna/front-end design,
612  * or adjust RCL_CmdBleCs_PctCompTable bleCsPctCompTable, using a calibrated instrument */
613 #ifndef RCL_BLE_CS_PHASE_DELAY_PS
614 #ifdef DeviceFamily_CC27XX
615  /* Example: LP-EM-CC2745R10-Q1 Launchpad development kit, SMA port */
616  #define RCL_BLE_CS_PHASE_DELAY_PS (1100UL)
617 #else
618  /* Example: LP-EM-CC2340R5 Launchpad development kit, SMA port */
619  #define RCL_BLE_CS_PHASE_DELAY_PS (1500UL)
620 #endif
621 #endif
622 
623 /* Default PCT compensation table: Only phase comp. Channels: 2402, 2402+n*8, ..., 2402+(11-1)*8 = 2482MHz */
624 #define RCL_CmdBleCs_PctCompTable_Default() \
625 { \
626  .firstChannelIdx = 0, \
627  .chSpacing = 8, \
628  .enPhaseComp = 1, \
629  .enMagnComp = 0, \
630  .numEntries = 11, \
631  .entries = {{.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}, \
632  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}, \
633  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}, \
634  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}, \
635  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}, \
636  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}, \
637  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}, \
638  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}, \
639  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}, \
640  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}, \
641  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}}, \
642 }
643 
644 
645 /*****************************************************
646  HCI interface
647 *****************************************************/
648 
649 /* Special values for categorical parameters */
655 };
656 
666 };
667 
668 /* Special values for linear parameters */
669 #define RCL_CMD_BLE_CS_FREQCOMP_NA 0xC000
670 #define RCL_CMD_BLE_CS_TOAD_NA 0x8000
671 #define RCL_CMD_BLE_CS_RSSI_NA 0x7F
672 
673 /* Opcodes */
674 #define RCL_CMD_BLE_CS_SUBEVENT_RESULTS_OPCODE 0x31
675 #define RCL_CMD_BLE_CS_SUBEVENT_RESULTS_CONTINUE_OPCODE 0x32
676 
683  uint32_t channelIdx : 7;
684  uint32_t mode : 2;
685  uint32_t antennaPacket: 3;
686  uint32_t antennaPermIdx : 5;
687  uint32_t toneExtension : 2;
688  uint32_t payloadLen : 3;
689  uint32_t reserved : 10;
690  uint32_t aaTx;
691  uint32_t aaRx;
692  uint32_t payloadTx[RCL_BLE_CS_MAX_PAYLOAD_SIZE];
693  uint32_t payloadRx[RCL_BLE_CS_MAX_PAYLOAD_SIZE];
694 };
695 
702  uint8_t subeventCode;
704  uint8_t configID;
711  uint8_t abortReason;
712  uint8_t numAntennaPath;
714  uint8_t data[];
715 } __attribute__ ((packed));
716 
723  uint8_t subeventCode;
725  uint8_t configID;
728  uint8_t abortReason;
729  uint8_t numAntennaPath;
731  uint8_t data[];
732 } __attribute__ ((packed));
733 
739  uint32_t i : 12;
740  uint32_t q : 12;
741  uint32_t quality : 8;
742 };
743 
749  /* Common */
750  uint8_t mode;
751  uint8_t channel;
752  uint8_t dataLength;
753  uint8_t data[];
754 } __attribute__((packed));
755 
761  /* Common */
762  uint8_t mode;
763  uint8_t channel;
764  uint8_t dataLength;
765  /* Packet */
767  int8_t packetRssi;
768  uint8_t packetAntenna;
769  /* Frequency */
771 };
772 
778  /* Common */
779  uint8_t mode;
780  uint8_t channel;
781  uint8_t dataLength;
782  /* Packet */
784  int8_t packetRssi;
785  uint8_t packetAntenna;
786 };
787 
793  /* Common */
794  uint8_t mode;
795  uint8_t channel;
796  uint8_t dataLength;
797  /* Packet */
799  uint8_t nadm;
800  int8_t packetRssi;
801  int16_t packetToF;
802  uint8_t packetAntenna;
803 };
804 
810  /* Common */
811  uint8_t mode;
812  uint8_t channel;
813  uint8_t dataLength;
814  /* Tones */
816  RCL_CmdBleCs_Tone tones[];
817 };
818 
824  /* Common */
825  uint8_t mode;
826  uint8_t channel;
827  uint8_t dataLength;
828  /* Packet */
830  uint8_t nadm;
831  int8_t packetRssi;
832  int16_t packetToF;
833  uint8_t packetAntenna;
834  /* Tones */
836  RCL_CmdBleCs_Tone tones[];
837 };
838 
839 #endif
uint16_t toneExtension
Definition: ble_cs.h:231
uint16_t procedureCounter
Definition: ble_cs.h:706
PCT compensation table for antenna/front-end delay.
Definition: ble_cs.h:601
uint16_t magnMin
Definition: ble_cs.h:502
uint8_t packetAntenna
Definition: ble_cs.h:785
void RCL_Handler_BLE_CS_PrecalDefaultCallback(RCL_CmdBleCs_PrecalTable *table, uint8_t channel, RCL_CmdBleCs_IQSample *pHigh, RCL_CmdBleCs_IQSample *pLow)
Definition: ble_cs.c:2450
RCL_CMD_BLE_CS_Tpm_e
Enumerator of tPm duration options.
Definition: ble_cs.h:368
#define RCL_BLE_CS_NUM_RX_GAIN_LEVEL
Definition: ble_cs.h:105
int8_t pktRssi
Definition: ble_cs.h:237
uint16_t startAclConnectionEvent
Definition: ble_cs.h:705
RCL_CMD_BLE_CS_Payload_e
Enumerator of payload length.
Definition: ble_cs.h:426
uint8_t channel
Definition: ble_cs.h:826
Definition: ble_cs.h:410
uint8_t configID
Definition: ble_cs.h:725
int16_t measuredFreqOffset
Definition: ble_cs.h:770
uint16_t tStep
Definition: ble_cs.h:205
uint8_t mode
Definition: ble_cs.h:750
uint32_t payload0
Definition: ble_cs.h:272
RCL_CmdBleCs_PrecalTable * table
Definition: ble_cs.h:570
Definition: ble_cs.h:416
enum RCL_CMD_BLE_CS_ReportFormat_e RCL_CmdBleCs_ReportFormat
Definition: ble_cs.h:82
uint16_t mode
Definition: ble_cs.h:230
BLE Channel Sounding.
Definition: ble_cs.h:124
Definition: ble_cs.h:356
Definition: ble_cs.h:358
int16_t frequencyCompensation
Definition: ble_cs.h:707
RCL_CMD_BLE_CS_Tfcs_e
Enumerator of tFcs duration options.
Definition: ble_cs.h:355
enum RCL_CMD_BLE_CS_ToneQuality_e RCL_CmdBleCs_ToneQuality
Definition: ble_cs.h:79
uint16_t tAdjustA
Definition: ble_cs.h:194
Container format for mode-2 step results.
Definition: ble_cs.h:809
int16_t packetToF
Definition: ble_cs.h:832
uint8_t channel
Definition: ble_cs.h:751
BLE Channel Sounding QQ data.
Definition: ble_cs.h:216
uint8_t dataLength
Definition: ble_cs.h:827
Definition: ble_cs.h:357
uint8_t mode
Definition: ble_cs.h:779
RCL_CMD_BLE_CS_Tip_e
Enumerator of tIp duration.
Definition: ble_cs.h:380
Definition: ble_cs.h:383
uint16_t nStepsDone
Definition: ble_cs.h:289
uint8_t packetAntenna
Definition: ble_cs.h:768
Definition: ble_cs.h:654
Definition: ble_cs.h:346
Container format for mode-3 step results.
Definition: ble_cs.h:823
uint16_t nStepsWritten
Definition: ble_cs.h:287
uint32_t payload3
Definition: ble_cs.h:275
#define RCL_BLE_CS_MAX_PAYLOAD_SIZE
Definition: ble_cs.h:101
Definition: ble_cs.h:653
uint8_t numAntennaPath
Definition: ble_cs.h:712
enum RCL_CMD_BLE_CS_Phy_e RCL_CmdBleCs_Phy
Definition: ble_cs.h:68
uint8_t numAntennaPath
Definition: ble_cs.h:296
Definition: ble_cs.h:413
Container format for a single step in the subevent.
Definition: ble_cs.h:682
BLE Channel Sounding S2R IQ Data.
Definition: ble_cs.h:267
enum RCL_CMD_BLE_CS_PacketResult_e RCL_CmdBleCs_PacketResult
Definition: ble_cs.h:71
int8_t referencePowerLevel
Definition: ble_cs.h:708
uint8_t subeventDoneStatus
Definition: ble_cs.h:710
Definition: ble_cs.h:651
uint8_t rplScaler
Definition: ble_cs.h:297
Container format for common section of step results.
Definition: ble_cs.h:748
Definition: ble_cs.h:443
Definition: ble_cs.h:345
RCL_CMD_BLE_CS_StepMode_e
Enumerator of step types.
Definition: ble_cs.h:329
RCL_CMD_BLE_CS_Role_e
Enumerator of role types.
Definition: ble_cs.h:318
uint8_t chSpacing
Definition: ble_cs.h:532
uint16_t channelIdx
Definition: ble_cs.h:229
int8_t lastRssi
Definition: ble_cs.h:293
Definition: ble_cs.h:344
RCL_CMD_BLE_CS_ReportFormat_e
Enumerator of report format.
Definition: ble_cs.h:476
enum RCL_CMD_BLE_CS_Tfcs_e RCL_CmdBleCs_Tfcs
Definition: ble_cs.h:72
uint16_t foffErr
Definition: ble_cs.h:193
Definition: ble_cs.h:414
Definition: ble_cs.h:347
uint8_t antennaPacket
Definition: ble_cs.h:203
uint8_t packetAAQuality
Definition: ble_cs.h:798
Definition: ble_cs.h:319
enum RCL_CMD_BLE_CS_Role_e RCL_CmdBleCs_Role
Definition: ble_cs.h:69
uint16_t reserved0
Definition: ble_cs.h:196
int8_t packetRssi
Definition: ble_cs.h:784
uint8_t mode
Definition: ble_cs.h:825
Definition: ble_cs.h:664
uint8_t firstChannelIdx
Definition: ble_cs.h:602
uint8_t numAntennaPath
Definition: ble_cs.h:729
uint8_t nadm
Definition: ble_cs.h:830
RCL_CMD_BLE_CS_Tsw_e
Enumerator of antenna switch duration.
Definition: ble_cs.h:394
Definition: ble_cs.h:417
Definition: ble_cs.h:333
uint16_t connectionHandle
Definition: ble_cs.h:724
uint16_t nRxOk
Definition: ble_cs.h:290
uint8_t packetAntenna
Definition: ble_cs.h:802
enum RCL_CMD_BLE_CS_Tpm_e RCL_CmdBleCs_Tpm
Definition: ble_cs.h:73
uint8_t abortReason
Definition: ble_cs.h:711
uint8_t magnCoeff
Definition: ble_cs.h:593
uint16_t antennaSequence
Definition: ble_cs.h:204
Definition: ble_cs.h:381
Definition: ble_cs.h:360
RCL_CmdBleCs_PrecalTable * precalTable
Definition: ble_cs.h:164
uint16_t payloadLen
Definition: ble_cs.h:192
Definition: ble_cs.h:334
Definition: ble_cs.h:442
Definition: ble_cs.h:431
uint16_t nResultsRead
Definition: ble_cs.h:288
uint8_t phy
Definition: ble_cs.h:269
uint8_t antennaPermutationIndex
Definition: ble_cs.h:815
Definition: ble_cs.h:427
uint8_t dataLength
Definition: ble_cs.h:796
RCL_CMD_BLE_CS_RxGain_e
Enumerator of RX gain.
Definition: ble_cs.h:440
Definition: ble_cs.h:384
uint8_t nadm
Definition: ble_cs.h:799
RCL_CmdBleCs_PrecalCallback callback
Definition: ble_cs.h:526
#define RCL_BLE_CS_MAX_NUM_ANT_PATH
Definition: ble_cs.h:100
RCL_CmdBleCs_Stats * stats
Definition: ble_cs.h:166
Index of the tx power table.
Definition: LRFCC23X0.h:169
uint8_t packetAntenna
Definition: ble_cs.h:833
int16_t foffComp
Definition: ble_cs.h:295
Definition: ble_cs.h:660
uint8_t dataLength
Definition: ble_cs.h:781
#define RCL_BLE_CS_MAX_NUM_ANT
Definition: ble_cs.h:99
uint8_t numStepsReported
Definition: ble_cs.h:730
Definition: ble_cs.h:397
BLE Channel Sounding Step Result.
Definition: ble_cs.h:228
Definition: ble_cs.h:453
Definition: ble_cs.h:400
uint16_t magnAvg
Definition: ble_cs.h:504
uint16_t tAntennaA
Definition: ble_cs.h:206
RCL_CMD_BLE_CS_ToneExtensionSlot_e
Enumerator of tone extension slot.
Definition: ble_cs.h:464
Definition: ble_cs.h:441
uint16_t channelIdx
Definition: ble_cs.h:189
enum RCL_CMD_BLE_CS_PacketAntenna_e RCL_CmdBleCs_PacketAntenna
Definition: ble_cs.h:83
uint8_t configID
Definition: ble_cs.h:704
Definition: ble_cs.h:455
int8_t phaseStart
Definition: ble_cs.h:500
RCL_CMD_BLE_CS_PacketAntenna_e
Definition: ble_cs.h:650
int16_t lastFoff
Definition: ble_cs.h:294
int16_t magnMin
Definition: ble_cs.h:217
enum RCL_CMD_BLE_CS_Nadm_e RCL_CmdBleCs_Nadm
Definition: ble_cs.h:84
uint8_t data[]
Definition: ble_cs.h:552
BLE Channel Sounding IQ Sample.
Definition: ble_cs.h:114
uint16_t tAntennaB
Definition: ble_cs.h:207
Definition: ble_cs.h:308
Definition: ble_cs.h:659
int16_t q
Definition: ble_cs.h:116
Definition: ble_cs.h:430
int16_t i
Definition: ble_cs.h:115
uint8_t channel
Definition: ble_cs.h:795
Definition: ble_cs.h:321
uint16_t tAdjustB
Definition: ble_cs.h:195
uint8_t gain
Definition: ble_cs.h:236
uint8_t procedureDoneStatus
Definition: ble_cs.h:726
uint16_t connectionHandle
Definition: ble_cs.h:703
uint8_t mode
Definition: ble_cs.h:811
Container format for mode-0 step results.
Definition: ble_cs.h:777
enum RCL_CMD_BLE_CS_ToneExtensionSlot_e RCL_CmdBleCs_ToneExtensionSlot
Definition: ble_cs.h:80
BLE Channel Sounding S2R Sample type definition.
Definition: ble_cs.h:256
uint8_t nS2RDone
Definition: ble_cs.h:292
uint16_t magnMax
Definition: ble_cs.h:503
RCL_CMD_BLE_CS_ToneQuality_e
Enumerator of tone quality.
Definition: ble_cs.h:451
int16_t i
Definition: ble_cs.h:498
BLE Channel Sounding DC Sample.
Definition: ble_cs.h:497
uint32_t timestamp
Definition: ble_cs.h:527
#define RCL_BLE_CS_NUM_CORR
Definition: ble_cs.h:102
uint8_t dataLength
Definition: ble_cs.h:764
Definition: ble_cs.h:307
uint8_t channel
Definition: ble_cs.h:542
uint8_t dataLength
Definition: ble_cs.h:752
uint16_t reserved1
Definition: ble_cs.h:208
uint32_t aaRx
Definition: ble_cs.h:201
enum RCL_CMD_BLE_CS_Tsw_e RCL_CmdBleCs_Tsw
Definition: ble_cs.h:75
Definition: ble_cs.h:359
Container format for a batch of step results in the subevent (second+ segment)
Definition: ble_cs.h:722
uint8_t antennaPermIdx
Definition: ble_cs.h:246
uint8_t reportFormat
Definition: ble_cs.h:162
RCL_Command common
Definition: ble_cs.h:125
RCL_CMD_BLE_CS_AntennaConfig_e
Enumerator of antenna configuration.
Definition: ble_cs.h:409
Definition: ble_cs.h:331
DC precalibration command.
Definition: ble_cs.h:568
RCL_Command common
Definition: ble_cs.h:569
Definition: ble_cs.h:386
Definition: ble_cs.h:411
Definition: ble_cs.h:320
uint32_t aaTx
Definition: ble_cs.h:200
Definition: ble_cs.h:396
uint8_t antennaPacket
Definition: ble_cs.h:247
Definition: ble_cs.h:454
uint16_t rtt
Definition: ble_cs.h:238
uint8_t idx
Definition: ble_cs.h:268
uint8_t packetAAQuality
Definition: ble_cs.h:783
int16_t q
Definition: ble_cs.h:499
uint8_t procedureDoneStatus
Definition: ble_cs.h:709
uint8_t antennaPermutationIndex
Definition: ble_cs.h:835
RCL_CMD_BLE_CS_PacketResult_e
Enumerator of packet status options.
Definition: ble_cs.h:342
Definition: ble_cs.h:309
int8_t phaseStop
Definition: ble_cs.h:501
int16_t magnMax
Definition: ble_cs.h:218
Definition: ble_cs.h:369
RCL_CMD_BLE_CS_Nadm_e
Definition: ble_cs.h:657
int16_t foffOverride
Definition: ble_cs.h:159
uint8_t subeventCode
Definition: ble_cs.h:702
uint8_t channel
Definition: ble_cs.h:780
int16_t magnAvg
Definition: ble_cs.h:219
Definition: ble_cs.h:658
uint8_t lowThreshold
Definition: ble_cs.h:529
uint32_t payload1
Definition: ble_cs.h:273
uint8_t numStepsReported
Definition: ble_cs.h:713
int8_t packetRssi
Definition: ble_cs.h:767
Container format for a batch of step results in the subevent (first segment)
Definition: ble_cs.h:701
uint32_t aaTx
Definition: ble_cs.h:690
uint16_t mode
Definition: ble_cs.h:190
uint32_t aaRx
Definition: ble_cs.h:691
Container format for mode-1 step results.
Definition: ble_cs.h:792
Definition: ble_cs.h:330
int16_t packetToF
Definition: ble_cs.h:801
uint8_t channel
Definition: ble_cs.h:270
uint8_t abortReason
Definition: ble_cs.h:728
uint8_t dataLength
Definition: ble_cs.h:813
uint8_t payloadLen
Definition: ble_cs.h:271
uint8_t channel
Definition: ble_cs.h:812
Definition: ble_cs.h:370
BLE Channel Sounding Statistics.
Definition: ble_cs.h:286
uint8_t highThreshold
Definition: ble_cs.h:528
Definition: ble_cs.h:662
Definition: ble_cs.h:372
Definition: ble_cs.h:382
Container format for tones.
Definition: ble_cs.h:738
enum RCL_CMD_BLE_CS_Payload_e RCL_CmdBleCs_Payload
Definition: ble_cs.h:77
uint32_t word
Definition: ble_cs.h:257
List_List stepBuffers
Definition: ble_cs.h:167
Definition: ble_cs.h:395
Definition: ble_cs.h:429
Channel entry for PCT compensation for antenna/front-end delay.
Definition: ble_cs.h:591
uint16_t toneExtension
Definition: ble_cs.h:191
RCL_CMD_BLE_CS_Phy_e
Enumerator of phy types.
Definition: ble_cs.h:306
int8_t packetRssi
Definition: ble_cs.h:800
List_List resultBuffers
Definition: ble_cs.h:169
Definition: ble_cs.h:663
uint8_t subeventDoneStatus
Definition: ble_cs.h:727
Definition: ble_cs.h:432
Definition: ble_cs.h:428
Definition: ble_cs.h:399
Container format for mode-0 step results.
Definition: ble_cs.h:760
uint16_t nRxNok
Definition: ble_cs.h:291
Definition: ble_cs.h:371
enum RCL_CMD_BLE_CS_StepMode_e RCL_CmdBleCs_StepMode
Definition: ble_cs.h:70
Definition: ble_cs.h:343
uint8_t mode
Definition: ble_cs.h:541
Definition: ble_cs.h:652
RCL_CmdBleCs_IQSample iq
Definition: ble_cs.h:259
Definition: ble_cs.h:385
uint16_t payloadLen
Definition: ble_cs.h:232
uint8_t mode
Definition: ble_cs.h:794
uint16_t pktResult
Definition: ble_cs.h:235
enum RCL_CMD_BLE_CS_RxGain_e RCL_CmdBleCs_RxGain
Definition: ble_cs.h:78
Definition: ble_cs.h:310
const RCL_AntennaConfig_t antennaConfig[RCL_CmdBleCs_AntennaConfig_Length]
Definition: ble_cs.c:184
uint16_t reserved
Definition: ble_cs.h:233
List_List stepBuffersDone
Definition: ble_cs.h:168
Definition: ble_cs.h:665
List_List s2rBuffersDone
Definition: ble_cs.h:172
uint8_t phaseDelay
Definition: ble_cs.h:592
int16_t magnAvgdB
Definition: ble_cs.h:220
uint8_t rxGain
Definition: ble_cs.h:530
uint8_t mode
Definition: ble_cs.h:762
RCL_CmdBleCs_IQSample dc
Definition: ble_cs.h:240
enum RCL_CMD_BLE_CS_Tip_e RCL_CmdBleCs_Tip
Definition: ble_cs.h:74
uint8_t antennaPermIdx
Definition: ble_cs.h:202
DC precalibration entry.
Definition: ble_cs.h:512
uint8_t channel
Definition: ble_cs.h:513
Definition: ble_cs.h:456
Definition: ble_cs.h:478
RCL_CmdBleCs_DCSample high
Definition: ble_cs.h:516
void(* RCL_CmdBleCs_PrecalCallback)(RCL_CmdBleCs_PrecalTable *table, uint8_t channel, RCL_CmdBleCs_IQSample *pHigh, RCL_CmdBleCs_IQSample *pLow)
Callback function for DC precalibration feature.
Definition: ble_cs.h:490
List_List s2rBuffers
Definition: ble_cs.h:171
Definition: ble_cs.h:452
int8_t temperature
Definition: ble_cs.h:531
BLE Channel Sounding Step.
Definition: ble_cs.h:188
Definition: ble_cs.h:661
RCL_CmdBleCs_StepResult_Internal * results
Definition: ble_cs.h:165
Definition: ble_cs.h:477
uint8_t packetAAQuality
Definition: ble_cs.h:829
RCL_CmdBleCs_DCSample low
Definition: ble_cs.h:517
uint8_t packetAAQuality
Definition: ble_cs.h:766
int8_t packetRssi
Definition: ble_cs.h:831
List_List resultBuffersDone
Definition: ble_cs.h:170
DC precalibration table.
Definition: ble_cs.h:525
uint32_t payload2
Definition: ble_cs.h:274
Definition: ble_cs.h:332
uint16_t reserved1
Definition: ble_cs.h:248
uint8_t subeventCode
Definition: ble_cs.h:723
struct RCL_CMD_BLE_CS_STEP_RESULTS_TONE_t __attribute__
Definition: hal_cc23x0.c:510
uint16_t reserved
Definition: ble_cs.h:298
Definition: ble_cs.h:412
enum RCL_CMD_BLE_CS_AntennaConfig_e RCL_CmdBleCs_AntennaConfig
Definition: ble_cs.h:76
uint16_t reserved
Definition: ble_cs.h:277
uint16_t iqLength
Definition: ble_cs.h:276
Definition: ble_cs.h:398
Definition: ble_cs.h:415
Definition: ble_cs.h:418
uint8_t channel
Definition: ble_cs.h:763
int16_t foffMeasured
Definition: ble_cs.h:234