Radio Control Layer (RCL)
ble_cs.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2022-2026, 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_MCE_TIMER_TO_PREFREF(x) ((x)/3)
97 #define RCL_BLE_CS_DELAY_PS_TO_LUT(x) (((x)+16)/32)
98 
99 /* Helper macros for constants */
100 #define RCL_BLE_CS_MAX_NUM_ANT 4
101 #define RCL_BLE_CS_MAX_NUM_ANT_PATH 5
102 #define RCL_BLE_CS_MAX_PAYLOAD_SIZE 4
103 #define RCL_BLE_CS_NUM_CORR 3
104 #define RCL_BLE_CS_NUM_STIM 2
105 #define RCL_BLE_CS_MAX_S2R_LEN 1024
106 #define RCL_BLE_CS_NUM_RX_GAIN_LEVEL 2
107 #define RCL_BLE_CS_STEP_RX_GAIN_DB 3
108 #define RCL_BLE_CS_NUM_PRECAL_CHANNELS 8
109 
116  int16_t i;
117  int16_t q;
118 };
119 
126  RCL_Command common;
127 
128  union {
129  struct {
130  uint16_t role:2;
131  uint16_t phy:2;
132  uint16_t repeatSteps:1;
133  uint16_t reserved0:1;
134  uint16_t inlinePhase:1;
135  uint16_t reserved1:1;
136  uint16_t nSteps:8;
137  };
138  uint16_t val;
139  } mode;
140 
141  struct {
142  uint8_t select;
143  uint8_t gpoMask;
144  uint8_t gpoVal[RCL_BLE_CS_MAX_NUM_ANT];
145  } antennaConfig;
146 
147  struct {
148  uint16_t tFcs;
149  uint16_t tFm;
150  uint16_t tPm;
151  uint16_t tIp1;
152  uint16_t tIp2;
153  uint16_t tRxWideningR0;
154  uint16_t tSw;
155  uint16_t tSwAdjustA;
156  uint16_t tSwAdjustB;
157  } timing;
158 
159  struct {
160  RCL_Command_TxPower txPower;
161  uint8_t rxGain;
162  } frontend;
163 
164  int16_t foffOverride;
165  uint8_t foffOverrideEnable:1;
167  uint8_t reportFormat;
169  RCL_CmdBleCs_PrecalTable *precalTable;
170  RCL_CmdBleCs_StepResult_Internal *results;
171  RCL_CmdBleCs_Stats *stats;
172  List_List stepBuffers;
173  List_List stepBuffersDone;
174  List_List resultBuffers;
175  List_List resultBuffersDone;
176  List_List s2rBuffers;
177  List_List s2rBuffersDone;
178 };
179 
180 /* Default configuration of command */
181 #define RCL_CmdBleCs_Default() \
182 { \
183  .common = RCL_Command_Default(RCL_CMDID_BLE_CS, \
184  RCL_Handler_BLE_CS), \
185 }
186 #define RCL_CmdBleCs_DefaultRuntime() (RCL_CmdBleCs) RCL_CmdBleCs_Default()
187 
194  uint16_t channelIdx;
195  uint16_t mode;
196  uint16_t toneExtension;
197  uint16_t payloadLen;
198  uint16_t foffErr;
199  uint16_t tAdjustA;
200  uint16_t tAdjustB;
201  uint16_t tPllRx;
202  RCL_CmdBleCs_IQSample dcComp[RCL_BLE_CS_NUM_RX_GAIN_LEVEL];
203  uint32_t payloadTx[RCL_BLE_CS_MAX_PAYLOAD_SIZE];
204  uint32_t payloadRx[RCL_BLE_CS_MAX_PAYLOAD_SIZE];
205  uint32_t aaTx;
206  uint32_t aaRx;
207  uint8_t antennaPermIdx;
208  uint8_t antennaPacket;
209  uint16_t antennaSequence;
210  uint16_t tStep;
211  uint16_t tAntennaA;
212  uint16_t tAntennaB;
213  uint16_t reserved;
214 };
215 
221 typedef struct {
222  int16_t magnMin;
223  int16_t magnMax;
224  int16_t magnAvg;
225  int16_t magnAvgdB;
226 } MagnData;
227 
234  uint16_t channelIdx;
235  uint16_t mode;
236  uint16_t toneExtension;
237  uint16_t payloadLen;
238  uint16_t reserved;
239  int16_t foffMeasured;
240  uint16_t pktResult;
241  uint8_t gain;
242  int8_t pktRssi;
243  uint16_t rtt;
244  uint16_t corr[RCL_BLE_CS_NUM_CORR];
245  RCL_CmdBleCs_IQSample dc;
246  RCL_CmdBleCs_IQSample pct[RCL_BLE_CS_MAX_NUM_ANT_PATH];
247  uint32_t payload[RCL_BLE_CS_MAX_PAYLOAD_SIZE];
250  /* Echoed by PBE */
251  uint8_t antennaPermIdx;
252  uint8_t antennaPacket;
253  uint16_t reserved1;
254 };
255 
261 typedef union {
262  uint32_t word;
263  uint8_t byte[4];
264  RCL_CmdBleCs_IQSample iq;
265 } S2RSample;
266 
273  uint8_t idx;
274  uint8_t phy;
275  uint8_t channel;
276  uint8_t payloadLen;
277  uint32_t payload0;
278  uint32_t payload1;
279  uint32_t payload2;
280  uint32_t payload3;
281  uint16_t iqLength;
282  uint16_t reserved;
284 };
285 
292  uint16_t nStepsWritten;
293  uint16_t nResultsRead;
294  uint16_t nStepsDone;
295  uint16_t nRxOk;
296  uint16_t nRxNok;
297  uint8_t nS2RDone;
298  int8_t lastRssi;
299  int16_t lastFoff;
300  int16_t foffComp;
301  uint8_t numAntennaPath;
302  uint8_t rplScaler;
303  uint16_t reserved;
304 };
305 
316 };
317 
327 };
328 
340 };
341 
353 };
354 
366 };
367 
378 };
379 
392 };
393 
406 };
407 
424 };
425 
438 };
439 
447 };
448 
460 };
461 
472 };
473 
482 };
483 
484 /*****************************************************
485  DC precalibration
486 *****************************************************/
487 
493 typedef void (*RCL_CmdBleCs_PrecalCallback)(RCL_CmdBleCs_PrecalTable *table, uint8_t channel, RCL_CmdBleCs_IQSample *pHigh, RCL_CmdBleCs_IQSample *pLow);
494 
501  int16_t i;
502  int16_t q;
503  int8_t phaseStart;
504  int8_t phaseStop;
505  uint16_t magnMin;
506  uint16_t magnMax;
507  uint16_t magnAvg;
508 };
509 
516  uint8_t channel;
517  uint8_t lowValid : 1;
518  uint8_t highValid : 1;
519  RCL_CmdBleCs_DCSample high;
520  RCL_CmdBleCs_DCSample low;
521 };
522 
530  uint32_t timestamp;
531  uint8_t highThreshold;
532  uint8_t lowThreshold;
533  uint8_t reserved;
534  int8_t temperature;
535  uint8_t chSpacing;
536  uint8_t numEntries : 7;
537  uint8_t valid : 1;
538  RCL_CmdBleCs_PrecalEntry entries[];
539 };
540 
541 /* Default callback implemented in the driver */
542 void RCL_Handler_BLE_CS_PrecalDefaultCallback(RCL_CmdBleCs_PrecalTable *table, uint8_t channel, RCL_CmdBleCs_IQSample *pHigh, RCL_CmdBleCs_IQSample *pLow);
544 /* Default configuration of DC precalibration */
545 #define RCL_CmdBleCs_PrecalTable_Default() \
546 { \
547  .callback = RCL_Handler_BLE_CS_PrecalDefaultCallback, \
548  .timestamp = 0, \
549  .highThreshold = 50, \
550  .lowThreshold = 10, \
551  .reserved = 0, \
552  .temperature = 0, \
553  .chSpacing = 10, \
554  .numEntries = 8, \
555  .valid = 0, \
556  .entries = {{.channel = 5}, \
557  {.channel = 15}, \
558  {.channel = 25}, \
559  {.channel = 35}, \
560  {.channel = 45}, \
561  {.channel = 55}, \
562  {.channel = 65}, \
563  {.channel = 75}}, \
564 }
565 
572  RCL_Command common;
573  RCL_CmdBleCs_PrecalTable *table;
574 };
575 
576 /* Default configuration of DC precalibration command */
577 #define RCL_CmdBleCs_Precal_Default(pTable) \
578 { \
579  .common = RCL_Command_Default(RCL_CMDID_BLE_CS_PRECAL, \
580  RCL_Handler_BLE_CS_Precal), \
581  .table = pTable \
582 }
583 #define RCL_CmdBleCs_Precal_DefaultRuntime(pTable) (RCL_CmdBleCs_Precal) RCL_CmdBleCs_Precal_Default(pTable)
584 
585 /*****************************************************
586  PCT compensation for antenna/front-end delay
587 *****************************************************/
588 
595  uint8_t phaseDelay;
596  uint8_t magnCoeff;
597 };
598 
605  uint8_t firstChannelIdx;
606  uint8_t chSpacing : 7;
607  uint8_t enPhaseComp : 1;
608  uint8_t enMagnComp : 1;
609  uint8_t numEntries : 7;
610  RCL_CmdBleCs_PctCompEntry entries[];
611 };
612 
613 
614 /* Adjust RCL_BLE_CS_PHASE_DELAY_PS for linear PCT phase compensation due to antenna/front-end design,
615  * or adjust RCL_CmdBleCs_PctCompTable bleCsPctCompTable, using a calibrated instrument */
616 #ifndef RCL_BLE_CS_PHASE_DELAY_PS
617 #ifdef DeviceFamily_CC27XX
618  /* Example: LP-EM-CC2745R10-Q1 Launchpad development kit, SMA port */
619  #define RCL_BLE_CS_PHASE_DELAY_PS (1100UL)
620 #else
621  /* Example: LP-EM-CC2340R5 Launchpad development kit, SMA port */
622  #define RCL_BLE_CS_PHASE_DELAY_PS (1500UL)
623 #endif
624 #endif
625 
626 /* Default PCT compensation table: Only phase comp. Channels: 2402, 2402+n*8, ..., 2402+(11-1)*8 = 2482MHz */
627 #define RCL_CmdBleCs_PctCompTable_Default() \
628 { \
629  .firstChannelIdx = 0, \
630  .chSpacing = 8, \
631  .enPhaseComp = 1, \
632  .enMagnComp = 0, \
633  .numEntries = 11, \
634  .entries = {{.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  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}, \
643  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}, \
644  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}}, \
645 }
646 
647 
648 /*****************************************************
649  HCI interface
650 *****************************************************/
651 
652 /* Special values for categorical parameters */
658 };
659 
669 };
670 
671 /* Special values for linear parameters */
672 #define RCL_CMD_BLE_CS_FREQCOMP_NA 0xC000
673 #define RCL_CMD_BLE_CS_TOAD_NA 0x8000
674 #define RCL_CMD_BLE_CS_RSSI_NA 0x7F
675 
676 /* Opcodes */
677 #define RCL_CMD_BLE_CS_SUBEVENT_RESULTS_OPCODE 0x31
678 #define RCL_CMD_BLE_CS_SUBEVENT_RESULTS_CONTINUE_OPCODE 0x32
679 
686  uint32_t channelIdx : 7;
687  uint32_t mode : 2;
688  uint32_t antennaPacket: 3;
689  uint32_t antennaPermIdx : 5;
690  uint32_t toneExtension : 2;
691  uint32_t payloadLen : 3;
692  uint32_t reserved : 10;
693  uint32_t aaTx;
694  uint32_t aaRx;
695  uint32_t payloadTx[RCL_BLE_CS_MAX_PAYLOAD_SIZE];
696  uint32_t payloadRx[RCL_BLE_CS_MAX_PAYLOAD_SIZE];
697 };
698 
705  uint8_t subeventCode;
707  uint8_t configID;
714  uint8_t abortReason;
715  uint8_t numAntennaPath;
717  uint8_t data[];
718 } __attribute__ ((packed));
719 
726  uint8_t subeventCode;
728  uint8_t configID;
731  uint8_t abortReason;
732  uint8_t numAntennaPath;
734  uint8_t data[];
735 } __attribute__ ((packed));
736 
742  uint32_t i : 12;
743  uint32_t q : 12;
744  uint32_t quality : 8;
745 };
746 
752  /* Common */
753  uint8_t mode;
754  uint8_t channel;
755  uint8_t dataLength;
756  uint8_t data[];
757 } __attribute__((packed));
758 
764  /* Common */
765  uint8_t mode;
766  uint8_t channel;
767  uint8_t dataLength;
768  /* Packet */
770  int8_t packetRssi;
771  uint8_t packetAntenna;
772  /* Frequency */
774 };
775 
781  /* Common */
782  uint8_t mode;
783  uint8_t channel;
784  uint8_t dataLength;
785  /* Packet */
787  int8_t packetRssi;
788  uint8_t packetAntenna;
789 };
790 
796  /* Common */
797  uint8_t mode;
798  uint8_t channel;
799  uint8_t dataLength;
800  /* Packet */
802  uint8_t nadm;
803  int8_t packetRssi;
804  int16_t packetToF;
805  uint8_t packetAntenna;
806 };
807 
813  /* Common */
814  uint8_t mode;
815  uint8_t channel;
816  uint8_t dataLength;
817  /* Tones */
819  RCL_CmdBleCs_Tone tones[];
820 };
821 
827  /* Common */
828  uint8_t mode;
829  uint8_t channel;
830  uint8_t dataLength;
831  /* Packet */
833  uint8_t nadm;
834  int8_t packetRssi;
835  int16_t packetToF;
836  uint8_t packetAntenna;
837  /* Tones */
839  RCL_CmdBleCs_Tone tones[];
840 };
841 
842 #endif
uint16_t toneExtension
Definition: ble_cs.h:236
uint16_t procedureCounter
Definition: ble_cs.h:709
PCT compensation table for antenna/front-end delay.
Definition: ble_cs.h:604
uint16_t magnMin
Definition: ble_cs.h:505
uint8_t packetAntenna
Definition: ble_cs.h:788
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:2349
RCL_CMD_BLE_CS_Tpm_e
Enumerator of tPm duration options.
Definition: ble_cs.h:373
#define RCL_BLE_CS_NUM_RX_GAIN_LEVEL
Definition: ble_cs.h:106
int8_t pktRssi
Definition: ble_cs.h:242
uint16_t startAclConnectionEvent
Definition: ble_cs.h:708
RCL_CMD_BLE_CS_Payload_e
Enumerator of payload length.
Definition: ble_cs.h:431
uint8_t channel
Definition: ble_cs.h:829
Definition: ble_cs.h:415
uint8_t configID
Definition: ble_cs.h:728
int16_t measuredFreqOffset
Definition: ble_cs.h:773
uint16_t tStep
Definition: ble_cs.h:210
uint8_t mode
Definition: ble_cs.h:753
uint32_t payload0
Definition: ble_cs.h:277
RCL_CmdBleCs_PrecalTable * table
Definition: ble_cs.h:573
Definition: ble_cs.h:421
enum RCL_CMD_BLE_CS_ReportFormat_e RCL_CmdBleCs_ReportFormat
Definition: ble_cs.h:82
uint16_t mode
Definition: ble_cs.h:235
BLE Channel Sounding.
Definition: ble_cs.h:125
Definition: ble_cs.h:361
Definition: ble_cs.h:363
int16_t frequencyCompensation
Definition: ble_cs.h:710
RCL_CMD_BLE_CS_Tfcs_e
Enumerator of tFcs duration options.
Definition: ble_cs.h:360
enum RCL_CMD_BLE_CS_ToneQuality_e RCL_CmdBleCs_ToneQuality
Definition: ble_cs.h:79
uint16_t tAdjustA
Definition: ble_cs.h:199
Container format for mode-2 step results.
Definition: ble_cs.h:812
int16_t packetToF
Definition: ble_cs.h:835
uint8_t channel
Definition: ble_cs.h:754
BLE Channel Sounding QQ data.
Definition: ble_cs.h:221
uint8_t dataLength
Definition: ble_cs.h:830
Definition: ble_cs.h:362
uint8_t mode
Definition: ble_cs.h:782
RCL_CMD_BLE_CS_Tip_e
Enumerator of tIp duration.
Definition: ble_cs.h:385
Definition: ble_cs.h:388
uint16_t nStepsDone
Definition: ble_cs.h:294
uint8_t packetAntenna
Definition: ble_cs.h:771
Definition: ble_cs.h:657
Definition: ble_cs.h:351
Container format for mode-3 step results.
Definition: ble_cs.h:826
uint16_t nStepsWritten
Definition: ble_cs.h:292
uint32_t payload3
Definition: ble_cs.h:280
#define RCL_BLE_CS_MAX_PAYLOAD_SIZE
Definition: ble_cs.h:102
Definition: ble_cs.h:656
uint8_t numAntennaPath
Definition: ble_cs.h:715
enum RCL_CMD_BLE_CS_Phy_e RCL_CmdBleCs_Phy
Definition: ble_cs.h:68
uint8_t numAntennaPath
Definition: ble_cs.h:301
Definition: ble_cs.h:418
Container format for a single step in the subevent.
Definition: ble_cs.h:685
BLE Channel Sounding S2R IQ Data.
Definition: ble_cs.h:272
enum RCL_CMD_BLE_CS_PacketResult_e RCL_CmdBleCs_PacketResult
Definition: ble_cs.h:71
int8_t referencePowerLevel
Definition: ble_cs.h:711
uint8_t subeventDoneStatus
Definition: ble_cs.h:713
Definition: ble_cs.h:654
uint8_t rplScaler
Definition: ble_cs.h:302
Container format for common section of step results.
Definition: ble_cs.h:751
Definition: ble_cs.h:350
RCL_CMD_BLE_CS_StepMode_e
Enumerator of step types.
Definition: ble_cs.h:334
RCL_CMD_BLE_CS_Role_e
Enumerator of role types.
Definition: ble_cs.h:323
uint8_t chSpacing
Definition: ble_cs.h:535
uint16_t channelIdx
Definition: ble_cs.h:234
int8_t lastRssi
Definition: ble_cs.h:298
Definition: ble_cs.h:349
RCL_CMD_BLE_CS_ReportFormat_e
Enumerator of report format.
Definition: ble_cs.h:479
enum RCL_CMD_BLE_CS_Tfcs_e RCL_CmdBleCs_Tfcs
Definition: ble_cs.h:72
uint16_t foffErr
Definition: ble_cs.h:198
Definition: ble_cs.h:419
Definition: ble_cs.h:352
uint8_t antennaPacket
Definition: ble_cs.h:208
uint8_t packetAAQuality
Definition: ble_cs.h:801
Definition: ble_cs.h:324
enum RCL_CMD_BLE_CS_Role_e RCL_CmdBleCs_Role
Definition: ble_cs.h:69
int8_t packetRssi
Definition: ble_cs.h:787
uint8_t mode
Definition: ble_cs.h:828
Definition: ble_cs.h:667
uint8_t firstChannelIdx
Definition: ble_cs.h:605
uint8_t numAntennaPath
Definition: ble_cs.h:732
uint8_t nadm
Definition: ble_cs.h:833
RCL_CMD_BLE_CS_Tsw_e
Enumerator of antenna switch duration.
Definition: ble_cs.h:399
Definition: ble_cs.h:422
Definition: ble_cs.h:338
uint16_t connectionHandle
Definition: ble_cs.h:727
uint16_t nRxOk
Definition: ble_cs.h:295
uint8_t packetAntenna
Definition: ble_cs.h:805
enum RCL_CMD_BLE_CS_Tpm_e RCL_CmdBleCs_Tpm
Definition: ble_cs.h:73
uint8_t abortReason
Definition: ble_cs.h:714
uint8_t magnCoeff
Definition: ble_cs.h:596
uint16_t antennaSequence
Definition: ble_cs.h:209
Definition: ble_cs.h:386
Definition: ble_cs.h:365
RCL_CmdBleCs_PrecalTable * precalTable
Definition: ble_cs.h:169
uint16_t payloadLen
Definition: ble_cs.h:197
Definition: ble_cs.h:339
Definition: ble_cs.h:436
uint16_t nResultsRead
Definition: ble_cs.h:293
uint8_t phy
Definition: ble_cs.h:274
uint8_t antennaPermutationIndex
Definition: ble_cs.h:818
Definition: ble_cs.h:432
uint8_t dataLength
Definition: ble_cs.h:799
RCL_CMD_BLE_CS_RxGain_e
Enumerator of RX gain.
Definition: ble_cs.h:445
Definition: ble_cs.h:389
uint8_t nadm
Definition: ble_cs.h:802
RCL_CmdBleCs_PrecalCallback callback
Definition: ble_cs.h:529
#define RCL_BLE_CS_MAX_NUM_ANT_PATH
Definition: ble_cs.h:101
RCL_CmdBleCs_Stats * stats
Definition: ble_cs.h:171
Index of the tx power table.
Definition: LRFCC23X0.h:169
uint8_t packetAntenna
Definition: ble_cs.h:836
int16_t foffComp
Definition: ble_cs.h:300
Definition: ble_cs.h:663
uint8_t dataLength
Definition: ble_cs.h:784
#define RCL_BLE_CS_MAX_NUM_ANT
Definition: ble_cs.h:100
uint8_t numStepsReported
Definition: ble_cs.h:733
Definition: ble_cs.h:402
BLE Channel Sounding Step Result.
Definition: ble_cs.h:233
Definition: ble_cs.h:456
Definition: ble_cs.h:405
uint16_t magnAvg
Definition: ble_cs.h:507
uint16_t tAntennaA
Definition: ble_cs.h:211
RCL_CMD_BLE_CS_ToneExtensionSlot_e
Enumerator of tone extension slot.
Definition: ble_cs.h:467
Definition: ble_cs.h:446
uint16_t channelIdx
Definition: ble_cs.h:194
enum RCL_CMD_BLE_CS_PacketAntenna_e RCL_CmdBleCs_PacketAntenna
Definition: ble_cs.h:83
uint8_t configID
Definition: ble_cs.h:707
Definition: ble_cs.h:458
int8_t phaseStart
Definition: ble_cs.h:503
RCL_CMD_BLE_CS_PacketAntenna_e
Definition: ble_cs.h:653
int16_t lastFoff
Definition: ble_cs.h:299
int16_t magnMin
Definition: ble_cs.h:222
enum RCL_CMD_BLE_CS_Nadm_e RCL_CmdBleCs_Nadm
Definition: ble_cs.h:84
uint8_t data[]
Definition: ble_cs.h:555
BLE Channel Sounding IQ Sample.
Definition: ble_cs.h:115
uint16_t tAntennaB
Definition: ble_cs.h:212
Definition: ble_cs.h:313
Definition: ble_cs.h:662
int16_t q
Definition: ble_cs.h:117
Definition: ble_cs.h:435
int16_t i
Definition: ble_cs.h:116
uint8_t channel
Definition: ble_cs.h:798
Definition: ble_cs.h:326
uint16_t tAdjustB
Definition: ble_cs.h:200
uint8_t gain
Definition: ble_cs.h:241
uint8_t procedureDoneStatus
Definition: ble_cs.h:729
uint16_t connectionHandle
Definition: ble_cs.h:706
uint8_t mode
Definition: ble_cs.h:814
Container format for mode-0 step results.
Definition: ble_cs.h:780
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:261
uint8_t nS2RDone
Definition: ble_cs.h:297
uint16_t magnMax
Definition: ble_cs.h:506
RCL_CMD_BLE_CS_ToneQuality_e
Enumerator of tone quality.
Definition: ble_cs.h:454
int16_t i
Definition: ble_cs.h:501
BLE Channel Sounding DC Sample.
Definition: ble_cs.h:500
uint32_t timestamp
Definition: ble_cs.h:530
#define RCL_BLE_CS_NUM_CORR
Definition: ble_cs.h:103
uint8_t dataLength
Definition: ble_cs.h:767
Definition: ble_cs.h:312
uint8_t channel
Definition: ble_cs.h:545
uint8_t dataLength
Definition: ble_cs.h:755
uint32_t aaRx
Definition: ble_cs.h:206
enum RCL_CMD_BLE_CS_Tsw_e RCL_CmdBleCs_Tsw
Definition: ble_cs.h:75
Definition: ble_cs.h:364
Container format for a batch of step results in the subevent (second+ segment)
Definition: ble_cs.h:725
uint8_t antennaPermIdx
Definition: ble_cs.h:251
uint8_t reportFormat
Definition: ble_cs.h:167
RCL_Command common
Definition: ble_cs.h:126
RCL_CMD_BLE_CS_AntennaConfig_e
Enumerator of antenna configuration.
Definition: ble_cs.h:414
Definition: ble_cs.h:336
DC precalibration command.
Definition: ble_cs.h:571
RCL_Command common
Definition: ble_cs.h:572
Definition: ble_cs.h:391
Definition: ble_cs.h:416
Definition: ble_cs.h:325
uint32_t aaTx
Definition: ble_cs.h:205
uint16_t tPllRx
Definition: ble_cs.h:201
Definition: ble_cs.h:401
uint8_t antennaPacket
Definition: ble_cs.h:252
Definition: ble_cs.h:457
uint16_t rtt
Definition: ble_cs.h:243
uint8_t idx
Definition: ble_cs.h:273
uint8_t packetAAQuality
Definition: ble_cs.h:786
int16_t q
Definition: ble_cs.h:502
uint8_t procedureDoneStatus
Definition: ble_cs.h:712
uint8_t antennaPermutationIndex
Definition: ble_cs.h:838
RCL_CMD_BLE_CS_PacketResult_e
Enumerator of packet status options.
Definition: ble_cs.h:347
Definition: ble_cs.h:314
int8_t phaseStop
Definition: ble_cs.h:504
int16_t magnMax
Definition: ble_cs.h:223
Definition: ble_cs.h:374
RCL_CMD_BLE_CS_Nadm_e
Definition: ble_cs.h:660
int16_t foffOverride
Definition: ble_cs.h:164
uint8_t subeventCode
Definition: ble_cs.h:705
uint8_t channel
Definition: ble_cs.h:783
int16_t magnAvg
Definition: ble_cs.h:224
Definition: ble_cs.h:661
uint8_t lowThreshold
Definition: ble_cs.h:532
uint32_t payload1
Definition: ble_cs.h:278
uint8_t numStepsReported
Definition: ble_cs.h:716
int8_t packetRssi
Definition: ble_cs.h:770
Container format for a batch of step results in the subevent (first segment)
Definition: ble_cs.h:704
uint32_t aaTx
Definition: ble_cs.h:693
uint16_t mode
Definition: ble_cs.h:195
uint8_t reserved
Definition: ble_cs.h:533
uint32_t aaRx
Definition: ble_cs.h:694
Container format for mode-1 step results.
Definition: ble_cs.h:795
Definition: ble_cs.h:335
int16_t packetToF
Definition: ble_cs.h:804
uint8_t channel
Definition: ble_cs.h:275
uint8_t abortReason
Definition: ble_cs.h:731
uint8_t dataLength
Definition: ble_cs.h:816
uint8_t payloadLen
Definition: ble_cs.h:276
uint8_t channel
Definition: ble_cs.h:815
Definition: ble_cs.h:375
BLE Channel Sounding Statistics.
Definition: ble_cs.h:291
uint8_t highThreshold
Definition: ble_cs.h:531
Definition: ble_cs.h:665
Definition: ble_cs.h:377
Definition: ble_cs.h:387
Container format for tones.
Definition: ble_cs.h:741
enum RCL_CMD_BLE_CS_Payload_e RCL_CmdBleCs_Payload
Definition: ble_cs.h:77
uint32_t word
Definition: ble_cs.h:262
List_List stepBuffers
Definition: ble_cs.h:172
Definition: ble_cs.h:400
Definition: ble_cs.h:434
Channel entry for PCT compensation for antenna/front-end delay.
Definition: ble_cs.h:594
uint16_t toneExtension
Definition: ble_cs.h:196
RCL_CMD_BLE_CS_Phy_e
Enumerator of phy types.
Definition: ble_cs.h:311
int8_t packetRssi
Definition: ble_cs.h:803
List_List resultBuffers
Definition: ble_cs.h:174
Definition: ble_cs.h:666
uint8_t subeventDoneStatus
Definition: ble_cs.h:730
Definition: ble_cs.h:437
Definition: ble_cs.h:433
Definition: ble_cs.h:404
Container format for mode-0 step results.
Definition: ble_cs.h:763
uint16_t nRxNok
Definition: ble_cs.h:296
Definition: ble_cs.h:376
uint16_t reserved
Definition: ble_cs.h:213
enum RCL_CMD_BLE_CS_StepMode_e RCL_CmdBleCs_StepMode
Definition: ble_cs.h:70
Definition: ble_cs.h:348
uint8_t mode
Definition: ble_cs.h:544
Definition: ble_cs.h:655
RCL_CmdBleCs_IQSample iq
Definition: ble_cs.h:264
Definition: ble_cs.h:390
uint16_t payloadLen
Definition: ble_cs.h:237
uint8_t mode
Definition: ble_cs.h:797
uint16_t pktResult
Definition: ble_cs.h:240
enum RCL_CMD_BLE_CS_RxGain_e RCL_CmdBleCs_RxGain
Definition: ble_cs.h:78
Definition: ble_cs.h:315
const RCL_AntennaConfig_t antennaConfig[RCL_CmdBleCs_AntennaConfig_Length]
Definition: ble_cs.c:179
uint16_t reserved
Definition: ble_cs.h:238
List_List stepBuffersDone
Definition: ble_cs.h:173
Definition: ble_cs.h:668
List_List s2rBuffersDone
Definition: ble_cs.h:177
uint8_t phaseDelay
Definition: ble_cs.h:595
int16_t magnAvgdB
Definition: ble_cs.h:225
uint8_t mode
Definition: ble_cs.h:765
RCL_CmdBleCs_IQSample dc
Definition: ble_cs.h:245
enum RCL_CMD_BLE_CS_Tip_e RCL_CmdBleCs_Tip
Definition: ble_cs.h:74
uint8_t antennaPermIdx
Definition: ble_cs.h:207
DC precalibration entry.
Definition: ble_cs.h:515
uint8_t channel
Definition: ble_cs.h:516
Definition: ble_cs.h:459
Definition: ble_cs.h:481
RCL_CmdBleCs_DCSample high
Definition: ble_cs.h:519
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:493
List_List s2rBuffers
Definition: ble_cs.h:176
Definition: ble_cs.h:455
int8_t temperature
Definition: ble_cs.h:534
BLE Channel Sounding Step.
Definition: ble_cs.h:193
Definition: ble_cs.h:664
RCL_CmdBleCs_StepResult_Internal * results
Definition: ble_cs.h:170
Definition: ble_cs.h:480
uint8_t packetAAQuality
Definition: ble_cs.h:832
RCL_CmdBleCs_DCSample low
Definition: ble_cs.h:520
uint8_t packetAAQuality
Definition: ble_cs.h:769
int8_t packetRssi
Definition: ble_cs.h:834
List_List resultBuffersDone
Definition: ble_cs.h:175
DC precalibration table.
Definition: ble_cs.h:528
uint32_t payload2
Definition: ble_cs.h:279
Definition: ble_cs.h:337
uint16_t reserved1
Definition: ble_cs.h:253
uint8_t subeventCode
Definition: ble_cs.h:726
struct RCL_CMD_BLE_CS_STEP_RESULTS_TONE_t __attribute__
Definition: hal_cc23x0.c:510
uint16_t reserved
Definition: ble_cs.h:303
Definition: ble_cs.h:417
enum RCL_CMD_BLE_CS_AntennaConfig_e RCL_CmdBleCs_AntennaConfig
Definition: ble_cs.h:76
uint16_t reserved
Definition: ble_cs.h:282
uint16_t iqLength
Definition: ble_cs.h:281
Definition: ble_cs.h:403
Definition: ble_cs.h:420
Definition: ble_cs.h:423
uint8_t channel
Definition: ble_cs.h:766
int16_t foffMeasured
Definition: ble_cs.h:239