gjhn

Dependents:   BLE_GENERALE

Fork of X_NUCLEO_IDB0XA1 by ST

Committer:
Wolfgang Betz
Date:
Wed Oct 07 08:39:04 2015 +0200
Revision:
132:51056160fa4a
Child:
229:9981f62cdb1a
Andrea's version as of mail from 10/06/2015 05:56 PM

From: Andrea PALMIERI <andrea.palmieri@st.com>
To: Wolfgang BETZ <wolfgang.betz@st.com>, Rohit Grover <rohit.grover@arm.com>,
Antonio VILEI <antonio.vilei@st.com>, Mihail Stoyanov
<Mihail.Stoyanov@arm.com>
CC: Nicola CAPOVILLA <nicola.capovilla@st.com>, Silvio Lucio OLIVA
<silvio.oliva@st.com>, "jonathan.austin@arm.com" <jonathan.austin@arm.com>
Content-Class: urn:content-classes:message
Date: Tue, 6 Oct 2015 17:56:34 +0200
Subject: RE: Arduino Compatibility of X-NUCLEO-IDB04A1

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