The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 171:3a7713b1edbc 1 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 2 /*!
AnnaBridge 171:3a7713b1edbc 3 * \file hci_defs.h
AnnaBridge 171:3a7713b1edbc 4 *
AnnaBridge 171:3a7713b1edbc 5 * \brief HCI constants and definitions from the Bluetooth specification.
AnnaBridge 171:3a7713b1edbc 6 *
AnnaBridge 171:3a7713b1edbc 7 * $Date: 2016-04-18 22:05:04 -0700 (Mon, 18 Apr 2016) $
AnnaBridge 171:3a7713b1edbc 8 * $Revision: 6857 $
AnnaBridge 171:3a7713b1edbc 9 *
AnnaBridge 171:3a7713b1edbc 10 * Copyright (c) 2009 Wicentric, Inc., all rights reserved.
AnnaBridge 171:3a7713b1edbc 11 * Wicentric confidential and proprietary.
AnnaBridge 171:3a7713b1edbc 12 *
AnnaBridge 171:3a7713b1edbc 13 * IMPORTANT. Your use of this file is governed by a Software License Agreement
AnnaBridge 171:3a7713b1edbc 14 * ("Agreement") that must be accepted in order to download or otherwise receive a
AnnaBridge 171:3a7713b1edbc 15 * copy of this file. You may not use or copy this file for any purpose other than
AnnaBridge 171:3a7713b1edbc 16 * as described in the Agreement. If you do not agree to all of the terms of the
AnnaBridge 171:3a7713b1edbc 17 * Agreement do not use this file and delete all copies in your possession or control;
AnnaBridge 171:3a7713b1edbc 18 * if you do not have a copy of the Agreement, you must contact Wicentric, Inc. prior
AnnaBridge 171:3a7713b1edbc 19 * to any use, copying or further distribution of this software.
AnnaBridge 171:3a7713b1edbc 20 */
AnnaBridge 171:3a7713b1edbc 21 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 22 #ifndef HCI_DEFS_H
AnnaBridge 171:3a7713b1edbc 23 #define HCI_DEFS_H
AnnaBridge 171:3a7713b1edbc 24
AnnaBridge 171:3a7713b1edbc 25 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 26 extern "C" {
AnnaBridge 171:3a7713b1edbc 27 #endif
AnnaBridge 171:3a7713b1edbc 28
AnnaBridge 171:3a7713b1edbc 29 /*! Packet definitions */
AnnaBridge 171:3a7713b1edbc 30 #define HCI_CMD_HDR_LEN 3 /*! Command packet header length */
AnnaBridge 171:3a7713b1edbc 31 #define HCI_ACL_HDR_LEN 4 /*! ACL packet header length */
AnnaBridge 171:3a7713b1edbc 32 #define HCI_EVT_HDR_LEN 2 /*! Event packet header length */
AnnaBridge 171:3a7713b1edbc 33 #define HCI_EVT_PARAM_MAX_LEN 255 /*! Maximum length of event packet parameters */
AnnaBridge 171:3a7713b1edbc 34 #define HCI_ACL_DEFAULT_LEN 27 /*! Default maximum ACL packet length */
AnnaBridge 171:3a7713b1edbc 35 #define HCI_PB_FLAG_MASK 0x3000 /*! ACL packet boundary flag mask */
AnnaBridge 171:3a7713b1edbc 36 #define HCI_PB_START_H2C 0x0000 /*! Packet boundary flag, start, host-to-controller */
AnnaBridge 171:3a7713b1edbc 37 #define HCI_PB_CONTINUE 0x1000 /*! Packet boundary flag, continue */
AnnaBridge 171:3a7713b1edbc 38 #define HCI_PB_START_C2H 0x2000 /*! Packet boundary flag, start, controller-to-host */
AnnaBridge 171:3a7713b1edbc 39 #define HCI_HANDLE_MASK 0x0FFF /*! Mask for handle bits in ACL packet */
AnnaBridge 171:3a7713b1edbc 40 #define HCI_HANDLE_NONE 0xFFFF /*! Value for invalid handle */
AnnaBridge 171:3a7713b1edbc 41
AnnaBridge 171:3a7713b1edbc 42 /*! Packet types */
AnnaBridge 171:3a7713b1edbc 43 #define HCI_CMD_TYPE 1 /*! HCI command packet */
AnnaBridge 171:3a7713b1edbc 44 #define HCI_ACL_TYPE 2 /*! HCI ACL data packet */
AnnaBridge 171:3a7713b1edbc 45 #define HCI_EVT_TYPE 4 /*! HCI event packet */
AnnaBridge 171:3a7713b1edbc 46
AnnaBridge 171:3a7713b1edbc 47 /*! Error codes */
AnnaBridge 171:3a7713b1edbc 48 #define HCI_SUCCESS 0x00 /*! Success */
AnnaBridge 171:3a7713b1edbc 49 #define HCI_ERR_UNKNOWN_CMD 0x01 /*! Unknown HCI command */
AnnaBridge 171:3a7713b1edbc 50 #define HCI_ERR_UNKNOWN_HANDLE 0x02 /*! Unknown connection identifier */
AnnaBridge 171:3a7713b1edbc 51 #define HCI_ERR_HARDWARE_FAILURE 0x03 /*! Hardware failure */
AnnaBridge 171:3a7713b1edbc 52 #define HCI_ERR_PAGE_TIMEOUT 0x04 /*! Page timeout */
AnnaBridge 171:3a7713b1edbc 53 #define HCI_ERR_AUTH_FAILURE 0x05 /*! Authentication failure */
AnnaBridge 171:3a7713b1edbc 54 #define HCI_ERR_KEY_MISSING 0x06 /*! PIN or key missing */
AnnaBridge 171:3a7713b1edbc 55 #define HCI_ERR_MEMORY_EXCEEDED 0x07 /*! Memory capacity exceeded */
AnnaBridge 171:3a7713b1edbc 56 #define HCI_ERR_CONN_TIMEOUT 0x08 /*! Connection timeout */
AnnaBridge 171:3a7713b1edbc 57 #define HCI_ERR_CONN_LIMIT 0x09 /*! Connection limit exceeded */
AnnaBridge 171:3a7713b1edbc 58 #define HCI_ERR_SYNCH_CONN_LIMIT 0x0A /*! Synchronous connection limit exceeded */
AnnaBridge 171:3a7713b1edbc 59 #define HCI_ERR_ACL_CONN_EXISTS 0x0B /*! ACL connection already exists */
AnnaBridge 171:3a7713b1edbc 60 #define HCI_ERR_CMD_DISALLOWED 0x0C /*! Command disallowed */
AnnaBridge 171:3a7713b1edbc 61 #define HCI_ERR_REJ_RESOURCES 0x0D /*! Connection rejected limited resources */
AnnaBridge 171:3a7713b1edbc 62 #define HCI_ERR_REJ_SECURITY 0x0E /*! Connection rejected security reasons */
AnnaBridge 171:3a7713b1edbc 63 #define HCI_ERR_REJ_BD_ADDR 0x0F /*! Connection rejected unacceptable BD_ADDR */
AnnaBridge 171:3a7713b1edbc 64 #define HCI_ERR_ACCEPT_TIMEOUT 0x10 /*! Connection accept timeout exceeded */
AnnaBridge 171:3a7713b1edbc 65 #define HCI_ERR_UNSUP_FEAT 0x11 /*! Unsupported feature or parameter value */
AnnaBridge 171:3a7713b1edbc 66 #define HCI_ERR_INVALID_PARAM 0x12 /*! Invalid HCI command parameters */
AnnaBridge 171:3a7713b1edbc 67 #define HCI_ERR_REMOTE_TERMINATED 0x13 /*! Remote user terminated connection */
AnnaBridge 171:3a7713b1edbc 68 #define HCI_ERR_REMOTE_RESOURCES 0x14 /*! Remote device low resources */
AnnaBridge 171:3a7713b1edbc 69 #define HCI_ERR_REMOTE_POWER_OFF 0x15 /*! Remote device power off */
AnnaBridge 171:3a7713b1edbc 70 #define HCI_ERR_LOCAL_TERMINATED 0x16 /*! Connection terminated by local host */
AnnaBridge 171:3a7713b1edbc 71 #define HCI_ERR_REPEATED_ATTEMPTS 0x17 /*! Repeated attempts */
AnnaBridge 171:3a7713b1edbc 72 #define HCI_ERR_PAIRING_NOT_ALLOWED 0x18 /*! Pairing not allowed */
AnnaBridge 171:3a7713b1edbc 73 #define HCI_ERR_UNKNOWN_LMP_PDU 0x19 /*! Unknown LMP PDU */
AnnaBridge 171:3a7713b1edbc 74 #define HCI_ERR_UNSUP_REMOTE_FEAT 0x1A /*! Unsupported remote feature */
AnnaBridge 171:3a7713b1edbc 75 #define HCI_ERR_SCO_OFFSET 0x1B /*! SCO offset rejected */
AnnaBridge 171:3a7713b1edbc 76 #define HCI_ERR_SCO_INTERVAL 0x1C /*! SCO interval rejected */
AnnaBridge 171:3a7713b1edbc 77 #define HCI_ERR_SCO_MODE 0x1D /*! SCO air mode rejected */
AnnaBridge 171:3a7713b1edbc 78 #define HCI_ERR_LMP_PARAM 0x1E /*! Invalid LMP parameters */
AnnaBridge 171:3a7713b1edbc 79 #define HCI_ERR_UNSPECIFIED 0x1F /*! Unspecified error */
AnnaBridge 171:3a7713b1edbc 80 #define HCI_ERR_UNSUP_LMP_PARAM 0x20 /*! Unsupported LMP parameter value */
AnnaBridge 171:3a7713b1edbc 81 #define HCI_ERR_ROLE_CHANGE 0x21 /*! Role change not allowed */
AnnaBridge 171:3a7713b1edbc 82 #define HCI_ERR_LL_RESP_TIMEOUT 0x22 /*! LL response timeout */
AnnaBridge 171:3a7713b1edbc 83 #define HCI_ERR_LMP_COLLISION 0x23 /*! LMP error transaction collision */
AnnaBridge 171:3a7713b1edbc 84 #define HCI_ERR_LMP_PDU 0x24 /*! LMP pdu not allowed */
AnnaBridge 171:3a7713b1edbc 85 #define HCI_ERR_ENCRYPT_MODE 0x25 /*! Encryption mode not acceptable */
AnnaBridge 171:3a7713b1edbc 86 #define HCI_ERR_LINK_KEY 0x26 /*! Link key can not be changed */
AnnaBridge 171:3a7713b1edbc 87 #define HCI_ERR_UNSUP_QOS 0x27 /*! Requested qos not supported */
AnnaBridge 171:3a7713b1edbc 88 #define HCI_ERR_INSTANT_PASSED 0x28 /*! Instant passed */
AnnaBridge 171:3a7713b1edbc 89 #define HCI_ERR_UNSUP_UNIT_KEY 0x29 /*! Pairing with unit key not supported */
AnnaBridge 171:3a7713b1edbc 90 #define HCI_ERR_TRANSACT_COLLISION 0x2A /*! Different transaction collision */
AnnaBridge 171:3a7713b1edbc 91 #define HCI_ERR_CHANNEL_CLASS 0x2E /*! Channel classification not supported */
AnnaBridge 171:3a7713b1edbc 92 #define HCI_ERR_MEMORY 0x2F /*! Insufficient security */
AnnaBridge 171:3a7713b1edbc 93 #define HCI_ERR_PARAMETER_RANGE 0x30 /*! Parameter out of mandatory range */
AnnaBridge 171:3a7713b1edbc 94 #define HCI_ERR_ROLE_SWITCH_PEND 0x32 /*! Role switch pending */
AnnaBridge 171:3a7713b1edbc 95 #define HCI_ERR_RESERVED_SLOT 0x34 /*! Reserved slot violation */
AnnaBridge 171:3a7713b1edbc 96 #define HCI_ERR_ROLE_SWITCH 0x35 /*! Role switch failed */
AnnaBridge 171:3a7713b1edbc 97 #define HCI_ERR_INQ_TOO_LARGE 0x36 /*! Extended inquiry response too large */
AnnaBridge 171:3a7713b1edbc 98 #define HCI_ERR_UNSUP_SSP 0x37 /*! Secure simple pairing not supported by host */
AnnaBridge 171:3a7713b1edbc 99 #define HCI_ERR_HOST_BUSY_PAIRING 0x38 /*! Host busy - pairing */
AnnaBridge 171:3a7713b1edbc 100 #define HCI_ERR_NO_CHANNEL 0x39 /*! Connection rejected no suitable channel */
AnnaBridge 171:3a7713b1edbc 101 #define HCI_ERR_CONTROLLER_BUSY 0x3A /*! Controller busy */
AnnaBridge 171:3a7713b1edbc 102 #define HCI_ERR_CONN_INTERVAL 0x3B /*! Unacceptable connection interval */
AnnaBridge 171:3a7713b1edbc 103 #define HCI_ERR_ADV_TIMEOUT 0x3C /*! Directed advertising timeout */
AnnaBridge 171:3a7713b1edbc 104 #define HCI_ERR_MIC_FAILURE 0x3D /*! Connection terminated due to MIC failure */
AnnaBridge 171:3a7713b1edbc 105 #define HCI_ERR_CONN_FAIL 0x3E /*! Connection failed to be established */
AnnaBridge 171:3a7713b1edbc 106 #define HCI_ERR_MAC_CONN_FAIL 0x3F /*! MAC connection failed */
AnnaBridge 171:3a7713b1edbc 107
AnnaBridge 171:3a7713b1edbc 108 /*! Command groups */
AnnaBridge 171:3a7713b1edbc 109 #define HCI_OGF_NOP 0x00 /*! No operation */
AnnaBridge 171:3a7713b1edbc 110 #define HCI_OGF_LINK_CONTROL 0x01 /*! Link control */
AnnaBridge 171:3a7713b1edbc 111 #define HCI_OGF_LINK_POLICY 0x02 /*! Link policy */
AnnaBridge 171:3a7713b1edbc 112 #define HCI_OGF_CONTROLLER 0x03 /*! Controller and baseband */
AnnaBridge 171:3a7713b1edbc 113 #define HCI_OGF_INFORMATIONAL 0x04 /*! Informational parameters */
AnnaBridge 171:3a7713b1edbc 114 #define HCI_OGF_STATUS 0x05 /*! Status parameters */
AnnaBridge 171:3a7713b1edbc 115 #define HCI_OGF_TESTING 0x06 /*! Testing */
AnnaBridge 171:3a7713b1edbc 116 #define HCI_OGF_LE_CONTROLLER 0x08 /*! LE controller */
AnnaBridge 171:3a7713b1edbc 117 #define HCI_OGF_VENDOR_SPEC 0x3F /*! Vendor specific */
AnnaBridge 171:3a7713b1edbc 118
AnnaBridge 171:3a7713b1edbc 119 /*! NOP command */
AnnaBridge 171:3a7713b1edbc 120 #define HCI_OCF_NOP 0x00
AnnaBridge 171:3a7713b1edbc 121
AnnaBridge 171:3a7713b1edbc 122 /*! Link control commands */
AnnaBridge 171:3a7713b1edbc 123 #define HCI_OCF_DISCONNECT 0x06
AnnaBridge 171:3a7713b1edbc 124 #define HCI_OCF_READ_REMOTE_VER_INFO 0x1D
AnnaBridge 171:3a7713b1edbc 125
AnnaBridge 171:3a7713b1edbc 126 /*! Link policy commands (none used for LE) */
AnnaBridge 171:3a7713b1edbc 127
AnnaBridge 171:3a7713b1edbc 128 /*! Controller and baseband commands */
AnnaBridge 171:3a7713b1edbc 129 #define HCI_OCF_SET_EVENT_MASK 0x01
AnnaBridge 171:3a7713b1edbc 130 #define HCI_OCF_RESET 0x03
AnnaBridge 171:3a7713b1edbc 131 #define HCI_OCF_READ_TX_PWR_LVL 0x2D
AnnaBridge 171:3a7713b1edbc 132 #define HCI_OCF_SET_CONTROLLER_TO_HOST_FC 0x31
AnnaBridge 171:3a7713b1edbc 133 #define HCI_OCF_HOST_BUFFER_SIZE 0x33
AnnaBridge 171:3a7713b1edbc 134 #define HCI_OCF_HOST_NUM_CMPL_PKTS 0x35
AnnaBridge 171:3a7713b1edbc 135 #define HCI_OCF_SET_EVENT_MASK_PAGE2 0x63
AnnaBridge 171:3a7713b1edbc 136 #define HCI_OCF_READ_AUTH_PAYLOAD_TO 0x7B
AnnaBridge 171:3a7713b1edbc 137 #define HCI_OCF_WRITE_AUTH_PAYLOAD_TO 0x7C
AnnaBridge 171:3a7713b1edbc 138
AnnaBridge 171:3a7713b1edbc 139 /*! Informational commands */
AnnaBridge 171:3a7713b1edbc 140 #define HCI_OCF_READ_LOCAL_VER_INFO 0x01
AnnaBridge 171:3a7713b1edbc 141 #define HCI_OCF_READ_LOCAL_SUP_CMDS 0x02
AnnaBridge 171:3a7713b1edbc 142 #define HCI_OCF_READ_LOCAL_SUP_FEAT 0x03
AnnaBridge 171:3a7713b1edbc 143 #define HCI_OCF_READ_BUF_SIZE 0x05
AnnaBridge 171:3a7713b1edbc 144 #define HCI_OCF_READ_BD_ADDR 0x09
AnnaBridge 171:3a7713b1edbc 145
AnnaBridge 171:3a7713b1edbc 146 /*! Status commands */
AnnaBridge 171:3a7713b1edbc 147 #define HCI_OCF_READ_RSSI 0x05
AnnaBridge 171:3a7713b1edbc 148
AnnaBridge 171:3a7713b1edbc 149 /*! LE controller commands */
AnnaBridge 171:3a7713b1edbc 150 #define HCI_OCF_LE_SET_EVENT_MASK 0x01
AnnaBridge 171:3a7713b1edbc 151 #define HCI_OCF_LE_READ_BUF_SIZE 0x02
AnnaBridge 171:3a7713b1edbc 152 #define HCI_OCF_LE_READ_LOCAL_SUP_FEAT 0x03
AnnaBridge 171:3a7713b1edbc 153 #define HCI_OCF_LE_SET_RAND_ADDR 0x05
AnnaBridge 171:3a7713b1edbc 154 #define HCI_OCF_LE_SET_ADV_PARAM 0x06
AnnaBridge 171:3a7713b1edbc 155 #define HCI_OCF_LE_READ_ADV_TX_POWER 0x07
AnnaBridge 171:3a7713b1edbc 156 #define HCI_OCF_LE_SET_ADV_DATA 0x08
AnnaBridge 171:3a7713b1edbc 157 #define HCI_OCF_LE_SET_SCAN_RESP_DATA 0x09
AnnaBridge 171:3a7713b1edbc 158 #define HCI_OCF_LE_SET_ADV_ENABLE 0x0A
AnnaBridge 171:3a7713b1edbc 159 #define HCI_OCF_LE_SET_SCAN_PARAM 0x0B
AnnaBridge 171:3a7713b1edbc 160 #define HCI_OCF_LE_SET_SCAN_ENABLE 0x0C
AnnaBridge 171:3a7713b1edbc 161 #define HCI_OCF_LE_CREATE_CONN 0x0D
AnnaBridge 171:3a7713b1edbc 162 #define HCI_OCF_LE_CREATE_CONN_CANCEL 0x0E
AnnaBridge 171:3a7713b1edbc 163 #define HCI_OCF_LE_READ_WHITE_LIST_SIZE 0x0F
AnnaBridge 171:3a7713b1edbc 164 #define HCI_OCF_LE_CLEAR_WHITE_LIST 0x10
AnnaBridge 171:3a7713b1edbc 165 #define HCI_OCF_LE_ADD_DEV_WHITE_LIST 0x11
AnnaBridge 171:3a7713b1edbc 166 #define HCI_OCF_LE_REMOVE_DEV_WHITE_LIST 0x12
AnnaBridge 171:3a7713b1edbc 167 #define HCI_OCF_LE_CONN_UPDATE 0x13
AnnaBridge 171:3a7713b1edbc 168 #define HCI_OCF_LE_SET_HOST_CHAN_CLASS 0x14
AnnaBridge 171:3a7713b1edbc 169 #define HCI_OCF_LE_READ_CHAN_MAP 0x15
AnnaBridge 171:3a7713b1edbc 170 #define HCI_OCF_LE_READ_REMOTE_FEAT 0x16
AnnaBridge 171:3a7713b1edbc 171 #define HCI_OCF_LE_ENCRYPT 0x17
AnnaBridge 171:3a7713b1edbc 172 #define HCI_OCF_LE_RAND 0x18
AnnaBridge 171:3a7713b1edbc 173 #define HCI_OCF_LE_START_ENCRYPTION 0x19
AnnaBridge 171:3a7713b1edbc 174 #define HCI_OCF_LE_LTK_REQ_REPL 0x1A
AnnaBridge 171:3a7713b1edbc 175 #define HCI_OCF_LE_LTK_REQ_NEG_REPL 0x1B
AnnaBridge 171:3a7713b1edbc 176 #define HCI_OCF_LE_READ_SUP_STATES 0x1C
AnnaBridge 171:3a7713b1edbc 177 #define HCI_OCF_LE_RECEIVER_TEST 0x1D
AnnaBridge 171:3a7713b1edbc 178 #define HCI_OCF_LE_TRANSMITTER_TEST 0x1E
AnnaBridge 171:3a7713b1edbc 179 #define HCI_OCF_LE_TEST_END 0x1F
AnnaBridge 171:3a7713b1edbc 180 /* New in version 4.1 */
AnnaBridge 171:3a7713b1edbc 181 #define HCI_OCF_LE_REM_CONN_PARAM_REP 0x20
AnnaBridge 171:3a7713b1edbc 182 #define HCI_OCF_LE_REM_CONN_PARAM_NEG_REP 0x21
AnnaBridge 171:3a7713b1edbc 183 /* New in version 4.2 */
AnnaBridge 171:3a7713b1edbc 184 #define HCI_OCF_LE_SET_DATA_LEN 0x22
AnnaBridge 171:3a7713b1edbc 185 #define HCI_OCF_LE_READ_DEF_DATA_LEN 0x23
AnnaBridge 171:3a7713b1edbc 186 #define HCI_OCF_LE_WRITE_DEF_DATA_LEN 0x24
AnnaBridge 171:3a7713b1edbc 187 #define HCI_OCF_LE_READ_LOCAL_P256_PUB_KEY 0x25
AnnaBridge 171:3a7713b1edbc 188 #define HCI_OCF_LE_GENERATE_DHKEY 0x26
AnnaBridge 171:3a7713b1edbc 189 #define HCI_OCF_LE_ADD_DEV_RES_LIST 0x27
AnnaBridge 171:3a7713b1edbc 190 #define HCI_OCF_LE_REMOVE_DEV_RES_LIST 0x28
AnnaBridge 171:3a7713b1edbc 191 #define HCI_OCF_LE_CLEAR_RES_LIST 0x29
AnnaBridge 171:3a7713b1edbc 192 #define HCI_OCF_LE_READ_RES_LIST_SIZE 0x2A
AnnaBridge 171:3a7713b1edbc 193 #define HCI_OCF_LE_READ_PEER_RES_ADDR 0x2B
AnnaBridge 171:3a7713b1edbc 194 #define HCI_OCF_LE_READ_LOCAL_RES_ADDR 0x2C
AnnaBridge 171:3a7713b1edbc 195 #define HCI_OCF_LE_SET_ADDR_RES_ENABLE 0x2D
AnnaBridge 171:3a7713b1edbc 196 #define HCI_OCF_LE_SET_RES_PRIV_ADDR_TO 0x2E
AnnaBridge 171:3a7713b1edbc 197 #define HCI_OCF_LE_READ_MAX_DATA_LEN 0x2F
AnnaBridge 171:3a7713b1edbc 198
AnnaBridge 171:3a7713b1edbc 199 /*! Opcode manipulation macros */
AnnaBridge 171:3a7713b1edbc 200 #define HCI_OPCODE(ogf, ocf) (((ogf) << 10) + (ocf))
AnnaBridge 171:3a7713b1edbc 201 #define HCI_OGF(opcode) ((opcode) >> 10)
AnnaBridge 171:3a7713b1edbc 202 #define HCI_OCF(opcode) ((opcode) & 0x03FF)
AnnaBridge 171:3a7713b1edbc 203
AnnaBridge 171:3a7713b1edbc 204 /*! Command opcodes */
AnnaBridge 171:3a7713b1edbc 205 #define HCI_OPCODE_NOP HCI_OPCODE(HCI_OGF_NOP, HCI_OCF_NOP)
AnnaBridge 171:3a7713b1edbc 206
AnnaBridge 171:3a7713b1edbc 207 #define HCI_OPCODE_DISCONNECT HCI_OPCODE(HCI_OGF_LINK_CONTROL, HCI_OCF_DISCONNECT)
AnnaBridge 171:3a7713b1edbc 208 #define HCI_OPCODE_READ_REMOTE_VER_INFO HCI_OPCODE(HCI_OGF_LINK_CONTROL, HCI_OCF_READ_REMOTE_VER_INFO)
AnnaBridge 171:3a7713b1edbc 209
AnnaBridge 171:3a7713b1edbc 210 #define HCI_OPCODE_SET_EVENT_MASK HCI_OPCODE(HCI_OGF_CONTROLLER, HCI_OCF_SET_EVENT_MASK)
AnnaBridge 171:3a7713b1edbc 211 #define HCI_OPCODE_RESET HCI_OPCODE(HCI_OGF_CONTROLLER, HCI_OCF_RESET)
AnnaBridge 171:3a7713b1edbc 212 #define HCI_OPCODE_READ_TX_PWR_LVL HCI_OPCODE(HCI_OGF_CONTROLLER, HCI_OCF_READ_TX_PWR_LVL)
AnnaBridge 171:3a7713b1edbc 213 #define HCI_OPCODE_SET_EVENT_MASK_PAGE2 HCI_OPCODE(HCI_OGF_CONTROLLER, HCI_OCF_SET_EVENT_MASK_PAGE2)
AnnaBridge 171:3a7713b1edbc 214 #define HCI_OPCODE_READ_AUTH_PAYLOAD_TO HCI_OPCODE(HCI_OGF_CONTROLLER, HCI_OCF_READ_AUTH_PAYLOAD_TO)
AnnaBridge 171:3a7713b1edbc 215 #define HCI_OPCODE_WRITE_AUTH_PAYLOAD_TO HCI_OPCODE(HCI_OGF_CONTROLLER, HCI_OCF_WRITE_AUTH_PAYLOAD_TO)
AnnaBridge 171:3a7713b1edbc 216
AnnaBridge 171:3a7713b1edbc 217 #define HCI_OPCODE_READ_LOCAL_VER_INFO HCI_OPCODE(HCI_OGF_INFORMATIONAL, HCI_OCF_READ_LOCAL_VER_INFO)
AnnaBridge 171:3a7713b1edbc 218 #define HCI_OPCODE_READ_LOCAL_SUP_CMDS HCI_OPCODE(HCI_OGF_INFORMATIONAL, HCI_OCF_READ_LOCAL_SUP_CMDS)
AnnaBridge 171:3a7713b1edbc 219 #define HCI_OPCODE_READ_LOCAL_SUP_FEAT HCI_OPCODE(HCI_OGF_INFORMATIONAL, HCI_OCF_READ_LOCAL_SUP_FEAT)
AnnaBridge 171:3a7713b1edbc 220 #define HCI_OPCODE_READ_BUF_SIZE HCI_OPCODE(HCI_OGF_INFORMATIONAL, HCI_OCF_READ_BUF_SIZE)
AnnaBridge 171:3a7713b1edbc 221 #define HCI_OPCODE_READ_BD_ADDR HCI_OPCODE(HCI_OGF_INFORMATIONAL, HCI_OCF_READ_BD_ADDR)
AnnaBridge 171:3a7713b1edbc 222
AnnaBridge 171:3a7713b1edbc 223 #define HCI_OPCODE_READ_RSSI HCI_OPCODE(HCI_OGF_STATUS, HCI_OCF_READ_RSSI)
AnnaBridge 171:3a7713b1edbc 224
AnnaBridge 171:3a7713b1edbc 225 #define HCI_OPCODE_LE_SET_EVENT_MASK HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_SET_EVENT_MASK)
AnnaBridge 171:3a7713b1edbc 226 #define HCI_OPCODE_LE_READ_BUF_SIZE HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_READ_BUF_SIZE)
AnnaBridge 171:3a7713b1edbc 227 #define HCI_OPCODE_LE_READ_LOCAL_SUP_FEAT HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_READ_LOCAL_SUP_FEAT)
AnnaBridge 171:3a7713b1edbc 228 #define HCI_OPCODE_LE_SET_RAND_ADDR HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_SET_RAND_ADDR)
AnnaBridge 171:3a7713b1edbc 229 #define HCI_OPCODE_LE_SET_ADV_PARAM HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_SET_ADV_PARAM)
AnnaBridge 171:3a7713b1edbc 230 #define HCI_OPCODE_LE_READ_ADV_TX_POWER HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_READ_ADV_TX_POWER)
AnnaBridge 171:3a7713b1edbc 231 #define HCI_OPCODE_LE_SET_ADV_DATA HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_SET_ADV_DATA)
AnnaBridge 171:3a7713b1edbc 232 #define HCI_OPCODE_LE_SET_SCAN_RESP_DATA HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_SET_SCAN_RESP_DATA)
AnnaBridge 171:3a7713b1edbc 233 #define HCI_OPCODE_LE_SET_ADV_ENABLE HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_SET_ADV_ENABLE)
AnnaBridge 171:3a7713b1edbc 234 #define HCI_OPCODE_LE_SET_SCAN_PARAM HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_SET_SCAN_PARAM)
AnnaBridge 171:3a7713b1edbc 235 #define HCI_OPCODE_LE_SET_SCAN_ENABLE HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_SET_SCAN_ENABLE)
AnnaBridge 171:3a7713b1edbc 236 #define HCI_OPCODE_LE_CREATE_CONN HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_CREATE_CONN)
AnnaBridge 171:3a7713b1edbc 237 #define HCI_OPCODE_LE_CREATE_CONN_CANCEL HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_CREATE_CONN_CANCEL)
AnnaBridge 171:3a7713b1edbc 238 #define HCI_OPCODE_LE_READ_WHITE_LIST_SIZE HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_READ_WHITE_LIST_SIZE)
AnnaBridge 171:3a7713b1edbc 239 #define HCI_OPCODE_LE_CLEAR_WHITE_LIST HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_CLEAR_WHITE_LIST)
AnnaBridge 171:3a7713b1edbc 240 #define HCI_OPCODE_LE_ADD_DEV_WHITE_LIST HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_ADD_DEV_WHITE_LIST)
AnnaBridge 171:3a7713b1edbc 241 #define HCI_OPCODE_LE_REMOVE_DEV_WHITE_LIST HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_REMOVE_DEV_WHITE_LIST)
AnnaBridge 171:3a7713b1edbc 242 #define HCI_OPCODE_LE_CONN_UPDATE HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_CONN_UPDATE)
AnnaBridge 171:3a7713b1edbc 243 #define HCI_OPCODE_LE_SET_HOST_CHAN_CLASS HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_SET_HOST_CHAN_CLASS)
AnnaBridge 171:3a7713b1edbc 244 #define HCI_OPCODE_LE_READ_CHAN_MAP HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_READ_CHAN_MAP)
AnnaBridge 171:3a7713b1edbc 245 #define HCI_OPCODE_LE_READ_REMOTE_FEAT HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_READ_REMOTE_FEAT)
AnnaBridge 171:3a7713b1edbc 246 #define HCI_OPCODE_LE_ENCRYPT HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_ENCRYPT)
AnnaBridge 171:3a7713b1edbc 247 #define HCI_OPCODE_LE_RAND HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_RAND)
AnnaBridge 171:3a7713b1edbc 248 #define HCI_OPCODE_LE_START_ENCRYPTION HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_START_ENCRYPTION)
AnnaBridge 171:3a7713b1edbc 249 #define HCI_OPCODE_LE_LTK_REQ_REPL HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_LTK_REQ_REPL)
AnnaBridge 171:3a7713b1edbc 250 #define HCI_OPCODE_LE_LTK_REQ_NEG_REPL HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_LTK_REQ_NEG_REPL)
AnnaBridge 171:3a7713b1edbc 251 #define HCI_OPCODE_LE_READ_SUP_STATES HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_READ_SUP_STATES)
AnnaBridge 171:3a7713b1edbc 252 #define HCI_OPCODE_LE_RECEIVER_TEST HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_RECEIVER_TEST)
AnnaBridge 171:3a7713b1edbc 253 #define HCI_OPCODE_LE_TRANSMITTER_TEST HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_TRANSMITTER_TEST)
AnnaBridge 171:3a7713b1edbc 254 #define HCI_OPCODE_LE_TEST_END HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_TEST_END)
AnnaBridge 171:3a7713b1edbc 255 #define HCI_OPCODE_LE_REM_CONN_PARAM_REP HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_REM_CONN_PARAM_REP)
AnnaBridge 171:3a7713b1edbc 256 #define HCI_OPCODE_LE_REM_CONN_PARAM_NEG_REP HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_REM_CONN_PARAM_NEG_REP)
AnnaBridge 171:3a7713b1edbc 257 #define HCI_OPCODE_LE_SET_DATA_LEN HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_SET_DATA_LEN)
AnnaBridge 171:3a7713b1edbc 258 #define HCI_OPCODE_LE_READ_DEF_DATA_LEN HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_READ_DEF_DATA_LEN)
AnnaBridge 171:3a7713b1edbc 259 #define HCI_OPCODE_LE_WRITE_DEF_DATA_LEN HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_WRITE_DEF_DATA_LEN)
AnnaBridge 171:3a7713b1edbc 260 #define HCI_OPCODE_LE_READ_LOCAL_P256_PUB_KEY HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_READ_LOCAL_P256_PUB_KEY)
AnnaBridge 171:3a7713b1edbc 261 #define HCI_OPCODE_LE_GENERATE_DHKEY HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_GENERATE_DHKEY)
AnnaBridge 171:3a7713b1edbc 262 #define HCI_OPCODE_LE_ADD_DEV_RES_LIST HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_ADD_DEV_RES_LIST)
AnnaBridge 171:3a7713b1edbc 263 #define HCI_OPCODE_LE_REMOVE_DEV_RES_LIST HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_REMOVE_DEV_RES_LIST)
AnnaBridge 171:3a7713b1edbc 264 #define HCI_OPCODE_LE_CLEAR_RES_LIST HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_CLEAR_RES_LIST)
AnnaBridge 171:3a7713b1edbc 265 #define HCI_OPCODE_LE_READ_RES_LIST_SIZE HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_READ_RES_LIST_SIZE)
AnnaBridge 171:3a7713b1edbc 266 #define HCI_OPCODE_LE_READ_PEER_RES_ADDR HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_READ_PEER_RES_ADDR)
AnnaBridge 171:3a7713b1edbc 267 #define HCI_OPCODE_LE_READ_LOCAL_RES_ADDR HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_READ_LOCAL_RES_ADDR)
AnnaBridge 171:3a7713b1edbc 268 #define HCI_OPCODE_LE_SET_ADDR_RES_ENABLE HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_SET_ADDR_RES_ENABLE)
AnnaBridge 171:3a7713b1edbc 269 #define HCI_OPCODE_LE_SET_RES_PRIV_ADDR_TO HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_SET_RES_PRIV_ADDR_TO)
AnnaBridge 171:3a7713b1edbc 270 #define HCI_OPCODE_LE_READ_MAX_DATA_LEN HCI_OPCODE(HCI_OGF_LE_CONTROLLER, HCI_OCF_LE_READ_MAX_DATA_LEN)
AnnaBridge 171:3a7713b1edbc 271
AnnaBridge 171:3a7713b1edbc 272
AnnaBridge 171:3a7713b1edbc 273
AnnaBridge 171:3a7713b1edbc 274 /*! Command parameter lengths */
AnnaBridge 171:3a7713b1edbc 275 #define HCI_LEN_NOP 0
AnnaBridge 171:3a7713b1edbc 276
AnnaBridge 171:3a7713b1edbc 277 #define HCI_LEN_DISCONNECT 3
AnnaBridge 171:3a7713b1edbc 278 #define HCI_LEN_READ_REMOTE_VER_INFO 2
AnnaBridge 171:3a7713b1edbc 279
AnnaBridge 171:3a7713b1edbc 280 #define HCI_LEN_SET_EVENT_MASK 8
AnnaBridge 171:3a7713b1edbc 281 #define HCI_LEN_SET_EVENT_MASK_PAGE2 8
AnnaBridge 171:3a7713b1edbc 282 #define HCI_LEN_RESET 0
AnnaBridge 171:3a7713b1edbc 283 #define HCI_LEN_READ_TX_PWR_LVL 3
AnnaBridge 171:3a7713b1edbc 284 #define HCI_LEN_SET_CONTROLLER_TO_HOST_FC 1
AnnaBridge 171:3a7713b1edbc 285 #define HCI_LEN_HOST_BUFFER_SIZE 8
AnnaBridge 171:3a7713b1edbc 286 #define HCI_LEN_HOST_NUM_CMPL_PKTS 1
AnnaBridge 171:3a7713b1edbc 287
AnnaBridge 171:3a7713b1edbc 288 #define HCI_LEN_READ_LOCAL_VER_INFO 0
AnnaBridge 171:3a7713b1edbc 289 #define HCI_LEN_READ_LOCAL_SUP_CMDS 0
AnnaBridge 171:3a7713b1edbc 290 #define HCI_LEN_READ_LOCAL_SUP_FEAT 0
AnnaBridge 171:3a7713b1edbc 291 #define HCI_LEN_READ_BUF_SIZE 0
AnnaBridge 171:3a7713b1edbc 292 #define HCI_LEN_READ_BD_ADDR 0
AnnaBridge 171:3a7713b1edbc 293
AnnaBridge 171:3a7713b1edbc 294 #define HCI_LEN_READ_RSSI 2
AnnaBridge 171:3a7713b1edbc 295 #define HCI_LEN_READ_AUTH_PAYLOAD_TO 2
AnnaBridge 171:3a7713b1edbc 296 #define HCI_LEN_WRITE_AUTH_PAYLOAD_TO 4
AnnaBridge 171:3a7713b1edbc 297
AnnaBridge 171:3a7713b1edbc 298 #define HCI_LEN_LE_SET_EVENT_MASK 8
AnnaBridge 171:3a7713b1edbc 299 #define HCI_LEN_LE_READ_BUF_SIZE 0
AnnaBridge 171:3a7713b1edbc 300 #define HCI_LEN_LE_READ_LOCAL_SUP_FEAT 0
AnnaBridge 171:3a7713b1edbc 301 #define HCI_LEN_LE_SET_RAND_ADDR 6
AnnaBridge 171:3a7713b1edbc 302 #define HCI_LEN_LE_SET_ADV_PARAM 15
AnnaBridge 171:3a7713b1edbc 303 #define HCI_LEN_LE_READ_ADV_TX_POWER 0
AnnaBridge 171:3a7713b1edbc 304 #define HCI_LEN_LE_SET_ADV_DATA 32
AnnaBridge 171:3a7713b1edbc 305 #define HCI_LEN_LE_SET_SCAN_RESP_DATA 32
AnnaBridge 171:3a7713b1edbc 306 #define HCI_LEN_LE_SET_ADV_ENABLE 1
AnnaBridge 171:3a7713b1edbc 307 #define HCI_LEN_LE_SET_SCAN_PARAM 7
AnnaBridge 171:3a7713b1edbc 308 #define HCI_LEN_LE_SET_SCAN_ENABLE 2
AnnaBridge 171:3a7713b1edbc 309 #define HCI_LEN_LE_CREATE_CONN 25
AnnaBridge 171:3a7713b1edbc 310 #define HCI_LEN_LE_CREATE_CONN_CANCEL 0
AnnaBridge 171:3a7713b1edbc 311 #define HCI_LEN_LE_READ_WHITE_LIST_SIZE 0
AnnaBridge 171:3a7713b1edbc 312 #define HCI_LEN_LE_CLEAR_WHITE_LIST 0
AnnaBridge 171:3a7713b1edbc 313 #define HCI_LEN_LE_ADD_DEV_WHITE_LIST 7
AnnaBridge 171:3a7713b1edbc 314 #define HCI_LEN_LE_REMOVE_DEV_WHITE_LIST 7
AnnaBridge 171:3a7713b1edbc 315 #define HCI_LEN_LE_CONN_UPDATE 14
AnnaBridge 171:3a7713b1edbc 316 #define HCI_LEN_LE_SET_HOST_CHAN_CLASS 5
AnnaBridge 171:3a7713b1edbc 317 #define HCI_LEN_LE_READ_CHAN_MAP 2
AnnaBridge 171:3a7713b1edbc 318 #define HCI_LEN_LE_READ_REMOTE_FEAT 2
AnnaBridge 171:3a7713b1edbc 319 #define HCI_LEN_LE_ENCRYPT 32
AnnaBridge 171:3a7713b1edbc 320 #define HCI_LEN_LE_RAND 0
AnnaBridge 171:3a7713b1edbc 321 #define HCI_LEN_LE_START_ENCRYPTION 28
AnnaBridge 171:3a7713b1edbc 322 #define HCI_LEN_LE_LTK_REQ_REPL 18
AnnaBridge 171:3a7713b1edbc 323 #define HCI_LEN_LE_LTK_REQ_NEG_REPL 2
AnnaBridge 171:3a7713b1edbc 324 #define HCI_LEN_LE_READ_SUP_STATES 0
AnnaBridge 171:3a7713b1edbc 325 #define HCI_LEN_LE_RECEIVER_TEST 1
AnnaBridge 171:3a7713b1edbc 326 #define HCI_LEN_LE_TRANSMITTER_TEST 3
AnnaBridge 171:3a7713b1edbc 327 #define HCI_LEN_LE_TEST_END 0
AnnaBridge 171:3a7713b1edbc 328 #define HCI_LEN_LE_READ_LOCAL_P256_PUB_KEY 0
AnnaBridge 171:3a7713b1edbc 329 #define HCI_LEN_LE_GENERATE_MAX_DATA 64
AnnaBridge 171:3a7713b1edbc 330 #define HCI_LEN_LE_ADD_DEV_RES_LIST 39
AnnaBridge 171:3a7713b1edbc 331 #define HCI_LEN_LE_REMOVE_DEV_RES_LIST 7
AnnaBridge 171:3a7713b1edbc 332 #define HCI_LEN_LE_CLEAR_RES_LIST 0
AnnaBridge 171:3a7713b1edbc 333 #define HCI_LEN_LE_READ_RES_LIST_SIZE 0
AnnaBridge 171:3a7713b1edbc 334 #define HCI_LEN_LE_READ_PEER_RES_ADDR 7
AnnaBridge 171:3a7713b1edbc 335 #define HCI_LEN_LE_READ_LOCAL_RES_ADDR 7
AnnaBridge 171:3a7713b1edbc 336 #define HCI_LEN_LE_SET_ADDR_RES_ENABLE 1
AnnaBridge 171:3a7713b1edbc 337 #define HCI_LEN_LE_SET_RES_PRIV_ADDR_TO 2
AnnaBridge 171:3a7713b1edbc 338 #define HCI_LEN_LE_REM_CONN_PARAM_REP 14
AnnaBridge 171:3a7713b1edbc 339 #define HCI_LEN_LE_REM_CONN_PARAM_NEG_REP 3
AnnaBridge 171:3a7713b1edbc 340 #define HCI_LEN_LE_SET_DATA_LEN 6
AnnaBridge 171:3a7713b1edbc 341 #define HCI_LEN_LE_READ_DEF_DATA_LEN 0
AnnaBridge 171:3a7713b1edbc 342 #define HCI_LEN_LE_WRITE_DEF_DATA_LEN 4
AnnaBridge 171:3a7713b1edbc 343 #define HCI_LEN_LE_READ_LOCAL_P256_PUB_KEY 0
AnnaBridge 171:3a7713b1edbc 344 #define HCI_LEN_LE_GENERATE_DHKEY 64
AnnaBridge 171:3a7713b1edbc 345 #define HCI_LEN_LE_READ_MAX_DATA_LEN 0
AnnaBridge 171:3a7713b1edbc 346
AnnaBridge 171:3a7713b1edbc 347 /*! Events */
AnnaBridge 171:3a7713b1edbc 348 #define HCI_DISCONNECT_CMPL_EVT 0x05
AnnaBridge 171:3a7713b1edbc 349 #define HCI_ENC_CHANGE_EVT 0x08
AnnaBridge 171:3a7713b1edbc 350 #define HCI_READ_REMOTE_VER_INFO_CMPL_EVT 0x0C
AnnaBridge 171:3a7713b1edbc 351 #define HCI_CMD_CMPL_EVT 0x0E
AnnaBridge 171:3a7713b1edbc 352 #define HCI_CMD_STATUS_EVT 0x0F
AnnaBridge 171:3a7713b1edbc 353 #define HCI_HW_ERROR_EVT 0x10
AnnaBridge 171:3a7713b1edbc 354 #define HCI_NUM_CMPL_PKTS_EVT 0x13
AnnaBridge 171:3a7713b1edbc 355 #define HCI_DATA_BUF_OVERFLOW_EVT 0x1A
AnnaBridge 171:3a7713b1edbc 356 #define HCI_ENC_KEY_REFRESH_CMPL_EVT 0x30
AnnaBridge 171:3a7713b1edbc 357 #define HCI_LE_META_EVT 0x3E
AnnaBridge 171:3a7713b1edbc 358 #define HCI_AUTH_PAYLOAD_TIMEOUT_EVT 0x57
AnnaBridge 171:3a7713b1edbc 359 #define HCI_VENDOR_SPEC_EVT 0xFF
AnnaBridge 171:3a7713b1edbc 360
AnnaBridge 171:3a7713b1edbc 361 /*! LE Subevents */
AnnaBridge 171:3a7713b1edbc 362 #define HCI_LE_CONN_CMPL_EVT 0x01
AnnaBridge 171:3a7713b1edbc 363 #define HCI_LE_ADV_REPORT_EVT 0x02
AnnaBridge 171:3a7713b1edbc 364 #define HCI_LE_CONN_UPDATE_CMPL_EVT 0x03
AnnaBridge 171:3a7713b1edbc 365 #define HCI_LE_READ_REMOTE_FEAT_CMPL_EVT 0x04
AnnaBridge 171:3a7713b1edbc 366 #define HCI_LE_LTK_REQ_EVT 0x05
AnnaBridge 171:3a7713b1edbc 367 /* New in version 4.1 */
AnnaBridge 171:3a7713b1edbc 368 #define HCI_LE_REM_CONN_PARAM_REQ_EVT 0x06
AnnaBridge 171:3a7713b1edbc 369 /* New in version 4.2 */
AnnaBridge 171:3a7713b1edbc 370 #define HCI_LE_DATA_LEN_CHANGE_EVT 0x07
AnnaBridge 171:3a7713b1edbc 371 #define HCI_LE_READ_LOCAL_P256_PUB_KEY_CMPL_EVT 0x08
AnnaBridge 171:3a7713b1edbc 372 #define HCI_LE_GENERATE_DHKEY_CMPL_EVT 0x09
AnnaBridge 171:3a7713b1edbc 373 #define HCI_LE_ENHANCED_CONN_CMPL_EVT 0x0A
AnnaBridge 171:3a7713b1edbc 374 #define HCI_LE_DIRECT_ADV_REPORT_EVT 0x0B
AnnaBridge 171:3a7713b1edbc 375
AnnaBridge 171:3a7713b1edbc 376 /*! Event parameter lengths */
AnnaBridge 171:3a7713b1edbc 377 #define HCI_LEN_DISCONNECT_CMPL 4
AnnaBridge 171:3a7713b1edbc 378 #define HCI_LEN_CMD_CMPL 3
AnnaBridge 171:3a7713b1edbc 379 #define HCI_LEN_CMD_STATUS 4
AnnaBridge 171:3a7713b1edbc 380 #define HCI_LEN_HW_ERR 1
AnnaBridge 171:3a7713b1edbc 381 #define HCI_LEN_ENC_CHANGE 4
AnnaBridge 171:3a7713b1edbc 382 #define HCI_LEN_LE_CONN_CMPL 19
AnnaBridge 171:3a7713b1edbc 383 #define HCI_LEN_LE_CONN_UPDATE_CMPL 9
AnnaBridge 171:3a7713b1edbc 384 #define HCI_LEN_LE_READ_REMOTE_FEAT_CMPL 12
AnnaBridge 171:3a7713b1edbc 385 #define HCI_LEN_LE_LTK_REQ 13
AnnaBridge 171:3a7713b1edbc 386
AnnaBridge 171:3a7713b1edbc 387 /*! Supported commands */
AnnaBridge 171:3a7713b1edbc 388 #define HCI_SUP_DISCONNECT 0x20 /*! Byte 0 */
AnnaBridge 171:3a7713b1edbc 389 #define HCI_SUP_READ_REMOTE_VER_INFO 0x80 /*! Byte 2 */
AnnaBridge 171:3a7713b1edbc 390 #define HCI_SUP_SET_EVENT_MASK 0x40 /*! Byte 5 */
AnnaBridge 171:3a7713b1edbc 391 #define HCI_SUP_RESET 0x80 /*! Byte 5 */
AnnaBridge 171:3a7713b1edbc 392 #define HCI_SUP_READ_TX_PWR_LVL 0x04 /*! Byte 10 */
AnnaBridge 171:3a7713b1edbc 393 #define HCI_SUP_READ_LOCAL_VER_INFO 0x08 /*! Byte 14 */
AnnaBridge 171:3a7713b1edbc 394 #define HCI_SUP_READ_LOCAL_SUP_FEAT 0x20 /*! Byte 14 */
AnnaBridge 171:3a7713b1edbc 395 #define HCI_SUP_READ_BD_ADDR 0x02 /*! Byte 15 */
AnnaBridge 171:3a7713b1edbc 396 #define HCI_SUP_READ_RSSI 0x20 /*! Byte 15 */
AnnaBridge 171:3a7713b1edbc 397 #define HCI_SUP_SET_EVENT_MASK_PAGE2 0x04 /*! Byte 22 */
AnnaBridge 171:3a7713b1edbc 398 #define HCI_SUP_LE_SET_EVENT_MASK 0x01 /*! Byte 25 */
AnnaBridge 171:3a7713b1edbc 399 #define HCI_SUP_LE_READ_BUF_SIZE 0x02 /*! Byte 25 */
AnnaBridge 171:3a7713b1edbc 400 #define HCI_SUP_LE_READ_LOCAL_SUP_FEAT 0x04 /*! Byte 25 */
AnnaBridge 171:3a7713b1edbc 401 #define HCI_SUP_LE_SET_RAND_ADDR 0x10 /*! Byte 25 */
AnnaBridge 171:3a7713b1edbc 402 #define HCI_SUP_LE_SET_ADV_PARAM 0x20 /*! Byte 25 */
AnnaBridge 171:3a7713b1edbc 403 #define HCI_SUP_LE_READ_ADV_TX_POWER 0x40 /*! Byte 25 */
AnnaBridge 171:3a7713b1edbc 404 #define HCI_SUP_LE_SET_ADV_DATA 0x80 /*! Byte 25 */
AnnaBridge 171:3a7713b1edbc 405 #define HCI_SUP_LE_SET_SCAN_RESP_DATA 0x01 /*! Byte 26 */
AnnaBridge 171:3a7713b1edbc 406 #define HCI_SUP_LE_SET_ADV_ENABLE 0x02 /*! Byte 26 */
AnnaBridge 171:3a7713b1edbc 407 #define HCI_SUP_LE_SET_SCAN_PARAM 0x04 /*! Byte 26 */
AnnaBridge 171:3a7713b1edbc 408 #define HCI_SUP_LE_SET_SCAN_ENABLE 0x08 /*! Byte 26 */
AnnaBridge 171:3a7713b1edbc 409 #define HCI_SUP_LE_CREATE_CONN 0x10 /*! Byte 26 */
AnnaBridge 171:3a7713b1edbc 410 #define HCI_SUP_LE_CREATE_CONN_CANCEL 0x20 /*! Byte 26 */
AnnaBridge 171:3a7713b1edbc 411 #define HCI_SUP_LE_READ_WHITE_LIST_SIZE 0x40 /*! Byte 26 */
AnnaBridge 171:3a7713b1edbc 412 #define HCI_SUP_LE_CLEAR_WHITE_LIST 0x80 /*! Byte 26 */
AnnaBridge 171:3a7713b1edbc 413 #define HCI_SUP_LE_ADD_DEV_WHITE_LIST 0x01 /*! Byte 27 */
AnnaBridge 171:3a7713b1edbc 414 #define HCI_SUP_LE_REMOVE_DEV_WHITE_LIST 0x02 /*! Byte 27 */
AnnaBridge 171:3a7713b1edbc 415 #define HCI_SUP_LE_CONN_UPDATE 0x04 /*! Byte 27 */
AnnaBridge 171:3a7713b1edbc 416 #define HCI_SUP_LE_SET_HOST_CHAN_CLASS 0x08 /*! Byte 27 */
AnnaBridge 171:3a7713b1edbc 417 #define HCI_SUP_LE_READ_CHAN_MAP 0x10 /*! Byte 27 */
AnnaBridge 171:3a7713b1edbc 418 #define HCI_SUP_LE_READ_REMOTE_FEAT 0x20 /*! Byte 27 */
AnnaBridge 171:3a7713b1edbc 419 #define HCI_SUP_LE_ENCRYPT 0x40 /*! Byte 27 */
AnnaBridge 171:3a7713b1edbc 420 #define HCI_SUP_LE_RAND 0x80 /*! Byte 27 */
AnnaBridge 171:3a7713b1edbc 421 #define HCI_SUP_LE_START_ENCRYPTION 0x01 /*! Byte 28 */
AnnaBridge 171:3a7713b1edbc 422 #define HCI_SUP_LE_LTK_REQ_REPL 0x02 /*! Byte 28 */
AnnaBridge 171:3a7713b1edbc 423 #define HCI_SUP_LE_LTK_REQ_NEG_REPL 0x04 /*! Byte 28 */
AnnaBridge 171:3a7713b1edbc 424 #define HCI_SUP_LE_READ_SUP_STATES 0x08 /*! Byte 28 */
AnnaBridge 171:3a7713b1edbc 425 #define HCI_SUP_LE_RECEIVER_TEST 0x10 /*! Byte 28 */
AnnaBridge 171:3a7713b1edbc 426 #define HCI_SUP_LE_TRANSMITTER_TEST 0x20 /*! Byte 28 */
AnnaBridge 171:3a7713b1edbc 427 #define HCI_SUP_LE_TEST_END 0x40 /*! Byte 28 */
AnnaBridge 171:3a7713b1edbc 428 #define HCI_SUP_READ_AUTH_PAYLOAD_TO 0x10 /*! Byte 32 */
AnnaBridge 171:3a7713b1edbc 429 #define HCI_SUP_WRITE_AUTH_PAYLOAD_TO 0x20 /*! Byte 32 */
AnnaBridge 171:3a7713b1edbc 430 #define HCI_SUP_LE_REM_CONN_PARAM_REQ_REPL 0x10 /*! Byte 33 */
AnnaBridge 171:3a7713b1edbc 431 #define HCI_SUP_LE_REM_CONN_PARAM_REQ_NEG_REPL 0x20 /*! Byte 33 */
AnnaBridge 171:3a7713b1edbc 432 #define HCI_SUP_LE_SET_DATA_LEN 0x40 /*! Byte 33 */
AnnaBridge 171:3a7713b1edbc 433 #define HCI_SUP_LE_READ_DEF_DATA_LEN 0x80 /*! Byte 33 */
AnnaBridge 171:3a7713b1edbc 434 #define HCI_SUP_LE_WRITE_DEF_DATA_LEN 0x01 /*! Byte 34 */
AnnaBridge 171:3a7713b1edbc 435 #define HCI_SUP_LE_READ_LOCAL_P256_PUB_KEY 0x02 /*! Byte 34 */
AnnaBridge 171:3a7713b1edbc 436 #define HCI_SUP_LE_GENERATE_DHKEY 0x04 /*! Byte 34 */
AnnaBridge 171:3a7713b1edbc 437 #define HCI_SUP_LE_ADD_DEV_RES_LIST_EVT 0x08 /*! Byte 34 */
AnnaBridge 171:3a7713b1edbc 438 #define HCI_SUP_LE_REMOVE_DEV_RES_LIST 0x10 /*! Byte 34 */
AnnaBridge 171:3a7713b1edbc 439 #define HCI_SUP_LE_CLEAR_RES_LIST 0x20 /*! Byte 34 */
AnnaBridge 171:3a7713b1edbc 440 #define HCI_SUP_LE_READ_RES_LIST_SIZE 0x40 /*! Byte 34 */
AnnaBridge 171:3a7713b1edbc 441 #define HCI_SUP_LE_READ_PEER_RES_ADDR 0x80 /*! Byte 34 */
AnnaBridge 171:3a7713b1edbc 442 #define HCI_SUP_LE_READ_LOCAL_RES_ADDR 0x01 /*! Byte 35 */
AnnaBridge 171:3a7713b1edbc 443 #define HCI_SUP_LE_SET_ADDR_RES_ENABLE 0x02 /*! Byte 35 */
AnnaBridge 171:3a7713b1edbc 444 #define HCI_SUP_LE_SET_RES_PRIV_ADDR_TO 0x04 /*! Byte 35 */
AnnaBridge 171:3a7713b1edbc 445 #define HCI_SUP_LE_READ_MAX_DATA_LEN 0x08 /*! Byte 35 */
AnnaBridge 171:3a7713b1edbc 446
AnnaBridge 171:3a7713b1edbc 447 /*! Event mask */
AnnaBridge 171:3a7713b1edbc 448 #define HCI_EVT_MASK_DISCONNECT_CMPL 0x10 /*! Byte 0 */
AnnaBridge 171:3a7713b1edbc 449 #define HCI_EVT_MASK_ENC_CHANGE 0x80 /*! Byte 0 */
AnnaBridge 171:3a7713b1edbc 450 #define HCI_EVT_MASK_READ_REMOTE_VER_INFO_CMPL 0x08 /*! Byte 1 */
AnnaBridge 171:3a7713b1edbc 451 #define HCI_EVT_MASK_HW_ERROR 0x80 /*! Byte 1 */
AnnaBridge 171:3a7713b1edbc 452 #define HCI_EVT_MASK_DATA_BUF_OVERFLOW 0x02 /*! Byte 3 */
AnnaBridge 171:3a7713b1edbc 453 #define HCI_EVT_MASK_ENC_KEY_REFRESH_CMPL 0x80 /*! Byte 5 */
AnnaBridge 171:3a7713b1edbc 454 #define HCI_EVT_MASK_LE_META 0x20 /*! Byte 7 */
AnnaBridge 171:3a7713b1edbc 455
AnnaBridge 171:3a7713b1edbc 456 /*! Event mask page 2 */
AnnaBridge 171:3a7713b1edbc 457 #define HCI_EVT_MASK_AUTH_PAYLOAD_TIMEOUT 0x80 /*! Byte 2 */
AnnaBridge 171:3a7713b1edbc 458
AnnaBridge 171:3a7713b1edbc 459 /*! LE event mask */
AnnaBridge 171:3a7713b1edbc 460 #define HCI_EVT_MASK_LE_CONN_CMPL_EVT 0x01 /*! Byte 0 */
AnnaBridge 171:3a7713b1edbc 461 #define HCI_EVT_MASK_LE_ADV_REPORT_EVT 0x02 /*! Byte 0 */
AnnaBridge 171:3a7713b1edbc 462 #define HCI_EVT_MASK_LE_CONN_UPDATE_CMPL_EVT 0x04 /*! Byte 0 */
AnnaBridge 171:3a7713b1edbc 463 #define HCI_EVT_MASK_LE_READ_REMOTE_FEAT_CMPL_EVT 0x08 /*! Byte 0 */
AnnaBridge 171:3a7713b1edbc 464 #define HCI_EVT_MASK_LE_LTK_REQ_EVT 0x10 /*! Byte 0 */
AnnaBridge 171:3a7713b1edbc 465 #define HCI_EVT_MASK_LE_REMOTE_CONN_PARAM_REQ_EVT 0x20 /*! Byte 0 */
AnnaBridge 171:3a7713b1edbc 466 #define HCI_EVT_MASK_LE_DATA_LEN_CHANGE_EVT 0x40 /*! Byte 0 */
AnnaBridge 171:3a7713b1edbc 467 #define HCI_EVT_MASK_LE_READ_LOCAL_P256_PUB_KEY_CMPL 0x80 /*! Byte 0 */
AnnaBridge 171:3a7713b1edbc 468 #define HCI_EVT_MASK_LE_GENERATE_DHKEY_CMPL 0x01 /*! Byte 1 */
AnnaBridge 171:3a7713b1edbc 469 #define HCI_EVT_MASK_LE_ENHANCED_CONN_CMPL_EVT 0x02 /*! Byte 1 */
AnnaBridge 171:3a7713b1edbc 470 #define HCI_EVT_MASK_LE_DIRECT_ADV_REPORT_EVT 0x04 /*! Byte 1 */
AnnaBridge 171:3a7713b1edbc 471
AnnaBridge 171:3a7713b1edbc 472 /*! LE supported features */
AnnaBridge 171:3a7713b1edbc 473 #define HCI_LE_SUP_FEAT_ENCRYPTION 0x01 /*! Encryption supported */
AnnaBridge 171:3a7713b1edbc 474 #define HCI_LE_SUP_FEAT_CONN_PARAM_REQ_PROC 0x02 /*! Connection Parameters Request Procedure supported */
AnnaBridge 171:3a7713b1edbc 475 #define HCI_LE_SUP_FEAT_EXT_REJECT_IND 0x04 /*! Extended Reject Indication supported */
AnnaBridge 171:3a7713b1edbc 476 #define HCI_LE_SUP_FEAT_SLV_INIT_FEAT_EXCH 0x08 /*! Slave-Initiated Features Exchange supported */
AnnaBridge 171:3a7713b1edbc 477 #define HCI_LE_SUP_FEAT_LE_PING 0x10 /*! LE Ping supported */
AnnaBridge 171:3a7713b1edbc 478 #define HCI_LE_SUP_FEAT_DATA_LEN_EXT 0x20 /*! Data Length Extension supported */
AnnaBridge 171:3a7713b1edbc 479 #define HCI_LE_SUP_FEAT_PRIVACY 0x40 /*! LL Privacy supported */
AnnaBridge 171:3a7713b1edbc 480 #define HCI_LE_SUP_FEAT_EXT_SCAN_FILT_POLICY 0x80 /*! Extended Scan Filter Policy supported */
AnnaBridge 171:3a7713b1edbc 481
AnnaBridge 171:3a7713b1edbc 482 /*! Advertising command parameters */
AnnaBridge 171:3a7713b1edbc 483 #define HCI_ADV_MIN_INTERVAL 0x0020 /*! Minimum advertising interval */
AnnaBridge 171:3a7713b1edbc 484 #define HCI_ADV_NONCONN_MIN_INTERVAL 0x00A0 /*! Minimum nonconnectable adv. interval */
AnnaBridge 171:3a7713b1edbc 485 #define HCI_ADV_MAX_INTERVAL 0x4000 /*! Maximum advertising interval */
AnnaBridge 171:3a7713b1edbc 486 #define HCI_ADV_TYPE_CONN_UNDIRECT 0x00 /*! Connectable undirected advertising */
AnnaBridge 171:3a7713b1edbc 487 #define HCI_ADV_TYPE_CONN_DIRECT 0x01 /*! Connectable directed high duty cycle advertising */
AnnaBridge 171:3a7713b1edbc 488 #define HCI_ADV_TYPE_DISC_UNDIRECT 0x02 /*! Discoverable undirected advertising */
AnnaBridge 171:3a7713b1edbc 489 #define HCI_ADV_TYPE_NONCONN_UNDIRECT 0x03 /*! Nonconnectable undirected advertising */
AnnaBridge 171:3a7713b1edbc 490 #define HCI_ADV_TYPE_CONN_DIRECT_LO_DUTY 0x04 /*! Connectable directed low duty cycle advertising */
AnnaBridge 171:3a7713b1edbc 491 #define HCI_ADV_CHAN_37 0x01 /*! Advertising channel 37 */
AnnaBridge 171:3a7713b1edbc 492 #define HCI_ADV_CHAN_38 0x02 /*! Advertising channel 38 */
AnnaBridge 171:3a7713b1edbc 493 #define HCI_ADV_CHAN_39 0x04 /*! Advertising channel 39 */
AnnaBridge 171:3a7713b1edbc 494 #define HCI_ADV_FILT_NONE 0x00 /*! No scan request or connection filtering */
AnnaBridge 171:3a7713b1edbc 495 #define HCI_ADV_FILT_SCAN 0x01 /*! White list filters scan requests */
AnnaBridge 171:3a7713b1edbc 496 #define HCI_ADV_FILT_CONN 0x02 /*! White list filters connections */
AnnaBridge 171:3a7713b1edbc 497 #define HCI_ADV_FILT_ALL 0x03 /*! White list filters scan req. and conn. */
AnnaBridge 171:3a7713b1edbc 498
AnnaBridge 171:3a7713b1edbc 499 /*! Scan command parameters */
AnnaBridge 171:3a7713b1edbc 500 #define HCI_SCAN_TYPE_PASSIVE 0 /*! Passive scan */
AnnaBridge 171:3a7713b1edbc 501 #define HCI_SCAN_TYPE_ACTIVE 1 /*! Active scan */
AnnaBridge 171:3a7713b1edbc 502 #define HCI_SCAN_INTERVAL_MIN 0x0004 /*! Minimum scan interval */
AnnaBridge 171:3a7713b1edbc 503 #define HCI_SCAN_INTERVAL_MAX 0x4000 /*! Maximum scan interval */
AnnaBridge 171:3a7713b1edbc 504 #define HCI_SCAN_INTERVAL_DEFAULT 0x0010 /*! Default scan interval */
AnnaBridge 171:3a7713b1edbc 505 #define HCI_SCAN_WINDOW_MIN 0x0004 /*! Minimum scan window */
AnnaBridge 171:3a7713b1edbc 506 #define HCI_SCAN_WINDOW_MAX 0x4000 /*! Maximum scan window */
AnnaBridge 171:3a7713b1edbc 507 #define HCI_SCAN_WINDOW_DEFAULT 0x0010 /*! Default scan window */
AnnaBridge 171:3a7713b1edbc 508
AnnaBridge 171:3a7713b1edbc 509 /*! Connection command parameters */
AnnaBridge 171:3a7713b1edbc 510 #define HCI_CONN_INTERVAL_MIN 0x0006 /*! Minimum connection interval */
AnnaBridge 171:3a7713b1edbc 511 #define HCI_CONN_INTERVAL_MAX 0x0C80 /*! Maximum connection interval */
AnnaBridge 171:3a7713b1edbc 512 #define HCI_CONN_LATENCY_MAX 0x01F3 /*! Maximum connection latency */
AnnaBridge 171:3a7713b1edbc 513 #define HCI_SUP_TIMEOUT_MIN 0x000A /*! Minimum supervision timeout */
AnnaBridge 171:3a7713b1edbc 514 #define HCI_SUP_TIMEOUT_MAX 0x0C80 /*! Maximum supervision timeout */
AnnaBridge 171:3a7713b1edbc 515
AnnaBridge 171:3a7713b1edbc 516 /*! Connection event parameters */
AnnaBridge 171:3a7713b1edbc 517 #define HCI_ROLE_MASTER 0 /*! Role is master */
AnnaBridge 171:3a7713b1edbc 518 #define HCI_ROLE_SLAVE 1 /*! Role is slave */
AnnaBridge 171:3a7713b1edbc 519 #define HCI_CLOCK_500PPM 0x00 /*! 500 ppm clock accuracy */
AnnaBridge 171:3a7713b1edbc 520 #define HCI_CLOCK_250PPM 0x01 /*! 250 ppm clock accuracy */
AnnaBridge 171:3a7713b1edbc 521 #define HCI_CLOCK_150PPM 0x02 /*! 150 ppm clock accuracy */
AnnaBridge 171:3a7713b1edbc 522 #define HCI_CLOCK_100PPM 0x03 /*! 100 ppm clock accuracy */
AnnaBridge 171:3a7713b1edbc 523 #define HCI_CLOCK_75PPM 0x04 /*! 75 ppm clock accuracy */
AnnaBridge 171:3a7713b1edbc 524 #define HCI_CLOCK_50PPM 0x05 /*! 50 ppm clock accuracy */
AnnaBridge 171:3a7713b1edbc 525 #define HCI_CLOCK_30PPM 0x06 /*! 30 ppm clock accuracy */
AnnaBridge 171:3a7713b1edbc 526 #define HCI_CLOCK_20PPM 0x07 /*! 20 ppm clock accuracy */
AnnaBridge 171:3a7713b1edbc 527
AnnaBridge 171:3a7713b1edbc 528 /*! Advertising report event parameters */
AnnaBridge 171:3a7713b1edbc 529 #define HCI_ADV_CONN_UNDIRECT 0x00 /*! Connectable undirected advertising */
AnnaBridge 171:3a7713b1edbc 530 #define HCI_ADV_CONN_DIRECT 0x01 /*! Connectable directed advertising */
AnnaBridge 171:3a7713b1edbc 531 #define HCI_ADV_DISC_UNDIRECT 0x02 /*! Discoverable undirected advertising */
AnnaBridge 171:3a7713b1edbc 532 #define HCI_ADV_NONCONN_UNDIRECT 0x03 /*! Non-connectable undirected advertising */
AnnaBridge 171:3a7713b1edbc 533 #define HCI_ADV_SCAN_RESPONSE 0x04 /*! Scan response */
AnnaBridge 171:3a7713b1edbc 534
AnnaBridge 171:3a7713b1edbc 535 /*! Misc command parameters */
AnnaBridge 171:3a7713b1edbc 536 #define HCI_READ_TX_PWR_CURRENT 0 /*! Read current tx power */
AnnaBridge 171:3a7713b1edbc 537 #define HCI_READ_TX_PWR_MAX 1 /*! Read maximum tx power */
AnnaBridge 171:3a7713b1edbc 538 #define HCI_TX_PWR_MIN -30 /*! Minimum tx power dBm */
AnnaBridge 171:3a7713b1edbc 539 #define HCI_TX_PWR_MAX 20 /*! Maximum tx power dBm */
AnnaBridge 171:3a7713b1edbc 540 #define HCI_VERSION 6 /*! HCI specification version */
AnnaBridge 171:3a7713b1edbc 541 #define HCI_RSSI_MIN -127 /*! Minimum RSSI dBm */
AnnaBridge 171:3a7713b1edbc 542 #define HCI_RSSI_MAX 20 /*! Maximum RSSI dBm */
AnnaBridge 171:3a7713b1edbc 543 #define HCI_ADDR_TYPE_PUBLIC 0 /*! Public device address */
AnnaBridge 171:3a7713b1edbc 544 #define HCI_ADDR_TYPE_RANDOM 1 /*! Random device address */
AnnaBridge 171:3a7713b1edbc 545 #define HCI_ADDR_TYPE_PUBLIC_IDENTITY 2 /*! Public identity address. */
AnnaBridge 171:3a7713b1edbc 546 #define HCI_ADDR_TYPE_RANDOM_IDENTITY 3 /*! Random identity address. */
AnnaBridge 171:3a7713b1edbc 547 #define HCI_FILT_NONE 0 /*! Accept all advertising packets */
AnnaBridge 171:3a7713b1edbc 548 #define HCI_FILT_WHITE_LIST 1 /*! Accept from While List only */
AnnaBridge 171:3a7713b1edbc 549 #define HCI_FILT_RES_INIT 2 /*! Accept directed advertisements with RPAs */
AnnaBridge 171:3a7713b1edbc 550 #define HCI_FILT_WHITE_LIST_RES_INIT 3 /*! Accept from White List or directed advertisements with RPAs */
AnnaBridge 171:3a7713b1edbc 551 #define HCI_ROLE_MASTER 0 /*! Role is master */
AnnaBridge 171:3a7713b1edbc 552 #define HCI_ROLE_SLAVE 1 /*! Role is slave */
AnnaBridge 171:3a7713b1edbc 553
AnnaBridge 171:3a7713b1edbc 554 /*! Parameter lengths */
AnnaBridge 171:3a7713b1edbc 555 #define HCI_EVT_MASK_LEN 8 /*! Length of event mask byte array */
AnnaBridge 171:3a7713b1edbc 556 #define HCI_EVT_MASK_PAGE_2_LEN 8 /*! Length of event mask page 2 byte array */
AnnaBridge 171:3a7713b1edbc 557 #define HCI_LE_EVT_MASK_LEN 8 /*! Length of LE event mask byte array */
AnnaBridge 171:3a7713b1edbc 558 #define HCI_FEAT_LEN 8 /*! Length of features byte array */
AnnaBridge 171:3a7713b1edbc 559 #define HCI_ADV_DATA_LEN 31 /*! Length of advertising data */
AnnaBridge 171:3a7713b1edbc 560 #define HCI_SCAN_DATA_LEN 31 /*! Length of scan response data */
AnnaBridge 171:3a7713b1edbc 561 #define HCI_CHAN_MAP_LEN 5 /*! Length of channel map byte array */
AnnaBridge 171:3a7713b1edbc 562 #define HCI_KEY_LEN 16 /*! Length of encryption key */
AnnaBridge 171:3a7713b1edbc 563 #define HCI_ENCRYPT_DATA_LEN 16 /*! Length of data used in encryption */
AnnaBridge 171:3a7713b1edbc 564 #define HCI_RAND_LEN 8 /*! Length of random number */
AnnaBridge 171:3a7713b1edbc 565 #define HCI_LE_STATES_LEN 8 /*! Length of LE states byte array */
AnnaBridge 171:3a7713b1edbc 566 #define HCI_P256_KEY_LEN 64 /*! Length of P256 key */
AnnaBridge 171:3a7713b1edbc 567 #define HCI_DH_KEY_LEN 32 /*! Length of DH Key */
AnnaBridge 171:3a7713b1edbc 568
AnnaBridge 171:3a7713b1edbc 569 /*! Wicentric company ID */
AnnaBridge 171:3a7713b1edbc 570 #define HCI_ID_WICENTRIC 0x005F
AnnaBridge 171:3a7713b1edbc 571
AnnaBridge 171:3a7713b1edbc 572 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 573 };
AnnaBridge 171:3a7713b1edbc 574 #endif
AnnaBridge 171:3a7713b1edbc 575
AnnaBridge 171:3a7713b1edbc 576 #endif /* HCI_DEFS_H */