TI BLE5-Stack API Documentation  2.02.05.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: TI_TEXT 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 
41 // This is a common file for the legacy and sysconfig examples,
42 // the parameters under ifndef SYSCFG are defined in this file for
43 // the legacy examples and generated using the sysconfig tool for
44 // the sysconfig examples
45 #ifndef SYSCFG
46 
52 #define GAPADV_PARAMS_LEGACY_SCANN_CONN { \
54  .eventProps = GAP_ADV_PROP_CONNECTABLE | GAP_ADV_PROP_SCANNABLE | \
55  GAP_ADV_PROP_LEGACY, \
56  .primIntMin = 160, \
57  .primIntMax = 160, \
58  .primChanMap = GAP_ADV_CHAN_ALL, \
59  .peerAddrType = PEER_ADDRTYPE_PUBLIC_OR_PUBLIC_ID, \
60  .peerAddr = { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa }, \
61  .filterPolicy = GAP_ADV_WL_POLICY_ANY_REQ, \
62  .txPower = GAP_ADV_TX_POWER_NO_PREFERENCE, \
63  .primPhy = GAP_ADV_PRIM_PHY_1_MBPS, \
64  .secPhy = GAP_ADV_SEC_PHY_1_MBPS, \
65  .sid = 0 \
66 }
67 
69 #define GAPADV_PARAMS_AE_LONG_RANGE_CONN { \
70  .eventProps = GAP_ADV_PROP_CONNECTABLE, \
71  .primIntMin = 160, \
72  .primIntMax = 160, \
73  .primChanMap = GAP_ADV_CHAN_ALL, \
74  .peerAddrType = PEER_ADDRTYPE_PUBLIC_OR_PUBLIC_ID, \
75  .peerAddr = { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa }, \
76  .filterPolicy = GAP_ADV_WL_POLICY_ANY_REQ, \
77  .txPower = GAP_ADV_TX_POWER_NO_PREFERENCE, \
78  .primPhy = GAP_ADV_PRIM_PHY_CODED_S2, \
79  .secPhy = GAP_ADV_SEC_PHY_CODED_S2, \
80  .sid = 0 \
81 }
82 
84 #define GAPADV_PARAMS_AE_NC_NS { \
85  .eventProps = 0, \
86  .primIntMin = 160, \
87  .primIntMax = 160, \
88  .primChanMap = GAP_ADV_CHAN_ALL, \
89  .peerAddrType = PEER_ADDRTYPE_PUBLIC_OR_PUBLIC_ID, \
90  .peerAddr = { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa }, \
91  .filterPolicy = GAP_ADV_WL_POLICY_ANY_REQ, \
92  .txPower = GAP_ADV_TX_POWER_NO_PREFERENCE, \
93  .primPhy = GAP_ADV_PRIM_PHY_1_MBPS, \
94  .secPhy = GAP_ADV_SEC_PHY_1_MBPS, \
95  .sid = 1 \
96 }
97 
98 #endif
99 
100 /*-------------------------------------------------------------------
101  * CONSTANTS
102  */
103 
157 typedef enum
158 {
167 
178 
192 
204 
213 
222 
231 
252 
264 
276 
290 
292  GAP_ADV_PARAM_COUNT
302 #define GAP_ADV_INVALID_HANDLE 0xFF
304 
307 {
315 };
317 
319 typedef enum
320 {
324 
326 typedef enum
327 {
332 
334 typedef enum
335 {
350 
352 typedef enum
353 {
354  GAP_ADV_CHAN_37 = BV(0),
355  GAP_ADV_CHAN_38 = BV(1),
356  GAP_ADV_CHAN_39 = BV(2),
358  GAP_ADV_CHAN_38),
360  GAP_ADV_CHAN_39),
362  GAP_ADV_CHAN_39),
367 
369 typedef enum
370 {
391 
393 #define GAP_ADV_TX_POWER_NO_PREFERENCE 127
394 
396 typedef enum
397 {
402 
404 typedef enum
405 {
411 
419 typedef enum
420 {
424  GAP_ADV_EVT_MASK_SCAN_REQ_NOTI = AE_NOTIFY_ENABLE_SCAN_REQUEST,
432  GAP_ADV_EVT_MASK_START_AFTER_ENABLE = AE_NOTIFY_ENABLE_ADV_SET_START,
436  GAP_ADV_EVT_MASK_START = AE_NOTIFY_ENABLE_ADV_START,
440  GAP_ADV_EVT_MASK_END = AE_NOTIFY_ENABLE_ADV_END,
444  GAP_ADV_EVT_MASK_END_AFTER_DISABLE = AE_NOTIFY_ENABLE_ADV_SET_END,
455 
458  GAP_ADV_EVT_MASK_RESERVED = BV(15)
461 
466 #define GAPADV_PERIODIC_ADV_INTERVAL_MIN 0x0006
468 #define GAPADV_PERIODIC_ADV_INTERVAL_MAX 0xFFFF
470 #define GAPADV_PERIODIC_ADV_ENABLE_TX_POWER 0x0040
472 #define GAPADV_PERIODIC_ADV_DISABLE_TX_POWER 0x0000
474 #define GAPADV_PERIODIC_ADV_DATA_INTERMIDIATE_FRAG 0x00
476 #define GAPADV_PERIODIC_ADV_DATA_FIRST_FRAG 0x01
478 #define GAPADV_PERIODIC_ADV_DATA_LAST_FRAG 0x02
480 #define GAPADV_PERIODIC_ADV_DATA_COMPLETE 0x03
482 #define GAPADV_PERIODIC_ADV_MAX_DATA_LEN 252
484 
488 /*-------------------------------------------------------------------
489  * Structures
490  */
491 
504 typedef struct
505 {
506  uint16_t eventProps;
507  uint32_t primIntMin;
508  uint32_t primIntMax;
511  uint8_t peerAddr[B_ADDR_LEN];
512  GapAdv_filterPolicy_t filterPolicy;
513  int8_t txPower;
516  uint8_t sid;
518 
519 
521 typedef struct
522 {
523  uint8 handle;
524  uint8 status;
525  uint16 connHandle;
528 
530 typedef struct
531 {
532  uint8 handle;
533  uint8 scanAddrType;
534  uint8 scanAddr[B_ADDR_LEN];
535  uint8 channel;
536  int8 rssi;
538 
540 typedef struct
541 {
542  uint8 handle;
544 
547  uint16 advDataLen;
549 
551 typedef struct
552 {
557 
559 typedef struct
560 {
567  uint8 operation;
568  uint8 dataLength;
569  uint8 *pData;
571 
572 typedef struct
573 {
574  osal_event_hdr_t hdr;
575  uint8_t opcode;
576  uint8_t status;
577 } GapAdv_periodicAdvEvt_t;
578 
580 typedef struct
581 {
582  osal_event_hdr_t hdr;
583  uint8_t opcode;
584  uint8_t dataType;
585 } GapAdv_dataUpdateEvent_t;
586 
587 typedef struct
588 {
589  osal_event_hdr_t hdr;
590  uint8_t opcode;
591 } GapAv_setAdvStatusDoneEvent_t;
593 
596 /*-------------------------------------------------------------------
597  * FUNCTIONS - Advertising
598  */
599 
626 extern bStatus_t GapAdv_create(pfnGapCB_t *cb, GapAdv_params_t *advParam,
627  uint8 *advHandle);
628 
649 extern bStatus_t GapAdv_destroy(uint8 handle,
650  GapAdv_freeBufferOptions_t freeOptions);
651 
686 extern bStatus_t GapAdv_enable(uint8 handle,
687  GapAdv_enableOptions_t enableOptions,
688  uint16 durationOrMaxEvents);
689 
707 extern bStatus_t GapAdv_disable(uint8 handle);
708 
725 extern bStatus_t GapAdv_setEventMask(uint8 handle, GapAdv_eventMaskFlags_t mask);
726 
745 extern bStatus_t GapAdv_setParam(uint8 handle, GapAdv_ParamId_t paramID,
746  void *pValue);
747 
767 extern bStatus_t GapAdv_getParam(uint8 handle, GapAdv_ParamId_t paramID,
768  void *pValue, uint8_t *pLen);
769 
787 extern bStatus_t GapAdv_getBuffer(uint8 handle, GapAdv_dataTypes_t dataType,
788  uint16 *pLen, uint8 **ppBuf);
789 
849  GapAdv_freeBufferOptions_t freeOptions);
850 
895 bStatus_t GapAdv_loadByHandle(uint8 handle, GapAdv_dataTypes_t dataType,
896  uint16 len, uint8 *pBuf);
897 
936 extern bStatus_t GapAdv_prepareLoadByBuffer(uint8 *pBuf, bool freeOldData);
937 
968 extern bStatus_t GapAdv_loadByBuffer(uint16 len, uint8 *pBuf);
969 
970 
971 bStatus_t GapAdv_loadByBuffer_hook(uint16 len, uint8 *pBuf);
972 
981 extern bStatus_t GapAdv_abortLoad(void);
982 
1002 extern bStatus_t GapAdv_setVirtualAdvAddr(uint8 advHandle, uint8 *bdAddr);
1003 
1020  uint8_t GapAdv_SetPeriodicAdvParams( uint8 advHandle,
1021  GapAdv_periodicAdvParams_t *periodicAdvParams );
1022 
1039  bStatus_t GapAdv_SetPeriodicAdvData( uint8 advHandle,
1040  GapAdv_periodicAdvData_t *periodicAdvData );
1041 
1058  bStatus_t GapAdv_SetPeriodicAdvEnable( uint8 enable,
1059  uint8 advHandle );
1060 
1061 /*-------------------------------------------------------------------
1062 -------------------------------------------------------------------*/
1063 
1064 #ifdef __cplusplus
1065 }
1066 #endif
1067 
1068 #endif /* GAP_ADVERTISER_H */
1069 
uint16 periodicAdvIntervalMin
Minimum periodic advertising interval; Range: 0x0006 to 0xFFFF Time = N * 1.25 ms Time Range: 7...
Definition: gap_advertiser.h:553
Omit advertiser's address from PDU's.
Definition: gap_advertiser.h:313
uint32_t primIntMax
GAP_ADV_PARAM_PRIMARY_INTERVAL_MAX
Definition: gap_advertiser.h:508
uint8 dataLength
The number of bytes in the Advertising Data parameter.
Definition: gap_advertiser.h:568
This API allows the software components in the Z-Stack to be written independently of the specifics o...
All Channels.
Definition: gap_advertiser.h:363
GAP_Peer_Addr_Types_t
Address types used for specifying peer address type.
Definition: gap.h:727
coded-s2
Definition: gap_advertiser.h:400
uint8_t GapAdv_SetPeriodicAdvParams(uint8 advHandle, GapAdv_periodicAdvParams_t *periodicAdvParams)
Channels 37 & 39.
Definition: gap_advertiser.h:359
bStatus_t GapAdv_SetPeriodicAdvData(uint8 advHandle, GapAdv_periodicAdvData_t *periodicAdvData)
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:289
uint32_t primIntMin
GAP_ADV_PARAM_PRIMARY_INTERVAL_MIN
Definition: gap_advertiser.h:507
bStatus_t GapAdv_prepareLoadByHandle(uint8 handle, GapAdv_freeBufferOptions_t freeOptions)
uint8 * pData
Periodic advertising data.
Definition: gap_advertiser.h:569
GapAdv_freeBufferOptions_t
Possible free options for Gap Advertiser API's.
Definition: gap_advertiser.h:326
Definition: gap_advertiser.h:448
1 mbps
Definition: gap_advertiser.h:398
Definition: gap_advertiser.h:221
bStatus_t GapAdv_loadByHandle(uint8 handle, GapAdv_dataTypes_t dataType, uint16 len, uint8 *pBuf)
Definition: gap_advertiser.h:314
Directed advertising.
Definition: gap_advertiser.h:310
bStatus_t GapAdv_abortLoad(void)
bStatus_t GapAdv_setVirtualAdvAddr(uint8 advHandle, uint8 *bdAddr)
Definition: gap_advertiser.h:436
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:540
int8 rssi
RSSI of the scan req.
Definition: gap_advertiser.h:536
Scannable advertising.
Definition: gap_advertiser.h:309
uint16_t eventProps
GAP_ADV_PARAM_PROPS
Definition: gap_advertiser.h:506
Free the scan response data.
Definition: gap_advertiser.h:330
uint8 channel
Channel when the scan req was received.
Definition: gap_advertiser.h:535
GapAdv_enableOptions_t
Enable options for GapAdv_enable.
Definition: gap_advertiser.h:334
Definition: gap_advertiser.h:424
GapAdv_ParamId_t
Definition: gap_advertiser.h:157
Definition: gap_advertiser.h:375
1 mbps
Definition: gap_advertiser.h:406
uint8 handle
Advertising handle.
Definition: gap_advertiser.h:523
Don't free anything.
Definition: gap_advertiser.h:328
Definition: gap_advertiser.h:275
Channels 38 & 39.
Definition: gap_advertiser.h:361
uint16 periodicAdvIntervalMax
Maximum periodic advertising interval; Range: 0x0006 to 0xFFFF Time = N * 1.25 ms Time Range: 7...
Definition: gap_advertiser.h:554
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:1343
uint8 handle
Advertising handle.
Definition: gap_advertiser.h:542
Definition: gap_advertiser.h:230
GapAdv_secondaryPHY_t secPhy
GAP_ADV_PARAM_SECONDARY_PHY
Definition: gap_advertiser.h:515
2 mbps
Definition: gap_advertiser.h:407
Scan response data.
Definition: gap_advertiser.h:322
bStatus_t GapAdv_setEventMask(uint8 handle, GapAdv_eventMaskFlags_t mask)
bStatus_t GapAdv_SetPeriodicAdvEnable(uint8 enable, uint8 advHandle)
uint16 periodicAdvProp
Periodic advertising properties - set bit 6 for include TxPower in the advertising PDU...
Definition: gap_advertiser.h:555
GapAdv_secondaryPHY_t
Gap Advertiser Options for advertising on the secondary PHY.
Definition: gap_advertiser.h:404
bStatus_t GapAdv_create(pfnGapCB_t *cb, GapAdv_params_t *advParam, uint8 *advHandle)
Definition: gap_advertiser.h:444
Definition: gap_advertiser.h:251
GapAdv_advChannels_t
GAP Advertiser Defines for Advertiser Channels.
Definition: gap_advertiser.h:352
Definition: gap_advertiser.h:191
Channels 37 & 38.
Definition: gap_advertiser.h:357
GAP_Peer_Addr_Types_t peerAddrType
GAP_ADV_PARAM_PEER_ADDRESS_TYPE
Definition: gap_advertiser.h:510
GapAdv_eventMaskFlags_t
Definition: gap_advertiser.h:419
Advertising data.
Definition: gap_advertiser.h:321
GapAdv_primaryPHY_t
Gap Advertiser Options for advertising on the primary PHY.
Definition: gap_advertiser.h:396
Definition: gap_advertiser.h:348
Type definitions and macros for BLE stack.
Channel 37.
Definition: gap_advertiser.h:354
Definition: gap_advertiser.h:177
Connectable advertising.
Definition: gap_advertiser.h:308
Free the advertising data.
Definition: gap_advertiser.h:329
Definition: gap_advertiser.h:344
bStatus_t GapAdv_getBuffer(uint8 handle, GapAdv_dataTypes_t dataType, uint16 *pLen, uint8 **ppBuf)
coded-s2
Definition: gap_advertiser.h:409
Definition: gap_advertiser.h:263
Definition: gap_advertiser.h:385
Definition: gap_advertiser.h:432
uint16 connHandle
Connection handle that ended advertising.
Definition: gap_advertiser.h:525
GAP layer interface.
OSAL Event Header.
Definition: osal.h:92
Definition: gap_advertiser.h:428
coded-s8
Definition: gap_advertiser.h:408
GapAdv_filterPolicy_t filterPolicy
GAP_ADV_PARAM_FILTER_POLICY
Definition: gap_advertiser.h:512
GapAdv_advChannels_t primChanMap
GAP_ADV_PARAM_PRIMARY_CHANNEL_MAP
Definition: gap_advertiser.h:509
Periodic advertising parameters structure.
Definition: gap_advertiser.h:551
Use legacy advertising PDU's.
Definition: gap_advertiser.h:312
GapAdv_dataTypes_t
Gap Advertising Data Types.
Definition: gap_advertiser.h:319
Definition: gap_advertiser.h:340
uint8 scanAddrType
Address type of scanning device.
Definition: gap_advertiser.h:533
uint16 advDataLen
Definition: gap_advertiser.h:547
int8_t txPower
NOT CURRENTLY IMPLEMENTED.
Definition: gap_advertiser.h:513
Data type returned with GAP_EVT_ADV_SET_TERMINATED event.
Definition: gap_advertiser.h:521
#define B_ADDR_LEN
Default Public and Random Address Length.
Definition: bcomdef.h:108
Definition: gap_advertiser.h:166
Definition: gap_advertiser.h:504
Definition: gap_advertiser.h:440
High Duty Cycle Directed Advertising.
Definition: gap_advertiser.h:311
Definition: gap_advertiser.h:380
Status_t bStatus_t
BLE Generic Status return.
Definition: bcomdef.h:251
Definition: gap_advertiser.h:389
Definition: gap_advertiser.h:212
GapAdv_filterPolicy_t
GAP Advertiser White List Policy.
Definition: gap_advertiser.h:369
bStatus_t GapAdv_prepareLoadByBuffer(uint8 *pBuf, bool freeOldData)
bStatus_t GapAdv_loadByBuffer(uint16 len, uint8 *pBuf)
Channel 39.
Definition: gap_advertiser.h:356
bStatus_t GapAdv_destroy(uint8 handle, GapAdv_freeBufferOptions_t freeOptions)
Periodic advertising data structure.
Definition: gap_advertiser.h:559
uint8 handle
Advertising handle.
Definition: gap_advertiser.h:532
GapAdv_eventProps_t
GAP Advertising Event Param Properties.
Definition: gap_advertiser.h:306
coded-s8
Definition: gap_advertiser.h:399
Data type returned with GAP_EVT_SCAN_REQ_RECEIVED event.
Definition: gap_advertiser.h:530
Channel 38.
Definition: gap_advertiser.h:355
GapAdv_primaryPHY_t primPhy
GAP_ADV_PARAM_PRIMARY_PHY
Definition: gap_advertiser.h:514
uint8_t sid
GAP_ADV_PARAM_SID
Definition: gap_advertiser.h:516
uint8 status
TODO.
Definition: gap_advertiser.h:524
uint8 numCompAdvEvts
Number of completed advertising events.
Definition: gap_advertiser.h:526
uint8 operation
Definition: gap_advertiser.h:567
Definition: gap_advertiser.h:203
uint8 availAdvDataLen
How many bytes of the advertising data were sent.
Definition: gap_advertiser.h:543
© Copyright 1995-2022, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale