📄 hci.h
字号:
#define EXIT_SNIFF_MODE_CP_SIZE 2#define OCF_PARK_MODE 0x0005typedef struct { uint16_t handle; uint16_t max_interval; uint16_t min_interval;} __attribute__ ((packed)) park_mode_cp;#define PARK_MODE_CP_SIZE 6#define OCF_EXIT_PARK_MODE 0x0006typedef struct { uint16_t handle;} __attribute__ ((packed)) exit_park_mode_cp;#define EXIT_PARK_MODE_CP_SIZE 2#define OCF_QOS_SETUP 0x0007typedef struct { uint8_t service_type; /* 1 = best effort */ uint32_t token_rate; /* Byte per seconds */ uint32_t peak_bandwidth; /* Byte per seconds */ uint32_t latency; /* Microseconds */ uint32_t delay_variation; /* Microseconds */} __attribute__ ((packed)) hci_qos;#define HCI_QOS_CP_SIZE 17typedef struct { uint16_t handle; uint8_t flags; /* Reserved */ hci_qos qos;} __attribute__ ((packed)) qos_setup_cp;#define QOS_SETUP_CP_SIZE (3 + HCI_QOS_CP_SIZE)#define OCF_ROLE_DISCOVERY 0x0009typedef struct { uint16_t handle;} __attribute__ ((packed)) role_discovery_cp;#define ROLE_DISCOVERY_CP_SIZE 2typedef struct { uint8_t status; uint16_t handle; uint8_t role;} __attribute__ ((packed)) role_discovery_rp;#define ROLE_DISCOVERY_RP_SIZE 4#define OCF_SWITCH_ROLE 0x000Btypedef struct { bdaddr_t bdaddr; uint8_t role;} __attribute__ ((packed)) switch_role_cp;#define SWITCH_ROLE_CP_SIZE 7#define OCF_READ_LINK_POLICY 0x000Ctypedef struct { uint16_t handle;} __attribute__ ((packed)) read_link_policy_cp;#define READ_LINK_POLICY_CP_SIZE 2typedef struct { uint8_t status; uint16_t handle; uint16_t policy;} __attribute__ ((packed)) read_link_policy_rp;#define READ_LINK_POLICY_RP_SIZE 5#define OCF_WRITE_LINK_POLICY 0x000Dtypedef struct { uint16_t handle; uint16_t policy;} __attribute__ ((packed)) write_link_policy_cp;#define WRITE_LINK_POLICY_CP_SIZE 4typedef struct { uint8_t status; uint16_t handle;} __attribute__ ((packed)) write_link_policy_rp;#define WRITE_LINK_POLICY_RP_SIZE 3/* Host Controller and Baseband */#define OGF_HOST_CTL 0x03#define OCF_SET_EVENT_MASK 0x0001typedef struct { uint8_t mask[8];} __attribute__ ((packed)) set_event_mask_cp;#define SET_EVENT_MASK_CP_SIZE 8#define OCF_RESET 0x0003#define OCF_SET_EVENT_FLT 0x0005typedef struct { uint8_t flt_type; uint8_t cond_type; uint8_t condition[0];} __attribute__ ((packed)) set_event_flt_cp;#define SET_EVENT_FLT_CP_SIZE 2/* Filter types */#define FLT_CLEAR_ALL 0x00#define FLT_INQ_RESULT 0x01#define FLT_CONN_SETUP 0x02/* INQ_RESULT Condition types */#define INQ_RESULT_RETURN_ALL 0x00#define INQ_RESULT_RETURN_CLASS 0x01#define INQ_RESULT_RETURN_BDADDR 0x02/* CONN_SETUP Condition types */#define CONN_SETUP_ALLOW_ALL 0x00#define CONN_SETUP_ALLOW_CLASS 0x01#define CONN_SETUP_ALLOW_BDADDR 0x02/* CONN_SETUP Conditions */#define CONN_SETUP_AUTO_OFF 0x01#define CONN_SETUP_AUTO_ON 0x02#define OCF_FLUSH 0x0008#define OCF_READ_PIN_TYPE 0x0009typedef struct { uint8_t status; uint8_t pin_type;} __attribute__ ((packed)) read_pin_type_rp;#define READ_PIN_TYPE_RP_SIZE 2#define OCF_WRITE_PIN_TYPE 0x000Atypedef struct { uint8_t pin_type;} __attribute__ ((packed)) write_pin_type_cp;#define WRITE_PIN_TYPE_CP_SIZE 1#define OCF_CREATE_NEW_UNIT_KEY 0x000B#define OCF_READ_STORED_LINK_KEY 0x000Dtypedef struct { bdaddr_t bdaddr; uint8_t read_all;} __attribute__ ((packed)) read_stored_link_key_cp;#define READ_STORED_LINK_KEY_CP_SIZE 7typedef struct { uint8_t status; uint16_t max_keys; uint16_t num_keys;} __attribute__ ((packed)) read_stored_link_key_rp;#define READ_STORED_LINK_KEY_RP_SIZE 5#define OCF_WRITE_STORED_LINK_KEY 0x0011typedef struct { uint8_t num_keys; /* variable length part */} __attribute__ ((packed)) write_stored_link_key_cp;#define WRITE_STORED_LINK_KEY_CP_SIZE 1typedef struct { uint8_t status; uint8_t num_keys;} __attribute__ ((packed)) write_stored_link_key_rp;#define READ_WRITE_LINK_KEY_RP_SIZE 2#define OCF_DELETE_STORED_LINK_KEY 0x0012typedef struct { bdaddr_t bdaddr; uint8_t delete_all;} __attribute__ ((packed)) delete_stored_link_key_cp;#define DELETE_STORED_LINK_KEY_CP_SIZE 7typedef struct { uint8_t status; uint16_t num_keys;} __attribute__ ((packed)) delete_stored_link_key_rp;#define DELETE_STORED_LINK_KEY_RP_SIZE 3#define OCF_CHANGE_LOCAL_NAME 0x0013typedef struct { uint8_t name[248];} __attribute__ ((packed)) change_local_name_cp;#define CHANGE_LOCAL_NAME_CP_SIZE 248 #define OCF_READ_LOCAL_NAME 0x0014typedef struct { uint8_t status; uint8_t name[248];} __attribute__ ((packed)) read_local_name_rp;#define READ_LOCAL_NAME_RP_SIZE 249 #define OCF_READ_CONN_ACCEPT_TIMEOUT 0x0015typedef struct { uint8_t status; uint16_t timeout;} __attribute__ ((packed)) read_conn_accept_timeout_rp;#define READ_CONN_ACCEPT_TIMEOUT_RP_SIZE 3#define OCF_WRITE_CONN_ACCEPT_TIMEOUT 0x0016typedef struct { uint16_t timeout;} __attribute__ ((packed)) write_conn_accept_timeout_cp;#define WRITE_CONN_ACCEPT_TIMEOUT_CP_SIZE 2#define OCF_READ_PAGE_TIMEOUT 0x0017typedef struct { uint8_t status; uint16_t timeout;} __attribute__ ((packed)) read_page_timeout_rp;#define READ_PAGE_TIMEOUT_RP_SIZE 3#define OCF_WRITE_PAGE_TIMEOUT 0x0018typedef struct { uint16_t timeout;} __attribute__ ((packed)) write_page_timeout_cp;#define WRITE_PAGE_TIMEOUT_CP_SIZE 2#define OCF_READ_SCAN_ENABLE 0x0019typedef struct { uint8_t status; uint8_t enable;} __attribute__ ((packed)) read_scan_enable_rp;#define READ_SCAN_ENABLE_RP_SIZE 2#define OCF_WRITE_SCAN_ENABLE 0x001A #define SCAN_DISABLED 0x00 #define SCAN_INQUIRY 0x01 #define SCAN_PAGE 0x02#define OCF_READ_PAGE_ACTIVITY 0x001Btypedef struct { uint8_t status; uint16_t interval; uint16_t window;} __attribute__ ((packed)) read_page_activity_rp;#define READ_PAGE_ACTIVITY_RP_SIZE 5#define OCF_WRITE_PAGE_ACTIVITY 0x001Ctypedef struct { uint16_t interval; uint16_t window;} __attribute__ ((packed)) write_page_activity_cp;#define WRITE_PAGE_ACTIVITY_CP_SIZE 4#define OCF_READ_INQ_ACTIVITY 0x001Dtypedef struct { uint8_t status; uint16_t interval; uint16_t window;} __attribute__ ((packed)) read_inq_activity_rp;#define READ_INQ_ACTIVITY_RP_SIZE 5#define OCF_WRITE_INQ_ACTIVITY 0x001Etypedef struct { uint16_t interval; uint16_t window;} __attribute__ ((packed)) write_inq_activity_cp;#define WRITE_INQ_ACTIVITY_CP_SIZE 4#define OCF_READ_AUTH_ENABLE 0x001F#define OCF_WRITE_AUTH_ENABLE 0x0020 #define AUTH_DISABLED 0x00 #define AUTH_ENABLED 0x01#define OCF_READ_ENCRYPT_MODE 0x0021#define OCF_WRITE_ENCRYPT_MODE 0x0022 #define ENCRYPT_DISABLED 0x00 #define ENCRYPT_P2P 0x01 #define ENCRYPT_BOTH 0x02#define OCF_READ_CLASS_OF_DEV 0x0023typedef struct { uint8_t status; uint8_t dev_class[3];} __attribute__ ((packed)) read_class_of_dev_rp;#define READ_CLASS_OF_DEV_RP_SIZE 4 #define OCF_WRITE_CLASS_OF_DEV 0x0024typedef struct { uint8_t dev_class[3];} __attribute__ ((packed)) write_class_of_dev_cp;#define WRITE_CLASS_OF_DEV_CP_SIZE 3#define OCF_READ_VOICE_SETTING 0x0025typedef struct { uint8_t status; uint16_t voice_setting;} __attribute__ ((packed)) read_voice_setting_rp;#define READ_VOICE_SETTING_RP_SIZE 3#define OCF_WRITE_VOICE_SETTING 0x0026typedef struct { uint16_t voice_setting;} __attribute__ ((packed)) write_voice_setting_cp;#define WRITE_VOICE_SETTING_CP_SIZE 2#define OCF_READ_TRANSMIT_POWER_LEVEL 0x002Dtypedef struct { uint16_t handle; uint8_t type;} __attribute__ ((packed)) read_transmit_power_level_cp;#define READ_TRANSMIT_POWER_LEVEL_CP_SIZE 3typedef struct { uint8_t status; uint16_t handle; int8_t level;} __attribute__ ((packed)) read_transmit_power_level_rp;#define READ_TRANSMIT_POWER_LEVEL_RP_SIZE 4#define OCF_HOST_BUFFER_SIZE 0x0033typedef struct { uint16_t acl_mtu; uint8_t sco_mtu; uint16_t acl_max_pkt; uint16_t sco_max_pkt;} __attribute__ ((packed)) host_buffer_size_cp;#define HOST_BUFFER_SIZE_CP_SIZE 7#define OCF_READ_LINK_SUPERVISION_TIMEOUT 0x0036typedef struct { uint8_t status; uint16_t handle; uint16_t link_sup_to;} __attribute__ ((packed)) read_link_supervision_timeout_rp;#define READ_LINK_SUPERVISION_TIMEOUT_RP_SIZE 5#define OCF_WRITE_LINK_SUPERVISION_TIMEOUT 0x0037typedef struct { uint16_t handle; uint16_t link_sup_to;} __attribute__ ((packed)) write_link_supervision_timeout_cp;#define WRITE_LINK_SUPERVISION_TIMEOUT_CP_SIZE 4typedef struct { uint8_t status; uint16_t handle;} __attribute__ ((packed)) write_link_supervision_timeout_rp;#define WRITE_LINK_SUPERVISION_TIMEOUT_RP_SIZE 3#define MAX_IAC_LAP 0x40#define OCF_READ_CURRENT_IAC_LAP 0x0039typedef struct { uint8_t status; uint8_t num_current_iac; uint8_t lap[MAX_IAC_LAP][3];} __attribute__ ((packed)) read_current_iac_lap_rp;#define READ_CURRENT_IAC_LAP_RP_SIZE 2+3*MAX_IAC_LAP#define OCF_WRITE_CURRENT_IAC_LAP 0x003Atypedef struct { uint8_t num_current_iac; uint8_t lap[MAX_IAC_LAP][3];} __attribute__ ((packed)) write_current_iac_lap_cp;#define WRITE_CURRENT_IAC_LAP_CP_SIZE 1+3*MAX_IAC_LAP#define OCF_SET_AFH_CLASSIFICATION 0x003Ftypedef struct { uint8_t map[10];} __attribute__ ((packed)) set_afh_classification_cp;#define SET_AFH_CLASSIFICATION_CP_SIZE 10typedef struct { uint8_t status;} __attribute__ ((packed)) set_afh_classification_rp;#define SET_AFH_CLASSIFICATION_RP_SIZE 1#define OCF_READ_INQUIRY_SCAN_TYPE 0x0042typedef struct { uint8_t status; uint8_t type;} __attribute__ ((packed)) read_inquiry_scan_type_rp;#define READ_INQUIRY_SCAN_TYPE_RP_SIZE 2#define OCF_WRITE_INQUIRY_SCAN_TYPE 0x0043typedef struct { uint8_t type;} __attribute__ ((packed)) write_inquiry_scan_type_cp;#define WRITE_INQUIRY_SCAN_TYPE_CP_SIZE 1typedef struct { uint8_t status;} __attribute__ ((packed)) write_inquiry_scan_type_rp;#define WRITE_INQUIRY_SCAN_TYPE_RP_SIZE 1#define OCF_READ_INQUIRY_MODE 0x0044typedef struct { uint8_t status; uint8_t mode;} __attribute__ ((packed)) read_inquiry_mode_rp;#define READ_INQUIRY_MODE_RP_SIZE 2#define OCF_WRITE_INQUIRY_MODE 0x0045typedef struct { uint8_t mode;} __attribute__ ((packed)) write_inquiry_mode_cp;#define WRITE_INQUIRY_MODE_CP_SIZE 1typedef struct { uint8_t status;} __attribute__ ((packed)) write_inquiry_mode_rp;#define WRITE_INQUIRY_MODE_RP_SIZE 1#define OCF_READ_AFH_MODE 0x0048typedef struct { uint8_t status; uint8_t mode;} __attribute__ ((packed)) read_afh_mode_rp;#define READ_AFH_MODE_RP_SIZE 2#define OCF_WRITE_AFH_MODE 0x0049typedef struct { uint8_t mode;} __attribute__ ((packed)) write_afh_mode_cp;#define WRITE_AFH_MODE_CP_SIZE 1typedef struct { uint8_t status;} __attribute__ ((packed)) write_afh_mode_rp;#define WRITE_AFH_MODE_RP_SIZE 1/* Informational Parameters */#define OGF_INFO_PARAM 0x04#define OCF_READ_LOCAL_VERSION 0x0001typedef struct { uint8_t status; uint8_t hci_ver; uint16_t hci_rev; uint8_t lmp_ver; uint16_t manufacturer; uint16_t lmp_subver;} __attribute__ ((packed)) read_local_version_rp;#define READ_LOCAL_VERSION_RP_SIZE 9#define OCF_READ_LOCAL_COMMANDS 0x0002typedef struct { uint8_t status; uint8_t commands[64];} __attribute__ ((packed)) read_local_commands_rp;#define READ_LOCAL_COMMANDS_RP_SIZE 65#define OCF_READ_LOCAL_FEATURES 0x0003typedef struct { uint8_t status; uint8_t features[8];} __attribute__ ((packed)) read_local_features_rp;#define READ_LOCAL_FEATURES_RP_SIZE 9#define OCF_READ_LOCAL_EXT_FEATURES 0x0004typedef struct { uint8_t page_num;} __attribute__ ((packed)) read_local_ext_features_cp;#define READ_LOCAL_EXT_FEATURES_CP_SIZE 1typedef struct { uint8_t status; uint8_t page_num; uint8_t max_page_num; uint8_t features[8];} __attribute__ ((packed)) read_local_ext_features_rp;#define READ_LOCAL_EXT_FEATURES_RP_SIZE 11#define OCF_READ_BUFFER_SIZE 0x0005typedef struct { uint8_t status; uint16_t acl_mtu; uint8_t sco_mtu; uint16_t acl_max_pkt; uint16_t sco_max_pkt;} __attribute__ ((packed)) read_buffer_size_rp;#define READ_BUFFER_SIZE_RP_SIZE 8#define OCF_READ_BD_ADDR 0x0009typedef struct { uint8_t status; bdaddr_t bdaddr;} __attribute__ ((packed)) read_bd_addr_rp;#define READ_BD_ADDR_RP_SIZE 7/* Status params */#define OGF_STATUS_PARAM 0x05#define OCF_READ_FAILED_CONTACT_COUNTER 0x0001typedef struct { uint8_t status; uint16_t handle; uint8_t counter;} __attribute__ ((packed)) read_failed_contact_counter_rp;#define READ_FAILED_CONTACT_COUNTER_RP_SIZE 4#define OCF_RESET_FAILED_CONTACT_COUNTER 0x0002typedef struct { uint8_t status; uint16_t handle;} __attribute__ ((packed)) reset_failed_contact_counter_rp;#define RESET_FAILED_CONTACT_COUNTER_RP_SIZE 4#define OCF_READ_LINK_QUALITY 0x0003typedef struct { uint8_t status; uint16_t handle; uint8_t link_quality;} __attribute__ ((packed)) read_link_quality_rp;#define READ_LINK_QUALITY_RP_SIZE 4#define OCF_READ_RSSI 0x0005typedef struct { uint8_t status; uint16_t handle; int8_t rssi;} __attribute__ ((packed)) read_rssi_rp;#define READ_RSSI_RP_SIZE 4#define OCF_READ_AFH_MAP 0x0006typedef struct { uint8_t status; uint16_t handle; uint8_t mode;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -