TI BLE5-Stack API Documentation  2.02.04.00
rtls_ctrl_aoa.h
1 /******************************************************************************
2 
3  @file rtls_ctrl_aoa.h
4 
5  @brief This file contains the functions and structures specific to AoA
6  Group: WCS, BTS
7  $Target Device: DEVICES $
8 
9  ******************************************************************************
10  $License: BSD3 2018 $
11  ******************************************************************************
12  $Release Name: PACKAGE NAME $
13  $Release Date: PACKAGE RELEASE DATE $
14  *****************************************************************************/
15 
26 #ifndef RTLS_CTRL_AOA_H_
27 #define RTLS_CTRL_AOA_H_
28 
29 #ifdef __cplusplus
30 extern "C"
31 {
32 #endif
33 
34 /*********************************************************************
35  * INCLUDES
36  */
37 
38 #include "rtls_aoa_api.h"
39 #include "rtls_ctrl_api.h"
40 #include "rtls_ctrl.h"
41 
42 /*********************************************************************
43 * EXTERNAL VARIABLES
44 */
45 
46 /*********************************************************************
47  * CONSTANTS
48  */
49 
50 #define MAX_SAMPLES_SINGLE_CHUNK 32
51 #define SYNC_HANDLE_MASK 0x1000
52 #define REVERSE_SYNC_HANDLE 0x0FFF
53 /*********************************************************************
54  * MACROS
55  */
56 
57 /*********************************************************************
58  * TYPEDEFS
59  */
60 
65 typedef enum
67 {
71 } AoA_Role_t;
72 
74 typedef struct
75 {
76  int16_t i;
77  int16_t q;
79 
81 typedef struct
82 {
83  int8_t i;
84  int8_t q;
86 
89 typedef enum
91 {
92  AOA_MODE_RAW
94 
95 // AoA Parameters - Received from RTLS Node Manager
97 typedef struct __attribute__((packed))
98 {
99  AoA_Role_t aoaRole;
100  aoaResultMode_e resultMode;
101  rtlsAoaConfigReq_t config;
102 } rtlsAoaParams_t;
103 
105 typedef struct __attribute__((packed))
106 {
107  AoA_Role_t aoaRole;
108  aoaResultMode_e resultMode;
109  rtlsCLAoaEnableReq_t clParams;
110 } rtlsCLAoaParams_t;
111 
113 typedef struct __attribute__((packed))
114 {
115  uint16_t handle;
116  int8_t rssi;
117  uint8_t antenna;
118  uint8_t channel;
119  uint16_t offset;
120  uint16_t samplesLength;
121  AoA_IQSample_Ext_t samples[];
122 } rtlsAoaResultRaw_t;
123 
124 // AoA post process event
125 typedef struct
126 {
127  uint16_t handle;
128  int8_t rssi;
129  uint8_t channel;
130  uint16_t numIqSamples;
131  uint8_t sampleRate;
132  uint8_t sampleSize;
133  uint8_t sampleCtrl;
134  uint8_t slotDuration;
135  uint8_t numAnt;
136  int8_t *pIQ;
137 } rtlsAoaIqEvt_t;
138 
139 typedef struct
140 {
141  AoA_Role_t aoaRole;
142  aoaResultMode_e resultMode;
143  uint8_t sampleCtrl;
144 } rtlsAoa_t;
145 
146 // A single AoA sample
147 typedef struct
148 {
149  int16_t angle;
150  int16_t currentangle;
151  int8_t rssi;
152  uint8_t channel;
153  uint8_t antenna;
154 } AoA_Sample_t;
155 
156 // Moving average structure
157 typedef struct
158 {
159  int16_t array[6];
160  uint8_t idx;
161  uint8_t numEntries;
162  uint8_t currentAntennaArray;
163  int16_t currentAoA;
164  int8_t currentRssi;
165  uint8_t currentCh;
166  int32_t AoAsum;
167  int16_t AoA;
168 } AoA_movingAverage_t;
169 
170 typedef struct
171 {
172  uint8_t sampleCtrl;
173  uint8_t resultMode;
174 } AoA_controlBlock_t;
175 
178 /*********************************************************************
179  * API FUNCTIONS
180  */
181 
182 
190 void RTLSCtrl_postProcessAoa(rtlsAoaIqEvt_t *pEvt);
191 
205 rtlsStatus_e RTLSCtrl_initAoa(uint8_t maxConnections, uint8_t sampleCtrl, uint8_t numAnt, uint8_t *pAntPattern, aoaResultMode_e resultMode);
220 rtlsStatus_e RTLSCtrl_clInitAoa(aoaResultMode_e resultMode, uint8_t sampleCtrl, uint8_t numAnt, uint8_t *pAntPattern, uint16_t syncHandle);
221 
222 /*********************************************************************
223 *********************************************************************/
224 
225 #ifdef __cplusplus
226 }
227 #endif
228 
229 #endif /* RTLS_CTRL_AOA_H_ */
230 
struct __attribute__((packed))
List of AoA parameters.
Definition: rtls_ctrl_aoa.h:97
int8_t i
I - In-phase.
Definition: rtls_ctrl_aoa.h:83
Transmitter Role.
Definition: rtls_ctrl_aoa.h:68
aoaResultMode_e
Enumeration for AOA Results modes.
Definition: rtls_ctrl_aoa.h:90
RTLS Control module interface.
32 bit IQ Sample structure
Definition: rtls_ctrl_aoa.h:74
int8_t q
Q - Quadrature.
Definition: rtls_ctrl_aoa.h:84
IQ Sample structure.
Definition: rtls_ctrl_aoa.h:81
int16_t i
I - In-phase.
Definition: rtls_ctrl_aoa.h:76
AoA_Role_t
AoA Device Role.
Definition: rtls_ctrl_aoa.h:66
Passive Role.
Definition: rtls_ctrl_aoa.h:70
Receiver Role.
Definition: rtls_ctrl_aoa.h:69
rtlsStatus_e
Enumeration for RTLS Status.
Definition: rtls_ctrl_api.h:120
int16_t q
Q - Quadrature.
Definition: rtls_ctrl_aoa.h:77
This file contains the RTLS Control API's.
© Copyright 1995-2022, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale