TI BLE-Stack for Bluetooth API Documentation  3.03.08.00
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 
242 #define TGAP_LIM_DISC_ADV_INT_MIN 6
243 
255 #define TGAP_LIM_DISC_ADV_INT_MAX 7
256 
268 #define TGAP_GEN_DISC_ADV_INT_MIN 8
269 
281 #define TGAP_GEN_DISC_ADV_INT_MAX 9
282 
290 #define TGAP_CONN_ADV_INT_MIN 10
291 
299 #define TGAP_CONN_ADV_INT_MAX 11
300 
308 #define TGAP_CONN_SCAN_INT 12
309 
317 #define TGAP_CONN_SCAN_WIND 13
318 
326 #define TGAP_CONN_HIGH_SCAN_INT 14
327 
335 #define TGAP_CONN_HIGH_SCAN_WIND 15
336 
344 #define TGAP_GEN_DISC_SCAN_INT 16
345 
353 #define TGAP_GEN_DISC_SCAN_WIND 17
354 
362 #define TGAP_LIM_DISC_SCAN_INT 18
363 
371 #define TGAP_LIM_DISC_SCAN_WIND 19
372 
374 
379 #define TGAP_CONN_EST_ADV 20
380 
389 #define TGAP_CONN_EST_INT_MIN 21
390 
398 #define TGAP_CONN_EST_INT_MAX 22
399 
407 #define TGAP_CONN_EST_SCAN_INT 23
408 
416 #define TGAP_CONN_EST_SCAN_WIND 24
417 
425 #define TGAP_CONN_EST_SUPERV_TIMEOUT 25
426 
434 #define TGAP_CONN_EST_LATENCY 26
435 
443 #define TGAP_CONN_EST_MIN_CE_LEN 27
444 
452 #define TGAP_CONN_EST_MAX_CE_LEN 28
453 
461 #define TGAP_PRIVATE_ADDR_INT 29
462 
470 #define TGAP_CONN_PAUSE_CENTRAL 30
471 
479 #define TGAP_CONN_PAUSE_PERIPHERAL 31
480 
488 #define TGAP_SM_TIMEOUT 32
489 
497 #define TGAP_SM_MIN_KEY_LEN 33
498 
506 #define TGAP_SM_MAX_KEY_LEN 34
507 
515 #define TGAP_FILTER_ADV_REPORTS 35
516 
524 #define TGAP_SCAN_RSP_RSSI_MIN 36
525 
533 #define TGAP_REJECT_CONN_PARAMS 37
534 
536 #if !defined ( TESTMODES )
537  #define TGAP_AUTH_TASK_ID 38
538  #define TGAP_VERIFY_CAR 39
539 
547  #define TGAP_FAST_INTERVAL_2_INT_MIN 40
548 
555  #define TGAP_FAST_INTERVAL_2_INT_MAX 41
556 
562  #define TGAP_STUB_1 42
563 
569  #define TGAP_STUB_2 43
570 
580  #define TGAP_SET_SCAN_CHAN 44
581 
583  #define TGAP_PARAMID_MAX 45
584 #else
585  #define TGAP_GAP_TESTCODE 38
586  #define TGAP_SM_TESTCODE 39
587  #define TGAP_AUTH_TASK_ID 40
588  #define TGAP_VERIFY_CAR 41
589 
590 
597  #define TGAP_FAST_INTERVAL_2_INT_MIN 42
598 
605  #define TGAP_FAST_INTERVAL_2_INT_MAX 43
606 
616  #define TGAP_SET_SCAN_CHAN 44
617  #define TGAP_PARAMID_MAX 45
618 
619  #define TGAP_GATT_TESTCODE 100
620  #define TGAP_ATT_TESTCODE 101
621  #define TGAP_GGS_TESTCODE 102
622  #define TGAP_L2CAP_TESTCODE 103
623 #endif
624 
631 #define DEVDISC_MODE_NONDISCOVERABLE 0x00
632 #define DEVDISC_MODE_GENERAL 0x01
633 #define DEVDISC_MODE_LIMITED 0x02
634 #define DEVDISC_MODE_ALL 0x03
635 
640 #define ADDRTYPE_PUBLIC 0x00
641 #define ADDRTYPE_RANDOM 0x01
642 #define ADDRTYPE_PUBLIC_ID 0x02
643 #define ADDRTYPE_RANDOM_ID 0x03
644 
649 #define SET_ADDRTYPE_ID 0x02
650 #define MASK_ADDRTYPE_ID 0x01
651 
656 #define RANDOM_ADDR_SUBTYPE_STATIC 0x00
657 #define RANDOM_ADDR_SUBTYPE_RPA 0x01
658 #define RANDOM_ADDR_SUBTYPE_NRPA 0x02
659 
664 #define RANDOM_ADDR_HDR_MASK 0xC0
665 #define STATIC_ADDR_HDR 0xC0
666 #define PRIVATE_NON_RESOLVE_ADDR_HDR 0x80
667 #define PRIVATE_RESOLVE_ADDR_HDR 0x40
668 
673 #define ADDRMODE_PUBLIC 0x00
674 #define ADDRMODE_STATIC 0x01
675 #define ADDRMODE_PRIVATE_NONRESOLVE 0x02
676 #define ADDRMODE_PRIVATE_RESOLVE 0x03
677 
683 #define GAP_ADTYPE_ADV_IND 0x00
684 #define GAP_ADTYPE_ADV_HDC_DIRECT_IND 0x01
685 #define GAP_ADTYPE_ADV_SCAN_IND 0x02
686 #define GAP_ADTYPE_ADV_NONCONN_IND 0x03
687 #define GAP_ADTYPE_ADV_LDC_DIRECT_IND 0x04
688 
694 #define GAP_ADRPT_ADV_IND 0x00
695 #define GAP_ADRPT_ADV_DIRECT_IND 0x01
696 #define GAP_ADRPT_ADV_SCAN_IND 0x02
697 #define GAP_ADRPT_ADV_NONCONN_IND 0x03
698 #define GAP_ADRPT_SCAN_RSP 0x04
699 
704 #define GAP_FILTER_POLICY_ALL 0x00
705 #define GAP_FILTER_POLICY_WHITE_SCAN 0x01
706 #define GAP_FILTER_POLICY_WHITE_CON 0x02
707 #define GAP_FILTER_POLICY_WHITE 0x03
708 
720 #define GAP_DISC_FILTER_POLICY_ALL 0x00
721 #define GAP_DISC_FILTER_POLICY_WHITE 0x01
722 #define GAP_DISC_FILTER_POLICY_ALL_DIRECT 0x02
723 #define GAP_DISC_FILTER_POLICY_WHITE_DIRECT 0x03
724 
726 #define ADV_CHANMAP_SIZE 5
727 
728 #define GAP_PASSCODE_MAX 999999
729 
730 
736 #define GAP_INIT_SIGN_COUNTER 0xFFFFFFFF
737 
741 #define GAP_ADVCHAN_37 0x01
742 #define GAP_ADVCHAN_38 0x02
743 #define GAP_ADVCHAN_39 0x04
744 #define GAP_ADVCHAN_ALL (GAP_ADVCHAN_37 | GAP_ADVCHAN_38 | GAP_ADVCHAN_39)
745 
750 #define WL_NOTUSED 0x00
751 #define WL_USED 0x01
752 
758 #define GAP_ADTYPE_FLAGS 0x01
759 #define GAP_ADTYPE_16BIT_MORE 0x02
760 #define GAP_ADTYPE_16BIT_COMPLETE 0x03
761 #define GAP_ADTYPE_32BIT_MORE 0x04
762 #define GAP_ADTYPE_32BIT_COMPLETE 0x05
763 #define GAP_ADTYPE_128BIT_MORE 0x06
764 #define GAP_ADTYPE_128BIT_COMPLETE 0x07
765 #define GAP_ADTYPE_LOCAL_NAME_SHORT 0x08
766 #define GAP_ADTYPE_LOCAL_NAME_COMPLETE 0x09
767 #define GAP_ADTYPE_POWER_LEVEL 0x0A
768 #define GAP_ADTYPE_OOB_CLASS_OF_DEVICE 0x0D
769 #define GAP_ADTYPE_OOB_SIMPLE_PAIRING_HASHC 0x0E
770 #define GAP_ADTYPE_OOB_SIMPLE_PAIRING_RANDR 0x0F
771 #define GAP_ADTYPE_SM_TK 0x10
772 #define GAP_ADTYPE_SM_OOB_FLAG 0x11
773 #define GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE 0x12
774 #define GAP_ADTYPE_SIGNED_DATA 0x13
775 #define GAP_ADTYPE_SERVICES_LIST_16BIT 0x14
776 #define GAP_ADTYPE_SERVICES_LIST_128BIT 0x15
777 #define GAP_ADTYPE_SERVICE_DATA 0x16
778 #define GAP_ADTYPE_PUBLIC_TARGET_ADDR 0x17
779 #define GAP_ADTYPE_RANDOM_TARGET_ADDR 0x18
780 #define GAP_ADTYPE_APPEARANCE 0x19
781 #define GAP_ADTYPE_ADV_INTERVAL 0x1A
782 #define GAP_ADTYPE_LE_BD_ADDR 0x1B
783 #define GAP_ADTYPE_LE_ROLE 0x1C
784 #define GAP_ADTYPE_SIMPLE_PAIRING_HASHC_256 0x1D
785 #define GAP_ADTYPE_SIMPLE_PAIRING_RANDR_256 0x1E
786 #define GAP_ADTYPE_SERVICE_DATA_32BIT 0x20
787 #define GAP_ADTYPE_SERVICE_DATA_128BIT 0x21
788 #define GAP_ADTYPE_3D_INFO_DATA 0x3D
789 #define GAP_ADTYPE_MANUFACTURER_SPECIFIC 0xFF
790 #define GAP_ADTYPE_FLAGS_LIMITED 0x01
791 #define GAP_ADTYPE_FLAGS_GENERAL 0x02
792 #define GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED 0x04
793 
798 #define GAP_STATE_IDLE 0x00
799 #define GAP_STATE_ADV 0x01
800 #define GAP_STATE_SCAN 0x02
801 #define GAP_STATE_INIT 0x04
802 
807 #define GAP_APPEARE_UNKNOWN 0x0000
808 #define GAP_APPEARE_GENERIC_PHONE 0x0040
809 #define GAP_APPEARE_GENERIC_COMPUTER 0x0080
810 #define GAP_APPEARE_GENERIC_WATCH 0x00C0
811 #define GAP_APPEARE_WATCH_SPORTS 0x00C1
812 #define GAP_APPEARE_GENERIC_CLOCK 0x0100
813 #define GAP_APPEARE_GENERIC_DISPLAY 0x0140
814 #define GAP_APPEARE_GENERIC_RC 0x0180
815 #define GAP_APPEARE_GENERIC_EYE_GALSSES 0x01C0
816 #define GAP_APPEARE_GENERIC_TAG 0x0200
817 #define GAP_APPEARE_GENERIC_KEYRING 0x0240
818 #define GAP_APPEARE_GENERIC_MEDIA_PLAYER 0x0280
819 #define GAP_APPEARE_GENERIC_BARCODE_SCANNER 0x02C0
820 #define GAP_APPEARE_GENERIC_THERMOMETER 0x0300
821 #define GAP_APPEARE_GENERIC_THERMO_EAR 0x0301
822 #define GAP_APPEARE_GENERIC_HR_SENSOR 0x0340
823 #define GAP_APPEARE_GENERIC_HRS_BELT 0x0341
824 #define GAP_APPEARE_GENERIC_BLOOD_PRESSURE 0x0380
825 #define GAP_APPEARE_GENERIC_BP_ARM 0x0381
826 #define GAP_APPEARE_GENERIC_BP_WRIST 0x0382
827 #define GAP_APPEARE_GENERIC_HID 0x03C0
828 #define GAP_APPEARE_HID_KEYBOARD 0x03C1
829 #define GAP_APPEARE_HID_MOUSE 0x03C2
830 #define GAP_APPEARE_HID_JOYSTIC 0x03C3
831 #define GAP_APPEARE_HID_GAMEPAD 0x03C4
832 #define GAP_APPEARE_HID_DIGITIZER_TYABLET 0x03C5
833 #define GAP_APPEARE_HID_DIGITAL_CARDREADER 0x03C6
834 #define GAP_APPEARE_HID_DIGITAL_PEN 0x03C7
835 #define GAP_APPEARE_HID_BARCODE_SCANNER 0x03C8
836 
841 #define GAP_LLERROR_COMMAND_DISALLOWED 0x0C
842 #define GAP_LLERROR_INVALID_PARAMETERS 0x12
843 
848 typedef enum
849 {
850  GAP_ADV_CHAN_37 = BV(0),
851  GAP_ADV_CHAN_38 = BV(1),
852  GAP_ADV_CHAN_39 = BV(2),
854  GAP_ADV_CHAN_38),
856  GAP_ADV_CHAN_39),
858  GAP_ADV_CHAN_39),
863 
867 typedef enum
868 {
870  GAP_CONN_EVT_STAT_SUCCESS = LL_CONN_EVT_STAT_SUCCESS,
872  GAP_CONN_EVT_STAT_CRC_ERROR = LL_CONN_EVT_STAT_CRC_ERROR,
874  GAP_CONN_EVT_STAT_MISSED = LL_CONN_EVT_STAT_MISSED
876 
880 typedef enum
881 {
883  GAP_CONN_EVT_TASK_TYPE_ADV = LL_TASK_ID_ADVERTISER,
885  GAP_CONN_EVT_TASK_TYPE_INIT = LL_TASK_ID_INITIATOR,
887  GAP_CONN_EVT_TASK_TYPE_SLAVE = LL_TASK_ID_SLAVE,
889  GAP_CONN_EVT_TASK_TYPE_SCAN = LL_TASK_ID_SCANNER,
891  GAP_CONN_EVT_TASK_TYPE_MASTER = LL_TASK_ID_MASTER,
892  // No task
893  GAP_CONN_EVT_TASK_TYPE_NONE = LL_TASK_ID_NONE
895 
899 typedef enum
900 {
904 
905 
908 /*-------------------------------------------------------------------
909  * TYPEDEFS - Initialization and Configuration
910  */
911 
921 typedef uint16 gapParamIDs_t;
922 
924 typedef struct
925 {
927  uint8 opcode;
928 } gapEventHdr_t;
929 
940 typedef struct
941 {
943  uint8 opcode;
944  uint8 addrMode;
945  uint8 newRandomAddr[B_ADDR_LEN];
947 
957 typedef struct
958 {
960  uint16 intervalMin;
962  uint16 intervalMax;
964  uint16 latency;
966  uint16 timeout;
968 
981 typedef struct
982 {
984  uint8 opcode;
985  uint8 devAddr[B_ADDR_LEN];
986  uint16 dataPktLen;
987  uint8 numDataPkts;
989 
1000 typedef struct
1001 {
1003  uint8 opcode;
1004  uint8 addrType;
1005  uint8 devAddr[B_ADDR_LEN];
1006  uint32 signCounter;
1008 
1016 typedef struct
1017 {
1019  uint8 opcode;
1020  uint8 eventType;
1021  uint8 addrType;
1022  uint8 addr[B_ADDR_LEN];
1023  int8 rssi;
1024  uint8 dataLen;
1025  uint8 *pEvtData;
1027  // end of GAP_Events
1029 
1030 /*-------------------------------------------------------------------
1031  * TYPEDEFS - Device Discovery
1032  */
1033 
1035 typedef struct
1036 {
1037  uint8 taskID;
1038  uint8 mode;
1039  uint8 activeScan;
1040  uint8 whiteList;
1041 } gapDevDiscReq_t;
1042 
1044 typedef struct
1045 {
1046  uint8 eventType;
1047  uint8 addrType;
1048  uint8 addr[B_ADDR_LEN];
1049 } gapDevRec_t;
1050 
1062 typedef struct
1063 {
1065  uint8 opcode;
1066  uint8 numDevs;
1069  // end of GAP_Events
1071 
1073 typedef struct
1074 {
1075  uint8 eventType;
1077  uint8 initiatorAddr[B_ADDR_LEN];
1078  uint8 channelMap;
1081 
1093 typedef struct
1094 {
1096  uint8 opcode;
1098 
1105 typedef struct
1106 {
1108  uint8 opcode;
1110 
1117 typedef struct
1118 {
1120  uint8 opcode;
1121  uint8 adType;
1123  // end of GAP_Events
1125 
1126 /*-------------------------------------------------------------------
1127  * TYPEDEFS - Link Establishment
1128  */
1129 
1131 typedef struct
1132 {
1133  uint8 taskID;
1135  uint8 whiteList;
1137  uint8 peerAddr[B_ADDR_LEN];
1138 } gapEstLinkReq_t;
1139 
1141 typedef struct
1142 {
1144  uint16 intervalMin;
1145  uint16 intervalMax;
1146  uint16 connLatency;
1147  uint16 connTimeout;
1149 
1151 typedef struct
1152 {
1154  uint16 intervalMin;
1155  uint16 intervalMax;
1156  uint16 connLatency;
1157  uint16 connTimeout;
1158  uint8 accepted;
1160 
1172 typedef struct
1173 {
1175  uint8 opcode;
1178 
1188 typedef struct
1189 {
1191  uint8 opcode;
1192  uint8 devAddrType;
1193  uint8 devAddr[B_ADDR_LEN];
1195  uint8 connRole;
1196  uint16 connInterval;
1197  uint16 connLatency;
1198  uint16 connTimeout;
1201 
1208 typedef struct
1209 {
1211  uint8 opcode;
1212  uint8 status;
1214  uint16 connInterval;
1215  uint16 connLatency;
1216  uint16 connTimeout;
1218 
1225 typedef struct
1226 {
1228  uint8 opcode;
1230  uint8 reason;
1232 
1233 /*-------------------------------------------------------------------
1234  * TYPEDEFS - Authentication, Bounding and Pairing
1235  */
1236 
1243 typedef struct
1244 {
1246  uint8 opcode;
1247  uint8 deviceAddr[B_ADDR_LEN];
1249  uint8 uiInputs;
1250  uint8 uiOutputs;
1251  uint32 numComparison;
1253 
1260 typedef struct
1261 {
1263  uint8 opcode;
1265  uint8 authState;
1271  // end of GAP_Events
1273 
1280 typedef struct
1281 {
1284 } gapAuthParams_t;
1285 
1297 typedef struct
1298 {
1300  uint8 opcode;
1302  uint8 deviceAddr[B_ADDR_LEN];
1303  uint8 authReq;
1305 
1312 typedef struct
1313 {
1315  uint8 opcode;
1318  // end of GAP_Events
1320 
1322 typedef struct
1323 {
1324  uint8 ioCap;
1325  uint8 oobDataFlag;
1326  uint8 authReq;
1329 } gapPairingReq_t;
1330 
1347 typedef struct
1348 {
1350  uint8 opcode;
1354 
1358 typedef struct
1359 {
1360  GAP_ConnEvtStat_t status;
1361  uint16_t handle;
1362  uint8_t channel;
1363  int8_t lastRssi;
1364  uint16_t packets;
1367  uint16_t errors;
1369  GAP_ConnEvtTaskType_t nextTaskType;
1371  uint32_t nextTaskTime;
1373  // end of GAP_Events
1375 
1383 typedef struct
1384 {
1385  uint8 adType;
1386  uint8 attrLen;
1387  uint8 *pAttrData;
1389 
1396 typedef uint8 (*pfnSuppEnhPrivCB_t)
1399  uint8 *deviceAddr
1400 );
1401 
1403 typedef void (*pfnGapIdleCB_t)();
1404 
1406 typedef struct
1407 {
1410 } gapBondMgrCBs_t;
1411 
1426 typedef void (*pfnGapConnEvtCB_t)
1429  Gap_ConnEventRpt_t *pReport
1430 );
1431 
1434 /*-------------------------------------------------------------------
1435  * GLOBAL VARIABLES
1436  */
1437 
1438 /*-------------------------------------------------------------------
1439  * FUNCTIONS - Initialization and Configuration
1440  */
1441 
1476  extern bStatus_t GAP_DeviceInit( uint8 taskID,
1477  uint8 profileRole,
1478  uint8 maxScanResponses,
1479  uint8 *pIRK,
1480  uint8 *pSRK,
1481  uint32 *pSignCounter );
1482 
1492  extern void GAP_UpdateResolvingList( uint8 *pIRK );
1493 
1513  extern bStatus_t GAP_SetAdvToken( gapAdvDataToken_t *pToken );
1514 
1524  extern gapAdvDataToken_t *GAP_GetAdvToken( uint8 adType );
1525 
1536  extern gapAdvDataToken_t *GAP_RemoveAdvToken( uint8 adType );
1537 
1546  extern bStatus_t GAP_UpdateAdvTokens( void );
1547 
1560  extern bStatus_t GAP_SetParamValue( gapParamIDs_t paramID, uint16 paramValue );
1561 
1570  extern uint16 GAP_GetParamValue( gapParamIDs_t paramID );
1571 
1600  extern bStatus_t GAP_ConfigDeviceAddr( uint8 addrMode, uint8 *pStaticAddr );
1601 
1610  extern void GAP_RegisterForMsgs( uint8 taskID );
1611 
1617  extern void GAP_RegisterBondMgrCBs( gapBondMgrCBs_t *pCBs );
1618 
1619 /*-------------------------------------------------------------------
1620  * FUNCTIONS - Device Discovery
1621  */
1622 
1639 
1653  extern bStatus_t GAP_DeviceDiscoveryCancel( uint8 taskID );
1654 
1669  extern bStatus_t GAP_MakeDiscoverable( uint8 taskID, gapAdvertisingParams_t *pParams );
1670 
1685  extern bStatus_t GAP_UpdateAdvertisingData( uint8 taskID, uint8 adType,
1686  uint8 dataLen, uint8 *pAdvertData );
1687 
1700  extern bStatus_t GAP_EndDiscoverable( uint8 taskID );
1701 
1702 #if !defined (BLE_V42_FEATURES) || !(BLE_V42_FEATURES & PRIVACY_1_2_CFG)
1703 
1713  extern bStatus_t GAP_ResolvePrivateAddr( uint8 *pIRK, uint8 *pAddr );
1714 #endif // ! BLE_V42_FEATURES | ! PRIVACY_1_2_CFG
1715 
1716 /*-------------------------------------------------------------------
1717  * FUNCTIONS - Link Establishment
1718  */
1719 
1734  extern bStatus_t GAP_EstablishLinkReq( gapEstLinkReq_t *pParams );
1735 
1751  extern bStatus_t GAP_TerminateLinkReq( uint8 taskID, uint16 connectionHandle, uint8 reason );
1752 
1769 
1796 
1802  extern uint8 GAP_NumActiveConnections( void );
1803 
1830  GAP_CB_Action_t action,
1831  uint16_t connHandle);
1832 
1833 
1834 
1835 /*-------------------------------------------------------------------
1836  * FUNCTIONS - Pairing
1837  */
1838 
1866  extern bStatus_t GAP_Authenticate( gapAuthParams_t *pParams, gapPairingReq_t *pPairReq );
1867 
1874  extern uint8 GAP_isPairing(void);
1875 
1893  extern bStatus_t GAP_TerminateAuth( uint16 connectionHandle, uint8 reason );
1894 
1914  extern bStatus_t GAP_PasskeyUpdate( uint8 *pPasskey, uint16 connectionHandle );
1915 
1934  extern bStatus_t GAP_PasscodeUpdate( uint32 passcode, uint16 connectionHandle );
1935 
1950  extern bStatus_t GAP_SendSlaveSecurityRequest( uint16 connectionHandle, uint8 authReq );
1951 
1968  extern bStatus_t GAP_Signable( uint16 connectionHandle, uint8 authenticated, smSigningInfo_t *pParams );
1969 
1991  extern bStatus_t GAP_Bond( uint16 connectionHandle, uint8 authenticated,
1992  uint8 secureConnections, smSecurityInfo_t *pParams,
1993  uint8 startEncryption );
1994 
1995 /*-------------------------------------------------------------------
1996  * Internal API - These functions are only called from gap.c module.
1997  */
1998 
2000 
2011  extern bStatus_t GAP_ParamsInit( uint8 taskID, uint8 profileRole );
2012 
2020  extern void GAP_PrivacyInit( uint8 *pIRK );
2021 
2029  extern uint8 *GAP_GetIRK( void );
2030 
2043  extern void GAP_SecParamsInit( uint8 *pSRK, uint32 *pSignCounter );
2044 
2052  extern bStatus_t GAP_PeriDevMgrInit( void );
2053 
2060  extern void GAP_PeriConnRegister( void );
2061 
2073  extern bStatus_t GAP_CentDevMgrInit( uint8 maxScanResponses );
2074 
2081  extern void GAP_CentConnRegister( void );
2082 
2083 
2084 /*-------------------------------------------------------------------
2085  * TASK API - These functions must only be called OSAL.
2086  */
2087 
2095  extern void GAP_Init( uint8 task_id );
2096 
2107  extern uint16 GAP_ProcessEvent( uint8 task_id, uint16 events );
2108 
2110 
2111 /*-------------------------------------------------------------------
2112 -------------------------------------------------------------------*/
2113 
2114 #ifdef __cplusplus
2115 }
2116 #endif
2117 
2118 #endif /* GAP_H */
2119 
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:1119
uint8 authState
TRUE if the pairing was authenticated (MITM)
Definition: gap.h:1265
uint8 opcode
GAP_MAKE_DISCOVERABLE_DONE_EVENT
Definition: gap.h:1096
uint8 opcode
GAP_END_DISCOVERABLE_DONE_EVENT
Definition: gap.h:1108
bStatus_t GAP_SetAdvToken(gapAdvDataToken_t *pToken)
Set Advertising Token.
uint8 opcode
GAP_SIGNATURE_UPDATED_EVENT
Definition: gap.h:1003
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1002
uint8 eventType
Advertise Event Type: GAP Advertising Event Types.
Definition: gap.h:1075
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:1316
uint8 attrLen
Number of bytes in the attribute data.
Definition: gap.h:1386
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:942
void(* pfnGapConnEvtCB_t)(Gap_ConnEventRpt_t *pReport)
Definition: gap.h:1427
uint8 authReq
Authentication Requirements: Bit 2: MITM, Bits 0-1: bonding (0 - no bonding, 1 - bonding) ...
Definition: gap.h:1303
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:1266
bStatus_t GAP_TerminateAuth(uint16 connectionHandle, uint8 reason)
Terminate Authnetication.
Authentication Parameters.
Definition: gap.h:1280
bStatus_t GAP_PasskeyUpdate(uint8 *pPasskey, uint16 connectionHandle)
Update the passkey in string format.
Channel 39.
Definition: gap.h:852
GAP_MAKE_DISCOVERABLE_DONE_EVENT message format.
Definition: gap.h:1093
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1299
uint8 mode
Discovery Mode: GAP Device Discovery Modes.
Definition: gap.h:1038
bStatus_t GAP_EstablishLinkReq(gapEstLinkReq_t *pParams)
Establish a link to a slave device.
Connection event in slave role.
Definition: gap.h:887
uint8 adType
ADTYPE value: Address Types.
Definition: gap.h:1385
smSigningInfo_t * pSigningInfo
Signing information.
Definition: gap.h:1267
uint8 addrType
Device's address type for devAddr.
Definition: gap.h:1004
uint16_t handle
connection handle
Definition: gap.h:1361
uint16 connectionHandle
Connection Handle.
Definition: gap.h:1301
GAP_ConnEvtTaskType_t
Definition: gap.h:880
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:983
uint16 latency
Definition: gap.h:964
uint8 dataLen
Length (in bytes) of the data field (evtData)
Definition: gap.h:1024
uint16 gapParamIDs_t
GAP Parameters IDs.
Definition: gap.h:921
uint8 adType
TRUE if advertising data, FALSE if SCAN_RSP.
Definition: gap.h:1121
GAP_PASSKEY_NEEDED_EVENT message format.
Definition: gap.h:1243
Channel 37.
Definition: gap.h:850
GAP_CB_Action_t
Definition: gap.h:899
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:926
Connection parameters for the peripheral device.
Definition: gap.h:957
GAP_DEVICE_INIT_DONE_EVENT message format.
Definition: gap.h:981
Definition: gap.h:1358
uint8 taskID
Requesting App's Task ID, used to return results.
Definition: gap.h:1037
GAP_SLAVE_REQUESTED_SECURITY_EVENT message format.
Definition: gap.h:1297
Register a callback.
Definition: gap.h:901
Connection event occurred successfully.
Definition: gap.h:870
GAP_ConnEvtStat_t status
status of connection event
Definition: gap.h:1360
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1095
bStatus_t GAP_TerminateLinkReq(uint8 taskID, uint16 connectionHandle, uint8 reason)
Terminate a link connection.
GAP event header format.
Definition: gap.h:924
GAP_BOND_COMPLETE_EVENT message format.
Definition: gap.h:1312
uint8 eventType
Indicates advertising event type used by the advertiser: GAP Advertising Report Event Types...
Definition: gap.h:1046
GAP_ConnEvtTaskType_t nextTaskType
Type of next BLE task.
Definition: gap.h:1369
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:1282
GAP_PAIRING_REQ_EVENT message format.
Definition: gap.h:1347
uint8 addrType
Address Type: Address Types.
Definition: gap.h:1047
int8_t lastRssi
Definition: gap.h:1363
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1314
uint8 uiInputs
Pairing User Interface Inputs - Ask user to input passcode.
Definition: gap.h:1249
uint8 numDevs
Number of devices found during scan.
Definition: gap.h:1066
GAP_ConnEvtStat_t
Definition: gap.h:867
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1245
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:927
keyDist_t keyDist
Pairing Request Key Distribution field.
Definition: gap.h:1328
uint8_t channel
BLE RF channel index (0-39)
Definition: gap.h:1362
uint8(* pfnSuppEnhPrivCB_t)(uint8 *deviceAddr)
Enhanced Privacy Check Callback Function.
Definition: gap.h:1398
uint8 maxEncKeySize
Pairing Request Maximum Encryption Key Size field.
Definition: gap.h:1327
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:1018
GAP_SIGNATURE_UPDATED_EVENT message format.
Definition: gap.h:1000
uint8 numDataPkts
HC_Total_Num_LE_Data_Packets.
Definition: gap.h:987
uint8 opcode
GAP_PAIRING_REQ_EVENT
Definition: gap.h:1350
uint8 opcode
GAP_SLAVE_REQUESTED_SECURITY_EVENT
Definition: gap.h:1300
Definition: sm.h:144
Channels 37 & 39.
Definition: gap.h:855
uint8 opcode
GAP_DEVICE_INFO_EVENT
Definition: gap.h:1019
uint8 initiatorAddrType
Initiator's address type: Address Types.
Definition: gap.h:1076
uint8 opcode
GAP_ADV_DATA_UPDATE_DONE_EVENT
Definition: gap.h:1120
uint16 intervalMax
Definition: gap.h:962
Type of device discovery (Scan) to perform.
Definition: gap.h:1044
uint16 GAP_GetParamValue(gapParamIDs_t paramID)
Get a GAP Parameter value.
uint8 opcode
GAP_DEVICE_INIT_DONE_EVENT
Definition: gap.h:984
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:1269
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:1016
uint8 uiOutputs
Pairing User Interface Outputs - Display passcode.
Definition: gap.h:1250
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:1264
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1107
uint8 opcode
GAP_DEVICE_DISCOVERY_EVENT
Definition: gap.h:1065
GAP_ADV_DATA_UPDATE_DONE_EVENT message format.
Definition: gap.h:1117
uint16 connectionHandle
connection Handle
Definition: gap.h:1351
bStatus_t GAP_RegisterConnEventCb(pfnGapConnEvtCB_t cb, GAP_CB_Action_t action, uint16_t connHandle)
uint32 signCounter
new Signed Counter
Definition: gap.h:1006
smLinkSecurityReq_t secReqs
Pairing Control info.
Definition: gap.h:1283
uint8 addrType
address type: Address Types
Definition: gap.h:1021
uint16 timeout
Definition: gap.h:966
Channels 37 & 38.
Definition: gap.h:853
bStatus_t GAP_UpdateAdvTokens(void)
Update Advertising Token.
gapAdvDataToken_t * GAP_GetAdvToken(uint8 adType)
Get Advertising Token.
Channels 38 & 39.
Definition: gap.h:857
uint16 intervalMin
Definition: gap.h:960
uint8 oobDataFlag
Pairing Request OOB Data Flag field.
Definition: gap.h:1325
uint16_t errors
Total number of CRC errors for the entire connection.
Definition: gap.h:1367
int8 rssi
Advertisement or SCAN_RSP RSSI.
Definition: gap.h:1023
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1064
Type of device discovery (Scan) to perform.
Definition: gap.h:1035
uint8 opcode
GAP_AUTHENTICATION_COMPLETE_EVENT
Definition: gap.h:1263
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1262
Type definitions and macros for BLE stack.
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1349
No data was received during connection event.
Definition: gap.h:874
All Channels.
Definition: gap.h:859
smSecurityInfo_t * pDevSecInfo
BOUND - security information from connected device.
Definition: gap.h:1268
Initiating a connection.
Definition: gap.h:885
void(* pfnGapIdleCB_t)()
GAP Idle Callback Function.
Definition: gap.h:1403
Definition: sm.h:211
uint8 channelMap
Channel Map: Bit mask GAP Advertisement Channel Map.
Definition: gap.h:1078
uint8 addrMode
Address mode: GAP Addressing Modes.
Definition: gap.h:944
uint8 filterPolicy
Filer Policy: GAP Advertiser Filter Scan Parameters. Ignored when directed advertising is used...
Definition: gap.h:1079
GAP_END_DISCOVERABLE_DONE_EVENT message format.
Definition: gap.h:1105
uint8 opcode
GAP_PASSKEY_NEEDED_EVENT
Definition: gap.h:1246
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
Connection event failed because all packets had CRC errors.
Definition: gap.h:872
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:1408
Advertiser.
Definition: gap.h:883
uint8 opcode
GAP_RANDOM_ADDR_CHANGED_EVENT
Definition: gap.h:943
GAP_scanChannels_t
Definition: gap.h:848
#define B_ADDR_LEN
Default Public and Random Address Length.
Definition: bcomdef.h:115
uint8 eventType
Advertisement Type: GAP Advertising Report Event Types.
Definition: gap.h:1020
uint8 ioCap
Pairing Request ioCap field.
Definition: gap.h:1324
GAP_AUTHENTICATION_COMPLETE_EVENT message format.
Definition: gap.h:1260
Callback Registration Structure.
Definition: gap.h:1406
uint8 GAP_isPairing(void)
Check if GAP is currently pairing.
uint32_t nextTaskTime
Time to next BLE task (in us). 0xFFFFFFFF if there is no next task.
Definition: gap.h:1371
uint8 opcode
GAP_BOND_COMPLETE_EVENT
Definition: gap.h:1315
uint8 * pAttrData
pointer to Attribute data
Definition: gap.h:1387
pfnGapIdleCB_t gapIdleCB
GAP Idle callback.
Definition: gap.h:1409
Status_t bStatus_t
BLE Generic Status return.
Definition: bcomdef.h:233
GAP_DEVICE_DISCOVERY_EVENT message format.
Definition: gap.h:1062
GAP_RANDOM_ADDR_CHANGED_EVENT message format.
Definition: gap.h:940
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:1039
Channel 38.
Definition: gap.h:851
Pairing Request fields - the parsed fields of the SMP Pairing Request command.
Definition: gap.h:1322
uint8 * pEvtData
Data field of advertisement or SCAN_RSP.
Definition: gap.h:1025
Advertising Parameters.
Definition: gap.h:1073
Connection event in master role.
Definition: gap.h:891
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:986
uint32 numComparison
Numeric Comparison value to be displayed.
Definition: gap.h:1251
gapPairingReq_t pairReq
The Pairing Request fields received.
Definition: gap.h:1352
Scanner.
Definition: gap.h:889
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:1040
uint16 connectionHandle
Connection handle.
Definition: gap.h:1248
GAP Advertisement/Scan Response Data Token.
Definition: gap.h:1383
Unregister a callback
Definition: gap.h:902
gapAdvDataToken_t * GAP_RemoveAdvToken(uint8 adType)
Remove Advertising Token.
uint8 authReq
Pairing Request Auth Req field.
Definition: gap.h:1326
gapDevRec_t * pDevList
array of device records
Definition: gap.h:1067
bStatus_t GAP_SetParamValue(gapParamIDs_t paramID, uint16 paramValue)
Set a GAP Parameter value.
© Copyright 1995-2021, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale