TI BLE5-Stack API Documentation  1.01.01.00
gap_advertiser.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 
22 #ifndef GAP_ADVERTISER_H
23 #define GAP_ADVERTISER_H
24 
25 #ifdef __cplusplus
26 extern "C"
27 {
28 #endif
29 
30 /*-------------------------------------------------------------------
31  * INCLUDES
32  */
33 #include "bcomdef.h"
34 #include "osal.h"
35 #include "gap.h"
36 
37 /*-------------------------------------------------------------------
38  * MACROS
39  */
40 
47 #define GAPADV_PARAMS_LEGACY_SCANN_CONN { \
49  .eventProps = GAP_ADV_PROP_CONNECTABLE | GAP_ADV_PROP_SCANNABLE | \
50  GAP_ADV_PROP_LEGACY, \
51  .primIntMin = 160, \
52  .primIntMax = 160, \
53  .primChanMap = GAP_ADV_CHAN_ALL, \
54  .peerAddrType = PEER_ADDRTYPE_PUBLIC_OR_PUBLIC_ID, \
55  .peerAddr = { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa }, \
56  .filterPolicy = GAP_ADV_WL_POLICY_ANY_REQ, \
57  .txPower = GAP_ADV_TX_POWER_NO_PREFERENCE, \
58  .primPhy = GAP_ADV_PRIM_PHY_1_MBPS, \
59  .secPhy = GAP_ADV_SEC_PHY_1_MBPS, \
60  .sid = 0 \
61 }
62 
64 #define GAPADV_PARAMS_AE_LONG_RANGE_CONN { \
65  .eventProps = GAP_ADV_PROP_CONNECTABLE, \
66  .primIntMin = 160, \
67  .primIntMax = 160, \
68  .primChanMap = GAP_ADV_CHAN_ALL, \
69  .peerAddrType = PEER_ADDRTYPE_PUBLIC_OR_PUBLIC_ID, \
70  .peerAddr = { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa }, \
71  .filterPolicy = GAP_ADV_WL_POLICY_ANY_REQ, \
72  .txPower = GAP_ADV_TX_POWER_NO_PREFERENCE, \
73  .primPhy = GAP_ADV_PRIM_PHY_CODED_S2, \
74  .secPhy = GAP_ADV_SEC_PHY_CODED_S2, \
75  .sid = 0 \
76 }
77 
80 /*-------------------------------------------------------------------
81  * CONSTANTS
82  */
83 
137 typedef enum
138 {
147 
158 
172 
184 
193 
202 
211 
213 
224  GAP_ADV_PARAM_TX_POWER,
226 
238 
250 
264 
266  GAP_ADV_PARAM_COUNT
276 #define GAP_ADV_INVALID_HANDLE 0xFF
278 
281 {
289 };
291 
293 typedef enum
294 {
298 
300 typedef enum
301 {
305 
310 
312 typedef enum
313 {
328 
330 typedef enum
331 {
332  GAP_ADV_CHAN_37 = BV(0),
333  GAP_ADV_CHAN_38 = BV(1),
334  GAP_ADV_CHAN_39 = BV(2),
339 
341 typedef enum
342 {
348 
350 #define GAP_ADV_TX_POWER_NO_PREFERENCE 127
351 
353 typedef enum
354 {
359 
361 typedef enum
362 {
368 
376 typedef enum
377 {
381  GAP_ADV_EVT_MASK_SCAN_REQ_NOTI = AE_NOTIFY_ENABLE_SCAN_REQUEST,
389  GAP_ADV_EVT_MASK_START_AFTER_ENABLE = AE_NOTIFY_ENABLE_ADV_SET_START,
393  GAP_ADV_EVT_MASK_START = AE_NOTIFY_ENABLE_ADV_START,
397  GAP_ADV_EVT_MASK_END = AE_NOTIFY_ENABLE_ADV_END,
401  GAP_ADV_EVT_MASK_END_AFTER_DISABLE = AE_NOTIFY_ENABLE_ADV_SET_END,
412 
415  GAP_ADV_EVT_MASK_RESERVED = BV(15)
418 
421 /*-------------------------------------------------------------------
422  * Structures
423  */
424 
437 typedef struct
438 {
439  uint16_t eventProps;
440  uint32_t primIntMin;
441  uint32_t primIntMax;
444  uint8_t peerAddr[B_ADDR_LEN];
445  GapAdv_filterPolicy_t filterPolicy;
446  int8_t txPower;
449  uint8_t sid;
451 
452 
454 typedef struct
455 {
456  uint8 handle;
457  uint8 status;
458  uint16 connHandle;
461 
463 typedef struct
464 {
465  uint8 handle;
466  uint8 scanAddrType;
467  uint8 scanAddr[B_ADDR_LEN];
469 
471 typedef struct
472 {
473  uint8 handle;
475 
478  uint16 advDataLen;
480 
483 /*-------------------------------------------------------------------
484  * FUNCTIONS - Advertising
485  */
486 
513 extern bStatus_t GapAdv_create(pfnGapCB_t *cb, GapAdv_params_t *advParam,
514  uint8 *advHandle);
515 
536 extern bStatus_t GapAdv_destroy(uint8 handle,
537  GapAdv_freeBufferOptions_t freeOptions);
538 
573 extern bStatus_t GapAdv_enable(uint8 handle,
574  GapAdv_enableOptions_t enableOptions,
575  uint16 durationOrMaxEvents);
576 
594 extern bStatus_t GapAdv_disable(uint8 handle);
595 
612 extern bStatus_t GapAdv_setEventMask(uint8 handle, GapAdv_eventMaskFlags_t mask);
613 
632 extern bStatus_t GapAdv_setParam(uint8 handle, GapAdv_ParamId_t paramID,
633  void *pValue);
634 
654 extern bStatus_t GapAdv_getParam(uint8 handle, GapAdv_ParamId_t paramID,
655  void *pValue, uint8_t *pLen);
656 
674 extern bStatus_t GapAdv_getBuffer(uint8 handle, GapAdv_dataTypes_t dataType,
675  uint16 *pLen, uint8 **ppBuf);
676 
736  GapAdv_freeBufferOptions_t freeOptions);
737 
782 bStatus_t GapAdv_loadByHandle(uint8 handle, GapAdv_dataTypes_t dataType,
783  uint16 len, uint8 *pBuf);
784 
823 extern bStatus_t GapAdv_prepareLoadByBuffer(uint8 *pBuf, bool freeOldData);
824 
855 extern bStatus_t GapAdv_loadByBuffer(uint16 len, uint8 *pBuf);
856 
865 extern bStatus_t GapAdv_abortLoad(void);
866 
867 /*-------------------------------------------------------------------
868 -------------------------------------------------------------------*/
869 
870 #ifdef __cplusplus
871 }
872 #endif
873 
874 #endif /* GAP_ADVERTISER_H */
875 
Omit advertiser's address from PDU's.
Definition: gap_advertiser.h:287
uint32_t primIntMax
GAP_ADV_PARAM_PRIMARY_INTERVAL_MAX
Definition: gap_advertiser.h:441
This API allows the software components in the Z-Stack to be written independently of the specifics o...
All Channels.
Definition: gap_advertiser.h:335
GAP_Peer_Addr_Types_t
Address types used for specifying peer address type.
Definition: gap.h:586
coded-s2
Definition: gap_advertiser.h:357
bStatus_t GapAdv_setParam(uint8 handle, GapAdv_ParamId_t paramID, void *pValue)
bStatus_t GapAdv_getParam(uint8 handle, GapAdv_ParamId_t paramID, void *pValue, uint8_t *pLen)
Definition: gap_advertiser.h:263
uint32_t primIntMin
GAP_ADV_PARAM_PRIMARY_INTERVAL_MIN
Definition: gap_advertiser.h:440
bStatus_t GapAdv_prepareLoadByHandle(uint8 handle, GapAdv_freeBufferOptions_t freeOptions)
GapAdv_freeBufferOptions_t
Possible free options for Gap Advertiser API's.
Definition: gap_advertiser.h:300
Definition: gap_advertiser.h:405
1 mbps
Definition: gap_advertiser.h:355
Definition: gap_advertiser.h:201
bStatus_t GapAdv_loadByHandle(uint8 handle, GapAdv_dataTypes_t dataType, uint16 len, uint8 *pBuf)
Definition: gap_advertiser.h:288
Directed advertising.
Definition: gap_advertiser.h:284
bStatus_t GapAdv_abortLoad(void)
Definition: gap_advertiser.h:393
bStatus_t GapAdv_enable(uint8 handle, GapAdv_enableOptions_t enableOptions, uint16 durationOrMaxEvents)
Data type returned with GAP_EVT_ADV_DATA_TRUNCATED event.
Definition: gap_advertiser.h:471
Scannable advertising.
Definition: gap_advertiser.h:283
uint16_t eventProps
GAP_ADV_PARAM_PROPS
Definition: gap_advertiser.h:439
Free the scan response data.
Definition: gap_advertiser.h:304
GapAdv_enableOptions_t
Enable options for GapAdv_enable.
Definition: gap_advertiser.h:312
Definition: gap_advertiser.h:381
GapAdv_ParamId_t
Definition: gap_advertiser.h:137
any scan request, any connect request
Definition: gap_advertiser.h:343
1 mbps
Definition: gap_advertiser.h:363
uint8 handle
Advertising handle.
Definition: gap_advertiser.h:456
Don't free anything.
Definition: gap_advertiser.h:302
Definition: gap_advertiser.h:249
bStatus_t GapAdv_disable(uint8 handle)
Disable an active advertising set.
void(* pfnGapCB_t)(uint32_t event, void *pBuf, uintptr_t arg)
Definition: gap.h:1095
uint8 handle
Advertising handle.
Definition: gap_advertiser.h:473
Definition: gap_advertiser.h:210
GapAdv_secondaryPHY_t secPhy
GAP_ADV_PARAM_SECONDARY_PHY
Definition: gap_advertiser.h:448
2 mbps
Definition: gap_advertiser.h:364
Scan response data.
Definition: gap_advertiser.h:296
bStatus_t GapAdv_setEventMask(uint8 handle, GapAdv_eventMaskFlags_t mask)
GapAdv_secondaryPHY_t
Gap Advertiser Options for advertising on the secondary PHY.
Definition: gap_advertiser.h:361
bStatus_t GapAdv_create(pfnGapCB_t *cb, GapAdv_params_t *advParam, uint8 *advHandle)
Definition: gap_advertiser.h:401
Definition: gap_advertiser.h:308
GapAdv_advChannels_t
GAP Advertiser Defines for Advertiser Channels.
Definition: gap_advertiser.h:330
Definition: gap_advertiser.h:171
GAP_Peer_Addr_Types_t peerAddrType
GAP_ADV_PARAM_PEER_ADDRESS_TYPE
Definition: gap_advertiser.h:443
GapAdv_eventMaskFlags_t
Definition: gap_advertiser.h:376
Advertising data.
Definition: gap_advertiser.h:295
GapAdv_primaryPHY_t
Gap Advertiser Options for advertising on the primary PHY.
Definition: gap_advertiser.h:353
Definition: gap_advertiser.h:326
Type definitions and macros for BLE stack.
Channel 37.
Definition: gap_advertiser.h:332
Definition: gap_advertiser.h:157
Connectable advertising.
Definition: gap_advertiser.h:282
Free the advertising data.
Definition: gap_advertiser.h:303
Definition: gap_advertiser.h:322
bStatus_t GapAdv_getBuffer(uint8 handle, GapAdv_dataTypes_t dataType, uint16 *pLen, uint8 **ppBuf)
coded-s2
Definition: gap_advertiser.h:366
Definition: gap_advertiser.h:237
any scan request, white list connect request
Definition: gap_advertiser.h:345
Definition: gap_advertiser.h:389
uint16 connHandle
Connection handle that ended advertising.
Definition: gap_advertiser.h:458
GAP layer interface.
Definition: gap_advertiser.h:385
coded-s8
Definition: gap_advertiser.h:365
GapAdv_filterPolicy_t filterPolicy
GAP_ADV_PARAM_FILTER_POLICY
Definition: gap_advertiser.h:445
GapAdv_advChannels_t primChanMap
GAP_ADV_PARAM_PRIMARY_CHANNEL_MAP
Definition: gap_advertiser.h:442
Use legacy advertising PDU's.
Definition: gap_advertiser.h:286
GapAdv_dataTypes_t
Gap Advertising Data Types.
Definition: gap_advertiser.h:293
Definition: gap_advertiser.h:318
uint8 scanAddrType
Address type of scanning device.
Definition: gap_advertiser.h:466
uint16 advDataLen
Definition: gap_advertiser.h:478
int8_t txPower
NOT CURRENTLY IMPLEMENTED.
Definition: gap_advertiser.h:446
Data type returned with GAP_EVT_ADV_SET_TERMINATED event.
Definition: gap_advertiser.h:454
#define B_ADDR_LEN
Default Public and Random Address Length.
Definition: bcomdef.h:115
Definition: gap_advertiser.h:146
Definition: gap_advertiser.h:437
Definition: gap_advertiser.h:397
High Duty Cycle Directed Advertising.
Definition: gap_advertiser.h:285
any connect request, white list scan request
Definition: gap_advertiser.h:344
Status_t bStatus_t
BLE Generic Status return.
Definition: bcomdef.h:242
white list scan request and any connect request
Definition: gap_advertiser.h:346
Definition: gap_advertiser.h:192
GapAdv_filterPolicy_t
GAP Advertiser White List Policy.
Definition: gap_advertiser.h:341
bStatus_t GapAdv_prepareLoadByBuffer(uint8 *pBuf, bool freeOldData)
bStatus_t GapAdv_loadByBuffer(uint16 len, uint8 *pBuf)
Channel 39.
Definition: gap_advertiser.h:334
bStatus_t GapAdv_destroy(uint8 handle, GapAdv_freeBufferOptions_t freeOptions)
uint8 handle
Advertising handle.
Definition: gap_advertiser.h:465
GapAdv_eventProps_t
GAP Advertising Event Param Properties.
Definition: gap_advertiser.h:280
coded-s8
Definition: gap_advertiser.h:356
Data type returned with GAP_EVT_SCAN_REQ_RECEIVED event.
Definition: gap_advertiser.h:463
Channel 38.
Definition: gap_advertiser.h:333
GapAdv_primaryPHY_t primPhy
GAP_ADV_PARAM_PRIMARY_PHY
Definition: gap_advertiser.h:447
uint8_t sid
GAP_ADV_PARAM_SID
Definition: gap_advertiser.h:449
uint8 status
TODO.
Definition: gap_advertiser.h:457
uint8 numCompAdvEvts
Number of completed advertising events.
Definition: gap_advertiser.h:459
Definition: gap_advertiser.h:183
uint8 availAdvDataLen
How many bytes of the advertising data were sent.
Definition: gap_advertiser.h:474
Copyright 2018, Texas Instruments Incorporated