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__include
34 #define ti_drivers_rcl_commands_ble_cs__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 
78 typedef enum RCL_CMD_BLE_CS_RxGain_e RCL_CmdBleCs_RxGain;
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)*48U)
92 #define RCL_BLE_CS_US_TO_PBE_TIMER(x) ((x)*4U)
93 #define RCL_BLE_CS_MCE_TIMER_TO_US(x) ((x)/48U)
94 #define RCL_BLE_CS_PBE_TIMER_TO_US(x) ((x)/12U)
95 #define RCL_BLE_CS_MCE_TIMER_TO_PBE_TIMER(x) (uint16_t) ((x)/4U)
96 #define RCL_BLE_CS_MCE_TIMER_TO_PREFREF(x) ((x)/3U)
97 #define RCL_BLE_CS_DELAY_PS_TO_LUT(x) (((x)+16U)/32U)
98 
99 /* Helper macros for constants */
100 #define RCL_BLE_CS_MAX_NUM_ANT 4U
101 #define RCL_BLE_CS_MAX_NUM_ANT_PATH 5U
102 #define RCL_BLE_CS_MAX_PAYLOAD_SIZE 4U
103 #define RCL_BLE_CS_NUM_CORR 3U
104 #define RCL_BLE_CS_NUM_STIM 2U
105 #define RCL_BLE_CS_MAX_S2R_LEN 1024U
106 #define RCL_BLE_CS_NUM_RX_GAIN_LEVEL 2U
107 #define RCL_BLE_CS_STEP_RX_GAIN_DB 3U
108 #define RCL_BLE_CS_NUM_PRECAL_CHANNELS 8U
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 reportFormat:1;
134  uint16_t inlinePhase:1;
135  uint16_t reserved0: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 
161  uint8_t rxGainPolicy:2;
162  uint8_t foffPolicy:2;
163  uint16_t rxGainVal;
164  int16_t foffVal;
166  RCL_CmdBleCs_PrecalTable *precalTable;
167  RCL_CmdBleCs_StepResult_Internal *results;
168  RCL_CmdBleCs_Stats *stats;
169  List_List stepBuffers;
170  List_List stepBuffersDone;
171  List_List resultBuffers;
172  List_List resultBuffersDone;
173  List_List s2rBuffers;
174  List_List s2rBuffersDone;
175 };
176 
177 /* Default configuration of command */
178 #define RCL_CmdBleCs_Default() \
179 { \
180  .common = RCL_Command_Default(RCL_CMDID_BLE_CS, \
181  RCL_Handler_BLE_CS), \
182 }
183 #define RCL_CmdBleCs_DefaultRuntime() (RCL_CmdBleCs) RCL_CmdBleCs_Default()
184 
191  uint8_t channelIdx;
192  uint8_t reserved0;
193  uint8_t mode;
194  uint8_t reserved1;
195  uint8_t toneExtension;
196  uint8_t reserved2;
197  uint8_t payloadLen;
198  uint8_t reserved3;
199  int16_t foffErr;
200  int16_t tAdjustA;
201  int16_t tAdjustB;
202  uint16_t tPllRx;
203  RCL_CmdBleCs_IQSample dcComp[RCL_BLE_CS_NUM_RX_GAIN_LEVEL];
204  uint32_t payloadTx[RCL_BLE_CS_MAX_PAYLOAD_SIZE];
205  uint32_t payloadRx[RCL_BLE_CS_MAX_PAYLOAD_SIZE];
206  uint32_t aaTx;
207  uint32_t aaRx;
208  uint8_t antennaPermIdx;
209  uint8_t antennaPacket;
210  uint16_t antennaSequence;
211  uint16_t tStep;
212  int16_t tAntennaA;
213  int16_t tAntennaB;
214  uint16_t reserved4;
215 };
216 
222 typedef struct {
223  uint16_t magnMin;
224  uint16_t magnMax;
225  uint16_t magnAvg;
226  uint16_t magnAvgdB;
227 } MagnData;
228 
235  uint8_t channelIdx;
236  uint8_t reserved0;
237  uint8_t mode;
238  uint8_t reserved1;
239  uint8_t toneExtension;
240  uint8_t reserved2;
241  uint8_t payloadLen;
242  uint8_t reserved3;
243  uint16_t reserved4;
244  int16_t foffMeasured;
245  uint8_t pktResult;
246  uint8_t reserved5;
247  uint8_t gain;
248  int8_t pktRssi;
249  uint16_t rtt;
250  uint16_t corr[RCL_BLE_CS_NUM_CORR];
251  RCL_CmdBleCs_IQSample dc;
252  RCL_CmdBleCs_IQSample pct[RCL_BLE_CS_MAX_NUM_ANT_PATH];
253  uint32_t payload[RCL_BLE_CS_MAX_PAYLOAD_SIZE];
256  /* Echoed by PBE */
257  uint8_t antennaPermIdx;
258  uint8_t antennaPacket;
259  uint16_t reserved6;
260 };
261 
267 typedef union {
268  uint32_t word;
269  uint8_t byte[4];
270  RCL_CmdBleCs_IQSample iq;
271 } S2RSample;
272 
279  uint8_t idx;
280  uint8_t phy;
281  uint8_t channel;
282  uint8_t payloadLen;
283  uint32_t payload0;
284  uint32_t payload1;
285  uint32_t payload2;
286  uint32_t payload3;
287  uint16_t iqLength;
288  uint16_t reserved;
290 };
291 
298  uint8_t nStepsWritten;
299  uint8_t nResultsRead;
300  uint8_t nStepsDone;
301  uint8_t nRxOk;
302  uint8_t nRxNok;
303  uint8_t nS2RDone;
304  uint8_t nMode0;
305  uint8_t nMode0Ok;
306  uint8_t reserved0;
307  int8_t lastRssi;
308  int16_t lastFoff;
309  uint16_t rxGain;
310  int16_t foffComp;
311  uint8_t numAntennaPath;
312  uint8_t reserved1;
313 };
314 
325 };
326 
336 };
337 
349 };
350 
361 };
362 
374 };
375 
386 };
387 
400 };
401 
414 };
415 
432 };
433 
446 };
447 
457 };
458 
470 };
471 
482 };
483 
492 };
493 
494 /*****************************************************
495  DC precalibration
496 *****************************************************/
497 
503 typedef void (*RCL_CmdBleCs_PrecalCallback)(RCL_CmdBleCs_PrecalTable *table, uint8_t channel, RCL_CmdBleCs_IQSample *pHigh, RCL_CmdBleCs_IQSample *pLow);
504 
511  int16_t i;
512  int16_t q;
513  int8_t phaseStart;
514  int8_t phaseStop;
515  uint16_t magnMin;
516  uint16_t magnMax;
517  uint16_t magnAvg;
518 };
519 
526  uint8_t channel;
527  uint8_t lowValid : 1;
528  uint8_t highValid : 1;
529  RCL_CmdBleCs_DCSample high;
530  RCL_CmdBleCs_DCSample low;
531 };
532 
540  uint32_t timestamp;
541  int16_t temperature;
542  uint8_t highThreshold;
543  uint8_t lowThreshold;
544  uint8_t chSpacing;
545  uint8_t numEntries : 7;
546  uint8_t valid : 1;
547  RCL_CmdBleCs_PrecalEntry entries[];
548 };
549 
550 /* Default callback implemented in the driver */
551 void RCL_Handler_BLE_CS_PrecalDefaultCallback(RCL_CmdBleCs_PrecalTable *table, uint8_t channel, RCL_CmdBleCs_IQSample *pHigh, RCL_CmdBleCs_IQSample *pLow);
553 /* Default configuration of DC precalibration */
554 #define RCL_CmdBleCs_PrecalTable_Default() \
555 { \
556  .callback = RCL_Handler_BLE_CS_PrecalDefaultCallback, \
557  .timestamp = 0, \
558  .temperature = 0, \
559  .highThreshold = 50, \
560  .lowThreshold = 10, \
561  .chSpacing = 10, \
562  .numEntries = 8, \
563  .valid = 0, \
564  .entries = {{.channel = 5}, \
565  {.channel = 15}, \
566  {.channel = 25}, \
567  {.channel = 35}, \
568  {.channel = 45}, \
569  {.channel = 55}, \
570  {.channel = 65}, \
571  {.channel = 75}}, \
572 }
573 
580  RCL_Command common;
581  RCL_CmdBleCs_PrecalTable *table;
582 };
583 
584 /* Default configuration of DC precalibration command */
585 #define RCL_CmdBleCs_Precal_Default(pTable) \
586 { \
587  .common = RCL_Command_Default(RCL_CMDID_BLE_CS_PRECAL, \
588  RCL_Handler_BLE_CS_Precal), \
589  .table = pTable \
590 }
591 #define RCL_CmdBleCs_Precal_DefaultRuntime(pTable) (RCL_CmdBleCs_Precal) RCL_CmdBleCs_Precal_Default(pTable)
592 
593 /*****************************************************
594  PCT compensation for antenna/front-end delay
595 *****************************************************/
596 
603  uint8_t phaseDelay;
604  uint8_t magnCoeff;
605 };
606 
613  uint8_t firstChannelIdx;
614  uint8_t chSpacing : 7;
615  uint8_t enPhaseComp : 1;
616  uint8_t enMagnComp : 1;
617  uint8_t numEntries : 7;
618  RCL_CmdBleCs_PctCompEntry entries[];
619 };
620 
621 
622 /* Adjust RCL_BLE_CS_PHASE_DELAY_PS for linear PCT phase compensation due to antenna/front-end design,
623  * or adjust RCL_CmdBleCs_PctCompTable bleCsPctCompTable, using a calibrated instrument */
624 #ifndef RCL_BLE_CS_PHASE_DELAY_PS
625 #if (DeviceFamily_PARENT == DeviceFamily_PARENT_CC27XX)
626  /* Example: LP-EM-CC2745R10-Q1 Launchpad development kit, SMA port */
627  #define RCL_BLE_CS_PHASE_DELAY_PS (1100UL)
628 #else
629  /* Example: LP-EM-CC2340R5 Launchpad development kit, SMA port */
630  #define RCL_BLE_CS_PHASE_DELAY_PS (1500UL)
631 #endif
632 #endif
633 
634 /* Default PCT compensation table: Only phase comp. Channels: 2402, 2402+n*8, ..., 2402+(11-1)*8 = 2482MHz */
635 #define RCL_CmdBleCs_PctCompTable_Default() \
636 { \
637  .firstChannelIdx = 0, \
638  .chSpacing = 8, \
639  .enPhaseComp = 1, \
640  .enMagnComp = 0, \
641  .numEntries = 11, \
642  .entries = {{.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  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}, \
646  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}, \
647  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}, \
648  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}, \
649  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}, \
650  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}, \
651  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}, \
652  {.phaseDelay = RCL_BLE_CS_DELAY_PS_TO_LUT(RCL_BLE_CS_PHASE_DELAY_PS)}}, \
653 }
654 
655 
656 /*****************************************************
657  HCI interface
658 *****************************************************/
659 
660 /* Special values for categorical parameters */
666 };
667 
677 };
678 
679 /* Special values for linear parameters */
680 #define RCL_CMD_BLE_CS_FREQCOMP_NA 0xC000
681 #define RCL_CMD_BLE_CS_TOAD_NA (int16_t) 0x8000
682 #define RCL_CMD_BLE_CS_RSSI_NA 0x7F
683 
684 /* Opcodes */
685 #define RCL_CMD_BLE_CS_SUBEVENT_RESULTS_OPCODE 0x31
686 #define RCL_CMD_BLE_CS_SUBEVENT_RESULTS_CONTINUE_OPCODE 0x32
687 
694  uint32_t channelIdx : 7;
695  uint32_t mode : 2;
696  uint32_t antennaPacket: 3;
697  uint32_t antennaPermIdx : 5;
698  uint32_t toneExtension : 2;
699  uint32_t payloadLen : 3;
700  uint32_t reserved : 10;
701  uint32_t aaTx;
702  uint32_t aaRx;
703  uint32_t payloadTx[RCL_BLE_CS_MAX_PAYLOAD_SIZE];
704  uint32_t payloadRx[RCL_BLE_CS_MAX_PAYLOAD_SIZE];
705 };
706 
713  uint8_t subeventCode;
715  uint8_t configID;
722  uint8_t abortReason;
723  uint8_t numAntennaPath;
725  uint8_t data[];
726 } __attribute__ ((packed));
727 
734  uint8_t subeventCode;
736  uint8_t configID;
739  uint8_t abortReason;
740  uint8_t numAntennaPath;
742  uint8_t data[];
743 } __attribute__ ((packed));
744 
750  uint32_t i : 12;
751  uint32_t q : 12;
752  uint32_t quality : 8;
753 };
754 
760  /* Common */
761  uint8_t mode;
762  uint8_t channel;
763  uint8_t dataLength;
764  uint8_t data[];
765 } __attribute__((packed));
766 
772  /* Common */
773  uint8_t mode;
774  uint8_t channel;
775  uint8_t dataLength;
776  /* Packet */
778  int8_t packetRssi;
779  uint8_t packetAntenna;
780  /* Frequency */
782 };
783 
789  /* Common */
790  uint8_t mode;
791  uint8_t channel;
792  uint8_t dataLength;
793  /* Packet */
795  int8_t packetRssi;
796  uint8_t packetAntenna;
797 };
798 
804  /* Common */
805  uint8_t mode;
806  uint8_t channel;
807  uint8_t dataLength;
808  /* Packet */
810  uint8_t nadm;
811  int8_t packetRssi;
812  int16_t packetToF;
813  uint8_t packetAntenna;
814 };
815 
821  /* Common */
822  uint8_t mode;
823  uint8_t channel;
824  uint8_t dataLength;
825  /* Tones */
827  RCL_CmdBleCs_Tone tones[];
828 };
829 
835  /* Common */
836  uint8_t mode;
837  uint8_t channel;
838  uint8_t dataLength;
839  /* Packet */
841  uint8_t nadm;
842  int8_t packetRssi;
843  int16_t packetToF;
844  uint8_t packetAntenna;
845  /* Tones */
847  RCL_CmdBleCs_Tone tones[];
848 };
849 
850 #endif /* ti_drivers_rcl_commands_ble_cs__include */
uint16_t procedureCounter
Definition: ble_cs.h:717
PCT compensation table for antenna/front-end delay.
Definition: ble_cs.h:612
uint16_t magnMin
Definition: ble_cs.h:515
uint8_t packetAntenna
Definition: ble_cs.h:796
uint8_t mode
Definition: ble_cs.h:237
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:2463
RCL_CMD_BLE_CS_Tpm_e
Enumerator of tPm duration options.
Definition: ble_cs.h:381
#define RCL_BLE_CS_NUM_RX_GAIN_LEVEL
Definition: ble_cs.h:106
int8_t pktRssi
Definition: ble_cs.h:248
uint16_t startAclConnectionEvent
Definition: ble_cs.h:716
RCL_CMD_BLE_CS_Payload_e
Enumerator of payload length.
Definition: ble_cs.h:439
uint8_t channel
Definition: ble_cs.h:837
Definition: ble_cs.h:423
uint8_t configID
Definition: ble_cs.h:736
int16_t measuredFreqOffset
Definition: ble_cs.h:781
uint16_t tStep
Definition: ble_cs.h:211
uint8_t mode
Definition: ble_cs.h:761
uint32_t payload0
Definition: ble_cs.h:283
RCL_CmdBleCs_PrecalTable * table
Definition: ble_cs.h:581
Definition: ble_cs.h:429
enum RCL_CMD_BLE_CS_ReportFormat_e RCL_CmdBleCs_ReportFormat
Definition: ble_cs.h:82
BLE Channel Sounding.
Definition: ble_cs.h:125
Definition: ble_cs.h:369
Definition: ble_cs.h:371
int16_t frequencyCompensation
Definition: ble_cs.h:718
RCL_CMD_BLE_CS_Tfcs_e
Enumerator of tFcs duration options.
Definition: ble_cs.h:368
enum RCL_CMD_BLE_CS_ToneQuality_e RCL_CmdBleCs_ToneQuality
Definition: ble_cs.h:79
Definition: ble_cs.h:454
Container format for mode-2 step results.
Definition: ble_cs.h:820
int16_t packetToF
Definition: ble_cs.h:843
uint8_t channel
Definition: ble_cs.h:762
BLE Channel Sounding QQ data.
Definition: ble_cs.h:222
uint8_t dataLength
Definition: ble_cs.h:838
uint8_t nRxNok
Definition: ble_cs.h:302
Definition: ble_cs.h:370
uint8_t mode
Definition: ble_cs.h:790
RCL_CMD_BLE_CS_Tip_e
Enumerator of tIp duration.
Definition: ble_cs.h:393
Definition: ble_cs.h:396
uint8_t packetAntenna
Definition: ble_cs.h:779
Definition: ble_cs.h:665
Definition: ble_cs.h:359
Container format for mode-3 step results.
Definition: ble_cs.h:834
uint8_t channelIdx
Definition: ble_cs.h:191
uint32_t payload3
Definition: ble_cs.h:286
uint8_t reserved1
Definition: ble_cs.h:312
int16_t tAntennaA
Definition: ble_cs.h:212
#define RCL_BLE_CS_MAX_PAYLOAD_SIZE
Definition: ble_cs.h:102
Definition: ble_cs.h:664
uint8_t numAntennaPath
Definition: ble_cs.h:723
enum RCL_CMD_BLE_CS_Phy_e RCL_CmdBleCs_Phy
Definition: ble_cs.h:68
uint8_t numAntennaPath
Definition: ble_cs.h:311
Definition: ble_cs.h:426
uint8_t nStepsWritten
Definition: ble_cs.h:298
Container format for a single step in the subevent.
Definition: ble_cs.h:693
BLE Channel Sounding S2R IQ Data.
Definition: ble_cs.h:278
uint8_t reserved5
Definition: ble_cs.h:246
enum RCL_CMD_BLE_CS_PacketResult_e RCL_CmdBleCs_PacketResult
Definition: ble_cs.h:71
int8_t referencePowerLevel
Definition: ble_cs.h:719
uint8_t subeventDoneStatus
Definition: ble_cs.h:721
uint8_t reserved2
Definition: ble_cs.h:196
struct RCL_CMD_BLE_CS_STEP_RESULTS_TONE_t __attribute__
Definition: RCLLPF3_Hal.c:519
Definition: ble_cs.h:662
uint8_t payloadLen
Definition: ble_cs.h:197
Container format for common section of step results.
Definition: ble_cs.h:759
Definition: ble_cs.h:358
RCL_CMD_BLE_CS_StepMode_e
Enumerator of step types.
Definition: ble_cs.h:343
RCL_CMD_BLE_CS_Role_e
Enumerator of role types.
Definition: ble_cs.h:332
uint8_t chSpacing
Definition: ble_cs.h:544
Index of the tx power table.
Definition: LRFLPF3.h:170
int8_t lastRssi
Definition: ble_cs.h:307
Definition: ble_cs.h:357
RCL_CMD_BLE_CS_ReportFormat_e
Enumerator of report format.
Definition: ble_cs.h:489
enum RCL_CMD_BLE_CS_Tfcs_e RCL_CmdBleCs_Tfcs
Definition: ble_cs.h:72
Definition: ble_cs.h:427
Definition: ble_cs.h:360
uint8_t antennaPacket
Definition: ble_cs.h:209
uint8_t reserved0
Definition: ble_cs.h:192
uint8_t packetAAQuality
Definition: ble_cs.h:809
Definition: ble_cs.h:333
enum RCL_CMD_BLE_CS_Role_e RCL_CmdBleCs_Role
Definition: ble_cs.h:69
int8_t packetRssi
Definition: ble_cs.h:795
uint8_t mode
Definition: ble_cs.h:836
Definition: ble_cs.h:675
uint8_t firstChannelIdx
Definition: ble_cs.h:613
uint8_t numAntennaPath
Definition: ble_cs.h:740
uint8_t nadm
Definition: ble_cs.h:841
RCL_CMD_BLE_CS_Tsw_e
Enumerator of antenna switch duration.
Definition: ble_cs.h:407
Definition: ble_cs.h:430
Definition: ble_cs.h:347
uint16_t connectionHandle
Definition: ble_cs.h:735
uint8_t nRxOk
Definition: ble_cs.h:301
uint8_t packetAntenna
Definition: ble_cs.h:813
enum RCL_CMD_BLE_CS_Tpm_e RCL_CmdBleCs_Tpm
Definition: ble_cs.h:73
uint16_t reserved4
Definition: ble_cs.h:214
uint8_t abortReason
Definition: ble_cs.h:722
uint8_t magnCoeff
Definition: ble_cs.h:604
uint16_t magnAvgdB
Definition: ble_cs.h:226
uint16_t antennaSequence
Definition: ble_cs.h:210
uint16_t reserved6
Definition: ble_cs.h:259
Definition: ble_cs.h:394
Definition: ble_cs.h:373
RCL_CmdBleCs_PrecalTable * precalTable
Definition: ble_cs.h:166
Definition: ble_cs.h:348
Definition: ble_cs.h:444
uint8_t phy
Definition: ble_cs.h:280
uint8_t reserved3
Definition: ble_cs.h:242
uint8_t antennaPermutationIndex
Definition: ble_cs.h:826
Definition: ble_cs.h:440
uint8_t dataLength
Definition: ble_cs.h:807
Definition: ble_cs.h:397
uint8_t nadm
Definition: ble_cs.h:810
RCL_CmdBleCs_PrecalCallback callback
Definition: ble_cs.h:539
#define RCL_BLE_CS_MAX_NUM_ANT_PATH
Definition: ble_cs.h:101
RCL_CmdBleCs_Stats * stats
Definition: ble_cs.h:168
uint8_t reserved0
Definition: ble_cs.h:236
uint8_t packetAntenna
Definition: ble_cs.h:844
int16_t foffComp
Definition: ble_cs.h:310
Definition: ble_cs.h:671
uint8_t dataLength
Definition: ble_cs.h:792
RCL_Command_TxPower txPower
Definition: ble_cs.h:159
#define RCL_BLE_CS_MAX_NUM_ANT
Definition: ble_cs.h:100
uint8_t numStepsReported
Definition: ble_cs.h:741
Definition: ble_cs.h:410
uint8_t toneExtension
Definition: ble_cs.h:239
BLE Channel Sounding Step Result.
Definition: ble_cs.h:234
Definition: ble_cs.h:466
Definition: ble_cs.h:413
uint16_t magnAvg
Definition: ble_cs.h:517
int16_t tAdjustA
Definition: ble_cs.h:200
Definition: ble_cs.h:455
RCL_CMD_BLE_CS_ToneExtensionSlot_e
Enumerator of tone extension slot.
Definition: ble_cs.h:477
uint8_t reserved1
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:715
uint16_t magnAvg
Definition: ble_cs.h:225
Definition: ble_cs.h:468
int8_t phaseStart
Definition: ble_cs.h:513
RCL_CMD_BLE_CS_PacketAntenna_e
Definition: ble_cs.h:661
int16_t lastFoff
Definition: ble_cs.h:308
enum RCL_CMD_BLE_CS_Nadm_e RCL_CmdBleCs_Nadm
Definition: ble_cs.h:84
uint8_t data[]
Definition: ble_cs.h:564
uint8_t nStepsDone
Definition: ble_cs.h:300
BLE Channel Sounding IQ Sample.
Definition: ble_cs.h:115
Definition: ble_cs.h:322
Definition: ble_cs.h:670
int16_t q
Definition: ble_cs.h:117
Definition: ble_cs.h:443
int16_t i
Definition: ble_cs.h:116
uint8_t channel
Definition: ble_cs.h:806
Definition: ble_cs.h:335
uint8_t gain
Definition: ble_cs.h:247
uint8_t procedureDoneStatus
Definition: ble_cs.h:737
uint16_t connectionHandle
Definition: ble_cs.h:714
uint8_t mode
Definition: ble_cs.h:822
Container format for mode-0 step results.
Definition: ble_cs.h:788
enum RCL_CMD_BLE_CS_ToneExtensionSlot_e RCL_CmdBleCs_ToneExtensionSlot
Definition: ble_cs.h:80
int16_t foffVal
Definition: ble_cs.h:164
BLE Channel Sounding S2R Sample type definition.
Definition: ble_cs.h:267
uint8_t nS2RDone
Definition: ble_cs.h:303
uint16_t magnMax
Definition: ble_cs.h:516
RCL_CMD_BLE_CS_ToneQuality_e
Enumerator of tone quality.
Definition: ble_cs.h:464
int16_t i
Definition: ble_cs.h:511
BLE Channel Sounding DC Sample.
Definition: ble_cs.h:510
Definition: ble_cs.h:456
uint32_t timestamp
Definition: ble_cs.h:540
#define RCL_BLE_CS_NUM_CORR
Definition: ble_cs.h:103
uint8_t dataLength
Definition: ble_cs.h:775
Definition: ble_cs.h:321
uint8_t channel
Definition: ble_cs.h:554
uint8_t dataLength
Definition: ble_cs.h:763
uint8_t payloadLen
Definition: ble_cs.h:241
uint32_t aaRx
Definition: ble_cs.h:207
enum RCL_CMD_BLE_CS_Tsw_e RCL_CmdBleCs_Tsw
Definition: ble_cs.h:75
Definition: ble_cs.h:372
Container format for a batch of step results in the subevent (second+ segment)
Definition: ble_cs.h:733
uint8_t antennaPermIdx
Definition: ble_cs.h:257
RCL_Command common
Definition: ble_cs.h:126
RCL_CMD_BLE_CS_AntennaConfig_e
Enumerator of antenna configuration.
Definition: ble_cs.h:422
Definition: ble_cs.h:345
uint16_t magnMin
Definition: ble_cs.h:223
DC precalibration command.
Definition: ble_cs.h:579
RCL_Command common
Definition: ble_cs.h:580
Definition: ble_cs.h:399
Definition: ble_cs.h:424
Definition: ble_cs.h:334
uint32_t aaTx
Definition: ble_cs.h:206
uint16_t tPllRx
Definition: ble_cs.h:202
Definition: ble_cs.h:409
uint8_t antennaPacket
Definition: ble_cs.h:258
int16_t tAntennaB
Definition: ble_cs.h:213
Definition: ble_cs.h:467
uint16_t rtt
Definition: ble_cs.h:249
uint8_t idx
Definition: ble_cs.h:279
uint8_t reserved3
Definition: ble_cs.h:198
uint8_t packetAAQuality
Definition: ble_cs.h:794
int16_t q
Definition: ble_cs.h:512
uint8_t procedureDoneStatus
Definition: ble_cs.h:720
uint8_t antennaPermutationIndex
Definition: ble_cs.h:846
RCL_CMD_BLE_CS_PacketResult_e
Enumerator of packet status options.
Definition: ble_cs.h:356
Definition: ble_cs.h:323
int8_t phaseStop
Definition: ble_cs.h:514
Definition: ble_cs.h:382
RCL_CMD_BLE_CS_Nadm_e
Definition: ble_cs.h:668
uint8_t subeventCode
Definition: ble_cs.h:713
uint8_t channel
Definition: ble_cs.h:791
Definition: ble_cs.h:669
uint8_t lowThreshold
Definition: ble_cs.h:543
uint32_t payload1
Definition: ble_cs.h:284
uint8_t numStepsReported
Definition: ble_cs.h:724
int8_t packetRssi
Definition: ble_cs.h:778
int16_t tAdjustB
Definition: ble_cs.h:201
Container format for a batch of step results in the subevent (first segment)
Definition: ble_cs.h:712
uint8_t nMode0
Definition: ble_cs.h:304
uint32_t aaTx
Definition: ble_cs.h:701
uint32_t aaRx
Definition: ble_cs.h:702
Container format for mode-1 step results.
Definition: ble_cs.h:803
int16_t foffErr
Definition: ble_cs.h:199
Definition: ble_cs.h:344
int16_t packetToF
Definition: ble_cs.h:812
uint8_t channel
Definition: ble_cs.h:281
uint8_t abortReason
Definition: ble_cs.h:739
uint8_t dataLength
Definition: ble_cs.h:824
uint8_t payloadLen
Definition: ble_cs.h:282
uint8_t channel
Definition: ble_cs.h:823
Definition: ble_cs.h:383
BLE Channel Sounding Statistics.
Definition: ble_cs.h:297
uint16_t rxGain
Definition: ble_cs.h:309
uint8_t highThreshold
Definition: ble_cs.h:542
Definition: ble_cs.h:673
Definition: ble_cs.h:385
Definition: ble_cs.h:395
uint16_t magnMax
Definition: ble_cs.h:224
Container format for tones.
Definition: ble_cs.h:749
enum RCL_CMD_BLE_CS_Payload_e RCL_CmdBleCs_Payload
Definition: ble_cs.h:77
uint32_t word
Definition: ble_cs.h:268
uint8_t channelIdx
Definition: ble_cs.h:235
List_List stepBuffers
Definition: ble_cs.h:169
Definition: ble_cs.h:408
Definition: ble_cs.h:442
Channel entry for PCT compensation for antenna/front-end delay.
Definition: ble_cs.h:602
RCL_CMD_BLE_CS_Phy_e
Enumerator of phy types.
Definition: ble_cs.h:320
int8_t packetRssi
Definition: ble_cs.h:811
List_List resultBuffers
Definition: ble_cs.h:171
Definition: ble_cs.h:674
uint8_t subeventDoneStatus
Definition: ble_cs.h:738
Definition: ble_cs.h:445
Definition: ble_cs.h:441
Definition: ble_cs.h:412
uint8_t pktResult
Definition: ble_cs.h:245
Container format for mode-0 step results.
Definition: ble_cs.h:771
Definition: ble_cs.h:384
enum RCL_CMD_BLE_CS_StepMode_e RCL_CmdBleCs_StepMode
Definition: ble_cs.h:70
uint8_t mode
Definition: ble_cs.h:553
Definition: ble_cs.h:663
RCL_CmdBleCs_IQSample iq
Definition: ble_cs.h:270
Definition: ble_cs.h:398
uint8_t mode
Definition: ble_cs.h:805
uint8_t reserved1
Definition: ble_cs.h:238
uint8_t nMode0Ok
Definition: ble_cs.h:305
uint8_t nResultsRead
Definition: ble_cs.h:299
enum RCL_CMD_BLE_CS_RxGain_e RCL_CmdBleCs_RxGain
Definition: ble_cs.h:78
Definition: ble_cs.h:324
const RCL_AntennaConfig_t antennaConfig[RCL_CmdBleCs_AntennaConfig_Length]
Definition: ble_cs.c:186
uint8_t reserved0
Definition: ble_cs.h:306
List_List stepBuffersDone
Definition: ble_cs.h:170
Definition: ble_cs.h:676
List_List s2rBuffersDone
Definition: ble_cs.h:174
uint8_t phaseDelay
Definition: ble_cs.h:603
uint8_t mode
Definition: ble_cs.h:773
RCL_CmdBleCs_IQSample dc
Definition: ble_cs.h:251
enum RCL_CMD_BLE_CS_Tip_e RCL_CmdBleCs_Tip
Definition: ble_cs.h:74
uint8_t antennaPermIdx
Definition: ble_cs.h:208
DC precalibration entry.
Definition: ble_cs.h:525
uint8_t channel
Definition: ble_cs.h:526
Definition: ble_cs.h:469
Definition: ble_cs.h:491
RCL_CmdBleCs_DCSample high
Definition: ble_cs.h:529
uint16_t reserved4
Definition: ble_cs.h:243
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:503
uint8_t reserved2
Definition: ble_cs.h:240
RCL_CMD_BLE_CS_Policy_e
Enumerator of policies.
Definition: ble_cs.h:453
int16_t temperature
Definition: ble_cs.h:541
List_List s2rBuffers
Definition: ble_cs.h:173
Definition: ble_cs.h:465
BLE Channel Sounding Step.
Definition: ble_cs.h:190
Definition: ble_cs.h:672
RCL_CmdBleCs_StepResult_Internal * results
Definition: ble_cs.h:167
Definition: ble_cs.h:490
uint8_t packetAAQuality
Definition: ble_cs.h:840
RCL_CmdBleCs_DCSample low
Definition: ble_cs.h:530
uint8_t packetAAQuality
Definition: ble_cs.h:777
int8_t packetRssi
Definition: ble_cs.h:842
List_List resultBuffersDone
Definition: ble_cs.h:172
DC precalibration table.
Definition: ble_cs.h:538
uint8_t toneExtension
Definition: ble_cs.h:195
uint32_t payload2
Definition: ble_cs.h:285
Definition: ble_cs.h:346
uint8_t subeventCode
Definition: ble_cs.h:734
Definition: ble_cs.h:425
uint16_t rxGainVal
Definition: ble_cs.h:163
uint8_t mode
Definition: ble_cs.h:193
enum RCL_CMD_BLE_CS_AntennaConfig_e RCL_CmdBleCs_AntennaConfig
Definition: ble_cs.h:76
uint16_t reserved
Definition: ble_cs.h:288
uint16_t iqLength
Definition: ble_cs.h:287
Definition: ble_cs.h:411
Definition: ble_cs.h:428
Definition: ble_cs.h:431
uint8_t channel
Definition: ble_cs.h:774
int16_t foffMeasured
Definition: ble_cs.h:244