BLE_API wrapper library for STMicroelectronics' BlueNRG Bluetooth Low Energy expansion board shield (Component)

Dependents:   Nucleo_Zumo_BLE_IDB04A1 contest_IOT5 contest_IOT6 contest_IOT_10 ... more

Fork of X_NUCLEO_IDB0XA1 by ST Expansion SW Team

Arduino Connector Compatibility Warning

X-NUCLEO-IDB04A1 and X-NUCLEO-IDB05A1 are Arduino compatible with an exception: instead of using pin D13 for the SPI clock, they use pin D3. The default configuration for this library is having the SPI clock on pin D3.

To be fully Arduino compatible, X-NUCLEO-IDB04A1 and X-NUCLEO-IDB05A1 need a small HW patch.

For X-NUCLEO-IDB04A1 this patch consists in removing zero resistor R10 and instead soldering zero resistor R11. For X-NUCLEO-IDB05A1 this patch consists in removing zero resistor R4 and instead soldering zero resistor R6.

In case you patch your board, then you also have to configure this library to use pin D13 to drive the SPI clock (see macro IDB0XA1_D13_PATCH in file x_nucleo_idb0xa1_targets.h).

If you use pin D13 for the SPI clock, please be aware that on STM32 Nucleo boards you may not drive the LED, otherwise you will get a conflict: the LED on STM32 Nucleo boards is connected to pin D13.

Referring to the current list of tested platforms (see X-NUCLEO-IDB04A1 and X-NUCLEO-IDB05A1 pages), the patch is required by ST-Nucleo-F103RB; ST-Nucleo-F302R8; ST-Nucleo-F411RE; and ST-Nucleo-F446RE.

Committer:
Vincent Coubard
Date:
Thu Sep 15 10:51:51 2016 +0100
Branch:
408dd237072462ac62f6cccd90aba682edefc503
Revision:
284:6a7441796347
Parent:
229:9981f62cdb1a
Sync with 408dd237072462ac62f6cccd90aba682edefc503

2016-07-28 15:41:39+02:00: Andrea Palmieri
Update include

Signed-off-by: Andrea Palmieri <andrea.palmieri@st.com>

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wolfgang Betz 132:51056160fa4a 1 /******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
Wolfgang Betz 132:51056160fa4a 2 * File Name : bluenrg_aci_const.h
Wolfgang Betz 132:51056160fa4a 3 * Author : AMS - AAS
Wolfgang Betz 132:51056160fa4a 4 * Version : V1.0.0
Wolfgang Betz 132:51056160fa4a 5 * Date : 26-Jun-2014
Wolfgang Betz 132:51056160fa4a 6 * Description : Header file with ACI definitions for BlueNRG FW6.3.
Wolfgang Betz 132:51056160fa4a 7 ********************************************************************************
Wolfgang Betz 132:51056160fa4a 8 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
Wolfgang Betz 132:51056160fa4a 9 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
Wolfgang Betz 132:51056160fa4a 10 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
Wolfgang Betz 132:51056160fa4a 11 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
Wolfgang Betz 132:51056160fa4a 12 * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
Wolfgang Betz 132:51056160fa4a 13 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
Wolfgang Betz 132:51056160fa4a 14 *******************************************************************************/
Wolfgang Betz 132:51056160fa4a 15
Wolfgang Betz 132:51056160fa4a 16 #ifndef __BLUENRG_ACI_CONST_H_
Wolfgang Betz 132:51056160fa4a 17 #define __BLUENRG_ACI_CONST_H_
Wolfgang Betz 132:51056160fa4a 18
Vincent Coubard 284:6a7441796347 19 #include "ble_compiler.h"
Vincent Coubard 284:6a7441796347 20 #include "ble_link_layer.h"
Vincent Coubard 284:6a7441796347 21 #include "ble_hci_const.h"
Wolfgang Betz 132:51056160fa4a 22 #include "bluenrg_gatt_server.h"
Wolfgang Betz 132:51056160fa4a 23
Wolfgang Betz 132:51056160fa4a 24 #ifndef DOXYGEN_SHOULD_SKIP_THIS
Wolfgang Betz 132:51056160fa4a 25
Wolfgang Betz 132:51056160fa4a 26 #define OCF_HAL_WRITE_CONFIG_DATA 0x000C
Wolfgang Betz 132:51056160fa4a 27
Andrea Palmieri 229:9981f62cdb1a 28 #define OCF_HAL_READ_CONFIG_DATA 0x000D
Andrea Palmieri 229:9981f62cdb1a 29 typedef __packed struct _hal_read_config_data_cp{
Andrea Palmieri 229:9981f62cdb1a 30 uint8_t offset;
Andrea Palmieri 229:9981f62cdb1a 31 } PACKED hal_read_config_data_cp;
Andrea Palmieri 229:9981f62cdb1a 32 #define HAL_READ_CONFIG_DATA_RP_SIZE 1
Andrea Palmieri 229:9981f62cdb1a 33 typedef __packed struct _hal_read_config_data_rp{
Andrea Palmieri 229:9981f62cdb1a 34 uint8_t status;
Andrea Palmieri 229:9981f62cdb1a 35 uint8_t data[HCI_MAX_PAYLOAD_SIZE-HAL_READ_CONFIG_DATA_RP_SIZE];
Andrea Palmieri 229:9981f62cdb1a 36 } PACKED hal_read_config_data_rp;
Andrea Palmieri 229:9981f62cdb1a 37
Wolfgang Betz 132:51056160fa4a 38 #define OCF_HAL_SET_TX_POWER_LEVEL 0x000F
Wolfgang Betz 132:51056160fa4a 39 typedef __packed struct _hal_set_tx_power_level_cp{
Wolfgang Betz 132:51056160fa4a 40 uint8_t en_high_power;
Wolfgang Betz 132:51056160fa4a 41 uint8_t pa_level;
Wolfgang Betz 132:51056160fa4a 42 } PACKED hal_set_tx_power_level_cp;
Wolfgang Betz 132:51056160fa4a 43 #define HAL_SET_TX_POWER_LEVEL_CP_SIZE 2
Wolfgang Betz 132:51056160fa4a 44
Wolfgang Betz 132:51056160fa4a 45 #define OCF_HAL_DEVICE_STANDBY 0x0013
Wolfgang Betz 132:51056160fa4a 46
Andrea Palmieri 229:9981f62cdb1a 47 #define OCF_HAL_LE_TX_TEST_PACKET_NUMBER 0x0014
Andrea Palmieri 229:9981f62cdb1a 48 typedef __packed struct _hal_le_tx_test_packet_number_rp{
Andrea Palmieri 229:9981f62cdb1a 49 uint8_t status;
Andrea Palmieri 229:9981f62cdb1a 50 uint32_t number_of_packets;
Andrea Palmieri 229:9981f62cdb1a 51 } PACKED hal_le_tx_test_packet_number_rp;
Andrea Palmieri 229:9981f62cdb1a 52
Wolfgang Betz 132:51056160fa4a 53 #define OCF_HAL_TONE_START 0x0015
Wolfgang Betz 132:51056160fa4a 54 typedef __packed struct _hal_tone_start_cp{
Wolfgang Betz 132:51056160fa4a 55 uint8_t rf_channel;
Wolfgang Betz 132:51056160fa4a 56 } PACKED hal_tone_start_cp;
Wolfgang Betz 132:51056160fa4a 57 #define HAL_TONE_START_CP_SIZE 1
Wolfgang Betz 132:51056160fa4a 58
Wolfgang Betz 132:51056160fa4a 59 #define OCF_HAL_TONE_STOP 0x0016
Wolfgang Betz 132:51056160fa4a 60
Wolfgang Betz 132:51056160fa4a 61 #define OCF_UPDATER_START 0x0020
Wolfgang Betz 132:51056160fa4a 62 #define OCF_UPDATER_REBOOT 0x0021
Wolfgang Betz 132:51056160fa4a 63
Wolfgang Betz 132:51056160fa4a 64 #define OCF_GET_UPDATER_VERSION 0x0022
Wolfgang Betz 132:51056160fa4a 65 typedef __packed struct _get_updater_version_rp{
Wolfgang Betz 132:51056160fa4a 66 uint8_t status;
Wolfgang Betz 132:51056160fa4a 67 uint8_t version;
Wolfgang Betz 132:51056160fa4a 68 } PACKED get_updater_version_rp;
Wolfgang Betz 132:51056160fa4a 69 #define GET_UPDATER_VERSION_RP_SIZE 2
Wolfgang Betz 132:51056160fa4a 70
Wolfgang Betz 132:51056160fa4a 71 #define OCF_GET_UPDATER_BUFSIZE 0x0023
Wolfgang Betz 132:51056160fa4a 72 typedef __packed struct _get_updater_bufsize_rp{
Wolfgang Betz 132:51056160fa4a 73 uint8_t status;
Wolfgang Betz 132:51056160fa4a 74 uint8_t buffer_size;
Wolfgang Betz 132:51056160fa4a 75 } PACKED get_updater_bufsize_rp;
Wolfgang Betz 132:51056160fa4a 76 #define GET_UPDATER_BUFSIZE_RP_SIZE 2
Wolfgang Betz 132:51056160fa4a 77
Wolfgang Betz 132:51056160fa4a 78 #define OCF_UPDATER_ERASE_BLUE_FLAG 0x0024
Wolfgang Betz 132:51056160fa4a 79
Wolfgang Betz 132:51056160fa4a 80 #define OCF_UPDATER_RESET_BLUE_FLAG 0x0025
Wolfgang Betz 132:51056160fa4a 81
Wolfgang Betz 132:51056160fa4a 82 #define OCF_UPDATER_ERASE_SECTOR 0x0026
Wolfgang Betz 132:51056160fa4a 83 typedef __packed struct _updater_erase_sector_cp{
Wolfgang Betz 132:51056160fa4a 84 uint32_t address;
Wolfgang Betz 132:51056160fa4a 85 } PACKED updater_erase_sector_cp;
Wolfgang Betz 132:51056160fa4a 86 #define UPDATER_ERASE_SECTOR_CP_SIZE 4
Wolfgang Betz 132:51056160fa4a 87
Wolfgang Betz 132:51056160fa4a 88 #define OCF_UPDATER_PROG_DATA_BLOCK 0x0027
Wolfgang Betz 132:51056160fa4a 89 #define UPDATER_PROG_DATA_BLOCK_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 90 typedef __packed struct _updater_prog_data_block_cp{
Wolfgang Betz 132:51056160fa4a 91 uint32_t address;
Wolfgang Betz 132:51056160fa4a 92 uint16_t data_len;
Wolfgang Betz 132:51056160fa4a 93 uint8_t data[HCI_MAX_PAYLOAD_SIZE-UPDATER_PROG_DATA_BLOCK_CP_SIZE];
Wolfgang Betz 132:51056160fa4a 94 } PACKED updater_prog_data_block_cp;
Wolfgang Betz 132:51056160fa4a 95
Wolfgang Betz 132:51056160fa4a 96 #define OCF_UPDATER_READ_DATA_BLOCK 0x0028
Wolfgang Betz 132:51056160fa4a 97 typedef __packed struct _updater_read_data_block_cp{
Wolfgang Betz 132:51056160fa4a 98 uint32_t address;
Wolfgang Betz 132:51056160fa4a 99 uint16_t data_len;
Wolfgang Betz 132:51056160fa4a 100 } PACKED updater_read_data_block_cp;
Wolfgang Betz 132:51056160fa4a 101 #define UPDATER_READ_DATA_BLOCK_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 102 typedef __packed struct _updater_read_data_block_rp{
Wolfgang Betz 132:51056160fa4a 103 uint8_t status;
Wolfgang Betz 132:51056160fa4a 104 uint8_t data[VARIABLE_SIZE];
Wolfgang Betz 132:51056160fa4a 105 } PACKED updater_read_data_block_rp;
Wolfgang Betz 132:51056160fa4a 106 #define GET_UPDATER_BUFSIZE_RP_SIZE 2
Wolfgang Betz 132:51056160fa4a 107
Wolfgang Betz 132:51056160fa4a 108 #define OCF_UPDATER_CALC_CRC 0x0029
Wolfgang Betz 132:51056160fa4a 109 typedef __packed struct _updater_calc_crc_cp{
Wolfgang Betz 132:51056160fa4a 110 uint32_t address;
Wolfgang Betz 132:51056160fa4a 111 uint8_t num_sectors;
Wolfgang Betz 132:51056160fa4a 112 } PACKED updater_calc_crc_cp;
Wolfgang Betz 132:51056160fa4a 113 #define UPDATER_CALC_CRC_CP_SIZE 5
Wolfgang Betz 132:51056160fa4a 114 typedef __packed struct _updater_calc_crc_rp{
Wolfgang Betz 132:51056160fa4a 115 uint8_t status;
Wolfgang Betz 132:51056160fa4a 116 uint32_t crc;
Wolfgang Betz 132:51056160fa4a 117 } PACKED updater_calc_crc_rp;
Wolfgang Betz 132:51056160fa4a 118 #define UPDATER_CALC_CRC_RP_SIZE 5
Wolfgang Betz 132:51056160fa4a 119
Wolfgang Betz 132:51056160fa4a 120 #define OCF_UPDATER_HW_VERSION 0x002A
Wolfgang Betz 132:51056160fa4a 121 typedef __packed struct _updater_hw_version_rp{
Wolfgang Betz 132:51056160fa4a 122 uint8_t status;
Wolfgang Betz 132:51056160fa4a 123 uint8_t version;
Wolfgang Betz 132:51056160fa4a 124 } PACKED updater_hw_version_rp;
Wolfgang Betz 132:51056160fa4a 125 #define UPDATER_HW_VERSION_RP_SIZE 2
Wolfgang Betz 132:51056160fa4a 126
Wolfgang Betz 132:51056160fa4a 127 #define OCF_GAP_SET_NON_DISCOVERABLE 0x0081
Wolfgang Betz 132:51056160fa4a 128
Wolfgang Betz 132:51056160fa4a 129 #define OCF_GAP_SET_LIMITED_DISCOVERABLE 0x0082
Wolfgang Betz 132:51056160fa4a 130
Wolfgang Betz 132:51056160fa4a 131 #define OCF_GAP_SET_DISCOVERABLE 0x0083
Wolfgang Betz 132:51056160fa4a 132
Wolfgang Betz 132:51056160fa4a 133 #define OCF_GAP_SET_DIRECT_CONNECTABLE 0x0084
Wolfgang Betz 132:51056160fa4a 134 typedef __packed struct _gap_set_direct_conectable_cp_IDB05A1{
Wolfgang Betz 132:51056160fa4a 135 uint8_t own_bdaddr_type;
Wolfgang Betz 132:51056160fa4a 136 uint8_t directed_adv_type;
Wolfgang Betz 132:51056160fa4a 137 uint8_t direct_bdaddr_type;
Wolfgang Betz 132:51056160fa4a 138 tBDAddr direct_bdaddr;
Wolfgang Betz 132:51056160fa4a 139 } PACKED gap_set_direct_conectable_cp_IDB05A1;
Wolfgang Betz 132:51056160fa4a 140
Wolfgang Betz 132:51056160fa4a 141 typedef __packed struct _gap_set_direct_conectable_cp_IDB04A1{
Wolfgang Betz 132:51056160fa4a 142 uint8_t own_bdaddr_type;
Wolfgang Betz 132:51056160fa4a 143 uint8_t direct_bdaddr_type;
Wolfgang Betz 132:51056160fa4a 144 tBDAddr direct_bdaddr;
Wolfgang Betz 132:51056160fa4a 145 } PACKED gap_set_direct_conectable_cp_IDB04A1;
Wolfgang Betz 132:51056160fa4a 146 #define GAP_SET_DIRECT_CONNECTABLE_CP_SIZE 8
Wolfgang Betz 132:51056160fa4a 147
Wolfgang Betz 132:51056160fa4a 148 #define OCF_GAP_SET_IO_CAPABILITY 0x0085
Wolfgang Betz 132:51056160fa4a 149 typedef __packed struct _gap_set_io_capability_cp{
Wolfgang Betz 132:51056160fa4a 150 uint8_t io_capability;
Wolfgang Betz 132:51056160fa4a 151 } PACKED gap_set_io_capability_cp;
Wolfgang Betz 132:51056160fa4a 152 #define GAP_SET_IO_CAPABILITY_CP_SIZE 1
Wolfgang Betz 132:51056160fa4a 153
Wolfgang Betz 132:51056160fa4a 154 #define OCF_GAP_SET_AUTH_REQUIREMENT 0x0086
Wolfgang Betz 132:51056160fa4a 155 typedef __packed struct _gap_set_auth_requirement_cp{
Wolfgang Betz 132:51056160fa4a 156 uint8_t mitm_mode;
Wolfgang Betz 132:51056160fa4a 157 uint8_t oob_enable;
Wolfgang Betz 132:51056160fa4a 158 uint8_t oob_data[16];
Wolfgang Betz 132:51056160fa4a 159 uint8_t min_encryption_key_size;
Wolfgang Betz 132:51056160fa4a 160 uint8_t max_encryption_key_size;
Wolfgang Betz 132:51056160fa4a 161 uint8_t use_fixed_pin;
Wolfgang Betz 132:51056160fa4a 162 uint32_t fixed_pin;
Wolfgang Betz 132:51056160fa4a 163 uint8_t bonding_mode;
Wolfgang Betz 132:51056160fa4a 164 } PACKED gap_set_auth_requirement_cp;
Wolfgang Betz 132:51056160fa4a 165 #define GAP_SET_AUTH_REQUIREMENT_CP_SIZE 26
Wolfgang Betz 132:51056160fa4a 166
Wolfgang Betz 132:51056160fa4a 167 #define OCF_GAP_SET_AUTHOR_REQUIREMENT 0x0087
Wolfgang Betz 132:51056160fa4a 168 typedef __packed struct _gap_set_author_requirement_cp{
Wolfgang Betz 132:51056160fa4a 169 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 170 uint8_t authorization_enable;
Wolfgang Betz 132:51056160fa4a 171 } PACKED gap_set_author_requirement_cp;
Wolfgang Betz 132:51056160fa4a 172 #define GAP_SET_AUTHOR_REQUIREMENT_CP_SIZE 3
Wolfgang Betz 132:51056160fa4a 173
Wolfgang Betz 132:51056160fa4a 174 #define OCF_GAP_PASSKEY_RESPONSE 0x0088
Wolfgang Betz 132:51056160fa4a 175 typedef __packed struct _gap_passkey_response_cp{
Wolfgang Betz 132:51056160fa4a 176 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 177 uint32_t passkey;
Wolfgang Betz 132:51056160fa4a 178 } PACKED gap_passkey_response_cp;
Wolfgang Betz 132:51056160fa4a 179 #define GAP_PASSKEY_RESPONSE_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 180
Wolfgang Betz 132:51056160fa4a 181 #define OCF_GAP_AUTHORIZATION_RESPONSE 0x0089
Wolfgang Betz 132:51056160fa4a 182 typedef __packed struct _gap_authorization_response_cp{
Wolfgang Betz 132:51056160fa4a 183 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 184 uint8_t authorize;
Wolfgang Betz 132:51056160fa4a 185 } PACKED gap_authorization_response_cp;
Wolfgang Betz 132:51056160fa4a 186 #define GAP_AUTHORIZATION_RESPONSE_CP_SIZE 3
Wolfgang Betz 132:51056160fa4a 187
Wolfgang Betz 132:51056160fa4a 188 #define OCF_GAP_INIT 0x008A
Wolfgang Betz 132:51056160fa4a 189 typedef __packed struct _gap_init_cp_IDB05A1{
Wolfgang Betz 132:51056160fa4a 190 uint8_t role;
Wolfgang Betz 132:51056160fa4a 191 uint8_t privacy_enabled;
Wolfgang Betz 132:51056160fa4a 192 uint8_t device_name_char_len;
Wolfgang Betz 132:51056160fa4a 193 } PACKED gap_init_cp_IDB05A1;
Wolfgang Betz 132:51056160fa4a 194 #define GAP_INIT_CP_SIZE_IDB05A1 3
Wolfgang Betz 132:51056160fa4a 195
Wolfgang Betz 132:51056160fa4a 196 typedef __packed struct _gap_init_cp_IDB04A1{
Wolfgang Betz 132:51056160fa4a 197 uint8_t role;
Wolfgang Betz 132:51056160fa4a 198 } PACKED gap_init_cp_IDB04A1;
Wolfgang Betz 132:51056160fa4a 199 #define GAP_INIT_CP_SIZE_IDB04A1 1
Wolfgang Betz 132:51056160fa4a 200 typedef __packed struct _gap_init_rp{
Wolfgang Betz 132:51056160fa4a 201 uint8_t status;
Wolfgang Betz 132:51056160fa4a 202 uint16_t service_handle;
Wolfgang Betz 132:51056160fa4a 203 uint16_t dev_name_char_handle;
Wolfgang Betz 132:51056160fa4a 204 uint16_t appearance_char_handle;
Wolfgang Betz 132:51056160fa4a 205 } PACKED gap_init_rp;
Wolfgang Betz 132:51056160fa4a 206 #define GAP_INIT_RP_SIZE 7
Wolfgang Betz 132:51056160fa4a 207
Wolfgang Betz 132:51056160fa4a 208 #define OCF_GAP_SET_NON_CONNECTABLE 0x008B
Wolfgang Betz 132:51056160fa4a 209 typedef __packed struct _gap_set_non_connectable_cp_IDB05A1{
Wolfgang Betz 132:51056160fa4a 210 uint8_t advertising_event_type;
Wolfgang Betz 132:51056160fa4a 211 uint8_t own_address_type;
Wolfgang Betz 132:51056160fa4a 212 #endif
Wolfgang Betz 132:51056160fa4a 213 } PACKED gap_set_non_connectable_cp_IDB05A1;
Wolfgang Betz 132:51056160fa4a 214
Wolfgang Betz 132:51056160fa4a 215 typedef __packed struct _gap_set_non_connectable_cp_IDB04A1{
Wolfgang Betz 132:51056160fa4a 216 uint8_t advertising_event_type;
Wolfgang Betz 132:51056160fa4a 217 } PACKED gap_set_non_connectable_cp_IDB04A1;
Wolfgang Betz 132:51056160fa4a 218
Wolfgang Betz 132:51056160fa4a 219 #define OCF_GAP_SET_UNDIRECTED_CONNECTABLE 0x008C
Wolfgang Betz 132:51056160fa4a 220 typedef __packed struct _gap_set_undirected_connectable_cp{
Wolfgang Betz 132:51056160fa4a 221 uint8_t adv_filter_policy;
Wolfgang Betz 132:51056160fa4a 222 uint8_t own_addr_type;
Wolfgang Betz 132:51056160fa4a 223 } PACKED gap_set_undirected_connectable_cp;
Wolfgang Betz 132:51056160fa4a 224 #define GAP_SET_UNDIRECTED_CONNECTABLE_CP_SIZE 2
Wolfgang Betz 132:51056160fa4a 225
Wolfgang Betz 132:51056160fa4a 226 #define OCF_GAP_SLAVE_SECURITY_REQUEST 0x008D
Wolfgang Betz 132:51056160fa4a 227 typedef __packed struct _gap_slave_security_request_cp{
Wolfgang Betz 132:51056160fa4a 228 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 229 uint8_t bonding;
Wolfgang Betz 132:51056160fa4a 230 uint8_t mitm_protection;
Wolfgang Betz 132:51056160fa4a 231 } PACKED gap_slave_security_request_cp;
Wolfgang Betz 132:51056160fa4a 232 #define GAP_SLAVE_SECURITY_REQUEST_CP_SIZE 4
Wolfgang Betz 132:51056160fa4a 233
Wolfgang Betz 132:51056160fa4a 234 #define OCF_GAP_UPDATE_ADV_DATA 0x008E
Wolfgang Betz 132:51056160fa4a 235
Wolfgang Betz 132:51056160fa4a 236 #define OCF_GAP_DELETE_AD_TYPE 0x008F
Wolfgang Betz 132:51056160fa4a 237 typedef __packed struct _gap_delete_ad_type_cp{
Wolfgang Betz 132:51056160fa4a 238 uint8_t ad_type;
Wolfgang Betz 132:51056160fa4a 239 } PACKED gap_delete_ad_type_cp;
Wolfgang Betz 132:51056160fa4a 240 #define GAP_DELETE_AD_TYPE_CP_SIZE 1
Wolfgang Betz 132:51056160fa4a 241
Wolfgang Betz 132:51056160fa4a 242 #define OCF_GAP_GET_SECURITY_LEVEL 0x0090
Wolfgang Betz 132:51056160fa4a 243 typedef __packed struct _gap_get_security_level_rp{
Wolfgang Betz 132:51056160fa4a 244 uint8_t status;
Wolfgang Betz 132:51056160fa4a 245 uint8_t mitm_protection;
Wolfgang Betz 132:51056160fa4a 246 uint8_t bonding;
Wolfgang Betz 132:51056160fa4a 247 uint8_t oob_data;
Wolfgang Betz 132:51056160fa4a 248 uint8_t passkey_required;
Wolfgang Betz 132:51056160fa4a 249 } PACKED gap_get_security_level_rp;
Wolfgang Betz 132:51056160fa4a 250 #define GAP_GET_SECURITY_LEVEL_RP_SIZE 5
Wolfgang Betz 132:51056160fa4a 251
Wolfgang Betz 132:51056160fa4a 252 #define OCF_GAP_SET_EVT_MASK 0x0091
Wolfgang Betz 132:51056160fa4a 253 typedef __packed struct _gap_set_evt_mask_cp{
Wolfgang Betz 132:51056160fa4a 254 uint16_t evt_mask;
Wolfgang Betz 132:51056160fa4a 255 } PACKED gap_set_evt_mask_cp;
Wolfgang Betz 132:51056160fa4a 256 #define GAP_SET_EVT_MASK_CP_SIZE 2
Wolfgang Betz 132:51056160fa4a 257
Wolfgang Betz 132:51056160fa4a 258 #define OCF_GAP_CONFIGURE_WHITELIST 0x0092
Wolfgang Betz 132:51056160fa4a 259
Wolfgang Betz 132:51056160fa4a 260 #define OCF_GAP_TERMINATE 0x0093
Wolfgang Betz 132:51056160fa4a 261 typedef __packed struct _gap_terminate_cp{
Wolfgang Betz 132:51056160fa4a 262 uint16_t handle;
Wolfgang Betz 132:51056160fa4a 263 uint8_t reason;
Wolfgang Betz 132:51056160fa4a 264 } PACKED gap_terminate_cp;
Wolfgang Betz 132:51056160fa4a 265 #define GAP_TERMINATE_CP_SIZE 3
Wolfgang Betz 132:51056160fa4a 266
Wolfgang Betz 132:51056160fa4a 267 #define OCF_GAP_CLEAR_SECURITY_DB 0x0094
Wolfgang Betz 132:51056160fa4a 268
Wolfgang Betz 132:51056160fa4a 269 #define OCF_GAP_ALLOW_REBOND_DB 0x0095
Wolfgang Betz 132:51056160fa4a 270
Wolfgang Betz 132:51056160fa4a 271 typedef __packed struct _gap_allow_rebond_cp_IDB05A1{
Wolfgang Betz 132:51056160fa4a 272 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 273 } PACKED gap_allow_rebond_cp_IDB05A1;
Wolfgang Betz 132:51056160fa4a 274
Wolfgang Betz 132:51056160fa4a 275 #define OCF_GAP_START_LIMITED_DISCOVERY_PROC 0x0096
Wolfgang Betz 132:51056160fa4a 276 typedef __packed struct _gap_start_limited_discovery_proc_cp{
Wolfgang Betz 132:51056160fa4a 277 uint16_t scanInterval;
Wolfgang Betz 132:51056160fa4a 278 uint16_t scanWindow;
Wolfgang Betz 132:51056160fa4a 279 uint8_t own_address_type;
Wolfgang Betz 132:51056160fa4a 280 uint8_t filterDuplicates;
Wolfgang Betz 132:51056160fa4a 281 } PACKED gap_start_limited_discovery_proc_cp;
Wolfgang Betz 132:51056160fa4a 282 #define GAP_START_LIMITED_DISCOVERY_PROC_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 283
Wolfgang Betz 132:51056160fa4a 284 #define OCF_GAP_START_GENERAL_DISCOVERY_PROC 0x0097
Wolfgang Betz 132:51056160fa4a 285 typedef __packed struct _gap_start_general_discovery_proc_cp{
Wolfgang Betz 132:51056160fa4a 286 uint16_t scanInterval;
Wolfgang Betz 132:51056160fa4a 287 uint16_t scanWindow;
Wolfgang Betz 132:51056160fa4a 288 uint8_t own_address_type;
Wolfgang Betz 132:51056160fa4a 289 uint8_t filterDuplicates;
Wolfgang Betz 132:51056160fa4a 290 } PACKED gap_start_general_discovery_proc_cp;
Wolfgang Betz 132:51056160fa4a 291 #define GAP_START_GENERAL_DISCOVERY_PROC_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 292
Wolfgang Betz 132:51056160fa4a 293 #define OCF_GAP_START_NAME_DISCOVERY_PROC 0x0098
Wolfgang Betz 132:51056160fa4a 294 typedef __packed struct _gap_start_name_discovery_proc_cp{
Wolfgang Betz 132:51056160fa4a 295 uint16_t scanInterval;
Wolfgang Betz 132:51056160fa4a 296 uint16_t scanWindow;
Wolfgang Betz 132:51056160fa4a 297 uint8_t peer_bdaddr_type;
Wolfgang Betz 132:51056160fa4a 298 tBDAddr peer_bdaddr;
Wolfgang Betz 132:51056160fa4a 299 uint8_t own_bdaddr_type;
Wolfgang Betz 132:51056160fa4a 300 uint16_t conn_min_interval;
Wolfgang Betz 132:51056160fa4a 301 uint16_t conn_max_interval;
Wolfgang Betz 132:51056160fa4a 302 uint16_t conn_latency;
Wolfgang Betz 132:51056160fa4a 303 uint16_t supervision_timeout;
Wolfgang Betz 132:51056160fa4a 304 uint16_t min_conn_length;
Wolfgang Betz 132:51056160fa4a 305 uint16_t max_conn_length;
Wolfgang Betz 132:51056160fa4a 306 } PACKED gap_start_name_discovery_proc_cp;
Wolfgang Betz 132:51056160fa4a 307 #define GAP_START_NAME_DISCOVERY_PROC_CP_SIZE 24
Wolfgang Betz 132:51056160fa4a 308
Wolfgang Betz 132:51056160fa4a 309 #define OCF_GAP_START_AUTO_CONN_ESTABLISH_PROC 0x0099
Wolfgang Betz 132:51056160fa4a 310
Wolfgang Betz 132:51056160fa4a 311 #define OCF_GAP_START_GENERAL_CONN_ESTABLISH_PROC 0x009A
Wolfgang Betz 132:51056160fa4a 312 typedef __packed struct _gap_start_general_conn_establish_proc_cp_IDB05A1{
Wolfgang Betz 132:51056160fa4a 313 uint8_t scan_type;
Wolfgang Betz 132:51056160fa4a 314 uint16_t scan_interval;
Wolfgang Betz 132:51056160fa4a 315 uint16_t scan_window;
Wolfgang Betz 132:51056160fa4a 316 uint8_t own_address_type;
Wolfgang Betz 132:51056160fa4a 317 uint8_t filter_duplicates;
Wolfgang Betz 132:51056160fa4a 318 } PACKED gap_start_general_conn_establish_proc_cp_IDB05A1;
Wolfgang Betz 132:51056160fa4a 319
Wolfgang Betz 132:51056160fa4a 320 typedef __packed struct _gap_start_general_conn_establish_proc_cp_IDB04A1{
Wolfgang Betz 132:51056160fa4a 321 uint8_t scan_type;
Wolfgang Betz 132:51056160fa4a 322 uint16_t scan_interval;
Wolfgang Betz 132:51056160fa4a 323 uint16_t scan_window;
Wolfgang Betz 132:51056160fa4a 324 uint8_t own_address_type;
Wolfgang Betz 132:51056160fa4a 325 uint8_t filter_duplicates;
Wolfgang Betz 132:51056160fa4a 326 uint8_t use_reconn_addr;
Wolfgang Betz 132:51056160fa4a 327 tBDAddr reconn_addr;
Wolfgang Betz 132:51056160fa4a 328 } PACKED gap_start_general_conn_establish_proc_cp_IDB04A1;
Wolfgang Betz 132:51056160fa4a 329
Wolfgang Betz 132:51056160fa4a 330 #define OCF_GAP_START_SELECTIVE_CONN_ESTABLISH_PROC 0x009B
Wolfgang Betz 132:51056160fa4a 331 #define GAP_START_SELECTIVE_CONN_ESTABLISH_PROC_CP_SIZE 8
Wolfgang Betz 132:51056160fa4a 332 typedef __packed struct _gap_start_selective_conn_establish_proc_cp{
Wolfgang Betz 132:51056160fa4a 333 uint8_t scan_type;
Wolfgang Betz 132:51056160fa4a 334 uint16_t scan_interval;
Wolfgang Betz 132:51056160fa4a 335 uint16_t scan_window;
Wolfgang Betz 132:51056160fa4a 336 uint8_t own_address_type;
Wolfgang Betz 132:51056160fa4a 337 uint8_t filter_duplicates;
Wolfgang Betz 132:51056160fa4a 338 uint8_t num_whitelist_entries;
Wolfgang Betz 132:51056160fa4a 339 uint8_t addr_array[HCI_MAX_PAYLOAD_SIZE-GAP_START_SELECTIVE_CONN_ESTABLISH_PROC_CP_SIZE];
Wolfgang Betz 132:51056160fa4a 340 } PACKED gap_start_selective_conn_establish_proc_cp;
Wolfgang Betz 132:51056160fa4a 341
Wolfgang Betz 132:51056160fa4a 342 #define OCF_GAP_CREATE_CONNECTION 0x009C
Wolfgang Betz 132:51056160fa4a 343 typedef __packed struct _gap_create_connection_cp{
Wolfgang Betz 132:51056160fa4a 344 uint16_t scanInterval;
Wolfgang Betz 132:51056160fa4a 345 uint16_t scanWindow;
Wolfgang Betz 132:51056160fa4a 346 uint8_t peer_bdaddr_type;
Wolfgang Betz 132:51056160fa4a 347 tBDAddr peer_bdaddr;
Wolfgang Betz 132:51056160fa4a 348 uint8_t own_bdaddr_type;
Wolfgang Betz 132:51056160fa4a 349 uint16_t conn_min_interval;
Wolfgang Betz 132:51056160fa4a 350 uint16_t conn_max_interval;
Wolfgang Betz 132:51056160fa4a 351 uint16_t conn_latency;
Wolfgang Betz 132:51056160fa4a 352 uint16_t supervision_timeout;
Wolfgang Betz 132:51056160fa4a 353 uint16_t min_conn_length;
Wolfgang Betz 132:51056160fa4a 354 uint16_t max_conn_length;
Wolfgang Betz 132:51056160fa4a 355 } PACKED gap_create_connection_cp;
Wolfgang Betz 132:51056160fa4a 356 #define GAP_CREATE_CONNECTION_CP_SIZE 24
Wolfgang Betz 132:51056160fa4a 357
Wolfgang Betz 132:51056160fa4a 358 #define OCF_GAP_TERMINATE_GAP_PROCEDURE 0x009D
Wolfgang Betz 132:51056160fa4a 359
Wolfgang Betz 132:51056160fa4a 360 #define OCF_GAP_START_CONNECTION_UPDATE 0x009E
Wolfgang Betz 132:51056160fa4a 361 typedef __packed struct _gap_start_connection_update_cp{
Wolfgang Betz 132:51056160fa4a 362 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 363 uint16_t conn_min_interval;
Wolfgang Betz 132:51056160fa4a 364 uint16_t conn_max_interval;
Wolfgang Betz 132:51056160fa4a 365 uint16_t conn_latency;
Wolfgang Betz 132:51056160fa4a 366 uint16_t supervision_timeout;
Wolfgang Betz 132:51056160fa4a 367 uint16_t min_conn_length;
Wolfgang Betz 132:51056160fa4a 368 uint16_t max_conn_length;
Wolfgang Betz 132:51056160fa4a 369 } PACKED gap_start_connection_update_cp;
Wolfgang Betz 132:51056160fa4a 370 #define GAP_START_CONNECTION_UPDATE_CP_SIZE 14
Wolfgang Betz 132:51056160fa4a 371
Wolfgang Betz 132:51056160fa4a 372 #define OCF_GAP_SEND_PAIRING_REQUEST 0x009F
Wolfgang Betz 132:51056160fa4a 373 typedef __packed struct _gap_send_pairing_request_cp{
Wolfgang Betz 132:51056160fa4a 374 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 375 uint8_t force_rebond;
Wolfgang Betz 132:51056160fa4a 376 } PACKED gap_send_pairing_request_cp;
Wolfgang Betz 132:51056160fa4a 377 #define GAP_GAP_SEND_PAIRING_REQUEST_CP_SIZE 3
Wolfgang Betz 132:51056160fa4a 378
Wolfgang Betz 132:51056160fa4a 379 #define OCF_GAP_RESOLVE_PRIVATE_ADDRESS 0x00A0
Wolfgang Betz 132:51056160fa4a 380 typedef __packed struct _gap_resolve_private_address_cp{
Wolfgang Betz 132:51056160fa4a 381 tBDAddr address;
Wolfgang Betz 132:51056160fa4a 382 } PACKED gap_resolve_private_address_cp;
Wolfgang Betz 132:51056160fa4a 383 #define GAP_RESOLVE_PRIVATE_ADDRESS_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 384 typedef __packed struct _gap_resolve_private_address_rp{
Wolfgang Betz 132:51056160fa4a 385 uint8_t status;
Wolfgang Betz 132:51056160fa4a 386 tBDAddr address;
Wolfgang Betz 132:51056160fa4a 387 } PACKED gap_resolve_private_address_rp;
Wolfgang Betz 132:51056160fa4a 388
Wolfgang Betz 132:51056160fa4a 389 #define OCF_GAP_SET_BROADCAST_MODE 0x00A1
Wolfgang Betz 132:51056160fa4a 390 #define GAP_SET_BROADCAST_MODE_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 391 typedef __packed struct _gap_set_broadcast_mode_cp{
Wolfgang Betz 132:51056160fa4a 392 uint16_t adv_interv_min;
Wolfgang Betz 132:51056160fa4a 393 uint16_t adv_interv_max;
Wolfgang Betz 132:51056160fa4a 394 uint8_t adv_type;
Wolfgang Betz 132:51056160fa4a 395 uint8_t own_addr_type;
Wolfgang Betz 132:51056160fa4a 396 uint8_t var_len_data[HCI_MAX_PAYLOAD_SIZE-GAP_SET_BROADCAST_MODE_CP_SIZE];
Wolfgang Betz 132:51056160fa4a 397 } PACKED gap_set_broadcast_mode_cp;
Wolfgang Betz 132:51056160fa4a 398
Wolfgang Betz 132:51056160fa4a 399 #define OCF_GAP_START_OBSERVATION_PROC 0x00A2
Wolfgang Betz 132:51056160fa4a 400 typedef __packed struct _gap_start_observation_proc_cp{
Wolfgang Betz 132:51056160fa4a 401 uint16_t scan_interval;
Wolfgang Betz 132:51056160fa4a 402 uint16_t scan_window;
Wolfgang Betz 132:51056160fa4a 403 uint8_t scan_type;
Wolfgang Betz 132:51056160fa4a 404 uint8_t own_address_type;
Wolfgang Betz 132:51056160fa4a 405 uint8_t filter_duplicates;
Wolfgang Betz 132:51056160fa4a 406 } PACKED gap_start_observation_proc_cp;
Wolfgang Betz 132:51056160fa4a 407
Wolfgang Betz 132:51056160fa4a 408 #define OCF_GAP_GET_BONDED_DEVICES 0x00A3
Wolfgang Betz 132:51056160fa4a 409 typedef __packed struct _gap_get_bonded_devices_rp{
Wolfgang Betz 132:51056160fa4a 410 uint8_t status;
Wolfgang Betz 132:51056160fa4a 411 uint8_t num_addr;
Wolfgang Betz 132:51056160fa4a 412 uint8_t dev_list[HCI_MAX_PAYLOAD_SIZE-HCI_EVENT_HDR_SIZE-EVT_CMD_COMPLETE_SIZE-1];
Wolfgang Betz 132:51056160fa4a 413 } PACKED gap_get_bonded_devices_rp;
Wolfgang Betz 132:51056160fa4a 414
Wolfgang Betz 132:51056160fa4a 415 #define OCF_GAP_IS_DEVICE_BONDED 0x00A4
Wolfgang Betz 132:51056160fa4a 416 typedef __packed struct _gap_is_device_bonded_cp{
Wolfgang Betz 132:51056160fa4a 417 uint8_t peer_address_type;
Wolfgang Betz 132:51056160fa4a 418 tBDAddr peer_address;
Wolfgang Betz 132:51056160fa4a 419 } PACKED gap_is_device_bonded_cp;
Wolfgang Betz 132:51056160fa4a 420
Wolfgang Betz 132:51056160fa4a 421
Wolfgang Betz 132:51056160fa4a 422 #define OCF_GATT_INIT 0x0101
Wolfgang Betz 132:51056160fa4a 423
Wolfgang Betz 132:51056160fa4a 424 #define OCF_GATT_ADD_SERV 0x0102
Wolfgang Betz 132:51056160fa4a 425 typedef __packed struct _gatt_add_serv_rp{
Wolfgang Betz 132:51056160fa4a 426 uint8_t status;
Wolfgang Betz 132:51056160fa4a 427 uint16_t handle;
Wolfgang Betz 132:51056160fa4a 428 } PACKED gatt_add_serv_rp;
Wolfgang Betz 132:51056160fa4a 429 #define GATT_ADD_SERV_RP_SIZE 3
Wolfgang Betz 132:51056160fa4a 430
Wolfgang Betz 132:51056160fa4a 431 #define OCF_GATT_INCLUDE_SERV 0x0103
Wolfgang Betz 132:51056160fa4a 432 typedef __packed struct _gatt_include_serv_rp{
Wolfgang Betz 132:51056160fa4a 433 uint8_t status;
Wolfgang Betz 132:51056160fa4a 434 uint16_t handle;
Wolfgang Betz 132:51056160fa4a 435 } PACKED gatt_include_serv_rp;
Wolfgang Betz 132:51056160fa4a 436 #define GATT_INCLUDE_SERV_RP_SIZE 3
Wolfgang Betz 132:51056160fa4a 437
Wolfgang Betz 132:51056160fa4a 438 #define OCF_GATT_ADD_CHAR 0x0104
Wolfgang Betz 132:51056160fa4a 439 typedef __packed struct _gatt_add_char_rp{
Wolfgang Betz 132:51056160fa4a 440 uint8_t status;
Wolfgang Betz 132:51056160fa4a 441 uint16_t handle;
Wolfgang Betz 132:51056160fa4a 442 } PACKED gatt_add_char_rp;
Wolfgang Betz 132:51056160fa4a 443 #define GATT_ADD_CHAR_RP_SIZE 3
Wolfgang Betz 132:51056160fa4a 444
Wolfgang Betz 132:51056160fa4a 445 #define OCF_GATT_ADD_CHAR_DESC 0x0105
Wolfgang Betz 132:51056160fa4a 446 typedef __packed struct _gatt_add_char_desc_rp{
Wolfgang Betz 132:51056160fa4a 447 uint8_t status;
Wolfgang Betz 132:51056160fa4a 448 uint16_t handle;
Wolfgang Betz 132:51056160fa4a 449 } PACKED gatt_add_char_desc_rp;
Wolfgang Betz 132:51056160fa4a 450 #define GATT_ADD_CHAR_DESC_RP_SIZE 3
Wolfgang Betz 132:51056160fa4a 451
Wolfgang Betz 132:51056160fa4a 452 #define OCF_GATT_UPD_CHAR_VAL 0x0106
Wolfgang Betz 132:51056160fa4a 453
Wolfgang Betz 132:51056160fa4a 454 #define OCF_GATT_DEL_CHAR 0x0107
Wolfgang Betz 132:51056160fa4a 455 typedef __packed struct _gatt_del_char_cp{
Wolfgang Betz 132:51056160fa4a 456 uint16_t service_handle;
Wolfgang Betz 132:51056160fa4a 457 uint16_t char_handle;
Wolfgang Betz 132:51056160fa4a 458 } PACKED gatt_del_char_cp;
Wolfgang Betz 132:51056160fa4a 459 #define GATT_DEL_CHAR_CP_SIZE 4
Wolfgang Betz 132:51056160fa4a 460
Wolfgang Betz 132:51056160fa4a 461 #define OCF_GATT_DEL_SERV 0x0108
Wolfgang Betz 132:51056160fa4a 462 typedef __packed struct _gatt_del_serv_cp{
Wolfgang Betz 132:51056160fa4a 463 uint16_t service_handle;
Wolfgang Betz 132:51056160fa4a 464 } PACKED gatt_del_serv_cp;
Wolfgang Betz 132:51056160fa4a 465 #define GATT_DEL_SERV_CP_SIZE 2
Wolfgang Betz 132:51056160fa4a 466
Wolfgang Betz 132:51056160fa4a 467 #define OCF_GATT_DEL_INC_SERV 0x0109
Wolfgang Betz 132:51056160fa4a 468 typedef __packed struct _gatt_del_inc_serv_cp{
Wolfgang Betz 132:51056160fa4a 469 uint16_t service_handle;
Wolfgang Betz 132:51056160fa4a 470 uint16_t inc_serv_handle;
Wolfgang Betz 132:51056160fa4a 471 } PACKED gatt_del_inc_serv_cp;
Wolfgang Betz 132:51056160fa4a 472 #define GATT_DEL_INC_SERV_CP_SIZE 4
Wolfgang Betz 132:51056160fa4a 473
Wolfgang Betz 132:51056160fa4a 474 #define OCF_GATT_SET_EVT_MASK 0x010A
Wolfgang Betz 132:51056160fa4a 475 typedef __packed struct _gatt_set_evt_mask_cp{
Wolfgang Betz 132:51056160fa4a 476 uint32_t evt_mask;
Wolfgang Betz 132:51056160fa4a 477 } PACKED gatt_set_evt_mask_cp;
Wolfgang Betz 132:51056160fa4a 478 #define GATT_SET_EVT_MASK_CP_SIZE 4
Wolfgang Betz 132:51056160fa4a 479
Wolfgang Betz 132:51056160fa4a 480 #define OCF_GATT_EXCHANGE_CONFIG 0x010B
Wolfgang Betz 132:51056160fa4a 481 typedef __packed struct _gatt_exchange_config_cp{
Wolfgang Betz 132:51056160fa4a 482 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 483 } PACKED gatt_exchange_config_cp;
Wolfgang Betz 132:51056160fa4a 484 #define GATT_EXCHANGE_CONFIG_CP_SIZE 2
Wolfgang Betz 132:51056160fa4a 485
Wolfgang Betz 132:51056160fa4a 486 #define OCF_ATT_FIND_INFO_REQ 0x010C
Wolfgang Betz 132:51056160fa4a 487 typedef __packed struct _att_find_info_req_cp{
Wolfgang Betz 132:51056160fa4a 488 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 489 uint16_t start_handle;
Wolfgang Betz 132:51056160fa4a 490 uint16_t end_handle;
Wolfgang Betz 132:51056160fa4a 491 } PACKED att_find_info_req_cp;
Wolfgang Betz 132:51056160fa4a 492 #define ATT_FIND_INFO_REQ_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 493
Wolfgang Betz 132:51056160fa4a 494 #define OCF_ATT_FIND_BY_TYPE_VALUE_REQ 0x010D
Wolfgang Betz 132:51056160fa4a 495 #define ATT_FIND_BY_TYPE_VALUE_REQ_CP_SIZE 9
Wolfgang Betz 132:51056160fa4a 496 typedef __packed struct _att_find_by_type_value_req_cp{
Wolfgang Betz 132:51056160fa4a 497 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 498 uint16_t start_handle;
Wolfgang Betz 132:51056160fa4a 499 uint16_t end_handle;
Wolfgang Betz 132:51056160fa4a 500 uint8_t uuid[2];
Wolfgang Betz 132:51056160fa4a 501 uint8_t attr_val_len;
Wolfgang Betz 132:51056160fa4a 502 uint8_t attr_val[ATT_MTU - 7];
Wolfgang Betz 132:51056160fa4a 503 } PACKED att_find_by_type_value_req_cp;
Wolfgang Betz 132:51056160fa4a 504
Wolfgang Betz 132:51056160fa4a 505 #define OCF_ATT_READ_BY_TYPE_REQ 0x010E
Wolfgang Betz 132:51056160fa4a 506 #define ATT_READ_BY_TYPE_REQ_CP_SIZE 7 // without UUID
Wolfgang Betz 132:51056160fa4a 507 typedef __packed struct _att_read_by_type_req_cp{
Wolfgang Betz 132:51056160fa4a 508 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 509 uint16_t start_handle;
Wolfgang Betz 132:51056160fa4a 510 uint16_t end_handle;
Wolfgang Betz 132:51056160fa4a 511 uint8_t uuid_type;
Wolfgang Betz 132:51056160fa4a 512 uint8_t uuid[16];
Wolfgang Betz 132:51056160fa4a 513 } PACKED att_read_by_type_req_cp;
Wolfgang Betz 132:51056160fa4a 514
Wolfgang Betz 132:51056160fa4a 515 #define OCF_ATT_READ_BY_GROUP_TYPE_REQ 0x010F
Wolfgang Betz 132:51056160fa4a 516 #define ATT_READ_BY_GROUP_TYPE_REQ_CP_SIZE 7 // without UUID
Wolfgang Betz 132:51056160fa4a 517 typedef __packed struct _att_read_by_group_type_req_cp{
Wolfgang Betz 132:51056160fa4a 518 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 519 uint16_t start_handle;
Wolfgang Betz 132:51056160fa4a 520 uint16_t end_handle;
Wolfgang Betz 132:51056160fa4a 521 uint8_t uuid_type;
Wolfgang Betz 132:51056160fa4a 522 uint8_t uuid[16];
Wolfgang Betz 132:51056160fa4a 523 } PACKED att_read_by_group_type_req_cp;
Wolfgang Betz 132:51056160fa4a 524
Wolfgang Betz 132:51056160fa4a 525 #define OCF_ATT_PREPARE_WRITE_REQ 0x0110
Wolfgang Betz 132:51056160fa4a 526 #define ATT_PREPARE_WRITE_REQ_CP_SIZE 7 // without attr_val
Wolfgang Betz 132:51056160fa4a 527 typedef __packed struct _att_prepare_write_req_cp{
Wolfgang Betz 132:51056160fa4a 528 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 529 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 530 uint16_t value_offset;
Wolfgang Betz 132:51056160fa4a 531 uint8_t attr_val_len;
Wolfgang Betz 132:51056160fa4a 532 uint8_t attr_val[ATT_MTU-5];
Wolfgang Betz 132:51056160fa4a 533 } PACKED att_prepare_write_req_cp;
Wolfgang Betz 132:51056160fa4a 534
Wolfgang Betz 132:51056160fa4a 535 #define OCF_ATT_EXECUTE_WRITE_REQ 0x0111
Wolfgang Betz 132:51056160fa4a 536 typedef __packed struct _att_execute_write_req_cp{
Wolfgang Betz 132:51056160fa4a 537 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 538 uint8_t execute;
Wolfgang Betz 132:51056160fa4a 539 } PACKED att_execute_write_req_cp;
Wolfgang Betz 132:51056160fa4a 540 #define ATT_EXECUTE_WRITE_REQ_CP_SIZE 3
Wolfgang Betz 132:51056160fa4a 541
Wolfgang Betz 132:51056160fa4a 542 #define OCF_GATT_DISC_ALL_PRIM_SERVICES 0X0112
Wolfgang Betz 132:51056160fa4a 543 typedef __packed struct _gatt_disc_all_prim_serivces_cp{
Wolfgang Betz 132:51056160fa4a 544 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 545 } PACKED gatt_disc_all_prim_services_cp;
Wolfgang Betz 132:51056160fa4a 546 #define GATT_DISC_ALL_PRIM_SERVICES_CP_SIZE 2
Wolfgang Betz 132:51056160fa4a 547
Wolfgang Betz 132:51056160fa4a 548 #define OCF_GATT_DISC_PRIM_SERVICE_BY_UUID 0x0113
Wolfgang Betz 132:51056160fa4a 549 typedef __packed struct _gatt_disc_prim_service_by_uuid_cp{
Wolfgang Betz 132:51056160fa4a 550 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 551 uint8_t uuid_type;
Wolfgang Betz 132:51056160fa4a 552 uint8_t uuid[16];
Wolfgang Betz 132:51056160fa4a 553 } PACKED gatt_disc_prim_service_by_uuid_cp;
Wolfgang Betz 132:51056160fa4a 554 #define GATT_DISC_PRIM_SERVICE_BY_UUID_CP_SIZE 3 // Without uuid
Wolfgang Betz 132:51056160fa4a 555
Wolfgang Betz 132:51056160fa4a 556 #define OCF_GATT_FIND_INCLUDED_SERVICES 0X0114
Wolfgang Betz 132:51056160fa4a 557 typedef __packed struct _gatt_disc_find_included_services_cp{
Wolfgang Betz 132:51056160fa4a 558 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 559 uint16_t start_handle;
Wolfgang Betz 132:51056160fa4a 560 uint16_t end_handle;
Wolfgang Betz 132:51056160fa4a 561 } PACKED gatt_find_included_services_cp;
Wolfgang Betz 132:51056160fa4a 562 #define GATT_FIND_INCLUDED_SERVICES_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 563
Wolfgang Betz 132:51056160fa4a 564 #define OCF_GATT_DISC_ALL_CHARAC_OF_SERV 0X0115
Wolfgang Betz 132:51056160fa4a 565 typedef __packed struct _gatt_disc_all_charac_of_serv_cp{
Wolfgang Betz 132:51056160fa4a 566 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 567 uint16_t start_attr_handle;
Wolfgang Betz 132:51056160fa4a 568 uint16_t end_attr_handle;
Wolfgang Betz 132:51056160fa4a 569 } PACKED gatt_disc_all_charac_of_serv_cp;
Wolfgang Betz 132:51056160fa4a 570 #define GATT_DISC_ALL_CHARAC_OF_SERV_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 571
Wolfgang Betz 132:51056160fa4a 572 #define OCF_GATT_DISC_CHARAC_BY_UUID 0X0116
Wolfgang Betz 132:51056160fa4a 573
Wolfgang Betz 132:51056160fa4a 574 #define OCF_GATT_DISC_ALL_CHARAC_DESCRIPTORS 0X0117
Wolfgang Betz 132:51056160fa4a 575 typedef __packed struct _gatt_disc_all_charac_descriptors_cp{
Wolfgang Betz 132:51056160fa4a 576 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 577 uint16_t char_val_handle;
Wolfgang Betz 132:51056160fa4a 578 uint16_t char_end_handle;
Wolfgang Betz 132:51056160fa4a 579 } PACKED gatt_disc_all_charac_descriptors_cp;
Wolfgang Betz 132:51056160fa4a 580 #define GATT_DISC_ALL_CHARAC_DESCRIPTORS_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 581
Wolfgang Betz 132:51056160fa4a 582 #define OCF_GATT_READ_CHARAC_VAL 0x0118
Wolfgang Betz 132:51056160fa4a 583 typedef __packed struct _gatt_read_charac_val_cp{
Wolfgang Betz 132:51056160fa4a 584 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 585 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 586 } PACKED gatt_read_charac_val_cp;
Wolfgang Betz 132:51056160fa4a 587 #define GATT_READ_CHARAC_VAL_CP_SIZE 4
Wolfgang Betz 132:51056160fa4a 588
Wolfgang Betz 132:51056160fa4a 589 #define OCF_GATT_READ_USING_CHARAC_UUID 0x0109
Wolfgang Betz 132:51056160fa4a 590 typedef __packed struct _gatt_read_using_charac_uuid_cp{
Wolfgang Betz 132:51056160fa4a 591 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 592 uint16_t start_handle;
Wolfgang Betz 132:51056160fa4a 593 uint16_t end_handle;
Wolfgang Betz 132:51056160fa4a 594 uint8_t uuid_type;
Wolfgang Betz 132:51056160fa4a 595 uint8_t uuid[16];
Wolfgang Betz 132:51056160fa4a 596 } PACKED gatt_read_using_charac_uuid_cp;
Wolfgang Betz 132:51056160fa4a 597 #define GATT_READ_USING_CHARAC_UUID_CP_SIZE 7 // without UUID
Wolfgang Betz 132:51056160fa4a 598
Wolfgang Betz 132:51056160fa4a 599 #define OCF_GATT_READ_LONG_CHARAC_VAL 0x011A
Wolfgang Betz 132:51056160fa4a 600 typedef __packed struct _gatt_read_long_charac_val_cp{
Wolfgang Betz 132:51056160fa4a 601 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 602 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 603 uint16_t val_offset;
Wolfgang Betz 132:51056160fa4a 604 } PACKED gatt_read_long_charac_val_cp;
Wolfgang Betz 132:51056160fa4a 605 #define GATT_READ_LONG_CHARAC_VAL_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 606
Wolfgang Betz 132:51056160fa4a 607 #define OCF_GATT_READ_MULTIPLE_CHARAC_VAL 0x011B
Wolfgang Betz 132:51056160fa4a 608 #define GATT_READ_MULTIPLE_CHARAC_VAL_CP_SIZE 3 // without set_of_handles
Wolfgang Betz 132:51056160fa4a 609 typedef __packed struct _gatt_read_multiple_charac_val_cp{
Wolfgang Betz 132:51056160fa4a 610 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 611 uint8_t num_handles;
Wolfgang Betz 132:51056160fa4a 612 uint8_t set_of_handles[HCI_MAX_PAYLOAD_SIZE-GATT_READ_MULTIPLE_CHARAC_VAL_CP_SIZE];
Wolfgang Betz 132:51056160fa4a 613 } PACKED gatt_read_multiple_charac_val_cp;
Wolfgang Betz 132:51056160fa4a 614
Wolfgang Betz 132:51056160fa4a 615 #define OCF_GATT_WRITE_CHAR_VALUE 0x011C
Wolfgang Betz 132:51056160fa4a 616
Wolfgang Betz 132:51056160fa4a 617 #define OCF_GATT_WRITE_LONG_CHARAC_VAL 0x011D
Wolfgang Betz 132:51056160fa4a 618 #define GATT_WRITE_LONG_CHARAC_VAL_CP_SIZE 7 // without set_of_handles
Wolfgang Betz 132:51056160fa4a 619 typedef __packed struct _gatt_write_long_charac_val_cp{
Wolfgang Betz 132:51056160fa4a 620 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 621 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 622 uint16_t val_offset;
Wolfgang Betz 132:51056160fa4a 623 uint8_t val_len;
Wolfgang Betz 132:51056160fa4a 624 uint8_t attr_val[HCI_MAX_PAYLOAD_SIZE-GATT_WRITE_LONG_CHARAC_VAL_CP_SIZE];
Wolfgang Betz 132:51056160fa4a 625 } PACKED gatt_write_long_charac_val_cp;
Wolfgang Betz 132:51056160fa4a 626
Wolfgang Betz 132:51056160fa4a 627 #define OCF_GATT_WRITE_CHARAC_RELIABLE 0x011E
Wolfgang Betz 132:51056160fa4a 628 #define GATT_WRITE_CHARAC_RELIABLE_CP_SIZE 7 // without set_of_handles
Wolfgang Betz 132:51056160fa4a 629 typedef __packed struct _gatt_write_charac_reliable_cp{
Wolfgang Betz 132:51056160fa4a 630 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 631 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 632 uint16_t val_offset;
Wolfgang Betz 132:51056160fa4a 633 uint8_t val_len;
Wolfgang Betz 132:51056160fa4a 634 uint8_t attr_val[HCI_MAX_PAYLOAD_SIZE-GATT_WRITE_CHARAC_RELIABLE_CP_SIZE];
Wolfgang Betz 132:51056160fa4a 635 } PACKED gatt_write_charac_reliable_cp;
Wolfgang Betz 132:51056160fa4a 636
Wolfgang Betz 132:51056160fa4a 637 #define OCF_GATT_WRITE_LONG_CHARAC_DESC 0x011F
Wolfgang Betz 132:51056160fa4a 638 #define GATT_WRITE_LONG_CHARAC_DESC_CP_SIZE 7 // without set_of_handles
Wolfgang Betz 132:51056160fa4a 639 typedef __packed struct _gatt_write_long_charac_desc_cp{
Wolfgang Betz 132:51056160fa4a 640 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 641 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 642 uint16_t val_offset;
Wolfgang Betz 132:51056160fa4a 643 uint8_t val_len;
Wolfgang Betz 132:51056160fa4a 644 uint8_t attr_val[HCI_MAX_PAYLOAD_SIZE-GATT_WRITE_LONG_CHARAC_DESC_CP_SIZE];
Wolfgang Betz 132:51056160fa4a 645 } PACKED gatt_write_long_charac_desc_cp;
Wolfgang Betz 132:51056160fa4a 646
Wolfgang Betz 132:51056160fa4a 647 #define OCF_GATT_READ_LONG_CHARAC_DESC 0x0120
Wolfgang Betz 132:51056160fa4a 648 typedef __packed struct _gatt_read_long_charac_desc_cp{
Wolfgang Betz 132:51056160fa4a 649 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 650 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 651 uint16_t val_offset;
Wolfgang Betz 132:51056160fa4a 652 } PACKED gatt_read_long_charac_desc_cp;
Wolfgang Betz 132:51056160fa4a 653 #define GATT_READ_LONG_CHARAC_DESC_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 654
Wolfgang Betz 132:51056160fa4a 655 #define OCF_GATT_WRITE_CHAR_DESCRIPTOR 0x0121
Wolfgang Betz 132:51056160fa4a 656
Wolfgang Betz 132:51056160fa4a 657 #define OCF_GATT_READ_CHAR_DESCRIPTOR 0x0122
Wolfgang Betz 132:51056160fa4a 658 typedef __packed struct _gatt_read_charac_desc_cp{
Wolfgang Betz 132:51056160fa4a 659 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 660 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 661 } PACKED gatt_read_charac_desc_cp;
Wolfgang Betz 132:51056160fa4a 662 #define GATT_READ_CHAR_DESCRIPTOR_CP_SIZE 4
Wolfgang Betz 132:51056160fa4a 663
Wolfgang Betz 132:51056160fa4a 664 #define OCF_GATT_WRITE_WITHOUT_RESPONSE 0x0123
Wolfgang Betz 132:51056160fa4a 665 #define GATT_WRITE_WITHOUT_RESPONSE_CP_SIZE 5 // without attr_val
Wolfgang Betz 132:51056160fa4a 666 typedef __packed struct _gatt_write_without_resp_cp{
Wolfgang Betz 132:51056160fa4a 667 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 668 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 669 uint8_t val_len;
Wolfgang Betz 132:51056160fa4a 670 uint8_t attr_val[ATT_MTU - 3];
Wolfgang Betz 132:51056160fa4a 671 } PACKED gatt_write_without_resp_cp;
Wolfgang Betz 132:51056160fa4a 672
Wolfgang Betz 132:51056160fa4a 673 #define OCF_GATT_SIGNED_WRITE_WITHOUT_RESPONSE 0x0124
Wolfgang Betz 132:51056160fa4a 674 #define GATT_SIGNED_WRITE_WITHOUT_RESPONSE_CP_SIZE 5 // without attr_val
Wolfgang Betz 132:51056160fa4a 675 typedef __packed struct _gatt_signed_write_without_resp_cp{
Wolfgang Betz 132:51056160fa4a 676 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 677 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 678 uint8_t val_len;
Wolfgang Betz 132:51056160fa4a 679 uint8_t attr_val[ATT_MTU - 13];
Wolfgang Betz 132:51056160fa4a 680 } PACKED gatt_signed_write_without_resp_cp;
Wolfgang Betz 132:51056160fa4a 681
Wolfgang Betz 132:51056160fa4a 682 #define OCF_GATT_CONFIRM_INDICATION 0x0125
Wolfgang Betz 132:51056160fa4a 683 typedef __packed struct _gatt_confirm_indication_cp{
Wolfgang Betz 132:51056160fa4a 684 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 685 } PACKED gatt_confirm_indication_cp;
Wolfgang Betz 132:51056160fa4a 686 #define GATT_CONFIRM_INDICATION_CP_SIZE 2
Wolfgang Betz 132:51056160fa4a 687
Wolfgang Betz 132:51056160fa4a 688 #define OCF_GATT_WRITE_RESPONSE 0x0126
Wolfgang Betz 132:51056160fa4a 689
Wolfgang Betz 132:51056160fa4a 690 #define OCF_GATT_ALLOW_READ 0x0127
Wolfgang Betz 132:51056160fa4a 691 typedef __packed struct _gatt_allow_read_cp{
Wolfgang Betz 132:51056160fa4a 692 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 693 } PACKED gatt_allow_read_cp;
Wolfgang Betz 132:51056160fa4a 694 #define GATT_ALLOW_READ_CP_SIZE 2
Wolfgang Betz 132:51056160fa4a 695
Wolfgang Betz 132:51056160fa4a 696 #define OCF_GATT_SET_SECURITY_PERMISSION 0x0128
Wolfgang Betz 132:51056160fa4a 697 typedef __packed struct _gatt_set_security_permission_cp{
Wolfgang Betz 132:51056160fa4a 698 uint16_t service_handle;
Wolfgang Betz 132:51056160fa4a 699 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 700 uint8_t security_permission;
Wolfgang Betz 132:51056160fa4a 701 } PACKED gatt_set_security_permission_cp;
Wolfgang Betz 132:51056160fa4a 702 #define GATT_GATT_SET_SECURITY_PERMISSION_CP_SIZE 5
Wolfgang Betz 132:51056160fa4a 703
Wolfgang Betz 132:51056160fa4a 704 #define OCF_GATT_SET_DESC_VAL 0x0129
Wolfgang Betz 132:51056160fa4a 705
Wolfgang Betz 132:51056160fa4a 706 #define OCF_GATT_READ_HANDLE_VALUE 0x012A
Wolfgang Betz 132:51056160fa4a 707 typedef __packed struct _gatt_read_handle_val_cp{
Wolfgang Betz 132:51056160fa4a 708 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 709 } PACKED gatt_read_handle_val_cp;
Wolfgang Betz 132:51056160fa4a 710 #define GATT_READ_HANDLE_VALUE_RP_SIZE 3
Wolfgang Betz 132:51056160fa4a 711 typedef __packed struct _gatt_read_handle_val_rp{
Wolfgang Betz 132:51056160fa4a 712 uint8_t status;
Wolfgang Betz 132:51056160fa4a 713 uint16_t value_len;
Wolfgang Betz 132:51056160fa4a 714 uint8_t value[HCI_MAX_PAYLOAD_SIZE-GATT_READ_HANDLE_VALUE_RP_SIZE];
Wolfgang Betz 132:51056160fa4a 715 } PACKED gatt_read_handle_val_rp;
Wolfgang Betz 132:51056160fa4a 716
Wolfgang Betz 132:51056160fa4a 717 #define OCF_GATT_READ_HANDLE_VALUE_OFFSET 0x012B
Wolfgang Betz 132:51056160fa4a 718 typedef __packed struct _gatt_read_handle_val_offset_cp{
Wolfgang Betz 132:51056160fa4a 719 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 720 uint8_t offset;
Wolfgang Betz 132:51056160fa4a 721 } PACKED gatt_read_handle_val_offset_cp;
Wolfgang Betz 132:51056160fa4a 722 #define GATT_READ_HANDLE_VALUE_OFFSET_RP_SIZE 2
Wolfgang Betz 132:51056160fa4a 723 typedef __packed struct _gatt_read_handle_val_offset_rp{
Wolfgang Betz 132:51056160fa4a 724 uint8_t status;
Wolfgang Betz 132:51056160fa4a 725 uint8_t value_len;
Wolfgang Betz 132:51056160fa4a 726 uint8_t value[HCI_MAX_PAYLOAD_SIZE-GATT_READ_HANDLE_VALUE_OFFSET_RP_SIZE];
Wolfgang Betz 132:51056160fa4a 727 } PACKED gatt_read_handle_val_offset_rp;
Wolfgang Betz 132:51056160fa4a 728
Wolfgang Betz 132:51056160fa4a 729 #define OCF_L2CAP_CONN_PARAM_UPDATE_REQ 0x0181
Wolfgang Betz 132:51056160fa4a 730 typedef __packed struct _l2cap_conn_param_update_req_cp{
Wolfgang Betz 132:51056160fa4a 731 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 732 uint16_t interval_min;
Wolfgang Betz 132:51056160fa4a 733 uint16_t interval_max;
Wolfgang Betz 132:51056160fa4a 734 uint16_t slave_latency;
Wolfgang Betz 132:51056160fa4a 735 uint16_t timeout_multiplier;
Wolfgang Betz 132:51056160fa4a 736 } PACKED l2cap_conn_param_update_req_cp;
Wolfgang Betz 132:51056160fa4a 737 #define L2CAP_CONN_PARAM_UPDATE_REQ_CP_SIZE 10
Wolfgang Betz 132:51056160fa4a 738
Wolfgang Betz 132:51056160fa4a 739 #define OCF_L2CAP_CONN_PARAM_UPDATE_RESP 0x0182
Wolfgang Betz 132:51056160fa4a 740 typedef __packed struct _l2cap_conn_param_update_resp_cp_IDB05A1{
Wolfgang Betz 132:51056160fa4a 741 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 742 uint16_t interval_min;
Wolfgang Betz 132:51056160fa4a 743 uint16_t interval_max;
Wolfgang Betz 132:51056160fa4a 744 uint16_t slave_latency;
Wolfgang Betz 132:51056160fa4a 745 uint16_t timeout_multiplier;
Wolfgang Betz 132:51056160fa4a 746 uint16_t min_ce_length;
Wolfgang Betz 132:51056160fa4a 747 uint16_t max_ce_length;
Wolfgang Betz 132:51056160fa4a 748 uint8_t id;
Wolfgang Betz 132:51056160fa4a 749 uint8_t accept;
Wolfgang Betz 132:51056160fa4a 750 } PACKED l2cap_conn_param_update_resp_cp_IDB05A1;
Wolfgang Betz 132:51056160fa4a 751
Wolfgang Betz 132:51056160fa4a 752 typedef __packed struct _l2cap_conn_param_update_resp_cp_IDB04A1{
Wolfgang Betz 132:51056160fa4a 753 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 754 uint16_t interval_min;
Wolfgang Betz 132:51056160fa4a 755 uint16_t interval_max;
Wolfgang Betz 132:51056160fa4a 756 uint16_t slave_latency;
Wolfgang Betz 132:51056160fa4a 757 uint16_t timeout_multiplier;
Wolfgang Betz 132:51056160fa4a 758 uint8_t id;
Wolfgang Betz 132:51056160fa4a 759 uint8_t accept;
Wolfgang Betz 132:51056160fa4a 760 } PACKED l2cap_conn_param_update_resp_cp_IDB04A1;
Wolfgang Betz 132:51056160fa4a 761
Wolfgang Betz 132:51056160fa4a 762 /**
Wolfgang Betz 132:51056160fa4a 763 * @defgroup BlueNRG_Events BlueNRG events (vendor specific)
Wolfgang Betz 132:51056160fa4a 764 * @{
Wolfgang Betz 132:51056160fa4a 765 */
Wolfgang Betz 132:51056160fa4a 766
Wolfgang Betz 132:51056160fa4a 767 /**
Wolfgang Betz 132:51056160fa4a 768 * Vendor specific event for BlueNRG.
Wolfgang Betz 132:51056160fa4a 769 */
Wolfgang Betz 132:51056160fa4a 770 typedef __packed struct _evt_blue_aci{
Wolfgang Betz 132:51056160fa4a 771 uint16_t ecode; /**< One of the BlueNRG event codes. */
Wolfgang Betz 132:51056160fa4a 772 uint8_t data[VARIABLE_SIZE];
Wolfgang Betz 132:51056160fa4a 773 } PACKED evt_blue_aci;
Wolfgang Betz 132:51056160fa4a 774
Wolfgang Betz 132:51056160fa4a 775
Wolfgang Betz 132:51056160fa4a 776 /**
Wolfgang Betz 132:51056160fa4a 777 * @}
Wolfgang Betz 132:51056160fa4a 778 */
Wolfgang Betz 132:51056160fa4a 779
Vincent Coubard 284:6a7441796347 780 #endif /* __BLUENRG_ACI_CONST_H_ */