TI BLE5-Stack API Documentation  1.00.01.04
gap.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 
24 #ifndef GAP_H
25 #define GAP_H
26 
27 #ifdef __cplusplus
28 extern "C"
29 {
30 #endif
31 
32 /*-------------------------------------------------------------------
33  * INCLUDES
34  */
35 #include "bcomdef.h"
36 #include "osal.h"
37 #include "sm.h"
38 
39 /*-------------------------------------------------------------------
40  * MACROS
41  */
42 
43 /*-------------------------------------------------------------------
44  * CONSTANTS
45  */
46 
60 #define GAP_DEVICE_INIT_DONE_EVENT 0x00
61 
65 #define GAP_DEVICE_DISCOVERY_EVENT 0x01
66 
70 #define GAP_ADV_DATA_UPDATE_DONE_EVENT 0x02
71 
75 #define GAP_MAKE_DISCOVERABLE_DONE_EVENT 0x03
76 
80 #define GAP_END_DISCOVERABLE_DONE_EVENT 0x04
81 
85 #define GAP_LINK_ESTABLISHED_EVENT 0x05
86 
90 #define GAP_LINK_TERMINATED_EVENT 0x06
91 
95 #define GAP_LINK_PARAM_UPDATE_EVENT 0x07
96 
100 #define GAP_RANDOM_ADDR_CHANGED_EVENT 0x08
101 
105 #define GAP_SIGNATURE_UPDATED_EVENT 0x09
106 
110 #define GAP_AUTHENTICATION_COMPLETE_EVENT 0x0A
111 
115 #define GAP_PASSKEY_NEEDED_EVENT 0x0B
116 
120 #define GAP_SLAVE_REQUESTED_SECURITY_EVENT 0x0C
121 
125 #define GAP_DEVICE_INFO_EVENT 0x0D
126 
130 #define GAP_BOND_COMPLETE_EVENT 0x0E
131 
135 #define GAP_PAIRING_REQ_EVENT 0x0F
136 
141 #define GAP_AUTHENTICATION_FAILURE_EVT 0x10
142 
147 #define GAP_UPDATE_LINK_PARAM_REQ_EVENT 0x11
148 
154 #define GAP_CONNHANDLE_INIT 0xFFFE
155 #define GAP_CONNHANDLE_ALL 0xFFFF
156 
162 #define GAP_PROFILE_BROADCASTER 0x01
163 #define GAP_PROFILE_OBSERVER 0x02
164 #define GAP_PROFILE_PERIPHERAL 0x04
165 #define GAP_PROFILE_CENTRAL 0x08
166 
183 #define TGAP_GEN_DISC_ADV_MIN 0
184 
192 #define TGAP_LIM_ADV_TIMEOUT 1
193 
201 #define TGAP_GEN_DISC_SCAN 2
202 
210 #define TGAP_LIM_DISC_SCAN 3
211 
219 #define TGAP_CONN_EST_ADV_TIMEOUT 4
220 
229 #define TGAP_CONN_PARAM_TIMEOUT 5
230 
238 #define TGAP_LIM_DISC_ADV_INT_MIN 6
239 
247 #define TGAP_LIM_DISC_ADV_INT_MAX 7
248 
256 #define TGAP_GEN_DISC_ADV_INT_MIN 8
257 
265 #define TGAP_GEN_DISC_ADV_INT_MAX 9
266 
274 #define TGAP_CONN_ADV_INT_MIN 10
275 
283 #define TGAP_CONN_ADV_INT_MAX 11
284 
292 #define TGAP_CONN_SCAN_INT 12
293 
301 #define TGAP_CONN_SCAN_WIND 13
302 
310 #define TGAP_CONN_HIGH_SCAN_INT 14
311 
319 #define TGAP_CONN_HIGH_SCAN_WIND 15
320 
328 #define TGAP_GEN_DISC_SCAN_INT 16
329 
337 #define TGAP_GEN_DISC_SCAN_WIND 17
338 
346 #define TGAP_LIM_DISC_SCAN_INT 18
347 
355 #define TGAP_LIM_DISC_SCAN_WIND 19
356 
358 
363 #define TGAP_CONN_EST_ADV 20
364 
373 #define TGAP_CONN_EST_INT_MIN 21
374 
382 #define TGAP_CONN_EST_INT_MAX 22
383 
391 #define TGAP_CONN_EST_SCAN_INT 23
392 
400 #define TGAP_CONN_EST_SCAN_WIND 24
401 
409 #define TGAP_CONN_EST_SUPERV_TIMEOUT 25
410 
418 #define TGAP_CONN_EST_LATENCY 26
419 
427 #define TGAP_CONN_EST_MIN_CE_LEN 27
428 
436 #define TGAP_CONN_EST_MAX_CE_LEN 28
437 
445 #define TGAP_PRIVATE_ADDR_INT 29
446 
454 #define TGAP_CONN_PAUSE_CENTRAL 30
455 
463 #define TGAP_CONN_PAUSE_PERIPHERAL 31
464 
472 #define TGAP_SM_TIMEOUT 32
473 
481 #define TGAP_SM_MIN_KEY_LEN 33
482 
490 #define TGAP_SM_MAX_KEY_LEN 34
491 
499 #define TGAP_FILTER_ADV_REPORTS 35
500 
508 #define TGAP_SCAN_RSP_RSSI_MIN 36
509 
517 #define TGAP_REJECT_CONN_PARAMS 37
518 
520 #if !defined ( TESTMODES )
521  #define TGAP_AUTH_TASK_ID 38
522  #define TGAP_VERIFY_CAR 39
523  #define TGAP_PARAMID_MAX 40
524 
525  #define TGAP_GGS_PARAMS 102
526 #else
527  #define TGAP_GAP_TESTCODE 38
528  #define TGAP_SM_TESTCODE 39
529  #define TGAP_AUTH_TASK_ID 40
530  #define TGAP_VERIFY_CAR 41
531  #define TGAP_PARAMID_MAX 42
532 
533  #define TGAP_GATT_TESTCODE 100
534  #define TGAP_ATT_TESTCODE 101
535  #define TGAP_GGS_PARAMS 102
536  #define TGAP_L2CAP_TESTCODE 103
537 #endif
538 
545 #define DEVDISC_MODE_NONDISCOVERABLE 0x00
546 #define DEVDISC_MODE_GENERAL 0x01
547 #define DEVDISC_MODE_LIMITED 0x02
548 #define DEVDISC_MODE_ALL 0x03
549 
554 #define ADDRTYPE_PUBLIC 0x00
555 #define ADDRTYPE_RANDOM 0x01
556 #define ADDRTYPE_PUBLIC_ID 0x02
557 #define ADDRTYPE_RANDOM_ID 0x03
558 
563 #define SET_ADDRTYPE_ID 0x02
564 #define MASK_ADDRTYPE_ID 0x01
565 
570 #define RANDOM_ADDR_SUBTYPE_STATIC 0x00
571 #define RANDOM_ADDR_SUBTYPE_RPA 0x01
572 #define RANDOM_ADDR_SUBTYPE_NRPA 0x02
573 
578 #define RANDOM_ADDR_HDR_MASK 0xC0
579 #define STATIC_ADDR_HDR 0xC0
580 #define PRIVATE_NON_RESOLVE_ADDR_HDR 0x80
581 #define PRIVATE_RESOLVE_ADDR_HDR 0x40
582 
587 #define ADDRMODE_PUBLIC 0x00
588 #define ADDRMODE_STATIC 0x01
589 #define ADDRMODE_PRIVATE_NONRESOLVE 0x02
590 #define ADDRMODE_PRIVATE_RESOLVE 0x03
591 
597 #define GAP_ADTYPE_ADV_IND 0x00
598 #define GAP_ADTYPE_ADV_HDC_DIRECT_IND 0x01
599 #define GAP_ADTYPE_ADV_SCAN_IND 0x02
600 #define GAP_ADTYPE_ADV_NONCONN_IND 0x03
601 #define GAP_ADTYPE_ADV_LDC_DIRECT_IND 0x04
602 
608 #define GAP_ADRPT_ADV_IND 0x00
609 #define GAP_ADRPT_ADV_DIRECT_IND 0x01
610 #define GAP_ADRPT_ADV_SCAN_IND 0x02
611 #define GAP_ADRPT_ADV_NONCONN_IND 0x03
612 #define GAP_ADRPT_SCAN_RSP 0x04
613 
618 #define GAP_FILTER_POLICY_ALL 0x00
619 #define GAP_FILTER_POLICY_WHITE_SCAN 0x01
620 #define GAP_FILTER_POLICY_WHITE_CON 0x02
621 #define GAP_FILTER_POLICY_WHITE 0x03
622 
627 #define GAP_DISC_FILTER_POLICY_ALL 0x00
628 #define GAP_DISC_FILTER_POLICY_WHITE 0x01
629 #define GAP_DISC_FILTER_POLICY_ALL_DIRECT 0x02
630 #define GAP_DISC_FILTER_POLICY_WHITE_DIRECT 0x03
631 
633 #define ADV_CHANMAP_SIZE 5
634 
635 #define GAP_PASSCODE_MAX 999999
636 
637 
643 #define GAP_INIT_SIGN_COUNTER 0xFFFFFFFF
644 
648 #define GAP_ADVCHAN_37 0x01
649 #define GAP_ADVCHAN_38 0x02
650 #define GAP_ADVCHAN_39 0x04
651 #define GAP_ADVCHAN_ALL (GAP_ADVCHAN_37 | GAP_ADVCHAN_38 | GAP_ADVCHAN_39)
652 
657 #define WL_NOTUSED 0x00
658 #define WL_USED 0x01
659 
665 #define GAP_ADTYPE_FLAGS 0x01
666 #define GAP_ADTYPE_16BIT_MORE 0x02
667 #define GAP_ADTYPE_16BIT_COMPLETE 0x03
668 #define GAP_ADTYPE_32BIT_MORE 0x04
669 #define GAP_ADTYPE_32BIT_COMPLETE 0x05
670 #define GAP_ADTYPE_128BIT_MORE 0x06
671 #define GAP_ADTYPE_128BIT_COMPLETE 0x07
672 #define GAP_ADTYPE_LOCAL_NAME_SHORT 0x08
673 #define GAP_ADTYPE_LOCAL_NAME_COMPLETE 0x09
674 #define GAP_ADTYPE_POWER_LEVEL 0x0A
675 #define GAP_ADTYPE_OOB_CLASS_OF_DEVICE 0x0D
676 #define GAP_ADTYPE_OOB_SIMPLE_PAIRING_HASHC 0x0E
677 #define GAP_ADTYPE_OOB_SIMPLE_PAIRING_RANDR 0x0F
678 #define GAP_ADTYPE_SM_TK 0x10
679 #define GAP_ADTYPE_SM_OOB_FLAG 0x11
680 #define GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE 0x12
681 #define GAP_ADTYPE_SIGNED_DATA 0x13
682 #define GAP_ADTYPE_SERVICES_LIST_16BIT 0x14
683 #define GAP_ADTYPE_SERVICES_LIST_128BIT 0x15
684 #define GAP_ADTYPE_SERVICE_DATA 0x16
685 #define GAP_ADTYPE_PUBLIC_TARGET_ADDR 0x17
686 #define GAP_ADTYPE_RANDOM_TARGET_ADDR 0x18
687 #define GAP_ADTYPE_APPEARANCE 0x19
688 #define GAP_ADTYPE_ADV_INTERVAL 0x1A
689 #define GAP_ADTYPE_LE_BD_ADDR 0x1B
690 #define GAP_ADTYPE_LE_ROLE 0x1C
691 #define GAP_ADTYPE_SIMPLE_PAIRING_HASHC_256 0x1D
692 #define GAP_ADTYPE_SIMPLE_PAIRING_RANDR_256 0x1E
693 #define GAP_ADTYPE_SERVICE_DATA_32BIT 0x20
694 #define GAP_ADTYPE_SERVICE_DATA_128BIT 0x21
695 #define GAP_ADTYPE_3D_INFO_DATA 0x3D
696 #define GAP_ADTYPE_MANUFACTURER_SPECIFIC 0xFF
697 #define GAP_ADTYPE_FLAGS_LIMITED 0x01
698 #define GAP_ADTYPE_FLAGS_GENERAL 0x02
699 #define GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED 0x04
700 
705 #define GAP_STATE_IDLE 0x00
706 #define GAP_STATE_ADV 0x01
707 #define GAP_STATE_SCAN 0x02
708 #define GAP_STATE_INIT 0x04
709 
714 #define GAP_APPEARE_UNKNOWN 0x0000
715 #define GAP_APPEARE_GENERIC_PHONE 0x0040
716 #define GAP_APPEARE_GENERIC_COMPUTER 0x0080
717 #define GAP_APPEARE_GENERIC_WATCH 0x00C0
718 #define GAP_APPEARE_WATCH_SPORTS 0x00C1
719 #define GAP_APPEARE_GENERIC_CLOCK 0x0100
720 #define GAP_APPEARE_GENERIC_DISPLAY 0x0140
721 #define GAP_APPEARE_GENERIC_RC 0x0180
722 #define GAP_APPEARE_GENERIC_EYE_GALSSES 0x01C0
723 #define GAP_APPEARE_GENERIC_TAG 0x0200
724 #define GAP_APPEARE_GENERIC_KEYRING 0x0240
725 #define GAP_APPEARE_GENERIC_MEDIA_PLAYER 0x0280
726 #define GAP_APPEARE_GENERIC_BARCODE_SCANNER 0x02C0
727 #define GAP_APPEARE_GENERIC_THERMOMETER 0x0300
728 #define GAP_APPEARE_GENERIC_THERMO_EAR 0x0301
729 #define GAP_APPEARE_GENERIC_HR_SENSOR 0x0340
730 #define GAP_APPEARE_GENERIC_HRS_BELT 0x0341
731 #define GAP_APPEARE_GENERIC_BLOOD_PRESSURE 0x0380
732 #define GAP_APPEARE_GENERIC_BP_ARM 0x0381
733 #define GAP_APPEARE_GENERIC_BP_WRIST 0x0382
734 #define GAP_APPEARE_GENERIC_HID 0x03C0
735 #define GAP_APPEARE_HID_KEYBOARD 0x03C1
736 #define GAP_APPEARE_HID_MOUSE 0x03C2
737 #define GAP_APPEARE_HID_JOYSTIC 0x03C3
738 #define GAP_APPEARE_HID_GAMEPAD 0x03C4
739 #define GAP_APPEARE_HID_DIGITIZER_TYABLET 0x03C5
740 #define GAP_APPEARE_HID_DIGITAL_CARDREADER 0x03C6
741 #define GAP_APPEARE_HID_DIGITAL_PEN 0x03C7
742 #define GAP_APPEARE_HID_BARCODE_SCANNER 0x03C8
743 
750 #define GAP_PRIVACY_MODE_NETWORK 0
751 #define GAP_PRIVACY_MODE_DEVICE 1
752 
753 /*-------------------------------------------------------------------
754  * TYPEDEFS - Initialization and Configuration
755  */
756 
766 typedef uint16 gapParamIDs_t;
767 
769 typedef struct
770 {
772  uint8 opcode;
773 } gapEventHdr_t;
774 
785 typedef struct
786 {
788  uint8 opcode;
789  uint8 addrMode;
790  uint8 newRandomAddr[B_ADDR_LEN];
792 
802 typedef struct
803 {
805  uint16 intervalMin;
807  uint16 intervalMax;
809  uint16 latency;
811  uint16 timeout;
813 
826 typedef struct
827 {
829  uint8 opcode;
830  uint8 devAddr[B_ADDR_LEN];
831  uint16 dataPktLen;
832  uint8 numDataPkts;
834 
845 typedef struct
846 {
848  uint8 opcode;
849  uint8 addrType;
850  uint8 devAddr[B_ADDR_LEN];
851  uint32 signCounter;
853 
861 typedef struct
862 {
864  uint8 opcode;
865  uint8 eventType;
866  uint8 addrType;
867  uint8 addr[B_ADDR_LEN];
868  int8 rssi;
869  uint8 dataLen;
870  uint8 *pEvtData;
872  // end of GAP_Events
874 
875 /*-------------------------------------------------------------------
876  * TYPEDEFS - Device Discovery
877  */
878 
880 typedef struct
881 {
882  uint8 taskID;
883  uint8 mode;
884  uint8 activeScan;
885  uint8 whiteList;
887 
889 typedef struct
890 {
891  uint8 eventType;
892  uint8 addrType;
893  uint8 addr[B_ADDR_LEN];
894 } gapDevRec_t;
895 
907 typedef struct
908 {
910  uint8 opcode;
911  uint8 numDevs;
914  // end of GAP_Events
916 
918 typedef struct
919 {
920  uint8 eventType;
922  uint8 initiatorAddr[B_ADDR_LEN];
923  uint8 channelMap;
924  uint8 filterPolicy;
926 
938 typedef struct
939 {
941  uint8 opcode;
943 
950 typedef struct
951 {
953  uint8 opcode;
955 
962 typedef struct
963 {
965  uint8 opcode;
966  uint8 adType;
968  // end of GAP_Events
970 
971 /*-------------------------------------------------------------------
972  * TYPEDEFS - Link Establishment
973  */
974 
976 typedef struct
977 {
978  uint8 taskID;
980  uint8 whiteList;
981  uint8 addrTypePeer;
982  uint8 peerAddr[B_ADDR_LEN];
984 
986 typedef struct
987 {
989  uint16 intervalMin;
990  uint16 intervalMax;
991  uint16 connLatency;
992  uint16 connTimeout;
994 
996 typedef struct
997 {
999  uint16 intervalMin;
1000  uint16 intervalMax;
1001  uint16 connLatency;
1002  uint16 connTimeout;
1003  uint8 accepted;
1005 
1017 typedef struct
1018 {
1020  uint8 opcode;
1023 
1033 typedef struct
1034 {
1036  uint8 opcode;
1037  uint8 devAddrType;
1038  uint8 devAddr[B_ADDR_LEN];
1040  uint8 connRole;
1041  uint16 connInterval;
1042  uint16 connLatency;
1043  uint16 connTimeout;
1046 
1053 typedef struct
1054 {
1056  uint8 opcode;
1057  uint8 status;
1059  uint16 connInterval;
1060  uint16 connLatency;
1061  uint16 connTimeout;
1063 
1070 typedef struct
1071 {
1073  uint8 opcode;
1075  uint8 reason;
1077 
1078 /*-------------------------------------------------------------------
1079  * TYPEDEFS - Authentication, Bounding and Pairing
1080  */
1081 
1088 typedef struct
1089 {
1091  uint8 opcode;
1092  uint8 deviceAddr[B_ADDR_LEN];
1094  uint8 uiInputs;
1095  uint8 uiOutputs;
1096  uint32 numComparison;
1098 
1105 typedef struct
1106 {
1108  uint8 opcode;
1110  uint8 authState;
1116  // end of GAP_Events
1118 
1125 typedef struct
1126 {
1129 } gapAuthParams_t;
1130 
1142 typedef struct
1143 {
1145  uint8 opcode;
1147  uint8 deviceAddr[B_ADDR_LEN];
1148  uint8 authReq;
1150 
1157 typedef struct
1158 {
1160  uint8 opcode;
1163  // end of GAP_Events
1165 
1167 typedef struct
1168 {
1169  uint8 ioCap;
1170  uint8 oobDataFlag;
1171  uint8 authReq;
1174 } gapPairingReq_t;
1175 
1192 typedef struct
1193 {
1195  uint8 opcode;
1199  // end of GAP_Events
1201 
1209 typedef struct
1210 {
1211  uint8 adType;
1212  uint8 attrLen;
1213  uint8 *pAttrData;
1215 
1222 typedef uint8 (*pfnSuppEnhPrivCB_t)
1225  uint8 *deviceAddr
1226 );
1227 
1229 typedef void (*pfnGapIdleCB_t)();
1230 
1231 
1233 typedef uint8 (*pfnGapDevPrivModeCB_t)
1235  uint8 addrType,
1236  uint8 *pAddr
1237 );
1238 
1240 typedef struct
1241 {
1245 } gapBondMgrCBs_t;
1246 
1249 /*-------------------------------------------------------------------
1250  * GLOBAL VARIABLES
1251  */
1252 
1253 /*-------------------------------------------------------------------
1254  * FUNCTIONS - Initialization and Configuration
1255  */
1256 
1283  extern bStatus_t GAP_DeviceInit( uint8 taskID,
1284  uint8 profileRole,
1285  uint8 maxScanResponses,
1286  uint8 *pIRK,
1287  uint8 *pSRK,
1288  uint32 *pSignCounter );
1289 
1299  extern void GAP_UpdateResolvingList( uint8 *pIRK );
1300 
1320  extern bStatus_t GAP_SetAdvToken( gapAdvDataToken_t *pToken );
1321 
1331  extern gapAdvDataToken_t *GAP_GetAdvToken( uint8 adType );
1332 
1343  extern gapAdvDataToken_t *GAP_RemoveAdvToken( uint8 adType );
1344 
1353  extern bStatus_t GAP_UpdateAdvTokens( void );
1354 
1367  extern bStatus_t GAP_SetParamValue( gapParamIDs_t paramID, uint16 paramValue );
1368 
1377  extern uint16 GAP_GetParamValue( gapParamIDs_t paramID );
1378 
1406  extern bStatus_t GAP_ConfigDeviceAddr( uint8 addrMode, uint8 *pStaticAddr );
1407 
1416  extern void GAP_RegisterForMsgs( uint8 taskID );
1417 
1423  extern void GAP_RegisterBondMgrCBs( gapBondMgrCBs_t *pCBs );
1424 
1425 #if defined (BLE_V42_FEATURES) && (BLE_V42_FEATURES & PRIVACY_1_2_CFG)
1426 
1438  extern bStatus_t GAP_SetPrivacyMode( uint8 addrType, uint8 *pAddr, uint8 mode );
1439 #endif // BLE_V42_FEATURES & PRIVACY_1_2_CFG
1440 
1441 /*-------------------------------------------------------------------
1442  * FUNCTIONS - Device Discovery
1443  */
1444 
1461 
1475  extern bStatus_t GAP_DeviceDiscoveryCancel( uint8 taskID );
1476 
1491  extern bStatus_t GAP_MakeDiscoverable( uint8 taskID, gapAdvertisingParams_t *pParams );
1492 
1507  extern bStatus_t GAP_UpdateAdvertisingData( uint8 taskID, uint8 adType,
1508  uint8 dataLen, uint8 *pAdvertData );
1509 
1522  extern bStatus_t GAP_EndDiscoverable( uint8 taskID );
1523 
1524 #if !defined (BLE_V42_FEATURES) || !(BLE_V42_FEATURES & PRIVACY_1_2_CFG)
1525 
1535  extern bStatus_t GAP_ResolvePrivateAddr( uint8 *pIRK, uint8 *pAddr );
1536 #endif // ! BLE_V42_FEATURES | ! PRIVACY_1_2_CFG
1537 
1538 /*-------------------------------------------------------------------
1539  * FUNCTIONS - Link Establishment
1540  */
1541 
1556  extern bStatus_t GAP_EstablishLinkReq( gapEstLinkReq_t *pParams );
1557 
1573  extern bStatus_t GAP_TerminateLinkReq( uint8 taskID, uint16 connectionHandle, uint8 reason );
1574 
1591 
1618 
1624  extern uint8 GAP_NumActiveConnections( void );
1625 
1626 /*-------------------------------------------------------------------
1627  * FUNCTIONS - Pairing
1628  */
1629 
1657  extern bStatus_t GAP_Authenticate( gapAuthParams_t *pParams, gapPairingReq_t *pPairReq );
1658 
1665  extern uint8 GAP_isPairing(void);
1666 
1684  extern bStatus_t GAP_TerminateAuth( uint16 connectionHandle, uint8 reason );
1685 
1705  extern bStatus_t GAP_PasskeyUpdate( uint8 *pPasskey, uint16 connectionHandle );
1706 
1725  extern bStatus_t GAP_PasscodeUpdate( uint32 passcode, uint16 connectionHandle );
1726 
1741  extern bStatus_t GAP_SendSlaveSecurityRequest( uint16 connectionHandle, uint8 authReq );
1742 
1759  extern bStatus_t GAP_Signable( uint16 connectionHandle, uint8 authenticated, smSigningInfo_t *pParams );
1760 
1782  extern bStatus_t GAP_Bond( uint16 connectionHandle, uint8 authenticated,
1783  uint8 secureConnections, smSecurityInfo_t *pParams,
1784  uint8 startEncryption );
1785 
1786 /*-------------------------------------------------------------------
1787  * Internal API - These functions are only called from gap.c module.
1788  */
1789 
1791 
1802  extern bStatus_t GAP_ParamsInit( uint8 taskID, uint8 profileRole );
1803 
1811  extern void GAP_PrivacyInit( uint8 *pIRK );
1812 
1820  extern uint8 *GAP_GetIRK( void );
1821 
1834  extern void GAP_SecParamsInit( uint8 *pSRK, uint32 *pSignCounter );
1835 
1843  extern bStatus_t GAP_PeriDevMgrInit( void );
1844 
1851  extern void GAP_PeriConnRegister( void );
1852 
1864  extern bStatus_t GAP_CentDevMgrInit( uint8 maxScanResponses );
1865 
1872  extern void GAP_CentConnRegister( void );
1873 
1874 
1875 /*-------------------------------------------------------------------
1876  * TASK API - These functions must only be called OSAL.
1877  */
1878 
1886  extern void GAP_Init( uint8 task_id );
1887 
1898  extern uint16 GAP_ProcessEvent( uint8 task_id, uint16 events );
1899 
1901 
1902 /*-------------------------------------------------------------------
1903 -------------------------------------------------------------------*/
1904 
1905 #ifdef __cplusplus
1906 }
1907 #endif
1908 
1909 #endif /* GAP_H */
1910 
bStatus_t GAP_ResolvePrivateAddr(uint8 *pIRK, uint8 *pAddr)
Resolves a private address against an IRK.
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:964
uint8 authState
TRUE if the pairing was authenticated (MITM)
Definition: gap.h:1110
uint8 opcode
GAP_MAKE_DISCOVERABLE_DONE_EVENT
Definition: gap.h:941
uint8 opcode
GAP_END_DISCOVERABLE_DONE_EVENT
Definition: gap.h:953
bStatus_t GAP_SetAdvToken(gapAdvDataToken_t *pToken)
Set Advertising Token.
uint8 opcode
GAP_SIGNATURE_UPDATED_EVENT
Definition: gap.h:848
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:847
uint8 eventType
Advertise Event Type: GAP Advertising Event Types.
Definition: gap.h:920
This API allows the software components in the Z-Stack to be written independently of the specifics o...
uint16 connectionHandle
connection Handle
Definition: gap.h:1161
uint8 attrLen
Number of bytes in the attribute data.
Definition: gap.h:1212
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:787
uint8 authReq
Authentication Requirements: Bit 2: MITM, Bits 0-1: bonding (0 - no bonding, 1 - bonding) ...
Definition: gap.h:1148
This file contains the interface to the SM.
bStatus_t GAP_DeviceDiscoveryRequest(gapDevDiscReq_t *pParams)
Start a device discovery scan.
Definition: sm.h:190
smSecurityInfo_t * pSecurityInfo
BOUND - security information from this device.
Definition: gap.h:1111
bStatus_t GAP_TerminateAuth(uint16 connectionHandle, uint8 reason)
Terminate Authnetication.
Authentication Parameters.
Definition: gap.h:1125
bStatus_t GAP_PasskeyUpdate(uint8 *pPasskey, uint16 connectionHandle)
Update the passkey in string format.
GAP_MAKE_DISCOVERABLE_DONE_EVENT message format.
Definition: gap.h:938
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1144
uint8 mode
Discovery Mode: GAP Device Discovery Modes.
Definition: gap.h:883
bStatus_t GAP_EstablishLinkReq(gapEstLinkReq_t *pParams)
Establish a link to a slave device.
uint8 adType
ADTYPE value: Address Types.
Definition: gap.h:1211
smSigningInfo_t * pSigningInfo
Signing information.
Definition: gap.h:1112
uint8 addrType
Device's address type for devAddr.
Definition: gap.h:849
uint16 connectionHandle
Connection Handle.
Definition: gap.h:1146
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:828
uint16 latency
Definition: gap.h:809
uint8 dataLen
Length (in bytes) of the data field (evtData)
Definition: gap.h:869
uint16 gapParamIDs_t
GAP Parameters IDs.
Definition: gap.h:766
uint8 adType
TRUE if advertising data, FALSE if SCAN_RSP.
Definition: gap.h:966
GAP_PASSKEY_NEEDED_EVENT message format.
Definition: gap.h:1088
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:771
Connection parameters for the peripheral device.
Definition: gap.h:802
GAP_DEVICE_INIT_DONE_EVENT message format.
Definition: gap.h:826
uint8 taskID
Requesting App's Task ID, used to return results.
Definition: gap.h:882
GAP_SLAVE_REQUESTED_SECURITY_EVENT message format.
Definition: gap.h:1142
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:940
bStatus_t GAP_TerminateLinkReq(uint8 taskID, uint16 connectionHandle, uint8 reason)
Terminate a link connection.
GAP event header format.
Definition: gap.h:769
GAP_BOND_COMPLETE_EVENT message format.
Definition: gap.h:1157
uint8 eventType
Indicates advertising event type used by the advertiser: GAP Advertising Report Event Types...
Definition: gap.h:891
bStatus_t GAP_Bond(uint16 connectionHandle, uint8 authenticated, uint8 secureConnections, smSecurityInfo_t *pParams, uint8 startEncryption)
Set up the connection's bound paramaters.
uint16 connectionHandle
Connection Handle from controller,.
Definition: gap.h:1127
GAP_PAIRING_REQ_EVENT message format.
Definition: gap.h:1192
uint8 addrType
Address Type: Address Types.
Definition: gap.h:892
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1159
uint8 uiInputs
Pairing User Interface Inputs - Ask user to input passcode.
Definition: gap.h:1094
uint8 numDevs
Number of devices found during scan.
Definition: gap.h:911
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1090
bStatus_t GAP_UpdateLinkParamReq(gapUpdateLinkParamReq_t *pParams)
Update the link parameters to a Master or Slave device.
uint8 opcode
GAP type of command. GAP Event IDs.
Definition: gap.h:772
keyDist_t keyDist
Pairing Request Key Distribution field.
Definition: gap.h:1173
uint8(* pfnSuppEnhPrivCB_t)(uint8 *deviceAddr)
Enhanced Privacy Check Callback Function.
Definition: gap.h:1224
uint8 maxEncKeySize
Pairing Request Maximum Encryption Key Size field.
Definition: gap.h:1172
bStatus_t GAP_Signable(uint16 connectionHandle, uint8 authenticated, smSigningInfo_t *pParams)
Set up the connection to accept signed data.
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:863
GAP_SIGNATURE_UPDATED_EVENT message format.
Definition: gap.h:845
uint8 numDataPkts
HC_Total_Num_LE_Data_Packets.
Definition: gap.h:832
uint8 opcode
GAP_PAIRING_REQ_EVENT
Definition: gap.h:1195
uint8 opcode
GAP_SLAVE_REQUESTED_SECURITY_EVENT
Definition: gap.h:1145
Definition: sm.h:144
uint8 opcode
GAP_DEVICE_INFO_EVENT
Definition: gap.h:864
uint8 initiatorAddrType
Initiator's address type: Address Types.
Definition: gap.h:921
uint8 opcode
GAP_ADV_DATA_UPDATE_DONE_EVENT
Definition: gap.h:965
uint16 intervalMax
Definition: gap.h:807
Type of device discovery (Scan) to perform.
Definition: gap.h:889
uint16 GAP_GetParamValue(gapParamIDs_t paramID)
Get a GAP Parameter value.
uint8 opcode
GAP_DEVICE_INIT_DONE_EVENT
Definition: gap.h:829
bStatus_t GAP_MakeDiscoverable(uint8 taskID, gapAdvertisingParams_t *pParams)
Setup or change advertising. Also starts advertising.
bStatus_t GAP_DeviceDiscoveryCancel(uint8 taskID)
Cancel an existing device discovery request.
smIdentityInfo_t * pIdentityInfo
BOUND - identity information.
Definition: gap.h:1114
void GAP_UpdateResolvingList(uint8 *pIRK)
Update the resolving list.
Definition: sm.h:201
void GAP_RegisterBondMgrCBs(gapBondMgrCBs_t *pCBs)
Register bond manager call backs.
GAP_DEVICE_INFO_EVENT message format.
Definition: gap.h:861
uint8 uiOutputs
Pairing User Interface Outputs - Display passcode.
Definition: gap.h:1095
bStatus_t GAP_ConfigDeviceAddr(uint8 addrMode, uint8 *pStaticAddr)
Configure Device Address.
uint16 connectionHandle
Connection Handle from controller used to ref the device.
Definition: gap.h:1109
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:952
uint8 opcode
GAP_DEVICE_DISCOVERY_EVENT
Definition: gap.h:910
GAP_ADV_DATA_UPDATE_DONE_EVENT message format.
Definition: gap.h:962
uint16 connectionHandle
connection Handle
Definition: gap.h:1196
uint32 signCounter
new Signed Counter
Definition: gap.h:851
smLinkSecurityReq_t secReqs
Pairing Control info.
Definition: gap.h:1128
uint8 addrType
address type: Address Types
Definition: gap.h:866
uint16 timeout
Definition: gap.h:811
bStatus_t GAP_UpdateAdvTokens(void)
Update Advertising Token.
gapAdvDataToken_t * GAP_GetAdvToken(uint8 adType)
Get Advertising Token.
uint16 intervalMin
Definition: gap.h:805
uint8 oobDataFlag
Pairing Request OOB Data Flag field.
Definition: gap.h:1170
int8 rssi
Advertisement or SCAN_RSP RSSI.
Definition: gap.h:868
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:909
Type of device discovery (Scan) to perform.
Definition: gap.h:880
uint8 opcode
GAP_AUTHENTICATION_COMPLETE_EVENT
Definition: gap.h:1108
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1107
Type definitions and macros for BLE stack.
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1194
smSecurityInfo_t * pDevSecInfo
BOUND - security information from connected device.
Definition: gap.h:1113
void(* pfnGapIdleCB_t)()
GAP Idle Callback Function.
Definition: gap.h:1229
Definition: sm.h:211
uint8 channelMap
Channel Map: Bit mask GAP Advertisement Channel Map.
Definition: gap.h:923
uint8 addrMode
Address mode: GAP Addressing Modes.
Definition: gap.h:789
uint8 filterPolicy
Filer Policy: GAP Advertiser Filter Scan Parameters. Ignored when directed advertising is used...
Definition: gap.h:924
GAP_END_DISCOVERABLE_DONE_EVENT message format.
Definition: gap.h:950
uint8 opcode
GAP_PASSKEY_NEEDED_EVENT
Definition: gap.h:1091
bStatus_t GAP_PasscodeUpdate(uint32 passcode, uint16 connectionHandle)
Update the passkey in a numeric value (not string).
void GAP_RegisterForMsgs(uint8 taskID)
Register for GAP Messages.
OSAL Event Header.
Definition: osal.h:92
bStatus_t GAP_UpdateLinkParamReqReply(gapUpdateLinkParamReqReply_t *pParams)
Reply to a Connection Parameter Update Request sent from a peer device.
pfnSuppEnhPrivCB_t supportEnhPrivCB
Supports Enhanced Privacy callback.
Definition: gap.h:1242
uint8 opcode
GAP_RANDOM_ADDR_CHANGED_EVENT
Definition: gap.h:788
#define B_ADDR_LEN
Default Public and Random Address Length.
Definition: bcomdef.h:112
uint8 eventType
Advertisement Type: GAP Advertising Report Event Types.
Definition: gap.h:865
uint8 ioCap
Pairing Request ioCap field.
Definition: gap.h:1169
GAP_AUTHENTICATION_COMPLETE_EVENT message format.
Definition: gap.h:1105
Callback Registration Structure.
Definition: gap.h:1240
uint8 GAP_isPairing(void)
Check if GAP is currently pairing.
uint8 opcode
GAP_BOND_COMPLETE_EVENT
Definition: gap.h:1160
uint8 * pAttrData
pointer to Attribute data
Definition: gap.h:1213
pfnGapIdleCB_t gapIdleCB
GAP Idle callback.
Definition: gap.h:1243
Status_t bStatus_t
BLE Generic Status return.
Definition: bcomdef.h:225
GAP_DEVICE_DISCOVERY_EVENT message format.
Definition: gap.h:907
GAP_RANDOM_ADDR_CHANGED_EVENT message format.
Definition: gap.h:785
bStatus_t GAP_SendSlaveSecurityRequest(uint16 connectionHandle, uint8 authReq)
Generate a Slave Requested Security message to the master.
bStatus_t GAP_EndDiscoverable(uint8 taskID)
Stops advertising.
uint8 GAP_NumActiveConnections(void)
Returns the number of active connections.
uint8 activeScan
TRUE for active scanning.
Definition: gap.h:884
Pairing Request fields - the parsed fields of the SMP Pairing Request command.
Definition: gap.h:1167
uint8 * pEvtData
Data field of advertisement or SCAN_RSP.
Definition: gap.h:870
Advertising Parameters.
Definition: gap.h:918
bStatus_t GAP_UpdateAdvertisingData(uint8 taskID, uint8 adType, uint8 dataLen, uint8 *pAdvertData)
Setup or change advertising and scan response data.
uint16 dataPktLen
HC_LE_Data_Packet_Length.
Definition: gap.h:831
uint32 numComparison
Numeric Comparison value to be displayed.
Definition: gap.h:1096
uint8(* pfnGapDevPrivModeCB_t)(uint8 addrType, uint8 *pAddr)
GAP Device Privacy Mode Callback Function.
Definition: gap.h:1234
gapPairingReq_t pairReq
The Pairing Request fields received.
Definition: gap.h:1197
bStatus_t GAP_Authenticate(gapAuthParams_t *pParams, gapPairingReq_t *pPairReq)
Start Authentication.
bStatus_t GAP_DeviceInit(uint8 taskID, uint8 profileRole, uint8 maxScanResponses, uint8 *pIRK, uint8 *pSRK, uint32 *pSignCounter)
GAP Device Initialiation.
uint8 whiteList
Filer Policy: GAP Discovery Filter Scan Parameters.
Definition: gap.h:885
uint16 connectionHandle
Connection handle.
Definition: gap.h:1093
GAP Advertisement/Scan Response Data Token.
Definition: gap.h:1209
gapAdvDataToken_t * GAP_RemoveAdvToken(uint8 adType)
Remove Advertising Token.
pfnGapDevPrivModeCB_t gapDevPrivModeCB
GAP Device Privacy Mode callback.
Definition: gap.h:1244
uint8 authReq
Pairing Request Auth Req field.
Definition: gap.h:1171
gapDevRec_t * pDevList
array of device records
Definition: gap.h:912
bStatus_t GAP_SetParamValue(gapParamIDs_t paramID, uint16 paramValue)
Set a GAP Parameter value.
Copyright 2017, Texas Instruments Incorporated