📄 gap_ui.h
字号:
#ifndef GAP_UI_H
#define GAP_UI_H
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Module Name:
gap_ui.h
Abstract:
The module defines the indexes of operation codes and event codes
Author:
Wang Bin
Revision History:
2003.12.23 Zhang Tao
modified with bluetooth specification 1.2 version
---------------------------------------------------------------------------*/
/******************************************************************************
* *
* GAP_ExecuteCommand function manual *
* *
******************************************************************************
I have implemented all of HCI commands(see Part H:1 of Bluetooth 11 Specifications
book for each command in detail) in one GAP function, GAP_ExecuteCommand(). This
function is a synchronous one. That means the function will wait for the proper event
or timeout event to occur before it returns.The prototype of this function is
UCHAR GAP_ExecuteCommand(UCHAR idx, UCHAR *inp, UCHAR *outp);
idx idx is a UCHAR type parameter, which specifies the command index you want
to execute.
inp inp is the pointer to the address of input parameters, and NULL is valid.
outp outp is the pointer to the address of output parameters.
The content of input parameters and outp parameters is command specified.
Part H:1 of Bluetooth 11 Specifications book has detailed definiation for each
command's parameter.
I write a table below to describe each command index with its corresponding input
and output paramter. You can use this table as a quick manual to access the service
provided by GAP.
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
index input output
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
***Link control commands***
IDX_INQ struct GapInquiryStru UCHAR status
IDX_INQ_CANCEL NULL UCHAR status
IDX_PERIODIC_INQ_MODE struct GapPeriodicInqModeStru UCHAR status
IDX_EXIT_PERIODIC_INQ_MODE NULL UCHAR status
IDX_CREATE_CONN struct GapCreateConnStru struct GapConnCompEvStru
IDX_DISC struct GapDisconnStru struct GapDisconnCompEvStru
IDX_ADD_SCO_CONN struct GapAddScoConnStru struct GapConnCompEvStru
IDX_ACC_CONN_REQ struct GapAcceptConnReqStru struct GapConnCompEvStru
IDX_REJ_CONN_REQ struct GapRejectConnReqStru struct GapConnCompEvStru
IDX_LINK_KEY_REQ_REPLY struct GapLinkKeyStru struct GapLinkKeyOutStru
IDX_LINK_KEY_REQ_NEG_REPLY struct GapLinkKeyNegStru struct GapLinkKeyOutStru
IDX_PIN_CODE_REQ_REPLY struct GapPinCodeStru struct GapPinCodeOutStru
IDX_PIN_CODE_REQ_NEG_REPLY struct GapPinCodeNegStru struct GapPinCodeOutStru
IDX_CHANGE_CONN_PKT_TYPE struct GapChangePacketTypeStru struct GapPacketChangeEvStru
IDX_AUTH_REQ WORD conn_hdl struct GapAuthCompEvStru
IDX_SET_CONN_ENCRY struct GapSetConnEncryStru struct GapEncryChangeEvStru
IDX_CHANGE_CONN_LINK_KEY WORD conn_hdl struct GapChangeLinkKeyEvStru
IDX_MASTER_LINKKEY struct GapMasterLinkKeyStru struct GapMasterLinkKeyEvStru
IDX_REM_NAME_REQ struct GapRemNameReqStru struct GapRemNameReqCompEvStru
IDX_READ_REM_SUP_FEATURES WORD conn_hdl struct GapReadRemFeatureCompEvStru
IDX_READ_REM_VER_INFO WORD conn_hdl struct GapReadRemVerInfoCompEvStru
IDX_READ_CLK_OFF WORD conn_hdl struct GapReadClkOffsetCompEvStru
****Link policy commands****
IDX_HOLD_MODE struct GapHoldModeStru struct GapModeChangeEvStru
IDX_SNIFF_MODE struct GapSniffModeStru struct GapModeChangeEvStru
IDX_EXIT_SNIFF_MODE WORD conn_hdl struct GapModeChangeEvStru
IDX_PARK_MODE struct GapParkModeStru struct GapModeChangeEvStru
IDX_EXIT_PARK_MODE WORD conn_hdl struct GapModeChangeEvStru
IDX_QOS_SETUP struct GapQosSetupStru struct GapQosSetupCompEvStru
IDX_ROLE_DCV WORD conn_hdl struct GapRoleDiscoveryOutStru
IDX_SW_ROLE struct GapSwitchRoleStru struct GapRoleChangeEvStru
IDX_READ_LINK_POLICY WORD conn_hdl struct GapReadLPSettingOutStru
IDX_WRITE_LINK_POLICY struct GapWriteLPSettingStru struct GapWriteLPSettingOutStru
***Controller & baseband commands***
IDX_SET_EV_MASK struct GapSetEvMaskStru UCHAR status
IDX_RESET NULL UCHAR status
IDX_SET_EV_FILTER struct GapSetEvFilterStru UCHAR status
IDX_FLUSH WORD conn_hdl struct GapFlushOutStru
IDX_READ_PIN_TYPE NULL struct GapReadPinTypeOutStru
IDX_WRITE_PIN_TYPE struct GapWritePinTypeStru UCHAR status
IDX_CREATE_NEW_UNIT_KEY NULL UCHAR status
IDX_READ_STORED_LINK_KEY struct GapReadStoredKeyStru struct GapReadStoredKeyOutStru
IDX_WRITE_STORED_LINK_KEY struct GapWriteStoredKeyStru struct GapWriteStoredKeyOutStru
IDX_DEL_STORED_LINK_KEY struct GapDelStoredKeyStru struct GapDelStoredKeyOutStru
IDX_CHANGE_LOCAL_NAME struct GapChangeNameStru UCHAR status
IDX_READ_LOCAL_NAME NULL struct GapReadNameOutStru
IDX_READ_CONN_ACC_TIMEOUT NULL struct GapReadConnTimeOutStru
IDX_WRITE_CONN_ACC_TIMEOUT struct GapWriteConnTimeStru UCHAR status
IDX_READ_PAGE_TIMEOUT NULL struct GapReadPageTimeOutStru
IDX_WRITE_PAGE_TIMEOUT struct GapWritePageTimeStru UCHAR status
IDX_READ_SCAN_EN NULL struct GapReadScanEnOutStru
IDX_WRITE_SCAN_EN struct GapWriteScanEnStru UCHAR status
IDX_READ_PGSCAN_ACT NULL struct GapReadPageScanActOutStru
IDX_WRITE_PGSCAN_ACT struct GapWritePageScanActStru UCHAR status
IDX_READ_INQ_SCAN_ACT NULL struct GapReadInqScanActOutStru
IDX_WRITE_INQ_SCAN_ACT struct GapWriteInqScanActStru UCHAR status
IDX_READ_AUTH_EN NULL struct GapReadAuthEnOutStru
IDX_WRITE_AUTH_EN struct GapWriteAuthEnStru UCHAR status
IDX_READ_ENCRY_MODE NULL struct GapReadEncryModeOutStru
IDX_WRITE_ENCRY_MODE struct GapWriteEncryModeStru UCHAR status
IDX_READ_DEV_CLASS NULL struct GapReadClassOfDevOutStru
IDX_WRITE_DEV_CLASS struct GapWriteClassOfDevStru UCHAR status
IDX_READ_VOICE_SETTING NULL struct GapReadVoiceSettingOutStru
IDX_WRITE_VOICE_SETTING struct GapWriteVoiceSettingStru UCHAR status
IDX_READ_AUTO_FLUSH_TIMEOUT WORD conn_hdl struct GapReadAutoFlushOutStru
IDX_WRITE_AUTO_FLUSH_TIMEOUT struct GapWriteAutoFlushStru struct GapWriteAutoFlushOutStru
IDX_READ_NUM_BROAD_RETRANS NULL struct GapReadNumBCRetranOutStru
IDX_WRITE_NUM_BROAD_RETRANS struct GapWriteNumBCRetranStru UCHAR status
IDX_READ_HOLD_MODE_ACT NULL struct GapReadHoldModeActOutStru
IDX_WRITE_HOLD_MODE_ACT struct GapWriteHoldModeActStru UCHAR status
IDX_READ_TRANS_POWER_LEVEL struct GapReadTransPowerStru struct GapReadTransPowerOutStru
IDX_READ_SCO_FLOW_CTRL_EN NULL struct GapReadSCOFlowCtlOutStru
IDX_WRITE_SCO_FLOW_CTRL_EN struct GapWriteSCOFlowCtlStru UCHAR status
IDX_SET_HC_TO_HOST_FLOW_CTRL struct GapSetHCToHostFlowStru UCHAR status
IDX_HOST_BUF_SIZE struct GapHostBuffSizeStru UCHAR status
IDX_HOST_NUM_COMP_PKTS struct GapHostNumCompPacketStru UCHAR status
IDX_READ_LINK_SUPER_TIMEOUT WORD conn_hdl struct GapReadSuperTimeOutStru
IDX_WRITE_LINK_SUPER_TIMEOUT struct GapWriteSuperTimeStru struct GapWriteSuperTimeOutStru
IDX_READ_NUM_SUP_IAC NULL struct GapReadIACOutStru
IDX_READ_CUR_IAC_LAP NULL struct GapReadCurrLAPOutStru
IDX_WRITE_CUR_IAC_LAP struct GapWriteCurrLAPStru UCHAR status
IDX_READ_PGSCAN_PERIOD_MODE NULL struct GapReadScanPeriodModeOutStru
IDX_WRITE_PGSCAN_PERIOD_MODE struct GapWriteScanPerModeStru UCHAR status
IDX_READ_PGSCAN_MODE NULL struct GapReadPageScanModeOutStru
IDX_WRITE_PGSCAN_MODE struct GapWritePageScanModeStru UCHAR status
**Informational Parameters***
IDX_READ_LOCAL_VER_INFO NULL struct GapReadLocalVerInfoOutStru
IDX_READ_LOCAL_SUP_FEATURES NULL struct GapReadLocalFeatureOutStru
IDX_READ_BUF_SIZE NULL struct GapReadBufSizeOutStru
IDX_READ_COUNTRY_CODE NULL struct GapReadCountryCodeOutStru
IDX_READ_BDADDR NULL struct GapReadBDAddrOutStru
**Status Parameters***
IDX_READ_FAILED_CONTACT_CNT WORD conn_hdl struct GapReadFailedCountOutStru
IDX_RESET_FAILED_CONTACT_CNT WORD conn_hdl struct GapResetFailedCountOutStru
IDX_GET_LINK_QUAILTY WORD conn_hdl struct GapGetLinkQualityOutStru
IDX_READ_RSSI WORD conn_hdl struct GapReadRSSIOutStru
***Testing Commands***
IDX_READ_LPBK_MODE NULL struct GapReadLBModeOutStru
IDX_WRITE_LPBK_MODE struct GapWriteLBModeStru UCHAR status
IDX_EN_DEV_UNDER_TEST_MODE NULL UCHAR status
***1.2 command begin***
IDX_CREATE_CONN_CANCEL struct GapCreateConnCancelStru struct GapCreateConnCancelOutStru
IDX_REM_NAME_REQ_CANCEL struct GapRemNameReqCancelStru struct GapRemNameReqCancelOutStru
IDX_READ_REM_EX_FEATURES struct GapReadRemExFeaturesStru struct GapReadRemExFeaturesCompEvStru
IDX_READ_LMP_HANDLE WORD conn_hdl struct GapReadLMPHdlOutStru
// create synchronous connetiion
IDX_SETUP_SYNC_CONN struct GapSetupSyncConnStru struct GapSyncConnCompEvStru
// modify parameter of an existing synchronous connection
IDX_SETUP_SYNC_CONN struct GapSetupSyncConnStru struct GapSyncConnChangeEvStru
IDX_ACC_SYNC_CONN_REQ struct GapAccSyncConnReqStru struct GapSyncConnCompEvStru
IDX_REJ_SYNC_CONN_REQ struct GapRejSyncConnReqStru struct GapSyncConnCompEvStru
IDX_READ_DEF_LINK_POLICY_SETTING NULL GapReadDefLinkPolicySettingOutStru
IDX_WRITE_DEF_LINK_POLICY_SETTING struct GapWriteDefLinkPolicySettingStru UCHAR status
IDX_FLOW_SPEC struct GapFlowSpecStru struct GapFlowSpecCompEvStru
IDX_SET_AFH_HOST_CHNL_CLS struct GapSetAfhHostChnlClsStru UCHAR status
IDX_READ_INQ_SCAN_TYPE NULL GapReadInqScanTypeOutStru
IDX_WRITE_INQ_SCAN_TYPE struct GapWriteInqScanTypeStru UCHAR status
IDX_READ_INQ_MODE NULL struct GapReadInqModeOutStru
IDX_WRITE_INQ_MODE struct GapWriteInqModeStru UCHAR status
IDX_READ_PGSCAN_TYPE NULL struct GapReadPgScanTypeOutStru
IDX_WRITE_PGSCAN_TYPE struct GapWritePgScanTypeStru UCHAR status
IDX_READ_AFH_CHNL_ASSESS_MODE NULL struct GapReadAfhChnlAssessModeOutStru
IDX_WRITE_AFH_CHNL_ASSESS_MODE struct GapWriteAfhChnlAssessModeStru UCHAR status
IDX_READ_LOCAL_SUP_COMMANDS NULL struct GapReadLocalSupCmdOutStru
IDX_READ_LOCAL_EX_FEATURES struct GapReadLocalExFeaturesStru struct GapReadLocalExFeaturesOutStru
IDX_READ_AFH_CHNL_MAP WORD conn_hdl struct GapReadAfhChnlMapOutStru
IDX_READ_CLOCK struct GapReadClockStru struct GapReadClockOutStru
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/
#include "sm.h"
/******************************************************************************
* *
* MACRO DEFINATION *
* *
******************************************************************************/
/*index of Gap commands begins*/
/**********Link control commands************/
#define IDX_INQ 0
#define IDX_INQ_CANCEL 1
#define IDX_PERIODIC_INQ_MODE 2
#define IDX_EXIT_PERIODIC_INQ_MODE 3
#define IDX_CREATE_CONN 4
#define IDX_DISC 5
#define IDX_ADD_SCO_CONN 6
#define IDX_ACC_CONN_REQ 7
#define IDX_REJ_CONN_REQ 8
#define IDX_LINK_KEY_REQ_REPLY 9
#define IDX_LINK_KEY_REQ_NEG_REPLY 10
#define IDX_PIN_CODE_REQ_REPLY 11
#define IDX_PIN_CODE_REQ_NEG_REPLY 12
#define IDX_CHANGE_CONN_PKT_TYPE 13
#define IDX_AUTH_REQ 14
#define IDX_SET_CONN_ENCRY 15
#define IDX_CHANGE_CONN_LINK_KEY 16
#define IDX_MASTER_LINKKEY 17
#define IDX_REM_NAME_REQ 18
#define IDX_READ_REM_SUP_FEATURES 19
#define IDX_READ_REM_VER_INFO 20
#define IDX_READ_CLK_OFF 21
/************Link policy commands************/
#define IDX_HOLD_MODE 22
#define IDX_SNIFF_MODE 23
#define IDX_EXIT_SNIFF_MODE 24
#define IDX_PARK_MODE 25
#define IDX_EXIT_PARK_MODE 26
#define IDX_QOS_SETUP 27
#define IDX_ROLE_DCV 28
#define IDX_SW_ROLE 29
#define IDX_READ_LINK_POLICY 30
#define IDX_WRITE_LINK_POLICY 31
/*******Link control & baseband commands*****/
#define IDX_SET_EV_MASK 32
#define IDX_RESET 33
#define IDX_SET_EV_FILTER 34
#define IDX_FLUSH 35
#define IDX_READ_PIN_TYPE 36
#define IDX_WRITE_PIN_TYPE 37
#define IDX_CREATE_NEW_UNIT_KEY 38
#define IDX_READ_STORED_LINK_KEY 39
#define IDX_WRITE_STORED_LINK_KEY 40
#define IDX_DEL_STORED_LINK_KEY 41
#define IDX_CHANGE_LOCAL_NAME 42
#define IDX_READ_LOCAL_NAME 43
#define IDX_READ_CONN_ACC_TIMEOUT 44
#define IDX_WRITE_CONN_ACC_TIMEOUT 45
#define IDX_READ_PAGE_TIMEOUT 46
#define IDX_WRITE_PAGE_TIMEOUT 47
#define IDX_READ_SCAN_EN 48
#define IDX_WRITE_SCAN_EN 49
#define IDX_READ_PGSCAN_ACT 50
#define IDX_WRITE_PGSCAN_ACT 51
#define IDX_READ_INQ_SCAN_ACT 52
#define IDX_WRITE_INQ_SCAN_ACT 53
#define IDX_READ_AUTH_EN 54
#define IDX_WRITE_AUTH_EN 55
#define IDX_READ_ENCRY_MODE 56
#define IDX_WRITE_ENCRY_MODE 57
#define IDX_READ_DEV_CLASS 58
#define IDX_WRITE_DEV_CLASS 59
#define IDX_READ_VOICE_SETTING 60
#define IDX_WRITE_VOICE_SETTING 61
#define IDX_READ_AUTO_FLUSH_TIMEOUT 62
#define IDX_WRITE_AUTO_FLUSH_TIMEOUT 63
#define IDX_READ_NUM_BROAD_RETRANS 64
#define IDX_WRITE_NUM_BROAD_RETRANS 65
#define IDX_READ_HOLD_MODE_ACT 66
#define IDX_WRITE_HOLD_MODE_ACT 67
#define IDX_READ_TRANS_POWER_LEVEL 68
#define IDX_READ_SCO_FLOW_CTRL_EN 69
#define IDX_WRITE_SCO_FLOW_CTRL_EN 70
#define IDX_SET_HC_TO_HOST_FLOW_CTRL 71
#define IDX_HOST_BUF_SIZE 72
#define IDX_HOST_NUM_COMP_PKTS 73
#define IDX_READ_LINK_SUPER_TIMEOUT 74
#define IDX_WRITE_LINK_SUPER_TIMEOUT 75
#define IDX_READ_NUM_SUP_IAC 76
#define IDX_READ_CUR_IAC_LAP 77
#define IDX_WRITE_CUR_IAC_LAP 78
#define IDX_READ_PGSCAN_PERIOD_MODE 79
#define IDX_WRITE_PGSCAN_PERIOD_MODE 80
#define IDX_READ_PGSCAN_MODE 81
#define IDX_WRITE_PGSCAN_MODE 82
/*********Informational Parameters***********/
#define IDX_READ_LOCAL_VER_INFO 83
#define IDX_READ_LOCAL_SUP_FEATURES 84
#define IDX_READ_BUF_SIZE 85
#define IDX_READ_COUNTRY_CODE 86
#define IDX_READ_BDADDR 87
/************Status Parameters***************/
#define IDX_READ_FAILED_CONTACT_CNT 88
#define IDX_RESET_FAILED_CONTACT_CNT 89
#define IDX_GET_LINK_QUAILTY 90
#define IDX_READ_RSSI 91
/************Testing Commands****************/
#define IDX_READ_LPBK_MODE 92
#define IDX_WRITE_LPBK_MODE 93
#define IDX_EN_DEV_UNDER_TEST_MODE 94
#ifdef CONFIG_HCI_12
/************HCI 1.2 Commands****************/
#define IDX_READ_REM_EX_FEATURES 95
#define IDX_READ_LMP_HANDLE 96
#define IDX_SETUP_SYNC_CONN 97
#define IDX_READ_DEF_LINK_POLICY_SETTING 98
#define IDX_WRITE_DEF_LINK_POLICY_SETTING 99
#define IDX_FLOW_SPEC 100
#define IDX_SET_AFH_HOST_CHNL_CLS 101
#define IDX_READ_INQ_SCAN_TYPE 102
#define IDX_WRITE_INQ_SCAN_TYPE 103
#define IDX_READ_INQ_MODE 104
#define IDX_WRITE_INQ_MODE 105
#define IDX_READ_PGSCAN_TYPE 106
#define IDX_WRITE_PGSCAN_TYPE 107
#define IDX_READ_AFH_CHNL_ASSESS_MODE 108
#define IDX_WRITE_AFH_CHNL_ASSESS_MODE 109
#define IDX_READ_LOCAL_EX_FEATURES 110
#define IDX_READ_AFH_CHNL_MAP 111
#define IDX_READ_CLOCK 112
#define IDX_ACC_SYNC_CONN_REQ 113
#define IDX_REJ_SYNC_CONN_REQ 114
#define IDX_CREATE_CONN_CANCEL 115
#define IDX_REM_NAME_REQ_CANCEL 116
#define IDX_READ_LOCAL_SUP_COMMANDS 117
#endif
#define BD_ADDR_LEN 6 /* bluetooth address length */
#define CLS_DEV_LEN 3 /* class of device length */
#define LMP_FEATURE_LEN 8 /* length of LMP features */
#define MAX_PIN_CODE_LEN 16 /* maxinimum length of PIN code */
#define MAX_LINK_KEY_LEN 16 /* maxinimum length of Link key */
#define ROLE_MASTER 0x0 /* local device must be the master of the connection */
#define ROLE_SLAVE 0x1 /* local device must be the slave of the connection */
#define ROLE_MASTER_SLAVE 0x2 /* local device's role is free, which is the default value */
#define NO_SCAN_ENABLE 0x0 /* no scans enabled */
#define INQUIRY_SCAN_ENABLE 0x1 /* inquiry scan enabled */
#define PAGE_SCAN_ENABLE 0x2 /* page scan enabled */
#define INQUIRY_PAGE_SCAN_ENABLE 0x3 /* inquiry and page scan enable */
/* filter type in command Set_Event_Filter */
#define FT_CLR_ALL_FLT 0x0 /* clear all filters */
#define FT_INQ_RSLT 0x1 /* inquiry result */
#define FT_CONN_SETUP 0x2 /* connection setup */
/* filter condition type for inquiry */
#define FCT_INQ_NEW_DEV 0x0 /* inquiry new device */
#define FCT_INQ_CLS_DEV 0x1 /* a specific class of device */
#define FCT_INQ_BD_ADDR 0X2 /* a specific bd_addr */
/* filter condition type for inquiry */
#define FCT_CONN_ALL_DEV 0x0 /* allow connection from all devices */
#define FCT_CONN_CLS_DEV 0x1 /* a specific class of device */
#define FCT_CONN_BD_ADDR 0X2 /* a specific bd_addr */
#define FCT_NOT_AUTO_ACCEPT 0x1 /*not auto-accept the connection */
#define FCT_AUTO_ACCEPT 0x2 /* auto-accept the connection */
#define CMD_LEN_EV_FILTER_CLR_ALL 0x1 /* The parameter length of set event filter with filter_type==0x00*/
#define CMD_LEN_EV_FILTER_INQ_NEW 0x2 /* The parameter length of set event filter with filter_type==0x01 & cond_type==0x00*/
#define CMD_LEN_EV_FILTER_INQ_CLS 0x8 /* The parameter length of set event filter with filter_type==0x01 & cond_type==0x01*/
#define CMD_LEN_EV_FILTER_INQ_ADDR 0x8 /* The parameter length of set event filter with filter_type==0x01 & cond_type==0x02*/
#define CMD_LEN_EV_FILTER_CONN_ALL 0x2 /* The parameter length of set event filter with filter_type==0x02 & cond_type==0x00*/
#define CMD_LEN_EV_FILTER_CONN_CLS 0x8 /* The parameter length of set event filter with filter_type==0x02 & cond_type==0x01*/
#define CMD_LEN_EV_FILTER_CONN_ADDR 0x8 /* The parameter length of set event filter with filter_type==0x02 & cond_type==0x02*/
#define EV_MASK_LEN 8
#define MAX_KEYS_NUM 10
#define MAX_CONN_COMP 10
#define NUM_IAC_LAP 10
#define IAC_LAP_LEN 3
#define CONN_HDL_LEN 2
#define MAX_IACLAP_NUM 10
#define INQUIRY_GENERAL 0x00000000
#define INQUIRY_LIMITED 0x00000001
#define NAME_REQUIRED 0x00000002
#define COD_SRVCLS 0xFFE000
#define COD_DEVCLS 0x001F00
#define COD_MINDEVCLS COD_DEVCLS | 0x0000FC
/*major service classes*/
#define SRVCLS_LDM 0x002000
#define SRVCLS_POSITION 0x010000
#define SRVCLS_NETWORK 0x020000
#define SRVCLS_RENDER 0x040000
#define SRVCLS_CAPTURE 0x080000
#define SRVCLS_OBJECT 0x100000
#define SRVCLS_AUDIO 0x200000
#define SRVCLS_TELEPHONE 0x400000
#define SRVCLS_INFOR 0x800000
#define SRVCLS_MASK(a) (((DWORD)(a) >> 13) & 0x7FF)
/*major device classes*/
#define DEVCLS_MISC 0x000000
#define DEVCLS_COMPUTER 0x000100
#define DEVCLS_PHONE 0x000200
//#define DEVCLS_PHONE 0x001000
#define DEVCLS_LAP 0x000300
#define DEVCLS_AUDIO 0x000400
#define DEVCLS_PERIPHERAL 0x000500
#define DEVCLS_IMAGE 0x000600
#define DEVCLS_UNCLASSIFIED 0x001F00
#define DEVCLS_MASK(a) (((DWORD)(a) >> 8) & 0x1F)
#define MINDEVCLS_MASK(a) (((DWORD)(a) >> 2) & 0x3F)
/*the minor device class field - computer major class */
#define COMPCLS_UNCLASSIFIED (DEVCLS_COMPUTER | 0x000000)
#define COMPCLS_DESKTOP (DEVCLS_COMPUTER | 0x000004)
#define COMPCLS_SERVER (DEVCLS_COMPUTER | 0x000008)
#define COMPCLS_LAPTOP (DEVCLS_COMPUTER | 0x00000C)
#define COMPCLS_HANDHELD (DEVCLS_COMPUTER | 0x000010)
#define COMPCLS_PALMSIZED (DEVCLS_COMPUTER | 0x000014)
#define COMPCLS_WEARABLE (DEVCLS_COMPUTER | 0x000018)
/*the minor device class field - phone major class*/
#define PHONECLS_UNCLASSIFIED (DEVCLS_PHONE | 0x000000)
#define PHONECLS_CELLULAR (DEVCLS_PHONE | 0x000004)
#define PHONECLS_CORDLESS (DEVCLS_PHONE | 0x000008)
#define PHONECLS_SMARTPHONE (DEVCLS_PHONE | 0x00000C)
#define PHONECLS_WIREDMODEM (DEVCLS_PHONE | 0x000010)
#define PHONECLS_COMMONISDNACCESS (DEVCLS_PHONE | 0x000014)
#define PHONECLS_SIMCARDREADER (DEVCLS_PHONE | 0x000018)
/*the minor device class field - LAN/Network access point major class*/
#define LAP_Fully (DEVCLS_LAP | 0x000000)
#define LAP_17 (DEVCLS_LAP | 0x000002)
#define LAP_33 (DEVCLS_LAP | 0x000004)
#define LAP_50 (DEVCLS_LAP | 0x000006)
#define LAP_67 (DEVCLS_LAP | 0x000008)
#define LAP_83 (DEVCLS_LAP | 0x00000A)
#define LAP_99 (DEVCLS_LAP | 0x00000C)
#define LAP_NOSRV (DEVCLS_LAP | 0x00000D)
/*the minor device class field - Audio/Video major class*/
#define AV_UNCLASSIFIED (DEVCLS_AUDIO | 0x000000)
#define AV_HEADSET (DEVCLS_AUDIO | 0x000004)
#define AV_HANDSFREE (DEVCLS_AUDIO | 0x000008)
#define AV_HEADANDHAND (DEVCLS_AUDIO | 0x00000C)
#define AV_MICROPHONE (DEVCLS_AUDIO | 0x000010)
#define AV_LOUDSPEAKER (DEVCLS_AUDIO | 0x000014)
#define AV_HEADPHONES (DEVCLS_AUDIO | 0x000018)
#define AV_PORTABLEAUDIO (DEVCLS_AUDIO | 0x00001C)
#define AV_CARAUDIO (DEVCLS_AUDIO | 0x000020)
#define AV_SETTOPBOX (DEVCLS_AUDIO | 0x000024)
#define AV_HIFIAUDIO (DEVCLS_AUDIO | 0x000028)
#define AV_VCR (DEVCLS_AUDIO | 0x00002C)
#define AV_VIDEOCAMERA (DEVCLS_AUDIO | 0x000030)
#define AV_CAMCORDER (DEVCLS_AUDIO | 0x000034)
#define AV_VIDEOMONITOR (DEVCLS_AUDIO | 0x000038)
#define AV_VIDEODISPANDLOUDSPK (DEVCLS_AUDIO | 0x00003C)
#define AV_VIDEOCONFERENCE (DEVCLS_AUDIO | 0x000040)
#define AV_GAMEORTOY (DEVCLS_AUDIO | 0x000048)
/*the minor device class field - peripheral major class*/
#define PERIPHERAL_KEYBOARD (DEVCLS_PERIPHERAL | 0x000040)
#define PERIPHERAL_POINT (DEVCLS_PERIPHERAL | 0x000080)
#define PERIPHERAL_KEYORPOINT (DEVCLS_PERIPHERAL | 0x0000C0)
#define PERIPHERAL_UNCLASSIFIED (DEVCLS_PERIPHERAL | 0x000000)
#define PERIPHERAL_JOYSTICK (DEVCLS_PERIPHERAL | 0x000004)
#define PERIPHERAL_GAMEPAD (DEVCLS_PERIPHERAL | 0x000008)
#define PERIPHERAL_REMCONTROL (DEVCLS_PERIPHERAL | 0x00000C)
#define PERIPHERAL_SENSE (DEVCLS_PERIPHERAL | 0x000010)
/*the minor device class field - imaging major class*/
#define IMAGE_DISPLAY (DEVCLS_IMAGE | 0x000010)
#define IMAGE_CAMERA (DEVCLS_IMAGE | 0x000020)
#define IMAGE_SCANNER (DEVCLS_IMAGE | 0x000040)
#define IMAGE_PRINTER (DEVCLS_IMAGE | 0x000080)
/*Used in the functions GAP_GetLocalDevInfo and GAP_SetLocalDevInfo*/
#define LOC_NAME_AVAILABLE 0x00000001
#define LOC_ADDR_AVAILABLE 0x00000002
#define LOC_CLS_AVAILABLE 0x00000004
#define LOC_ROLE 0x00000008
#define LOC_SEC_MODE 0x00000010
#define LOC_VISIBLE_MODE 0x00000020
#define LOC_DEV_MASKALL 0x0000003f
#define LOC_DEV_DEFAULT_SETMASK (LOC_ROLE|LOC_SEC_MODE|LOC_VISIBLE_MODE)
#define LOC_DEV_DEFAULT_GETMASK (LOC_NAME_AVAILABLE|LOC_ADDR_AVAILABLE|LOC_CLS_AVAILABLE)
#define SM_MODE_1 0x1
#define SM_MODE_2 0x2
#define SM_MODE_3 0x3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -