TI BLE5-Stack API Documentation  2.02.01.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 
21 #ifndef GAP_H
22 #define GAP_H
23 
24 #ifdef __cplusplus
25 extern "C"
26 {
27 #endif
28 
29 /*-------------------------------------------------------------------
30  * INCLUDES
31  */
32 #include <stdbool.h>
33 #include "bcomdef.h"
34 #include "osal.h"
35 #include "sm.h"
36 #include "ll_ae.h"
37 
38 /*-------------------------------------------------------------------
39  * MACROS
40  */
42 #ifndef status_t
43  #define status_t bStatus_t
44 #endif
45 
55 #define GAP_IS_ADDR_RPR(pAddr) ((pAddr[B_ADDR_LEN-1] & RANDOM_ADDR_HDR_MASK) \
56  == PRIVATE_RESOLVE_ADDR_HDR)
57 
66 #define GAP_IS_ADDR_RPN(pAddr) ((pAddr[B_ADDR_LEN-1] & RANDOM_ADDR_HDR_MASK) \
67  == PRIVATE_NON_RESOLVE_ADDR_HDR)
68 
77 #define GAP_IS_ADDR_RS(pAddr) ((pAddr[B_ADDR_LEN-1] & RANDOM_ADDR_HDR_MASK) \
78  == STATIC_ADDR_HDR)
79 
83 #define GAP_IS_ADDR_RAND(pAddr) (GAP_IS_ADDR_RPR(pAddr) | \
84  GAP_IS_ADDR_RPN(pAddr) | \
85  GAP_IS_ADDR_RS(pAddr))
86 
87 /*-------------------------------------------------------------------
88  * CONSTANTS
89  */
90 
107 #define GAP_DEVICE_INIT_DONE_EVENT 0x00
108 
112 #define GAP_ADV_DATA_UPDATE_DONE_EVENT 0x02
113 
116 #define GAP_LINK_ESTABLISHED_EVENT 0x05
117 
120 #define GAP_LINK_TERMINATED_EVENT 0x06
121 
126 #define GAP_LINK_PARAM_UPDATE_EVENT 0x07
127 
133 #define GAP_SIGNATURE_UPDATED_EVENT 0x09
134 
139 #define GAP_AUTHENTICATION_COMPLETE_EVENT 0x0A
140 
145 #define GAP_PASSKEY_NEEDED_EVENT 0x0B
146 
152 #define GAP_SLAVE_REQUESTED_SECURITY_EVENT 0x0C
153 
158 #define GAP_BOND_COMPLETE_EVENT 0x0E
159 
165 #define GAP_PAIRING_REQ_EVENT 0x0F
166 
172 #define GAP_AUTHENTICATION_FAILURE_EVT 0x10
173 
179 #define GAP_UPDATE_LINK_PARAM_REQ_EVENT 0x11
180 #define GAP_SCAN_SESSION_END_EVENT 0x12
182 #define GAP_ADV_REMOVE_SET_EVENT 0x13
184 
187 #define GAP_CONNECTING_CANCELLED_EVENT 0x15
188 
192 #define GAP_BOND_LOST_EVENT 0x17
193 
198 #define GAP_LINK_PARAM_UPDATE_REJECT_EVENT 0x18
199 
203 #define GAP_ADV_SET_PERIODIC_ADV_PARAMS_EVENT 0x19
205 #define GAP_ADV_SET_PERIODIC_ADV_DATA_EVENT 0x1A
207 #define GAP_ADV_SET_PERIODIC_ADV_ENABLE_EVENT 0x1B
209 
213 #define GAP_SCAN_CREATE_SYNC_EVENT 0x1C
214 
218 #define GAP_SCAN_SYNC_CANCEL_EVENT 0x1D
220 #define GAP_SCAN_TERMINATE_SYNC_EVENT 0x1E
222 #define GAP_SCAN_PERIODIC_RECEIVE_EVENT 0x1F
224 #define GAP_SCAN_ADD_DEVICE_ADV_LIST_EVENT 0x20
226 #define GAP_SCAN_REMOVE_DEVICE_ADV_LIST_EVENT 0x21
228 #define GAP_SCAN_READ_ADV_LIST_SIZE_EVENT 0x22
230 #define GAP_SCAN_CLEAR_ADV_LIST_EVENT 0x23
232 
236 #define GAP_SCAN_PERIODIC_ADV_SYNC_EST_EVENT 0x24
237 
241 #define GAP_SCAN_PERIODIC_ADV_SYNC_LOST_EVENT 0x25
242 
246 #define GAP_SCAN_PERIODIC_ADV_REPORT_EVENT 0x26
247 
263 #define GAP_EVT_ADV_START_AFTER_ENABLE (uint32_t)BV(0)
264 
269 #define GAP_EVT_ADV_END_AFTER_DISABLE (uint32_t)BV(1)
270 
276 #define GAP_EVT_ADV_START (uint32_t)BV(2)
277 
283 #define GAP_EVT_ADV_END (uint32_t)BV(3)
284 
290 #define GAP_EVT_ADV_SET_TERMINATED (uint32_t)BV(4)
291 
296 #define GAP_EVT_SCAN_REQ_RECEIVED (uint32_t)BV(5)
297 
303 #define GAP_EVT_ADV_DATA_TRUNCATED (uint32_t)BV(6)
304 #define GAP_EVT_SCAN_ENABLED (uint32_t)BV(16)
306 
312 #define GAP_EVT_SCAN_DISABLED (uint32_t)BV(17)
313 
318 #define GAP_EVT_SCAN_PRD_ENDED (uint32_t)BV(18)
319 #define GAP_EVT_SCAN_DUR_ENDED (uint32_t)BV(19)
321 
326 #define GAP_EVT_SCAN_INT_ENDED (uint32_t)BV(20)
327 #define GAP_EVT_SCAN_WND_ENDED (uint32_t)BV(21)
329 
335 #define GAP_EVT_ADV_REPORT (uint32_t)BV(22)
336 
341 #define GAP_EVT_ADV_REPORT_FULL (uint32_t)BV(23)
342 
349 #define GAP_EVT_PRD_ADV_SYNC_ESTABLISHED (uint32_t)BV(24)
350 
356 #define GAP_EVT_PRD_ADV_REPORT (uint32_t)BV(25)
357 
363 #define GAP_EVT_PRD_ADV_SYNC_LOST (uint32_t)BV(26)
364 #define GAP_EVT_INSUFFICIENT_MEMORY (uint32_t)BV(31)
367 
369 #define GAP_EVT_ADV_EVT_MASK (GAP_EVT_ADV_START_AFTER_ENABLE | \
370  GAP_EVT_ADV_END_AFTER_DISABLE | \
371  GAP_EVT_ADV_START | \
372  GAP_EVT_ADV_END | \
373  GAP_EVT_ADV_SET_TERMINATED | \
374  GAP_EVT_SCAN_REQ_RECEIVED | \
375  GAP_EVT_ADV_DATA_TRUNCATED | \
376  GAP_EVT_INSUFFICIENT_MEMORY)
377 
379 #define GAP_EVT_SCAN_EVT_MASK (GAP_EVT_SCAN_ENABLED | \
380  GAP_EVT_SCAN_DISABLED | \
381  GAP_EVT_SCAN_PRD_ENDED | \
382  GAP_EVT_SCAN_DUR_ENDED | \
383  GAP_EVT_SCAN_INT_ENDED | \
384  GAP_EVT_SCAN_WND_ENDED | \
385  GAP_EVT_ADV_REPORT | \
386  GAP_EVT_ADV_REPORT_FULL | \
387  GAP_EVT_PRD_ADV_SYNC_ESTABLISHED | \
388  GAP_EVT_PRD_ADV_REPORT | \
389  GAP_EVT_PRD_ADV_SYNC_LOST | \
390  GAP_EVT_INSUFFICIENT_MEMORY)
391 
408 typedef enum
409 {
428 
447 
449  GAP_CONFIG_PARAM_COUNT
452 
459 {
468 
482 
494 
504 
513 
522 
524 
528  GAP_PARAM_AUTH_TASK_ID,
529 
534  GAP_PARAM_DEPRECATED,
535 
543  GAP_PARAM_GGS_PARAMS,
544 
545 #if defined ( TESTMODES )
546 
549  GAP_PARAM_GAP_TESTCODE,
550 
554  GAP_PARAM_SM_TESTCODE,
555 
559  GAP_PARAM_GATT_TESTCODE,
560 
564  GAP_PARAM_ATT_TESTCODE,
565 
570  GAP_PARAM_L2CAP_TESTCODE,
571 
581  GAP_PARAM_SET_SCAN_CHAN_TESTCODE,
582 
583 #endif // TESTMODES
584 
591  GAP_STUB1_NOT_TESTCODE,
592 
599  GAP_STUB2_NOT_TESTCODE,
600 
607  GAP_STUB3_NOT_TESTCODE,
608 
615  GAP_STUB4_NOT_TESTCODE,
616 
623  GAP_STUB5_NOT_TESTCODE,
624 
634  GAP_PARAM_SET_SCAN_CHAN,
635 
639  GAP_PARAMID_MAX
641 };
642 
656 #define GAP_PROFILE_BROADCASTER 0x01
658 #define GAP_PROFILE_OBSERVER 0x02
660 
664 #define GAP_PROFILE_PERIPHERAL 0x04
665 
669 #define GAP_PROFILE_CENTRAL 0x08
670 
677 typedef enum
678 {
681 
687 
689 typedef enum
690 {
698 
700 typedef enum
701 {
704  ADDRTYPE_PUBLIC_ID = 0x02,
712 
714 typedef enum
715 {
719 
724 #define SET_ADDRTYPE_ID 0x02
726 #define MASK_ADDRTYPE_ID 0x01
728 
734 #define RANDOM_ADDR_HDR_MASK 0xC0
736 #define STATIC_ADDR_HDR 0xC0
738 #define PRIVATE_NON_RESOLVE_ADDR_HDR 0x80
740 #define PRIVATE_RESOLVE_ADDR_HDR 0x40
742 
750 #define GAP_ADTYPE_FLAGS 0x01
752 #define GAP_ADTYPE_16BIT_MORE 0x02
754 #define GAP_ADTYPE_16BIT_COMPLETE 0x03
756 #define GAP_ADTYPE_32BIT_MORE 0x04
758 #define GAP_ADTYPE_32BIT_COMPLETE 0x05
760 #define GAP_ADTYPE_128BIT_MORE 0x06
762 #define GAP_ADTYPE_128BIT_COMPLETE 0x07
764 #define GAP_ADTYPE_LOCAL_NAME_SHORT 0x08
766 #define GAP_ADTYPE_LOCAL_NAME_COMPLETE 0x09
768 #define GAP_ADTYPE_POWER_LEVEL 0x0A
770 #define GAP_ADTYPE_OOB_CLASS_OF_DEVICE 0x0D
772 #define GAP_ADTYPE_OOB_SIMPLE_PAIRING_HASHC 0x0E
774 #define GAP_ADTYPE_OOB_SIMPLE_PAIRING_RANDR 0x0F
776 #define GAP_ADTYPE_SM_TK 0x10
778 #define GAP_ADTYPE_SM_OOB_FLAG 0x11
780 
784 #define GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE 0x12
785 #define GAP_ADTYPE_SIGNED_DATA 0x13
787 #define GAP_ADTYPE_SERVICES_LIST_16BIT 0x14
789 #define GAP_ADTYPE_SERVICES_LIST_128BIT 0x15
791 #define GAP_ADTYPE_SERVICE_DATA 0x16
793 #define GAP_ADTYPE_PUBLIC_TARGET_ADDR 0x17
795 #define GAP_ADTYPE_RANDOM_TARGET_ADDR 0x18
797 #define GAP_ADTYPE_APPEARANCE 0x19
799 #define GAP_ADTYPE_ADV_INTERVAL 0x1A
801 #define GAP_ADTYPE_LE_BD_ADDR 0x1B
803 #define GAP_ADTYPE_LE_ROLE 0x1C
805 #define GAP_ADTYPE_SIMPLE_PAIRING_HASHC_256 0x1D
807 #define GAP_ADTYPE_SIMPLE_PAIRING_RANDR_256 0x1E
809 #define GAP_ADTYPE_SERVICE_DATA_32BIT 0x20
811 #define GAP_ADTYPE_SERVICE_DATA_128BIT 0x21
813 #define GAP_ADTYPE_3D_INFO_DATA 0x3D
815 
819 #define GAP_ADTYPE_MANUFACTURER_SPECIFIC 0xFF
820 #define GAP_ADTYPE_FLAGS_LIMITED 0x01
822 #define GAP_ADTYPE_FLAGS_GENERAL 0x02
824 #define GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED 0x04
826 
832 #define GAP_STATE_IDLE 0x00
833 #define GAP_STATE_ADV 0x01
834 #define GAP_STATE_SCAN 0x02
835 #define GAP_STATE_INIT 0x04
836 
842 #define GAP_APPEARE_UNKNOWN 0x0000
843 #define GAP_APPEARE_GENERIC_PHONE 0x0040
844 #define GAP_APPEARE_GENERIC_COMPUTER 0x0080
845 #define GAP_APPEARE_GENERIC_WATCH 0x00C0
846 #define GAP_APPEARE_WATCH_SPORTS 0x00C1
847 #define GAP_APPEARE_GENERIC_CLOCK 0x0100
848 #define GAP_APPEARE_GENERIC_DISPLAY 0x0140
849 #define GAP_APPEARE_GENERIC_RC 0x0180
850 #define GAP_APPEARE_GENERIC_EYE_GALSSES 0x01C0
851 #define GAP_APPEARE_GENERIC_TAG 0x0200
852 #define GAP_APPEARE_GENERIC_KEYRING 0x0240
853 #define GAP_APPEARE_GENERIC_MEDIA_PLAYER 0x0280
854 #define GAP_APPEARE_GENERIC_BARCODE_SCANNER 0x02C0
855 #define GAP_APPEARE_GENERIC_THERMOMETER 0x0300
856 #define GAP_APPEARE_GENERIC_THERMO_EAR 0x0301
857 #define GAP_APPEARE_GENERIC_HR_SENSOR 0x0340
858 #define GAP_APPEARE_GENERIC_HRS_BELT 0x0341
859 #define GAP_APPEARE_GENERIC_BLOOD_PRESSURE 0x0380
860 #define GAP_APPEARE_GENERIC_BP_ARM 0x0381
861 #define GAP_APPEARE_GENERIC_BP_WRIST 0x0382
862 #define GAP_APPEARE_GENERIC_HID 0x03C0
863 #define GAP_APPEARE_HID_KEYBOARD 0x03C1
864 #define GAP_APPEARE_HID_MOUSE 0x03C2
865 #define GAP_APPEARE_HID_JOYSTIC 0x03C3
866 #define GAP_APPEARE_HID_GAMEPAD 0x03C4
867 #define GAP_APPEARE_HID_DIGITIZER_TYABLET 0x03C5
868 #define GAP_APPEARE_HID_DIGITAL_CARDREADER 0x03C6
869 #define GAP_APPEARE_HID_DIGITAL_PEN 0x03C7
870 #define GAP_APPEARE_HID_BARCODE_SCANNER 0x03C8
871 
877 #define GAP_PRIVACY_MODE_NETWORK 0
878 #define GAP_PRIVACY_MODE_DEVICE 1
879 
884 typedef enum
885 {
890 
894 typedef enum
895 {
897  GAP_CONN_EVT_STAT_SUCCESS = LL_CONN_EVT_STAT_SUCCESS,
899  GAP_CONN_EVT_STAT_CRC_ERROR = LL_CONN_EVT_STAT_CRC_ERROR,
901  GAP_CONN_EVT_STAT_MISSED = LL_CONN_EVT_STAT_MISSED
903 
907 typedef enum
908 {
910  GAP_CONN_EVT_TASK_TYPE_ADV = LL_TASK_ID_ADVERTISER,
912  GAP_CONN_EVT_TASK_TYPE_INIT = LL_TASK_ID_INITIATOR,
914  GAP_CONN_EVT_TASK_TYPE_SLAVE = LL_TASK_ID_SLAVE,
916  GAP_CONN_EVT_TASK_TYPE_SCAN = LL_TASK_ID_SCANNER,
918  GAP_CONN_EVT_TASK_TYPE_MASTER = LL_TASK_ID_MASTER,
919  // No task
920  GAP_CONN_EVT_TASK_TYPE_NONE = LL_TASK_ID_NONE
922 
926 typedef enum
927 {
931 
934 /*-------------------------------------------------------------------
935  * TYPEDEFS
936  */
937 
943 typedef struct
945 {
947  uint8_t opcode;
948 } gapEventHdr_t;
949 
956 typedef struct
957 {
959  uint16_t intervalMin;
961  uint16_t intervalMax;
963  uint16_t latency;
965  uint16_t timeout;
967 
975 typedef struct
976 {
978  uint8_t opcode;
979  uint8_t numDataPkts;
980  uint16_t dataPktLen;
981  uint8_t devAddr[B_ADDR_LEN];
983 
996 typedef struct
997 {
999  uint8_t opcode;
1000  uint8_t addrType;
1001  uint8_t devAddr[B_ADDR_LEN];
1002  uint32_t signCounter;
1004 
1010 typedef struct
1011 {
1012  uint16_t connectionHandle;
1013  uint16_t intervalMin;
1014  uint16_t intervalMax;
1015  uint16_t connLatency;
1016  uint16_t connTimeout;
1019 
1025 typedef struct
1026 {
1027  uint16_t connectionHandle;
1028  uint16_t intervalMin;
1029  uint16_t intervalMax;
1030  uint16_t connLatency;
1031  uint16_t connTimeout;
1033  uint8_t accepted;
1035 
1042 typedef struct
1043 {
1045  uint8_t opcode;
1048 
1065 typedef struct
1066 {
1068  uint8_t opcode;
1069  uint8_t devAddrType;
1070  uint8_t devAddr[B_ADDR_LEN];
1071  uint16_t connectionHandle;
1072  uint8_t connRole;
1073  uint16_t connInterval;
1074  uint16_t connLatency;
1075  uint16_t connTimeout;
1076  uint8_t clockAccuracy;
1078 
1085 typedef struct
1086 {
1088  uint8_t opcode;
1089  uint8_t status;
1090  uint16_t connectionHandle;
1091  uint16_t connInterval;
1092  uint16_t connLatency;
1093  uint16_t connTimeout;
1095 
1101 typedef struct
1102 {
1104  uint8_t opcode;
1105  uint16_t connectionHandle;
1106  uint8_t reason;
1108 
1117 typedef struct
1118 {
1120  uint8_t opcode;
1121  uint8_t deviceAddr[B_ADDR_LEN];
1122  uint16_t connectionHandle;
1123  uint8_t uiInputs;
1124  uint8_t uiOutputs;
1125  uint32_t numComparison;
1127 
1135 typedef struct
1136 {
1138  uint8_t opcode;
1139  uint16_t connectionHandle;
1140  uint8_t authState;
1146 
1151 typedef struct
1152 {
1153  uint16_t connectionHandle;
1155 } gapAuthParams_t;
1156 
1164 typedef struct
1165 {
1167  uint8_t opcode;
1168  uint16_t connectionHandle;
1169  uint8_t deviceAddr[B_ADDR_LEN];
1170 
1175  uint8_t authReq;
1177 
1186 typedef struct
1187 {
1189  uint8_t opcode;
1190  uint16_t connectionHandle;
1192 
1197 typedef struct
1198 {
1199  uint8_t ioCap;
1200  uint8_t oobDataFlag;
1201  uint8_t authReq;
1202  uint8_t maxEncKeySize;
1204 } gapPairingReq_t;
1205 
1217 typedef struct
1218 {
1220  uint8_t opcode;
1221  uint16_t connectionHandle;
1224 
1228 typedef struct
1229 {
1230  GAP_ConnEvtStat_t status;
1231  uint16_t handle;
1232  uint8_t channel;
1234  int8_t lastRssi;
1235  uint16_t packets;
1238  uint16_t errors;
1240  GAP_ConnEvtTaskType_t nextTaskType;
1242  uint32_t nextTaskTime;
1244 
1252 typedef struct
1253 {
1255  uint8_t opcode;
1256  uint16_t connectionHandle;
1257  uint8_t deviceAddr[B_ADDR_LEN];
1259 
1262 /*-------------------------------------------------------------------
1263  * CALLBACKS
1264  */
1265 
1271 typedef uint8_t(*pfnSuppCentAddrRes_t)
1274  uint8_t *deviceAddr,
1275  GAP_Peer_Addr_Types_t addrType
1276 );
1277 
1278 //TODO try to move these to gap_internal.h
1279 
1281 typedef void (*pfnGapIdleCB_t)();
1282 
1284 typedef uint8_t(*pfnGapDevPrivModeCB_t)
1286  GAP_Peer_Addr_Types_t addrType,
1287  uint8_t *pAddr
1288 );
1289 
1291 typedef struct
1292 {
1296 } gapBondMgrCBs_t;
1297 
1310 typedef void (*pfnGapCB_t)
1312  uint32_t event,
1313  void *pBuf,
1314  uintptr_t arg
1315 );
1316 
1331 typedef void (*pfnGapConnEvtCB_t)
1334  Gap_ConnEventRpt_t *pReport
1335 );
1336 
1339 /*-------------------------------------------------------------------
1340  * FUNCTIONS - Initialization and Configuration
1341  */
1342 
1373 extern bStatus_t GAP_DeviceInit(uint8_t profileRole, uint8_t taskID,
1374  GAP_Addr_Modes_t addrMode,
1375  uint8_t* pRandomAddr);
1376 
1407 extern bStatus_t GAP_DeviceInit_noGAPBondMgr(uint8_t profileRole, uint8_t taskID,
1408  GAP_Addr_Modes_t addrMode,
1409  uint8_t* pRandomAddr);
1410 
1422 extern bStatus_t GAP_SetParamValue(uint16_t paramID, uint16_t paramValue);
1423 
1432 extern uint16_t GAP_GetParamValue(uint16_t paramID);
1433 
1442 extern void GAP_RegisterForMsgs(uint8_t taskID);
1443 
1449 extern void GAP_RegisterBondMgrCBs(gapBondMgrCBs_t *pCBs);
1450 
1468  uint8_t *pAddr, uint8_t mode);
1469 
1470 /*-------------------------------------------------------------------
1471  * FUNCTIONS - Link Establishment
1472  */
1473 
1488 extern bStatus_t GAP_TerminateLinkReq(uint16_t connectionHandle, uint8_t reason);
1489 
1512 
1537  *pParams);
1538 
1544 extern uint8_t GAP_NumActiveConnections(void);
1545 
1572  GAP_CB_Action_t action,
1573  uint16_t connHandle);
1574 
1575 /*-------------------------------------------------------------------
1576  * FUNCTIONS - GAP Configuration
1577  */
1578 
1594 extern bStatus_t GapConfig_SetParameter(Gap_configParamIds_t param,
1595  void *pValue);
1596 
1606 extern uint8_t *GAP_GetDevAddress(uint8 wantIA);
1607 
1617 extern uint8_t *GAP_GetIRK(void);
1618 
1628 extern uint8_t *GAP_GetSRK(void);
1629 
1630 /*-------------------------------------------------------------------
1631  * FUNCTIONS - Pairing
1632  */
1633 
1665  gapPairingReq_t *pPairReq);
1666 
1676 extern uint8_t GAP_isPairing(void);
1677 
1695 extern bStatus_t GAP_TerminateAuth(uint16_t connectionHandle, uint8_t reason);
1696 
1718 extern bStatus_t GAP_PasskeyUpdate(uint8_t *pPasskey, uint16_t connectionHandle);
1719 
1737 extern bStatus_t GAP_PasscodeUpdate(uint32_t passcode, uint16_t connectionHandle);
1738 
1755 extern bStatus_t GAP_SendSlaveSecurityRequest(uint16_t connectionHandle,
1756  uint8_t authReq);
1757 
1775 extern bStatus_t GAP_Signable(uint16_t connectionHandle, uint8_t authenticated,
1776  smSigningInfo_t *pParams);
1777 
1800 extern bStatus_t GAP_Bond(uint16_t connectionHandle, uint8_t authenticated,
1801  uint8_t secureConnections, smSecurityInfo_t *pParams,
1802  uint8_t startEncryption);
1803 
1804 /*-------------------------------------------------------------------
1805  * TASK FUNCTIONS - To only be used in osal_icall_ble.c
1806  */
1807 
1815 extern void GAP_Init(uint8_t task_id);
1816 
1827 extern uint16_t GAP_ProcessEvent(uint8_t task_id, uint16_t events);
1828 
1829 /*-------------------------------------------------------------------
1830 -------------------------------------------------------------------*/
1831 
1832 #ifdef __cplusplus
1833 }
1834 #endif
1835 
1836 #endif /* GAP_H */
1837 
uint8_t(* pfnSuppCentAddrRes_t)(uint8_t *deviceAddr, GAP_Peer_Addr_Types_t addrType)
Central Address Resolution (CAR) Support Callback Function.
Definition: gap.h:1273
Definition: gap.h:481
bStatus_t Gap_RegisterConnEventCb(pfnGapConnEvtCB_t cb, GAP_CB_Action_t action, uint16_t connHandle)
GAP_Addr_Types_t
Address types used for identifying peer address type.
Definition: gap.h:700
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:998
uint8_t * GAP_GetDevAddress(uint8 wantIA)
This API allows the software components in the Z-Stack to be written independently of the specifics o...
GAP_Peer_Addr_Types_t
Address types used for specifying peer address type.
Definition: gap.h:714
uint8_t addrType
Device&#39;s address type for devAddr.
Definition: gap.h:1000
void(* pfnGapConnEvtCB_t)(Gap_ConnEventRpt_t *pReport)
Definition: gap.h:1332
This file contains the interface to the SM.
No address provided.
Definition: gap.h:710
2 MBPS
Definition: gap.h:887
Definition: sm.h:194
Definition: gap.h:503
uint8_t opcode
GAP_BOND_COMPLETE_EVENT
Definition: gap.h:1189
smSecurityInfo_t * pSecurityInfo
security information from this device
Definition: gap.h:1141
Random (static) Identity Address (corresponds to peer&#39;s RPA)
Definition: gap.h:707
Definition: gap.h:1151
bStatus_t GAP_TerminateAuth(uint16_t connectionHandle, uint8_t reason)
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1166
Connection event in slave role.
Definition: gap.h:914
smSigningInfo_t * pSigningInfo
Signing information.
Definition: gap.h:1142
uint16_t handle
connection handle
Definition: gap.h:1231
GAP_ConnEvtTaskType_t
Definition: gap.h:907
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:977
Definition: gap.h:703
Definition: gap.h:1252
Deny all parameter update requests.
Definition: gap.h:680
bStatus_t GAP_SetParamValue(uint16_t paramID, uint16_t paramValue)
Definition: gap.h:1117
GAP_CB_Action_t
Definition: gap.h:926
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:946
Gap_configParamIds_t
Definition: gap.h:408
Definition: gap.h:956
Definition: gap.h:975
Definition: gap.h:1228
uint8_t maxEncKeySize
Pairing Request Maximum Encryption Key Size field.
Definition: gap.h:1202
Definition: gap.h:1164
uint8_t opcode
GAP_DEVICE_INIT_DONE_EVENT
Definition: gap.h:978
uint16_t connectionHandle
connection Handle
Definition: gap.h:1221
Register a callback.
Definition: gap.h:928
Connection event occurred successfully.
Definition: gap.h:897
GAP_ConnEvtStat_t status
status of connection event
Definition: gap.h:1230
GAP event header format.
Definition: gap.h:944
Definition: gap.h:1186
uint16_t timeout
Connection Timeout (0x000A - 0x0C80 * 10 ms)
Definition: gap.h:965
GAP_ConnEvtTaskType_t nextTaskType
Type of next BLE task.
Definition: gap.h:1240
Definition: gap.h:685
uint16_t dataPktLen
HC_LE_Data_Packet_Length.
Definition: gap.h:980
Definition: gap.h:692
Definition: gap.h:1217
int8_t lastRssi
Definition: gap.h:1234
uint16_t intervalMin
Minimum value for the connection event (interval. 0x0006 - 0x0C80 * 1.25 ms)
Definition: gap.h:959
1 MBPS
Definition: gap.h:886
uint8_t uiInputs
Pairing User Interface Inputs - Ask user to input passcode.
Definition: gap.h:1123
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1188
GAP_ConnEvtStat_t
Definition: gap.h:894
bStatus_t GAP_TerminateLinkReq(uint16_t connectionHandle, uint8_t reason)
Random Device Address (controller unable to resolve)
Definition: gap.h:709
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1119
bStatus_t GAP_UpdateLinkParamReq(gapUpdateLinkParamReq_t *pParams)
void GAP_RegisterForMsgs(uint8_t taskID)
keyDist_t keyDist
Pairing Request Key Distribution field.
Definition: gap.h:1203
uint8_t channel
BLE RF channel index (0-39)
Definition: gap.h:1232
uint8_t ioCap
Pairing Request ioCap field.
Definition: gap.h:1199
uint16_t connectionHandle
connection Handle
Definition: gap.h:1190
GAP_ConnEvtPhy_t
Definition: gap.h:884
Definition: gap.h:996
Definition: sm.h:148
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1254
Gap_updateDecision_t
Definition: gap.h:677
Public Identity Address (corresponds to peer&#39;s RPA)
Definition: gap.h:705
uint8_t opcode
GAP_SIGNATURE_UPDATED_EVENT
Definition: gap.h:999
void(* pfnGapCB_t)(uint32_t event, void *pBuf, uintptr_t arg)
Definition: gap.h:1311
smIdentityInfo_t * pIdentityInfo
identity information
Definition: gap.h:1144
uint8_t * GAP_GetIRK(void)
Definition: sm.h:205
uint8_t authReq
Definition: gap.h:1175
void GAP_RegisterBondMgrCBs(gapBondMgrCBs_t *pCBs)
bStatus_t GAP_Bond(uint16_t connectionHandle, uint8_t authenticated, uint8_t secureConnections, smSecurityInfo_t *pParams, uint8_t startEncryption)
uint8_t uiOutputs
Pairing User Interface Outputs - Display passcode.
Definition: gap.h:1124
uint16_t connectionHandle
Connection handle.
Definition: gap.h:1122
uint16_t GAP_ProcessEvent(uint8_t task_id, uint16_t events)
Coded-S2 or Coded-S8.
Definition: gap.h:888
smLinkSecurityReq_t secReqs
Pairing Control info.
Definition: gap.h:1154
bStatus_t GAP_SendSlaveSecurityRequest(uint16_t connectionHandle, uint8_t authReq)
uint16_t GAP_GetParamValue(uint16_t paramID)
bStatus_t GAP_PasscodeUpdate(uint32_t passcode, uint16_t connectionHandle)
Always Use Resolvable Private Address with Random Identity Address.
Definition: gap.h:696
pfnSuppCentAddrRes_t suppCentAddrResCB
Supports Central Address Resolution.
Definition: gap.h:1293
Definition: gap.h:521
uint16_t errors
Total number of CRC errors for the entire connection.
Definition: gap.h:1238
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1137
Type definitions and macros for BLE stack.
uint32_t numComparison
Numeric Comparison value to be displayed.
Definition: gap.h:1125
osal_event_hdr_t hdr
GAP_MSG_EVENT and status
Definition: gap.h:1219
uint16_t latency
Number of LL latency connection events (0x0000 - 0x03e8)
Definition: gap.h:963
uint8_t opcode
GAP_PAIRING_REQ_EVENT
Definition: gap.h:1220
No data was received during connection event.
Definition: gap.h:901
Public Device Address.
Definition: gap.h:702
smSecurityInfo_t * pDevSecInfo
security information from connected device
Definition: gap.h:1143
uint8_t GAP_NumActiveConnections(void)
Initiating a connection.
Definition: gap.h:912
void(* pfnGapIdleCB_t)()
GAP Idle Callback Function.
Definition: gap.h:1281
Definition: sm.h:215
uint8_t opcode
GAP_SLAVE_REQUESTED_SECURITY_EVENT
Definition: gap.h:1167
Definition: gap.h:493
Definition: gap.h:512
Can be used by the application to set the SRK.
Definition: gap.h:446
OSAL Event Header.
Definition: osal.h:92
Connection event failed because all packets had CRC errors.
Definition: gap.h:899
Gap_ParamIDs_t
Definition: gap.h:458
Always Use Public Address.
Definition: gap.h:691
bStatus_t GAP_UpdateLinkParamReqReply(gapUpdateLinkParamReqReply_t *pParams)
Can be used by the application to set the IRK.
Definition: gap.h:427
uint8_t opcode
GAP_PASSKEY_NEEDED_EVENT
Definition: gap.h:1120
Advertiser.
Definition: gap.h:910
bStatus_t GAP_DeviceInit(uint8_t profileRole, uint8_t taskID, GAP_Addr_Modes_t addrMode, uint8_t *pRandomAddr)
Definition: gap.h:467
uint8_t(* pfnGapDevPrivModeCB_t)(GAP_Peer_Addr_Types_t addrType, uint8_t *pAddr)
GAP Device Privacy Mode Callback Function.
Definition: gap.h:1285
uint8_t authState
TRUE if the pairing was authenticated (MITM)
Definition: gap.h:1140
void GAP_Init(uint8_t task_id)
uint8_t opcode
GAP type of command. GAP Event IDs.
Definition: gap.h:947
#define B_ADDR_LEN
Default Public and Random Address Length.
Definition: bcomdef.h:108
uint8_t opcode
GAP_BOND_LOST_EVENT
Definition: gap.h:1255
uint8_t numDataPkts
HC_Total_Num_LE_Data_Packets.
Definition: gap.h:979
Definition: gap.h:1135
Callback Registration Structure.
Definition: gap.h:1291
uint8_t GAP_isPairing(void)
uint8_t authReq
Pairing Request Auth Req field.
Definition: gap.h:1201
uint32_t nextTaskTime
Time to next BLE task (in us). 0xFFFFFFFF if there is no next task.
Definition: gap.h:1242
uint8_t * GAP_GetSRK(void)
uint16_t intervalMax
Maximum value for the connection event (interval. 0x0006 - 0x0C80 * 1.25 ms)
Definition: gap.h:961
pfnGapIdleCB_t gapIdleCB
GAP Idle callback.
Definition: gap.h:1294
uint8_t opcode
GAP_AUTHENTICATION_COMPLETE_EVENT
Definition: gap.h:1138
GAP_ConnEvtPhy_t phy
PHY of connection event.
Definition: gap.h:1233
uint8_t oobDataFlag
Pairing Request OOB Data Flag field.
Definition: gap.h:1200
uint16_t connectionHandle
Connection Handle from controller used to ref the device.
Definition: gap.h:1139
Status_t bStatus_t
BLE Generic Status return.
Definition: bcomdef.h:251
Random or Random ID Address.
Definition: gap.h:717
Accept all parameter update requests.
Definition: gap.h:679
bStatus_t GAP_DeviceInit_noGAPBondMgr(uint8_t profileRole, uint8_t taskID, GAP_Addr_Modes_t addrMode, uint8_t *pRandomAddr)
uint16_t connectionHandle
Connection Handle.
Definition: gap.h:1256
bStatus_t GAP_SetPrivacyMode(GAP_Peer_Addr_Types_t addrType, uint8_t *pAddr, uint8_t mode)
Definition: gap.h:1197
bStatus_t GapConfig_SetParameter(Gap_configParamIds_t param, void *pValue)
bStatus_t GAP_Signable(uint16_t connectionHandle, uint8_t authenticated, smSigningInfo_t *pParams)
Connection event in master role.
Definition: gap.h:918
Always Use Resolvable Private Address with Public Identity Address.
Definition: gap.h:694
bStatus_t GAP_PasskeyUpdate(uint8_t *pPasskey, uint16_t connectionHandle)
gapPairingReq_t pairReq
The Pairing Request fields received.
Definition: gap.h:1222
Scanner.
Definition: gap.h:916
Public or Public ID Address.
Definition: gap.h:716
bStatus_t GAP_Authenticate(gapAuthParams_t *pParams, gapPairingReq_t *pPairReq)
uint32_t signCounter
new Signed Counter
Definition: gap.h:1002
uint16_t connectionHandle
Connection Handle.
Definition: gap.h:1168
Unregister a callback
Definition: gap.h:929
GAP_Addr_Modes_t
Address modes to initialize the local device.
Definition: gap.h:689
pfnGapDevPrivModeCB_t gapDevPrivModeCB
GAP Device Privacy Mode callback.
Definition: gap.h:1295
uint16_t connectionHandle
Connection Handle from controller,.
Definition: gap.h:1153
© Copyright 1995-2021, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale