TI BLE5-Stack API Documentation  1.00.01.04
uble.h
Go to the documentation of this file.
1 /******************************************************************************
2 
3  Group: WCS, BTS
4  $Target Device: DEVICES $
5 
6  ******************************************************************************
7  $License: TISD 2009 $
8  ******************************************************************************
9  $Release Name: PACKAGE NAME $
10  $Release Date: PACKAGE RELEASE DATE $
11  *****************************************************************************/
12 
28 #ifndef UBLE_H
29 #define UBLE_H
30 
31 #ifdef __cplusplus
32 extern "C"
33 {
34 #endif
35 
36 /*-------------------------------------------------------------------
37  * INCLUDES
38  */
39 #include <ti/sysbios/knl/Queue.h>
40 #include <urfc.h>
41 
42 /*-------------------------------------------------------------------
43  * DEFINITIONS & CONSTANTS
44  */
45 
54  #define UB_PARAM_COMMON_START 0
56 
67  #define UB_PARAM_RFPRIORITY (UB_PARAM_COMMON_START+0)
68 
76  #define UB_PARAM_TXPOWER (UB_PARAM_COMMON_START+1)
77 
79  #define UB_PARAM_COMMON_END UB_PARAM_TXPOWER
80 #if defined(FEATURE_ADVERTISER)
81  #define UB_PARAM_ADV_CMN_START (UB_PARAM_COMMON_END+1)
82 
91  #define UB_PARAM_ADVINTERVAL (UB_PARAM_ADV_CMN_START+0)
92 
99  #define UB_PARAM_ADVCHANMAP (UB_PARAM_ADV_CMN_START+1)
100 
107  #define UB_PARAM_ADVTYPE (UB_PARAM_ADV_CMN_START+2)
108 
119  #define UB_PARAM_TIMETOADV (UB_PARAM_ADV_CMN_START+3)
120 
127  #define UB_PARAM_ADVDATA (UB_PARAM_ADV_CMN_START+4)
128 
130  #define UB_PARAM_ADV_CMN_END UB_PARAM_ADVDATA
131  #if defined(FEATURE_SCAN_RESPONSE)
132  #define UB_PARAM_ADV_SR_START (UB_PARAM_ADV_CMN_END+1)
133 
142  #define UB_PARAM_SCANRSPDATA (UB_PARAM_ADV_SR_START+0)
143 
152  #define UB_PARAM_ADVFLTPOLICY (UB_PARAM_ADV_SR_START+1)
153 
154  #define UB_PARAM_ADV_SR_END UB_PARAM_ADVFLTPOLICY
155  #else /* FEATURE_SCAN_RESPONSE */
156  #define UB_PARAM_ADV_SR_END UB_PARAM_ADV_CMN_END
157  #endif /* FEATURE_SCAN_RESPONSE */
158 #else /* FEATURE_ADVERTISER */
159  #define UB_PARAM_ADV_SR_END UB_PARAM_COMMON_END
160 #endif /* FEATURE_ADVERTISER */
161 #if defined(FEATURE_SCANNER)
162  #define UB_PARAM_SCAN_START (UB_PARAM_ADV_SR_END+1)
163 
168  #define UB_PARAM_SCANINTERVAL (UB_PARAM_SCAN_START+0)
169 
174  #define UB_PARAM_SCANWINDOW (UB_PARAM_SCAN_START+1)
175 
182  #define UB_PARAM_SCANCHANMAP (UB_PARAM_SCAN_START+2)
183 
190  #define UB_PARAM_SCANTYPE (UB_PARAM_SCAN_START+3)
191 
198  #define UB_PARAM_FLTDUPLICATE (UB_PARAM_SCAN_START+4)
199 
206  #define UB_PARAM_SCANFLTPOLICY (UB_PARAM_SCAN_START+5)
207  #define UB_PARAM_SCAN_END UB_PARAM_SCANFLTPOLICY
209 #else /*FEATURE_SCANNER */
210  #define UB_PARAM_SCAN_END UB_PARAM_ADV_SR_END
211 #endif /* FEATURE_SCANNER */
212  #define UB_NUM_PARAM (UB_PARAM_SCAN_END+1)
213 
219 #define RF_PRI_NORMAL ((uint8) RF_PriorityNormal)
220 #define RF_PRI_HIGH ((uint8) RF_PriorityHigh)
221 #define RF_PRI_HIGHEST ((uint8) RF_PriorityHighest)
222 
227 #define RF_TIME_RELAXED 0
228 #define RF_TIME_CRITICAL 1
229 
232 #define UB_TX_POWER_INVALID 0xFFFF
233 
237 #define UB_ADDRTYPE_PUBLIC 0
238 #define UB_ADDRTYPE_STATIC 1
239 #define UB_ADDRTYPE_NONRESOLVABLE 2
240 #define UB_ADDRTYPE_RESOLVABLE 3
241 #define UB_ADDRTYPE_BD 4
242 
247 #define UB_ADVTYPE_ADV_NC 5
248 #define UB_ADVTYPE_ADV_SCAN 6
249 
255 #define UB_ADV_CHAN_37 0x01
256 #define UB_ADV_CHAN_38 0x02
257 #define UB_ADV_CHAN_39 0x04
258 #define UB_ADV_CHAN_ALL (UB_ADV_CHAN_37 | UB_ADV_CHAN_38 | UB_ADV_CHAN_39)
259 
261 /* Min/Max for parameters */
262 #define UB_MIN_ADV_INTERVAL 160
263 #define UB_MAX_ADV_INTERVAL 16384
264 #define UB_MIN_CHANNEL_MAP UB_ADV_CHAN_37
265 #define UB_MAX_CHANNEL_MAP UB_ADV_CHAN_ALL
266 #define UB_MIN_TX_POWER TX_POWER_MINUS_21_DBM
267 #define UB_MAX_TX_POWER TX_POWER_5_DBM
268 
269 /* Default Parameter Values */
270 #define UB_PARAM_DFLT_RFPRIORITY RF_PRI_NORMAL
271 #define UB_PARAM_DFLT_RFTIMECRIT RF_TIME_RELAXED
272 #define UB_PARAM_DFLT_TXPOWER TX_POWER_0_DBM
273 #define UB_PARAM_DFLT_ADVINTERVAL 1600
274 #define UB_PARAM_DFLT_ADVCHANMAP UB_ADV_CHAN_ALL
275 #define UB_PARAM_DFLT_ADVTYPE UB_ADVTYPE_ADV_NC
276 #define UB_PARAM_DFLT_TIMETOADV 0
277 #define UB_PARAM_DFLT_ADVDATA {0}
278 #define UB_PARAM_DFLT_SCANRSPDATA {0}
279 #define UB_PARAM_DFLT_ADVFLTPOLICY 0
280 
281 
285 #define UB_EVTDST_LL 0
286 #define UB_EVTDST_GAP 1
287 #define UB_NUM_EVTDST 2
288 
289 
293 #define US_TO_RAT 4
294 
295 #define MS_TO_RAT 4000
296 
297 #define BLE_TO_RAT 2500
298 
299 #define SYSTICK_TO_RAT (Clock_tickPeriod * US_TO_RAT)
300 
301 #define MS_TO_SYSTICK (1000 / Clock_tickPeriod)
302 
303 #define BYTE_TO_RAT (8 * US_TO_RAT)
304 
305 /* Length of ADV Data */
306 #define UB_MAX_ADVDATA_LEN B_MAX_ADV_LEN
307 
308 
310 /*-------------------------------------------------------------------
311  * TYPEDEFS
312  */
313 
319 typedef uint8 ubAddrType_t;
320 
322 typedef uint8 ubEvtDst_t;
323 
325 typedef uint8 ubEvt_t;
326 
327 PACKED_TYPEDEF_STRUCT {
328  Queue_Elem _elem;
329  ubEvtDst_t dst;
330  ubEvt_t evt;
331 } ubEvtHdr_t;
332 
334 typedef uint8 ubMsg_t;
335 
336 PACKED_TYPEDEF_STRUCT {
337  ubEvtHdr_t hdr;
338  ubMsg_t msg[];
339 } ubEvtMsg_t;
340 
354 typedef void (*ubPostEvtProxyCB_t)(void);
355 
359 typedef void (*ubProcessMsg_t)(ubEvtMsg_t *pEvtMsg);
360 
363 
365 PACKED_TYPEDEF_STRUCT {
366  uint8 rfPriority;
367  int8 txPower;
368 #if defined(FEATURE_ADVERTISER)
369  uint16 advInterval;
370  uint8 advChanMap;
371  uint8 advType;
372  uint8 timeToAdv;
373  uint8 advData[UB_MAX_ADVDATA_LEN];
374 #if defined(FEATURE_SCAN_RESPONSE)
375  uint8 scanRspData[UB_MAX_ADVDATA_LEN];
376  uint8 advFltPolicy;
377 #endif /* FEATURE_SCAN_RESPONSE */
378 #endif /* FEATURE_ADVERTISER */
379 #if defined(FEATURE_SCANNER)
380  uint16 scanInterval;
381  uint16 scanWindow;
382  uint8 scanChanMap;
383  uint8 scanType;
384  uint8 fltDuplicate;
385  uint8 scanFltPolicy;
386 #endif /* FEATURE_SCANNER */
387 } ubParams_t;
388 
394 PACKED_TYPEDEF_STRUCT {
395  uint8 offset;
396  uint8 len;
397  uint8 min;
398  uint8 max;
399 } ubParamLookup_t;
401 
402 /*-------------------------------------------------------------------
403  * API FUNCTIONS
404  */
405 
435 bStatus_t ub_stackInit(ubAddrType_t addrType, uint8* pStaticAddr,
436  ubPostEvtProxyCB_t pfnPostEvtProxyCB, uint8 timeCritical);
437 
452 bStatus_t ub_setParameter(uint8 param, uint8 len, void *pValue);
453 
466 bStatus_t ub_getParameter(uint8 param, void *pValue);
467 
479 bStatus_t ub_checkAddr(ubAddrType_t addrType, uint8 *pAddr);
480 
485 void ub_resetAddr(void);
486 
497 bStatus_t ub_getAddr(ubAddrType_t addrType, uint8* pAddr);
498 
506 void ub_processMsg(void);
507 
508 /*-------------------------------------------------------------------
509 -------------------------------------------------------------------*/
510 
511 #ifdef __cplusplus
512 }
513 #endif
514 
515 #endif /* UBLE_H */
516 
void ub_resetAddr(void)
Make BD Addr revert to Random Static Address if exists or Public Address otherwise.
void(* ubPostEvtProxyCB_t)(void)
Type of the callback to have ub_processMsg called in the application task context.
Definition: uble.h:354
bStatus_t ub_checkAddr(ubAddrType_t addrType, uint8 *pAddr)
Check if the given address is valid.
bStatus_t ub_getParameter(uint8 param, void *pValue)
Get a Micro BLE Stack parameter.
bStatus_t ub_setParameter(uint8 param, uint8 len, void *pValue)
Set a Micro BLE Stack parameter.
#define UB_MAX_ADVDATA_LEN
Max Advertising Data Length.
Definition: uble.h:306
uint8 ubEvt_t
Micro BLE Stack Event.
Definition: uble.h:325
uint8 ubAddrType_t
Address Type.
Definition: uble.h:319
uint8 ubMsg_t
Type of Micro BLE Stack message.
Definition: uble.h:334
bStatus_t ub_stackInit(ubAddrType_t addrType, uint8 *pStaticAddr, ubPostEvtProxyCB_t pfnPostEvtProxyCB, uint8 timeCritical)
Initialize Micro BLE Stack.
void ub_processMsg(void)
Let the Micro Stack process the queued messages.
Status_t bStatus_t
BLE Generic Status return.
Definition: bcomdef.h:225
bStatus_t ub_getAddr(ubAddrType_t addrType, uint8 *pAddr)
Retrieve the address corresponding to the given address type.
uint8 ubEvtDst_t
Recipient of Micro BLE Stack Event.
Definition: uble.h:322
This file contains configurable variables for the Micro BLE Stack radio.
void(* ubProcessMsg_t)(ubEvtMsg_t *pEvtMsg)
Function to process event messages destined to the calle module.
Definition: uble.h:359
Copyright 2017, Texas Instruments Incorporated