123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182 |
- #ifndef GAP_H
- #define GAP_H
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- #include "bcomdef.h"
- #include "OSAL.h"
- #include "sm.h"
- #define GAP_DEVICE_INIT_DONE_EVENT 0x00
- #define GAP_DEVICE_DISCOVERY_EVENT 0x01
- #define GAP_ADV_DATA_UPDATE_DONE_EVENT 0x02
- #define GAP_MAKE_DISCOVERABLE_DONE_EVENT 0x03
- #define GAP_END_DISCOVERABLE_DONE_EVENT 0x04
- #define GAP_LINK_ESTABLISHED_EVENT 0x05
- #define GAP_LINK_TERMINATED_EVENT 0x06
- #define GAP_LINK_PARAM_UPDATE_EVENT 0x07
- #define GAP_RANDOM_ADDR_CHANGED_EVENT 0x08
- #define GAP_SIGNATURE_UPDATED_EVENT 0x09
- #define GAP_AUTHENTICATION_COMPLETE_EVENT 0x0A
- #define GAP_PASSKEY_NEEDED_EVENT 0x0B
- #define GAP_SLAVE_REQUESTED_SECURITY_EVENT 0x0C
- #define GAP_DEVICE_INFO_EVENT 0x0D
- #define GAP_BOND_COMPLETE_EVENT 0x0E
- #define GAP_PAIRING_REQ_EVENT 0x0F
- #define GAP_CONNHANDLE_INIT 0xFFFE
- #define GAP_CONNHANDLE_ALL 0xFFFF
- #define GAP_PROFILE_BROADCASTER 0x01
- #define GAP_PROFILE_OBSERVER 0x02
- #define GAP_PROFILE_PERIPHERAL 0x04
- #define GAP_PROFILE_CENTRAL 0x08
- #define TGAP_GEN_DISC_ADV_MIN 0
- #define TGAP_LIM_ADV_TIMEOUT 1
- #define TGAP_GEN_DISC_SCAN 2
- #define TGAP_LIM_DISC_SCAN 3
- #define TGAP_CONN_EST_ADV_TIMEOUT 4
- #define TGAP_CONN_PARAM_TIMEOUT 5
- #define TGAP_LIM_DISC_ADV_INT_MIN 6
- #define TGAP_LIM_DISC_ADV_INT_MAX 7
- #define TGAP_GEN_DISC_ADV_INT_MIN 8
- #define TGAP_GEN_DISC_ADV_INT_MAX 9
- #define TGAP_CONN_ADV_INT_MIN 10
- #define TGAP_CONN_ADV_INT_MAX 11
- #define TGAP_CONN_SCAN_INT 12
- #define TGAP_CONN_SCAN_WIND 13
- #define TGAP_CONN_HIGH_SCAN_INT 14
- #define TGAP_CONN_HIGH_SCAN_WIND 15
- #define TGAP_GEN_DISC_SCAN_INT 16
- #define TGAP_GEN_DISC_SCAN_WIND 17
- #define TGAP_LIM_DISC_SCAN_INT 18
- #define TGAP_LIM_DISC_SCAN_WIND 19
- #define TGAP_CONN_EST_ADV 20
- #define TGAP_CONN_EST_INT_MIN 21
- #define TGAP_CONN_EST_INT_MAX 22
- #define TGAP_CONN_EST_SCAN_INT 23
- #define TGAP_CONN_EST_SCAN_WIND 24
- #define TGAP_CONN_EST_SUPERV_TIMEOUT 25
- #define TGAP_CONN_EST_LATENCY 26
- #define TGAP_CONN_EST_MIN_CE_LEN 27
- #define TGAP_CONN_EST_MAX_CE_LEN 28
- #define TGAP_PRIVATE_ADDR_INT 29
- #define TGAP_CONN_PAUSE_CENTRAL 30
- #define TGAP_CONN_PAUSE_PERIPHERAL 31
- #define TGAP_SM_TIMEOUT 32
- #define TGAP_SM_MIN_KEY_LEN 33
- #define TGAP_SM_MAX_KEY_LEN 34
- #define TGAP_FILTER_ADV_REPORTS 35
- #define TGAP_SCAN_RSP_RSSI_MIN 36
- #define TGAP_REJECT_CONN_PARAMS 37
- #if !defined ( TESTMODES )
- #define TGAP_AUTH_TASK_ID 38
- #define TGAP_PARAMID_MAX 39
- #else
- #define TGAP_GAP_TESTCODE 38
- #define TGAP_SM_TESTCODE 39
- #define TGAP_AUTH_TASK_ID 40
- #define TGAP_PARAMID_MAX 41
- #define TGAP_GATT_TESTCODE 100
- #define TGAP_ATT_TESTCODE 101
- #define TGAP_GGS_TESTCODE 102
- #endif
- #define DEVDISC_MODE_NONDISCOVERABLE 0x00
- #define DEVDISC_MODE_GENERAL 0x01
- #define DEVDISC_MODE_LIMITED 0x02
- #define DEVDISC_MODE_ALL 0x03
- #define ADDRTYPE_PUBLIC 0x00
- #define ADDRTYPE_STATIC 0x01
- #define ADDRTYPE_PRIVATE_NONRESOLVE 0x02
- #define ADDRTYPE_PRIVATE_RESOLVE 0x03
- #define GAP_ADTYPE_ADV_IND 0x00
- #define GAP_ADTYPE_ADV_HDC_DIRECT_IND 0x01
- #define GAP_ADTYPE_ADV_SCAN_IND 0x02
- #define GAP_ADTYPE_ADV_NONCONN_IND 0x03
- #define GAP_ADTYPE_ADV_LDC_DIRECT_IND 0x04
- #define GAP_ADRPT_ADV_IND 0x00
- #define GAP_ADRPT_ADV_DIRECT_IND 0x01
- #define GAP_ADRPT_ADV_SCAN_IND 0x02
- #define GAP_ADRPT_ADV_NONCONN_IND 0x03
- #define GAP_ADRPT_SCAN_RSP 0x04
- #define GAP_FILTER_POLICY_ALL 0x00
- #define GAP_FILTER_POLICY_WHITE_SCAN 0x01
- #define GAP_FILTER_POLICY_WHITE_CON 0x02
- #define GAP_FILTER_POLICY_WHITE 0x03
- #define ADV_CHANMAP_SIZE 5
- #define GAP_PASSCODE_MAX 999999
- #define GAP_INIT_SIGN_COUNTER 0xFFFFFFFF
- #define GAP_ADVCHAN_37 0x01
- #define GAP_ADVCHAN_38 0x02
- #define GAP_ADVCHAN_39 0x04
- #define GAP_ADVCHAN_ALL (GAP_ADVCHAN_37 | GAP_ADVCHAN_38 | GAP_ADVCHAN_39)
- #define WL_NOTUSED 0x00
- #define WL_USED 0x01
- #define GAP_ADTYPE_FLAGS 0x01
- #define GAP_ADTYPE_16BIT_MORE 0x02
- #define GAP_ADTYPE_16BIT_COMPLETE 0x03
- #define GAP_ADTYPE_32BIT_MORE 0x04
- #define GAP_ADTYPE_32BIT_COMPLETE 0x05
- #define GAP_ADTYPE_128BIT_MORE 0x06
- #define GAP_ADTYPE_128BIT_COMPLETE 0x07
- #define GAP_ADTYPE_LOCAL_NAME_SHORT 0x08
- #define GAP_ADTYPE_LOCAL_NAME_COMPLETE 0x09
- #define GAP_ADTYPE_POWER_LEVEL 0x0A
- #define GAP_ADTYPE_OOB_CLASS_OF_DEVICE 0x0D
- #define GAP_ADTYPE_OOB_SIMPLE_PAIRING_HASHC 0x0E
- #define GAP_ADTYPE_OOB_SIMPLE_PAIRING_RANDR 0x0F
- #define GAP_ADTYPE_SM_TK 0x10
- #define GAP_ADTYPE_SM_OOB_FLAG 0x11
- #define GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE 0x12
- #define GAP_ADTYPE_SIGNED_DATA 0x13
- #define GAP_ADTYPE_SERVICES_LIST_16BIT 0x14
- #define GAP_ADTYPE_SERVICES_LIST_128BIT 0x15
- #define GAP_ADTYPE_SERVICE_DATA 0x16
- #define GAP_ADTYPE_APPEARANCE 0x19
- #define GAP_ADTYPE_MANUFACTURER_SPECIFIC 0xFF
- #define GAP_ADTYPE_FLAGS_LIMITED 0x01
- #define GAP_ADTYPE_FLAGS_GENERAL 0x02
- #define GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED 0x04
- #define GAP_APPEARE_UNKNOWN 0x0000
- #define GAP_APPEARE_GENERIC_PHONE 0x0040
- #define GAP_APPEARE_GENERIC_COMPUTER 0x0080
- #define GAP_APPEARE_GENERIC_WATCH 0x00C0
- #define GAP_APPEARE_WATCH_SPORTS 0x00C1
- #define GAP_APPEARE_GENERIC_CLOCK 0x0100
- #define GAP_APPEARE_GENERIC_DISPLAY 0x0140
- #define GAP_APPEARE_GENERIC_RC 0x0180
- #define GAP_APPEARE_GENERIC_EYE_GALSSES 0x01C0
- #define GAP_APPEARE_GENERIC_TAG 0x0200
- #define GAP_APPEARE_GENERIC_KEYRING 0x0240
- #define GAP_APPEARE_GENERIC_MEDIA_PLAYER 0x0280
- #define GAP_APPEARE_GENERIC_BARCODE_SCANNER 0x02C0
- #define GAP_APPEARE_GENERIC_THERMOMETER 0x0300
- #define GAP_APPEARE_GENERIC_THERMO_EAR 0x0301
- #define GAP_APPEARE_GENERIC_HR_SENSOR 0x0340
- #define GAP_APPEARE_GENERIC_HRS_BELT 0x0341
- #define GAP_APPEARE_GENERIC_BLOOD_PRESSURE 0x0380
- #define GAP_APPEARE_GENERIC_BP_ARM 0x0381
- #define GAP_APPEARE_GENERIC_BP_WRIST 0x0382
- #define GAP_APPEARE_GENERIC_HID 0x03C0
- #define GAP_APPEARE_HID_KEYBOARD 0x03C1
- #define GAP_APPEARE_HID_MOUSE 0x03C2
- #define GAP_APPEARE_HID_JOYSTIC 0x03C3
- #define GAP_APPEARE_HID_GAMEPAD 0x03C4
- #define GAP_APPEARE_HID_DIGITIZER_TYABLET 0x03C5
- #define GAP_APPEARE_HID_DIGITAL_CARDREADER 0x03C6
- #define GAP_APPEARE_HID_DIGITAL_PEN 0x03C7
- #define GAP_APPEARE_HID_BARCODE_SCANNER 0x03C8
- typedef uint16 gapParamIDs_t;
- typedef struct
- {
- osal_event_hdr_t hdr;
- uint8 opcode;
- } gapEventHdr_t;
- typedef struct
- {
- osal_event_hdr_t hdr;
- uint8 opcode;
- uint8 addrType;
- uint8 newRandomAddr[B_ADDR_LEN];
- } gapRandomAddrEvent_t;
- typedef struct
- {
-
- uint16 intervalMin;
-
- uint16 intervalMax;
-
- uint16 latency;
-
- uint16 timeout;
- } gapPeriConnectParams_t;
- typedef struct
- {
- osal_event_hdr_t hdr;
- uint8 opcode;
- uint8 devAddr[B_ADDR_LEN];
- uint16 dataPktLen;
- uint8 numDataPkts;
- } gapDeviceInitDoneEvent_t;
- typedef struct
- {
- osal_event_hdr_t hdr;
- uint8 opcode;
- uint8 addrType;
- uint8 devAddr[B_ADDR_LEN];
- uint32 signCounter;
- } gapSignUpdateEvent_t;
- typedef struct
- {
- osal_event_hdr_t hdr;
- uint8 opcode;
- uint8 eventType;
- uint8 addrType;
- uint8 addr[B_ADDR_LEN];
- int8 rssi;
- uint8 dataLen;
- uint8 *pEvtData;
- } gapDeviceInfoEvent_t;
- typedef struct
- {
- uint8 taskID;
- uint8 mode;
- uint8 activeScan;
- uint8 whiteList;
- } gapDevDiscReq_t;
- typedef struct
- {
- uint8 eventType;
- uint8 addrType;
- uint8 addr[B_ADDR_LEN];
- } gapDevRec_t;
- typedef struct
- {
- osal_event_hdr_t hdr;
- uint8 opcode;
- uint8 numDevs;
- gapDevRec_t *pDevList;
- } gapDevDiscEvent_t;
- typedef struct
- {
- uint8 eventType;
- uint8 initiatorAddrType;
- uint8 initiatorAddr[B_ADDR_LEN];
- uint8 channelMap;
- uint8 filterPolicy;
- } gapAdvertisingParams_t;
- typedef struct
- {
- osal_event_hdr_t hdr;
- uint8 opcode;
- uint16 interval;
- } gapMakeDiscoverableRspEvent_t;
- typedef struct
- {
- osal_event_hdr_t hdr;
- uint8 opcode;
- } gapEndDiscoverableRspEvent_t;
- typedef struct
- {
- osal_event_hdr_t hdr;
- uint8 opcode;
- uint8 adType;
- } gapAdvDataUpdateEvent_t;
- typedef struct
- {
- uint8 taskID;
- uint8 highDutyCycle;
- uint8 whiteList;
- uint8 addrTypePeer;
- uint8 peerAddr[B_ADDR_LEN];
- } gapEstLinkReq_t;
- typedef struct
- {
- uint16 connectionHandle;
- uint16 intervalMin;
- uint16 intervalMax;
- uint16 connLatency;
- uint16 connTimeout;
- } gapUpdateLinkParamReq_t;
- typedef struct
- {
- osal_event_hdr_t hdr;
- uint8 opcode;
- uint8 devAddrType;
- uint8 devAddr[B_ADDR_LEN];
- uint16 connectionHandle;
- uint16 connInterval;
- uint16 connLatency;
- uint16 connTimeout;
- uint8 clockAccuracy;
- } gapEstLinkReqEvent_t;
- typedef struct
- {
- osal_event_hdr_t hdr;
- uint8 opcode;
- uint8 status;
- uint16 connectionHandle;
- uint16 connInterval;
- uint16 connLatency;
- uint16 connTimeout;
- } gapLinkUpdateEvent_t;
- typedef struct
- {
- osal_event_hdr_t hdr;
- uint8 opcode;
- uint16 connectionHandle;
- uint8 reason;
- } gapTerminateLinkEvent_t;
- typedef struct
- {
- osal_event_hdr_t hdr;
- uint8 opcode;
- uint8 deviceAddr[B_ADDR_LEN];
- uint16 connectionHandle;
- uint8 uiInputs;
- uint8 uiOutputs;
- } gapPasskeyNeededEvent_t;
- typedef struct
- {
- osal_event_hdr_t hdr;
- uint8 opcode;
- uint16 connectionHandle;
- uint8 authState;
- smSecurityInfo_t *pSecurityInfo;
- smSigningInfo_t *pSigningInfo;
- smSecurityInfo_t *pDevSecInfo;
- smIdentityInfo_t *pIdentityInfo;
- } gapAuthCompleteEvent_t;
- typedef struct
- {
- uint16 connectionHandle;
- smLinkSecurityReq_t secReqs;
- } gapAuthParams_t;
- typedef struct
- {
- osal_event_hdr_t hdr;
- uint8 opcode;
- uint16 connectionHandle;
- uint8 deviceAddr[B_ADDR_LEN];
- uint8 authReq;
- } gapSlaveSecurityReqEvent_t;
- typedef struct
- {
- osal_event_hdr_t hdr;
- uint8 opcode;
- uint16 connectionHandle;
- } gapBondCompleteEvent_t;
- typedef struct
- {
- uint8 ioCap;
- uint8 oobDataFlag;
- uint8 authReq;
- uint8 maxEncKeySize;
- keyDist_t keyDist;
- } gapPairingReq_t;
- typedef struct
- {
- osal_event_hdr_t hdr;
- uint8 opcode;
- uint16 connectionHandle;
- gapPairingReq_t pairReq;
- } gapPairingReqEvent_t;
- typedef struct
- {
- uint8 adType;
- uint8 attrLen;
- uint8 *pAttrData;
- } gapAdvDataToken_t;
-
- extern bStatus_t GAP_DeviceInit( uint8 taskID,
- uint8 profileRole,
- uint8 maxScanResponses,
- uint8 *pIRK,
- uint8 *pSRK,
- uint32 *pSignCounter );
-
- extern bStatus_t GAP_SetAdvToken( gapAdvDataToken_t *pToken );
-
- extern gapAdvDataToken_t *GAP_GetAdvToken( uint8 adType );
-
- extern gapAdvDataToken_t *GAP_RemoveAdvToken( uint8 adType );
-
- extern bStatus_t GAP_UpdateAdvTokens( void );
-
- extern bStatus_t GAP_SetParamValue( gapParamIDs_t paramID, uint16 paramValue );
-
- extern uint16 GAP_GetParamValue( gapParamIDs_t paramID );
-
- extern bStatus_t GAP_ConfigDeviceAddr( uint8 addrType, uint8 *pStaticAddr );
-
- extern void GAP_RegisterForHCIMsgs( uint8 taskID );
-
- extern bStatus_t GAP_DeviceDiscoveryRequest( gapDevDiscReq_t *pParams );
-
- extern bStatus_t GAP_DeviceDiscoveryCancel( uint8 taskID );
-
- extern bStatus_t GAP_MakeDiscoverable( uint8 taskID, gapAdvertisingParams_t *pParams );
-
- extern bStatus_t GAP_UpdateAdvertisingData( uint8 taskID, uint8 adType,
- uint8 dataLen, uint8 *pAdvertData );
-
- extern bStatus_t GAP_EndDiscoverable( uint8 taskID );
-
- extern bStatus_t GAP_ResolvePrivateAddr( uint8 *pIRK, uint8 *pAddr );
-
- extern bStatus_t GAP_EstablishLinkReq( gapEstLinkReq_t *pParams );
-
- extern bStatus_t GAP_TerminateLinkReq( uint8 taskID, uint16 connectionHandle, uint8 reason );
-
- extern bStatus_t GAP_UpdateLinkParamReq( gapUpdateLinkParamReq_t *pParams );
-
- extern uint8 GAP_NumActiveConnections( void );
-
- extern bStatus_t GAP_Authenticate( gapAuthParams_t *pParams, gapPairingReq_t *pPairReq );
-
- extern bStatus_t GAP_TerminateAuth( uint16 connectionHandle, uint8 reason );
-
- extern bStatus_t GAP_PasskeyUpdate( uint8 *pPasskey, uint16 connectionHandle );
-
- extern bStatus_t GAP_PasscodeUpdate( uint32 passcode, uint16 connectionHandle );
-
- extern bStatus_t GAP_SendSlaveSecurityRequest( uint16 connectionHandle, uint8 authReq );
-
- extern bStatus_t GAP_Signable( uint16 connectionHandle, uint8 authenticated, smSigningInfo_t *pParams );
-
- extern bStatus_t GAP_Bond( uint16 connectionHandle, uint8 authenticated,
- smSecurityInfo_t *pParams, uint8 startEncryption );
-
- extern bStatus_t GAP_ParamsInit( uint8 taskID, uint8 profileRole );
-
- extern void GAP_SecParamsInit( uint8 *pIRK, uint8 *pSRK, uint32 *pSignCounter );
-
- extern bStatus_t GAP_PeriDevMgrInit( void );
-
- extern bStatus_t GAP_CentDevMgrInit( uint8 maxScanResponses );
-
- extern void GAP_CentConnRegister( void );
-
- extern void GAP_Init( uint8 task_id );
-
- extern uint16 GAP_ProcessEvent( uint8 task_id, uint16 events );
- #ifdef __cplusplus
- }
- #endif
- #endif
|