TI BLE5-Stack API Documentation  2.01.03.00
rtls_srv_api.h
Go to the documentation of this file.
1 /******************************************************************************
2 
3  @file rtls_srv_api.h
4 
5  @brief This file implements the RTLS Services APIs
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 RTLSSRVAPI_H
26 #define RTLSSRVAPI_H
27 
28 #ifdef __cplusplus
29 extern "C"
30 {
31 #endif
32 
33 /*-------------------------------------------------------------------
34  * INCLUDES
35  */
36 
37 #include "bcomdef.h"
38 #include <ti/drivers/PIN.h>
39 #include "ble_user_config.h"
40 #include "ll.h"
41 
42 /*-------------------------------------------------------------------
43  * CONSTANTS
44  */
45 
56 #define RTLSSRV_CTE_SAMPLING_NOT_INIT LL_CTE_SAMPLING_NOT_INIT
58 #define RTLSSRV_CTE_SAMPLING_ENABLE LL_CTE_SAMPLING_ENABLE
59 #define RTLSSRV_CTE_SAMPLING_DISABLE LL_CTE_SAMPLING_DISABLE
60 
61 #define RTLSSRV_CTE_SAMPLE_SLOT_1US LL_CTE_SAMPLE_SLOT_1US
63 #define RTLSSRV_CTE_SAMPLE_SLOT_2US LL_CTE_SAMPLE_SLOT_2US
64 
65 #define RTLSSRV_CTE_SAMPLE_RATE_1US_AOD_TX LL_CTE_SAMPLE_RATE_1US_AOD_TX
67 #define RTLSSRV_CTE_SAMPLE_RATE_1US_AOD_RX LL_CTE_SAMPLE_RATE_1US_AOD_RX
68 #define RTLSSRV_CTE_SAMPLE_RATE_1US_AOA_RX LL_CTE_SAMPLE_RATE_1US_AOA_RX
69 
70 #define RTLSSRV_CTE_TYPE_AOA LL_CTE_TYPE_AOA
72 
73 #define RTLSSRV_CTE_SAMPLE_RATE_1MHZ CTE_SAMPLING_CONFIG_1MHZ
75 #define RTLSSRV_CTE_SAMPLE_RATE_2MHZ CTE_SAMPLING_CONFIG_2MHZ
76 #define RTLSSRV_CTE_SAMPLE_RATE_3MHZ CTE_SAMPLING_CONFIG_3MHZ
77 #define RTLSSRV_CTE_SAMPLE_RATE_4MHZ CTE_SAMPLING_CONFIG_4MHZ
78 
79 #define RTLSSRV_CTE_SAMPLE_SIZE_8BITS LL_CTE_SAMPLE_SIZE_8BITS
81 #define RTLSSRV_CTE_SAMPLE_SIZE_16BITS LL_CTE_SAMPLE_SIZE_16BITS
82 
83 #define RTLSSRV_CTE_SAMPLE_CONTROL_RF_DEFAULT_FILTERING CTE_SAMPLING_CONTROL_DEFAULT_FILTERING
85 #define RTLSSRV_CTE_SAMPLE_CONTROL_RF_RAW_NO_FILTERING CTE_SAMPLING_CONTROL_RF_RAW_NO_FILTERING
86 
102 #define RTLSSRV_CONNECTION_CTE_IQ_REPORT_EVT 1
103 
108 #define RTLSSRV_ANTENNA_INFORMATION_EVT 2
109 
113 #define RTLSSRV_CTE_REQUEST_FAILED_EVT 3
114 
118 #define RTLSSRV_ERROR_EVT 4
119 
132 #define RTLSSRV_CONN_HANDLE_INVALID 0x02
133 #define RTLSSRV_OUT_OF_MEMORY 0x07
134 #define RTLSSRV_COMMAND_DISALLOWED 0x0C
135 #define RTLSSRV_FEATURE_NOT_SUPPORTED 0x11
136 #define RTLSSRV_REMOTE_FEATURE_NOT_SUPPORTED 0x1A
137 
138 
149 #define RTLSSRV_SET_CONNECTION_CTE_RECEIVE_PARAMS 0x2054
150 #define RTLSSRV_SET_CONNECTION_CTE_TRANSMIT_PARAMS 0x2055
151 #define RTLSSRV_SET_CONNECTION_CTE_REQUEST_ENABLE 0x2056
152 #define RTLSSRV_SET_CONNECTION_CTE_RESPONSE_ENABLE 0x2057
153 
154 
156 /*-------------------------------------------------------------------
157  * TYPEDEFS
158  */
159 
160 
166 typedef struct
168 {
169  uint16_t connHandle;
170  uint8_t phy;
171  uint8_t dataChIndex;
172  uint16_t rssi;
173  uint8_t rssiAntenna;
174  uint8_t cteType;
175  uint8_t slotDuration;
176  uint8_t status;
177  uint16_t connEvent;
178  uint16_t sampleCount;
179  uint8_t sampleRate;
180  uint8_t sampleSize;
181  uint8_t sampleCtrl;
182  uint8_t numAnt;
183  int8_t *iqSamples;
185 
187 typedef struct
188 {
189  uint8_t sampleRates;
192  uint8_t maxCteLen;
194 
196 typedef struct
197 {
198  uint8_t status;
199  uint16_t connHandle;
201 
203 typedef struct
204 {
205  uint16_t connHandle;
206  uint16_t errSrc;
207  uint16_t errCause;
209 
220 typedef struct
222 {
223  uint8_t evtType;
224  uint16_t evtSize;
225  uint8_t *evtData;
226 } rtlsSrv_evt_t;
227 
237 typedef void (*pfnAppEventHandlerCB_t)(rtlsSrv_evt_t *pEvt);
238 
242 /*-------------------------------------------------------------------
243  * API's
244  */
245 
253 extern bStatus_t RTLSSrv_init(uint8_t numOfRTLSConns);
254 
263 
282 extern bStatus_t RTLSSrv_setConnCteReceiveParams(uint16_t connHandle,
283  uint8_t samplingEnable,
284  uint8_t slotDurations,
285  uint8_t numAnt,
286  uint8_t antArray[]);
287 
301 extern bStatus_t RTLSSrv_setConnCteTransmitParams(uint16_t connHandle,
302  uint8_t types,
303  uint8_t length,
304  uint8_t antArray[]);
305 
318 extern bStatus_t RTLSSrv_setConnCteRequestEnableCmd(uint16_t connHandle,
319  uint8_t enable,
320  uint16_t interval,
321  uint8_t length,
322  uint8_t type);
323 
332 extern bStatus_t RTLSSrv_setConnCteResponseEnableCmd(uint16_t connHandle,
333  uint8_t enable);
334 
341 
359 extern bStatus_t RTLSSrv_setCteSampleAccuracy(uint16_t connHandle,
360  uint8_t sampleRate1M,
361  uint8_t sampleSize1M,
362  uint8_t sampleRate2M,
363  uint8_t sampleSize2M,
364  uint8_t sampleCtrl);
373 extern PIN_Handle RTLSSrv_initAntArray(uint8_t mainAntenna);
374 
387 extern bStatus_t RTLSSrv_processHciEvent(uint16_t hciEvt, uint16_t hciEvtSz, uint8_t *pEvtData);
388 
389 #ifdef __cplusplus
390 }
391 #endif
392 
393 #endif /* RTLSSRVAPI_H */
394 
uint16_t sampleCount
number of samples
Definition: rtls_srv_api.h:178
uint8_t slotDuration
sampling slot 1us or 2us
Definition: rtls_srv_api.h:175
LE CTE Antenna Information Event RTLSSRV_ANTENNA_INFORMATION_EVT.
Definition: rtls_srv_api.h:187
uint16_t errCause
subEvt RTLS Services error codes
Definition: rtls_srv_api.h:207
uint8_t maxCteLen
maximum cte length supported by the controller
Definition: rtls_srv_api.h:192
uint8_t cteType
cte type
Definition: rtls_srv_api.h:174
uint8_t status
packet status (success or CRC error)
Definition: rtls_srv_api.h:176
uint8_t numAnt
number of antennas we are using
Definition: rtls_srv_api.h:182
uint8_t phy
current phy
Definition: rtls_srv_api.h:170
uint8_t maxSwitchPatternLen
maximum size of switch pattern supported by the controller
Definition: rtls_srv_api.h:191
bStatus_t RTLSSrv_setConnCteRequestEnableCmd(uint16_t connHandle, uint8_t enable, uint16_t interval, uint8_t length, uint8_t type)
uint16_t connHandle
connection handle
Definition: rtls_srv_api.h:199
uint16_t evtSize
Size.
Definition: rtls_srv_api.h:224
bStatus_t RTLSSrv_setCteSampleAccuracy(uint16_t connHandle, uint8_t sampleRate1M, uint8_t sampleSize1M, uint8_t sampleRate2M, uint8_t sampleSize2M, uint8_t sampleCtrl)
uint16_t connEvent
connection event
Definition: rtls_srv_api.h:177
bStatus_t RTLSSrv_register(pfnAppEventHandlerCB_t pCB)
uint16_t connHandle
connection handle
Definition: rtls_srv_api.h:205
uint8_t sampleCtrl
default filtering or RAW_RF
Definition: rtls_srv_api.h:181
PIN_Handle RTLSSrv_initAntArray(uint8_t mainAntenna)
bStatus_t RTLSSrv_readAntennaInformationCmd(void)
uint16_t connHandle
connection handle
Definition: rtls_srv_api.h:169
bStatus_t RTLSSrv_processHciEvent(uint16_t hciEvt, uint16_t hciEvtSz, uint8_t *pEvtData)
RTLS Services error structure RTLSSRV_ERROR_EVT.
Definition: rtls_srv_api.h:203
void(* pfnAppEventHandlerCB_t)(rtlsSrv_evt_t *pEvt)
Definition: rtls_srv_api.h:237
uint8_t sampleRates
sample rates supported by the controller
Definition: rtls_srv_api.h:189
Type definitions and macros for BLE stack.
uint16_t rssi
current rssi
Definition: rtls_srv_api.h:172
uint8_t maxNumOfAntennas
maximum number of antennas supported by the controller
Definition: rtls_srv_api.h:190
bStatus_t RTLSSrv_setConnCteTransmitParams(uint16_t connHandle, uint8_t types, uint8_t length, uint8_t antArray[])
CTE Connection IQ Report Event RTLSSRV_CONNECTION_CTE_IQ_REPORT_EVT.
Definition: rtls_srv_api.h:167
LE CTE Request Failed Event RTLSSRV_CTE_REQUEST_FAILED_EVT.
Definition: rtls_srv_api.h:196
RTLS Services passes messages in this format.
Definition: rtls_srv_api.h:221
uint8_t status
status
Definition: rtls_srv_api.h:198
bStatus_t RTLSSrv_init(uint8_t numOfRTLSConns)
Status_t bStatus_t
BLE Generic Status return.
Definition: bcomdef.h:246
uint8_t dataChIndex
index of data channel
Definition: rtls_srv_api.h:171
bStatus_t RTLSSrv_setConnCteResponseEnableCmd(uint16_t connHandle, uint8_t enable)
uint16_t errSrc
the command that caused the error
Definition: rtls_srv_api.h:206
uint8_t sampleRate
sample rate of frontend: 1Mhz, 2Mhz, 3Mhz, 4Mhz
Definition: rtls_srv_api.h:179
uint8_t sampleSize
sample size: 8 or 16 bit samples
Definition: rtls_srv_api.h:180
int8_t * iqSamples
list of IQ samples, format is [i,q,i,q,i,q....]
Definition: rtls_srv_api.h:183
uint8_t evtType
Type.
Definition: rtls_srv_api.h:223
uint8_t rssiAntenna
antenna ID
Definition: rtls_srv_api.h:173
bStatus_t RTLSSrv_setConnCteReceiveParams(uint16_t connHandle, uint8_t samplingEnable, uint8_t slotDurations, uint8_t numAnt, uint8_t antArray[])
uint8_t * evtData
Pointer to Event Data.
Definition: rtls_srv_api.h:225
© Copyright 1995-2020, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale