TI BLE5-Stack API Documentation  2.01.01.00
AOA.h
Go to the documentation of this file.
1 /******************************************************************************
2 
3  @file AOA.h
4 
5  @brief This file contains typedefs and API functions of AOA.c
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 
25 #ifndef AOA_H_
26 #define AOA_H_
27 
28 #ifdef __cplusplus
29 extern "C"
30 {
31 #endif
32 
33 /*******************************************************************************
34  * INCLUDES
35  */
36 
37 #include <stdint.h>
38 #include <driverlib/ioc.h>
39 #include "ant_array2_config_boostxl_rev1v1.h"
40 
41 /*********************************************************************
42  * CONSTANTS
43  */
44 
46 #define AOA_RES_MAX_SIZE 512
47 #define AOA_RES_MAX_CTE_TIME 20
48 #define AOA_NUM_ANTENNAS 3
49 
50 /*********************************************************************
51  * MACROS
52  */
53 
55 #define AOA_PIN(x) (1 << (x&0xff))
56 
57 // Antenna configuration for BOOSTXL-AOA
58 #define ANT_ARRAY (27)
59 #define ANT1 (28)
60 #define ANT2 (29)
61 #define ANT3 (30)
62 
63 /*********************************************************************
64  * TYPEDEFS
65  */
66 
71 typedef enum
73 {
77 } AoA_Role_t;
78 
80 typedef struct
81 {
82  int16_t *pairAngle;
83  int8_t rssi;
84  uint8_t ch;
86 
88 typedef struct
89 {
90  int16_t q;
91  int16_t i;
95 typedef enum
97 {
98  SAMPLES_NOT_READY,
99  SAMPLES_NOT_VALID,
100  SAMPLES_READY
102 
103 /*********************************************************************
104  * EXTERNAL VARIABLES
105  */
106 
107 #ifdef RTLS_PASSIVE
108 
114 void AOA_getPairAngles(AoA_AntennaConfig_t *antConfig, AoA_AntennaResult_t *antResult);
115 #elif RTLS_MASTER
116 /***
117 * @brief Extract results and estimates an angle between two antennas
118 *
119 * @param antConfig - antenna configuration provided from antenna files
120 * @param antResult - struct to write results into
121 * @param numIqSamples - number of I and Q samples
122 * @param sampleRate - sample rate that was used to capture (1,2,3 or 4 Mhz)
123 * @param sampleSize - sample size 1 = 8 bit, 2 = 16 bit
124 * @param numAnt - number of antennas in capture array
125 * @param pI - pointer to I samples
126 * @param qQ - pointer to Q samples
127 *
128 * @return none
129 */
130 void AOA_getPairAngles(AoA_AntennaConfig_t *antConfig, AoA_AntennaResult_t *antResult, uint16_t numIqSamples, uint8_t sampleRate, uint8_t sampleSize, uint8_t slotDuration, uint8_t numAnt, int8_t *pI, int8_t *pQ);
131 #endif
132 
139 void AOA_init(uint8_t startAntenna);
140 
152 void AOA_cteCapEnable(uint8_t cteTime, uint8_t cteScanOvs, uint8_t cteOffset);
153 
167 uint16_t AOA_calcNumOfCteSamples(uint8_t cteTime, uint8_t cteScanOvs, uint8_t cteOffset);
168 
179 void AOA_postProcess(int8_t rssi, uint8_t channel, AoA_IQSample_t *samplesBuff);
180 
181 #ifdef RTLS_PASSIVE
182 
187 AoA_IQSample_t *AOA_getRawSamples(void);
188 #endif
189 
194 uint8_t AOA_getActiveAnt(void);
195 
201 AoA_IQSampleState_t AOA_getSampleState(void);
202 /*********************************************************************
203 *********************************************************************/
204 
205 #ifdef __cplusplus
206 }
207 #endif
208 
209 #endif /* AOA_H_ */
210 
uint8_t ch
Channel.
Definition: AOA.h:84
uint16_t AOA_calcNumOfCteSamples(uint8_t cteTime, uint8_t cteScanOvs, uint8_t cteOffset)
This function calculate the number of IQ samples based on the cte parameters from the CTEInfo header ...
AoA_IQSampleState_t
IQ Sample state - relevant for Passive.
Definition: AOA.h:96
void AOA_cteCapEnable(uint8_t cteTime, uint8_t cteScanOvs, uint8_t cteOffset)
This function enables the CTE capture in the rf core.
Transmitter Role.
Definition: AOA.h:74
int16_t q
Q - Quadrature.
Definition: AOA.h:90
Receiver Role.
Definition: AOA.h:75
Passive Role.
Definition: AOA.h:76
int16_t i
I- In-phase.
Definition: AOA.h:91
void AOA_init(uint8_t startAntenna)
Initialize AoA for the defined role.
IQ Sample structure.
Definition: AOA.h:88
AoA result per antenna array.
Definition: AOA.h:80
uint8_t AOA_getActiveAnt(void)
Returns active antenna id.
void AOA_postProcess(int8_t rssi, uint8_t channel, AoA_IQSample_t *samplesBuff)
This function will update the final result report with rssi and channel For RTLS Passive it will also...
int8_t rssi
Last Rx rssi.
Definition: AOA.h:83
AoA_Role_t
AoA Device Role.
Definition: AOA.h:72
int16_t * pairAngle
Antenna pair angle.
Definition: AOA.h:82
AoA_IQSampleState_t AOA_getSampleState(void)
Returns active antenna id.
© Copyright 1995-2019, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale