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

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers bluenrg_aci_const.h Source File

bluenrg_aci_const.h

00001 /******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
00002 * File Name          : bluenrg_aci_const.h
00003 * Author             : AMS - AAS
00004 * Version            : V1.0.0
00005 * Date               : 26-Jun-2014
00006 * Description        : Header file with ACI definitions for BlueNRG FW6.3.
00007 ********************************************************************************
00008 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
00009 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
00010 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
00011 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
00012 * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
00013 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
00014 *******************************************************************************/
00015 
00016 #ifndef __BLUENRG_ACI_CONST_H_
00017 #define __BLUENRG_ACI_CONST_H_
00018 
00019 #include "ble_compiler.h"
00020 #include "ble_link_layer.h"
00021 #include "ble_hci_const.h"
00022 #include "bluenrg_gatt_server.h"
00023 
00024 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00025 
00026 #define OCF_HAL_WRITE_CONFIG_DATA   0x000C
00027 
00028 #define OCF_HAL_READ_CONFIG_DATA   0x000D
00029 typedef __packed struct _hal_read_config_data_cp{
00030     uint8_t offset;
00031 } PACKED hal_read_config_data_cp;
00032 #define HAL_READ_CONFIG_DATA_RP_SIZE 1
00033 typedef __packed struct _hal_read_config_data_rp{
00034     uint8_t status;
00035     uint8_t data[HCI_MAX_PAYLOAD_SIZE-HAL_READ_CONFIG_DATA_RP_SIZE];
00036 } PACKED hal_read_config_data_rp;
00037 
00038 #define OCF_HAL_SET_TX_POWER_LEVEL          0x000F
00039 typedef __packed struct _hal_set_tx_power_level_cp{
00040     uint8_t en_high_power;
00041     uint8_t pa_level;
00042 } PACKED hal_set_tx_power_level_cp;
00043 #define HAL_SET_TX_POWER_LEVEL_CP_SIZE 2
00044 
00045 #define OCF_HAL_DEVICE_STANDBY          0x0013
00046 
00047 #define OCF_HAL_LE_TX_TEST_PACKET_NUMBER    0x0014
00048 typedef __packed struct _hal_le_tx_test_packet_number_rp{
00049   uint8_t status;
00050   uint32_t number_of_packets;
00051 } PACKED hal_le_tx_test_packet_number_rp;
00052 
00053 #define OCF_HAL_TONE_START                  0x0015
00054 typedef __packed struct _hal_tone_start_cp{
00055     uint8_t rf_channel;
00056 } PACKED hal_tone_start_cp;
00057 #define HAL_TONE_START_CP_SIZE 1
00058 
00059 #define OCF_HAL_TONE_STOP                   0x0016
00060 
00061 #define OCF_UPDATER_START                   0x0020
00062 #define OCF_UPDATER_REBOOT                  0x0021
00063 
00064 #define OCF_GET_UPDATER_VERSION                 0x0022
00065 typedef __packed struct _get_updater_version_rp{
00066     uint8_t         status;
00067     uint8_t         version;
00068 } PACKED get_updater_version_rp;
00069 #define GET_UPDATER_VERSION_RP_SIZE 2
00070 
00071 #define OCF_GET_UPDATER_BUFSIZE             0x0023
00072 typedef __packed struct _get_updater_bufsize_rp{
00073     uint8_t         status;
00074     uint8_t         buffer_size;
00075 } PACKED get_updater_bufsize_rp;
00076 #define GET_UPDATER_BUFSIZE_RP_SIZE 2
00077 
00078 #define OCF_UPDATER_ERASE_BLUE_FLAG         0x0024
00079 
00080 #define OCF_UPDATER_RESET_BLUE_FLAG         0x0025
00081 
00082 #define OCF_UPDATER_ERASE_SECTOR            0x0026
00083 typedef __packed struct _updater_erase_sector_cp{
00084     uint32_t    address;
00085 } PACKED updater_erase_sector_cp;
00086 #define UPDATER_ERASE_SECTOR_CP_SIZE 4
00087 
00088 #define OCF_UPDATER_PROG_DATA_BLOCK         0x0027
00089 #define UPDATER_PROG_DATA_BLOCK_CP_SIZE     6
00090 typedef __packed struct _updater_prog_data_block_cp{
00091     uint32_t    address;
00092     uint16_t    data_len;
00093     uint8_t     data[HCI_MAX_PAYLOAD_SIZE-UPDATER_PROG_DATA_BLOCK_CP_SIZE];
00094 } PACKED updater_prog_data_block_cp;
00095 
00096 #define OCF_UPDATER_READ_DATA_BLOCK         0x0028
00097 typedef __packed struct _updater_read_data_block_cp{
00098     uint32_t    address;
00099     uint16_t    data_len;
00100 } PACKED updater_read_data_block_cp;
00101 #define UPDATER_READ_DATA_BLOCK_CP_SIZE 6
00102 typedef __packed struct _updater_read_data_block_rp{
00103     uint8_t         status;
00104     uint8_t         data[VARIABLE_SIZE];
00105 } PACKED updater_read_data_block_rp;
00106 #define GET_UPDATER_BUFSIZE_RP_SIZE 2
00107 
00108 #define OCF_UPDATER_CALC_CRC                0x0029
00109 typedef __packed struct _updater_calc_crc_cp{
00110     uint32_t    address;
00111     uint8_t    num_sectors;
00112 } PACKED updater_calc_crc_cp;
00113 #define UPDATER_CALC_CRC_CP_SIZE 5
00114 typedef __packed struct _updater_calc_crc_rp{
00115     uint8_t         status;
00116     uint32_t        crc;
00117 } PACKED updater_calc_crc_rp;
00118 #define UPDATER_CALC_CRC_RP_SIZE 5
00119 
00120 #define OCF_UPDATER_HW_VERSION              0x002A
00121 typedef __packed struct _updater_hw_version_rp{
00122     uint8_t         status;
00123     uint8_t         version;
00124 } PACKED updater_hw_version_rp;
00125 #define UPDATER_HW_VERSION_RP_SIZE 2
00126 
00127 #define OCF_GAP_SET_NON_DISCOVERABLE        0x0081
00128 
00129 #define OCF_GAP_SET_LIMITED_DISCOVERABLE    0x0082
00130 
00131 #define OCF_GAP_SET_DISCOVERABLE            0x0083
00132 
00133 #define OCF_GAP_SET_DIRECT_CONNECTABLE      0x0084
00134 typedef __packed struct _gap_set_direct_conectable_cp_IDB05A1{
00135     uint8_t     own_bdaddr_type;
00136     uint8_t     directed_adv_type;
00137     uint8_t     direct_bdaddr_type;
00138     tBDAddr     direct_bdaddr;
00139 } PACKED gap_set_direct_conectable_cp_IDB05A1;
00140 
00141 typedef __packed struct _gap_set_direct_conectable_cp_IDB04A1{
00142     uint8_t     own_bdaddr_type;
00143     uint8_t     direct_bdaddr_type;
00144     tBDAddr     direct_bdaddr;
00145 } PACKED gap_set_direct_conectable_cp_IDB04A1;
00146 #define GAP_SET_DIRECT_CONNECTABLE_CP_SIZE 8
00147 
00148 #define OCF_GAP_SET_IO_CAPABILITY      0x0085
00149 typedef __packed struct _gap_set_io_capability_cp{
00150     uint8_t     io_capability;
00151 } PACKED gap_set_io_capability_cp;
00152 #define GAP_SET_IO_CAPABILITY_CP_SIZE 1
00153 
00154 #define OCF_GAP_SET_AUTH_REQUIREMENT      0x0086
00155 typedef __packed struct _gap_set_auth_requirement_cp{
00156     uint8_t mitm_mode;
00157     uint8_t     oob_enable;
00158     uint8_t     oob_data[16];
00159     uint8_t     min_encryption_key_size;
00160     uint8_t     max_encryption_key_size;
00161     uint8_t     use_fixed_pin;
00162     uint32_t    fixed_pin;
00163     uint8_t     bonding_mode;
00164 } PACKED gap_set_auth_requirement_cp;
00165 #define GAP_SET_AUTH_REQUIREMENT_CP_SIZE 26
00166 
00167 #define OCF_GAP_SET_AUTHOR_REQUIREMENT      0x0087
00168 typedef __packed struct _gap_set_author_requirement_cp{
00169   uint16_t      conn_handle;
00170   uint8_t       authorization_enable;
00171 } PACKED gap_set_author_requirement_cp;
00172 #define GAP_SET_AUTHOR_REQUIREMENT_CP_SIZE 3
00173 
00174 #define OCF_GAP_PASSKEY_RESPONSE      0x0088
00175 typedef __packed struct _gap_passkey_response_cp{
00176   uint16_t conn_handle;
00177   uint32_t passkey;
00178 } PACKED gap_passkey_response_cp;
00179 #define GAP_PASSKEY_RESPONSE_CP_SIZE 6
00180 
00181 #define OCF_GAP_AUTHORIZATION_RESPONSE      0x0089
00182 typedef __packed struct _gap_authorization_response_cp{
00183   uint16_t conn_handle;
00184   uint8_t  authorize;
00185 } PACKED gap_authorization_response_cp;
00186 #define GAP_AUTHORIZATION_RESPONSE_CP_SIZE 3
00187 
00188 #define OCF_GAP_INIT                0x008A
00189 typedef __packed struct _gap_init_cp_IDB05A1{
00190     uint8_t role;
00191     uint8_t privacy_enabled;
00192     uint8_t device_name_char_len; 
00193 } PACKED gap_init_cp_IDB05A1;
00194 #define GAP_INIT_CP_SIZE_IDB05A1 3
00195 
00196 typedef __packed struct _gap_init_cp_IDB04A1{
00197     uint8_t role;
00198 } PACKED gap_init_cp_IDB04A1;
00199 #define GAP_INIT_CP_SIZE_IDB04A1 1
00200 typedef __packed struct _gap_init_rp{
00201     uint8_t         status;
00202     uint16_t        service_handle;
00203     uint16_t        dev_name_char_handle;
00204     uint16_t        appearance_char_handle;
00205 } PACKED gap_init_rp;
00206 #define GAP_INIT_RP_SIZE 7
00207 
00208 #define OCF_GAP_SET_NON_CONNECTABLE      0x008B
00209 typedef __packed struct _gap_set_non_connectable_cp_IDB05A1{
00210     uint8_t advertising_event_type;
00211     uint8_t own_address_type;
00212 #endif
00213 } PACKED gap_set_non_connectable_cp_IDB05A1;
00214 
00215 typedef __packed struct _gap_set_non_connectable_cp_IDB04A1{
00216     uint8_t advertising_event_type;
00217 } PACKED gap_set_non_connectable_cp_IDB04A1;
00218 
00219 #define OCF_GAP_SET_UNDIRECTED_CONNECTABLE      0x008C
00220 typedef __packed struct _gap_set_undirected_connectable_cp{
00221     uint8_t adv_filter_policy;
00222     uint8_t own_addr_type;
00223 } PACKED gap_set_undirected_connectable_cp;
00224 #define GAP_SET_UNDIRECTED_CONNECTABLE_CP_SIZE 2
00225 
00226 #define OCF_GAP_SLAVE_SECURITY_REQUEST      0x008D
00227 typedef __packed struct _gap_slave_security_request_cp{
00228   uint16_t conn_handle;
00229   uint8_t  bonding;
00230   uint8_t  mitm_protection;
00231 } PACKED gap_slave_security_request_cp;
00232 #define GAP_SLAVE_SECURITY_REQUEST_CP_SIZE 4
00233 
00234 #define OCF_GAP_UPDATE_ADV_DATA      0x008E
00235 
00236 #define OCF_GAP_DELETE_AD_TYPE      0x008F
00237 typedef __packed struct _gap_delete_ad_type_cp{
00238     uint8_t ad_type;
00239 } PACKED gap_delete_ad_type_cp;
00240 #define GAP_DELETE_AD_TYPE_CP_SIZE 1
00241 
00242 #define OCF_GAP_GET_SECURITY_LEVEL      0x0090
00243 typedef __packed struct _gap_get_security_level_rp{
00244     uint8_t         status;
00245     uint8_t         mitm_protection;
00246     uint8_t         bonding;
00247     uint8_t         oob_data;
00248     uint8_t         passkey_required;
00249 } PACKED gap_get_security_level_rp;
00250 #define GAP_GET_SECURITY_LEVEL_RP_SIZE 5
00251 
00252 #define OCF_GAP_SET_EVT_MASK      0x0091
00253 typedef __packed struct _gap_set_evt_mask_cp{
00254     uint16_t    evt_mask;
00255 } PACKED gap_set_evt_mask_cp;
00256 #define GAP_SET_EVT_MASK_CP_SIZE 2
00257 
00258 #define OCF_GAP_CONFIGURE_WHITELIST   0x0092
00259 
00260 #define OCF_GAP_TERMINATE      0x0093
00261 typedef __packed struct _gap_terminate_cp{
00262   uint16_t handle;
00263   uint8_t  reason;
00264 } PACKED gap_terminate_cp;
00265 #define GAP_TERMINATE_CP_SIZE 3
00266 
00267 #define OCF_GAP_CLEAR_SECURITY_DB   0x0094
00268 
00269 #define OCF_GAP_ALLOW_REBOND_DB     0x0095
00270 
00271 typedef __packed struct _gap_allow_rebond_cp_IDB05A1{
00272   uint16_t conn_handle;
00273 } PACKED gap_allow_rebond_cp_IDB05A1;
00274 
00275 #define OCF_GAP_START_LIMITED_DISCOVERY_PROC   0x0096
00276 typedef __packed struct _gap_start_limited_discovery_proc_cp{
00277   uint16_t scanInterval;
00278   uint16_t scanWindow;
00279   uint8_t  own_address_type;
00280   uint8_t  filterDuplicates;
00281 } PACKED gap_start_limited_discovery_proc_cp;
00282 #define GAP_START_LIMITED_DISCOVERY_PROC_CP_SIZE 6
00283 
00284 #define OCF_GAP_START_GENERAL_DISCOVERY_PROC   0x0097
00285 typedef __packed struct _gap_start_general_discovery_proc_cp{
00286   uint16_t scanInterval;
00287   uint16_t scanWindow;
00288   uint8_t  own_address_type;
00289   uint8_t  filterDuplicates;
00290 } PACKED gap_start_general_discovery_proc_cp;
00291 #define GAP_START_GENERAL_DISCOVERY_PROC_CP_SIZE 6
00292 
00293 #define OCF_GAP_START_NAME_DISCOVERY_PROC   0x0098
00294 typedef __packed struct _gap_start_name_discovery_proc_cp{
00295   uint16_t scanInterval;
00296   uint16_t scanWindow;
00297   uint8_t peer_bdaddr_type;
00298   tBDAddr peer_bdaddr;
00299   uint8_t own_bdaddr_type;
00300   uint16_t conn_min_interval;
00301   uint16_t conn_max_interval;
00302   uint16_t conn_latency;
00303   uint16_t supervision_timeout;
00304   uint16_t min_conn_length;
00305   uint16_t max_conn_length;
00306 } PACKED gap_start_name_discovery_proc_cp;
00307 #define GAP_START_NAME_DISCOVERY_PROC_CP_SIZE 24
00308 
00309 #define OCF_GAP_START_AUTO_CONN_ESTABLISH_PROC  0x0099
00310 
00311 #define OCF_GAP_START_GENERAL_CONN_ESTABLISH_PROC  0x009A
00312 typedef __packed struct _gap_start_general_conn_establish_proc_cp_IDB05A1{
00313   uint8_t  scan_type;
00314   uint16_t scan_interval;
00315   uint16_t scan_window;
00316   uint8_t  own_address_type;
00317   uint8_t  filter_duplicates;
00318 } PACKED gap_start_general_conn_establish_proc_cp_IDB05A1;
00319 
00320 typedef __packed struct _gap_start_general_conn_establish_proc_cp_IDB04A1{
00321   uint8_t  scan_type;
00322   uint16_t scan_interval;
00323   uint16_t scan_window;
00324   uint8_t  own_address_type;
00325   uint8_t  filter_duplicates;
00326   uint8_t  use_reconn_addr;
00327   tBDAddr  reconn_addr;
00328 } PACKED gap_start_general_conn_establish_proc_cp_IDB04A1;
00329 
00330 #define OCF_GAP_START_SELECTIVE_CONN_ESTABLISH_PROC  0x009B
00331 #define GAP_START_SELECTIVE_CONN_ESTABLISH_PROC_CP_SIZE 8
00332 typedef __packed struct _gap_start_selective_conn_establish_proc_cp{
00333   uint8_t scan_type;
00334   uint16_t scan_interval;
00335   uint16_t scan_window;
00336   uint8_t own_address_type;
00337   uint8_t filter_duplicates;
00338   uint8_t num_whitelist_entries;
00339   uint8_t addr_array[HCI_MAX_PAYLOAD_SIZE-GAP_START_SELECTIVE_CONN_ESTABLISH_PROC_CP_SIZE];
00340 } PACKED gap_start_selective_conn_establish_proc_cp;
00341 
00342 #define OCF_GAP_CREATE_CONNECTION      0x009C
00343 typedef __packed struct _gap_create_connection_cp{
00344   uint16_t scanInterval;
00345   uint16_t scanWindow;
00346   uint8_t peer_bdaddr_type;
00347   tBDAddr peer_bdaddr;
00348   uint8_t own_bdaddr_type;
00349   uint16_t conn_min_interval;
00350   uint16_t conn_max_interval;
00351   uint16_t conn_latency;
00352   uint16_t supervision_timeout;
00353   uint16_t min_conn_length;
00354   uint16_t max_conn_length;
00355 } PACKED gap_create_connection_cp;
00356 #define GAP_CREATE_CONNECTION_CP_SIZE 24
00357 
00358 #define OCF_GAP_TERMINATE_GAP_PROCEDURE      0x009D
00359 
00360 #define OCF_GAP_START_CONNECTION_UPDATE      0x009E
00361 typedef __packed struct _gap_start_connection_update_cp{
00362   uint16_t conn_handle;
00363   uint16_t conn_min_interval;
00364   uint16_t conn_max_interval;
00365   uint16_t conn_latency;
00366   uint16_t supervision_timeout;
00367   uint16_t min_conn_length;
00368   uint16_t max_conn_length;
00369 } PACKED gap_start_connection_update_cp;
00370 #define GAP_START_CONNECTION_UPDATE_CP_SIZE 14
00371 
00372 #define OCF_GAP_SEND_PAIRING_REQUEST      0x009F
00373 typedef __packed struct _gap_send_pairing_request_cp{
00374   uint16_t conn_handle;
00375   uint8_t  force_rebond;
00376 } PACKED gap_send_pairing_request_cp;
00377 #define GAP_GAP_SEND_PAIRING_REQUEST_CP_SIZE 3
00378 
00379 #define OCF_GAP_RESOLVE_PRIVATE_ADDRESS   0x00A0
00380 typedef __packed struct _gap_resolve_private_address_cp{
00381   tBDAddr address;
00382 } PACKED gap_resolve_private_address_cp;
00383 #define GAP_RESOLVE_PRIVATE_ADDRESS_CP_SIZE 6
00384 typedef __packed struct _gap_resolve_private_address_rp{
00385   uint8_t status;
00386   tBDAddr address;
00387 } PACKED gap_resolve_private_address_rp;
00388   
00389 #define OCF_GAP_SET_BROADCAST_MODE   0x00A1
00390 #define GAP_SET_BROADCAST_MODE_CP_SIZE 6
00391 typedef __packed struct _gap_set_broadcast_mode_cp{
00392   uint16_t adv_interv_min;
00393   uint16_t adv_interv_max;
00394   uint8_t adv_type;
00395   uint8_t own_addr_type;
00396   uint8_t var_len_data[HCI_MAX_PAYLOAD_SIZE-GAP_SET_BROADCAST_MODE_CP_SIZE];
00397 } PACKED gap_set_broadcast_mode_cp;
00398 
00399 #define OCF_GAP_START_OBSERVATION_PROC   0x00A2
00400 typedef __packed struct _gap_start_observation_proc_cp{
00401   uint16_t scan_interval;
00402   uint16_t scan_window;
00403   uint8_t  scan_type;
00404   uint8_t  own_address_type;
00405   uint8_t  filter_duplicates;
00406 } PACKED gap_start_observation_proc_cp;
00407 
00408 #define OCF_GAP_GET_BONDED_DEVICES   0x00A3
00409 typedef __packed struct _gap_get_bonded_devices_rp{
00410     uint8_t     status;
00411     uint8_t     num_addr;
00412     uint8_t     dev_list[HCI_MAX_PAYLOAD_SIZE-HCI_EVENT_HDR_SIZE-EVT_CMD_COMPLETE_SIZE-1];
00413 } PACKED gap_get_bonded_devices_rp;
00414 
00415 #define OCF_GAP_IS_DEVICE_BONDED   0x00A4
00416 typedef __packed struct _gap_is_device_bonded_cp{
00417   uint8_t peer_address_type;
00418   tBDAddr peer_address;
00419 } PACKED gap_is_device_bonded_cp;
00420 
00421 
00422 #define OCF_GATT_INIT               0x0101
00423 
00424 #define OCF_GATT_ADD_SERV           0x0102
00425 typedef __packed struct _gatt_add_serv_rp{
00426     uint8_t         status;
00427     uint16_t        handle;
00428 } PACKED gatt_add_serv_rp;
00429 #define GATT_ADD_SERV_RP_SIZE 3
00430 
00431 #define OCF_GATT_INCLUDE_SERV       0x0103
00432 typedef __packed struct _gatt_include_serv_rp{
00433     uint8_t         status;
00434     uint16_t        handle;    
00435 } PACKED gatt_include_serv_rp;
00436 #define GATT_INCLUDE_SERV_RP_SIZE 3
00437 
00438 #define OCF_GATT_ADD_CHAR           0x0104
00439 typedef __packed struct _gatt_add_char_rp{
00440     uint8_t         status;
00441     uint16_t        handle;
00442 } PACKED gatt_add_char_rp;
00443 #define GATT_ADD_CHAR_RP_SIZE 3
00444 
00445 #define OCF_GATT_ADD_CHAR_DESC      0x0105
00446 typedef __packed struct _gatt_add_char_desc_rp{
00447     uint8_t         status;
00448     uint16_t        handle;
00449 } PACKED gatt_add_char_desc_rp;
00450 #define GATT_ADD_CHAR_DESC_RP_SIZE 3
00451 
00452 #define OCF_GATT_UPD_CHAR_VAL       0x0106
00453 
00454 #define OCF_GATT_DEL_CHAR           0x0107
00455 typedef __packed struct _gatt_del_char_cp{
00456     uint16_t    service_handle;
00457     uint16_t    char_handle;
00458 } PACKED gatt_del_char_cp;
00459 #define GATT_DEL_CHAR_CP_SIZE 4
00460 
00461 #define OCF_GATT_DEL_SERV           0x0108
00462 typedef __packed struct _gatt_del_serv_cp{
00463     uint16_t    service_handle;
00464 } PACKED gatt_del_serv_cp;
00465 #define GATT_DEL_SERV_CP_SIZE 2
00466 
00467 #define OCF_GATT_DEL_INC_SERV       0x0109
00468 typedef __packed struct _gatt_del_inc_serv_cp{
00469     uint16_t    service_handle;
00470     uint16_t    inc_serv_handle;
00471 } PACKED gatt_del_inc_serv_cp;
00472 #define GATT_DEL_INC_SERV_CP_SIZE 4
00473 
00474 #define OCF_GATT_SET_EVT_MASK      0x010A
00475 typedef __packed struct _gatt_set_evt_mask_cp{
00476     uint32_t    evt_mask;
00477 } PACKED gatt_set_evt_mask_cp;
00478 #define GATT_SET_EVT_MASK_CP_SIZE 4
00479 
00480 #define OCF_GATT_EXCHANGE_CONFIG      0x010B
00481 typedef __packed struct _gatt_exchange_config_cp{
00482     uint16_t    conn_handle;
00483 } PACKED gatt_exchange_config_cp;
00484 #define GATT_EXCHANGE_CONFIG_CP_SIZE 2
00485 
00486 #define OCF_ATT_FIND_INFO_REQ      0x010C
00487 typedef __packed struct _att_find_info_req_cp{
00488     uint16_t    conn_handle;
00489     uint16_t    start_handle;
00490     uint16_t    end_handle;
00491 } PACKED att_find_info_req_cp;
00492 #define ATT_FIND_INFO_REQ_CP_SIZE 6
00493 
00494 #define OCF_ATT_FIND_BY_TYPE_VALUE_REQ  0x010D
00495 #define ATT_FIND_BY_TYPE_VALUE_REQ_CP_SIZE 9
00496 typedef __packed struct _att_find_by_type_value_req_cp{
00497     uint16_t    conn_handle;
00498     uint16_t    start_handle;
00499     uint16_t    end_handle;
00500     uint8_t     uuid[2];
00501     uint8_t     attr_val_len;
00502     uint8_t     attr_val[ATT_MTU - 7];
00503 } PACKED att_find_by_type_value_req_cp;
00504 
00505 #define OCF_ATT_READ_BY_TYPE_REQ  0x010E
00506 #define ATT_READ_BY_TYPE_REQ_CP_SIZE 7  // without UUID
00507 typedef __packed struct _att_read_by_type_req_cp{
00508     uint16_t    conn_handle;
00509     uint16_t    start_handle;
00510     uint16_t    end_handle;
00511     uint8_t     uuid_type;
00512     uint8_t     uuid[16];
00513 } PACKED att_read_by_type_req_cp;
00514 
00515 #define OCF_ATT_READ_BY_GROUP_TYPE_REQ  0x010F
00516 #define ATT_READ_BY_GROUP_TYPE_REQ_CP_SIZE 7  // without UUID
00517 typedef __packed struct _att_read_by_group_type_req_cp{
00518     uint16_t    conn_handle;
00519     uint16_t    start_handle;
00520     uint16_t    end_handle;
00521     uint8_t     uuid_type;
00522     uint8_t     uuid[16];
00523 } PACKED att_read_by_group_type_req_cp;
00524 
00525 #define OCF_ATT_PREPARE_WRITE_REQ  0x0110
00526 #define ATT_PREPARE_WRITE_REQ_CP_SIZE 7  // without attr_val
00527 typedef __packed struct _att_prepare_write_req_cp{
00528     uint16_t    conn_handle;
00529     uint16_t    attr_handle;
00530     uint16_t    value_offset;
00531     uint8_t     attr_val_len;
00532     uint8_t     attr_val[ATT_MTU-5];
00533 } PACKED att_prepare_write_req_cp;
00534 
00535 #define OCF_ATT_EXECUTE_WRITE_REQ  0x0111
00536 typedef __packed struct _att_execute_write_req_cp{
00537     uint16_t    conn_handle;
00538     uint8_t     execute;
00539 } PACKED att_execute_write_req_cp;
00540 #define ATT_EXECUTE_WRITE_REQ_CP_SIZE 3
00541 
00542 #define OCF_GATT_DISC_ALL_PRIM_SERVICES 0X0112
00543 typedef __packed struct _gatt_disc_all_prim_serivces_cp{
00544   uint16_t conn_handle;
00545 } PACKED gatt_disc_all_prim_services_cp;
00546 #define GATT_DISC_ALL_PRIM_SERVICES_CP_SIZE 2
00547 
00548 #define OCF_GATT_DISC_PRIM_SERVICE_BY_UUID 0x0113
00549 typedef __packed struct _gatt_disc_prim_service_by_uuid_cp{
00550   uint16_t    conn_handle;
00551   uint8_t     uuid_type;
00552   uint8_t     uuid[16];
00553 } PACKED gatt_disc_prim_service_by_uuid_cp;
00554 #define GATT_DISC_PRIM_SERVICE_BY_UUID_CP_SIZE 3 // Without uuid
00555 
00556 #define OCF_GATT_FIND_INCLUDED_SERVICES 0X0114
00557 typedef __packed struct _gatt_disc_find_included_services_cp{
00558   uint16_t conn_handle;
00559   uint16_t start_handle;
00560   uint16_t end_handle;
00561 } PACKED gatt_find_included_services_cp;
00562 #define GATT_FIND_INCLUDED_SERVICES_CP_SIZE 6
00563 
00564 #define OCF_GATT_DISC_ALL_CHARAC_OF_SERV 0X0115
00565 typedef __packed struct _gatt_disc_all_charac_of_serv_cp{
00566   uint16_t conn_handle;
00567   uint16_t start_attr_handle;
00568   uint16_t end_attr_handle;
00569 } PACKED gatt_disc_all_charac_of_serv_cp;
00570 #define GATT_DISC_ALL_CHARAC_OF_SERV_CP_SIZE 6
00571 
00572 #define OCF_GATT_DISC_CHARAC_BY_UUID 0X0116
00573 
00574 #define OCF_GATT_DISC_ALL_CHARAC_DESCRIPTORS 0X0117
00575 typedef __packed struct _gatt_disc_all_charac_descriptors_cp{
00576   uint16_t conn_handle;
00577   uint16_t char_val_handle;
00578   uint16_t char_end_handle;
00579 } PACKED gatt_disc_all_charac_descriptors_cp;
00580 #define GATT_DISC_ALL_CHARAC_DESCRIPTORS_CP_SIZE 6
00581 
00582 #define OCF_GATT_READ_CHARAC_VAL   0x0118
00583 typedef __packed struct _gatt_read_charac_val_cp{
00584   uint16_t conn_handle;
00585   uint16_t attr_handle;
00586 } PACKED gatt_read_charac_val_cp;
00587 #define GATT_READ_CHARAC_VAL_CP_SIZE 4
00588 
00589 #define OCF_GATT_READ_USING_CHARAC_UUID  0x0109
00590 typedef __packed struct _gatt_read_using_charac_uuid_cp{
00591     uint16_t    conn_handle;
00592     uint16_t    start_handle;
00593     uint16_t    end_handle;
00594     uint8_t     uuid_type;
00595     uint8_t     uuid[16];
00596 } PACKED gatt_read_using_charac_uuid_cp;
00597 #define GATT_READ_USING_CHARAC_UUID_CP_SIZE 7  // without UUID
00598 
00599 #define OCF_GATT_READ_LONG_CHARAC_VAL   0x011A
00600 typedef __packed struct _gatt_read_long_charac_val_cp{
00601   uint16_t conn_handle;
00602   uint16_t attr_handle;
00603   uint16_t val_offset;
00604 } PACKED gatt_read_long_charac_val_cp;
00605 #define GATT_READ_LONG_CHARAC_VAL_CP_SIZE 6
00606 
00607 #define OCF_GATT_READ_MULTIPLE_CHARAC_VAL   0x011B
00608 #define GATT_READ_MULTIPLE_CHARAC_VAL_CP_SIZE 3  // without set_of_handles
00609 typedef __packed struct _gatt_read_multiple_charac_val_cp{
00610   uint16_t conn_handle;
00611   uint8_t num_handles;
00612   uint8_t  set_of_handles[HCI_MAX_PAYLOAD_SIZE-GATT_READ_MULTIPLE_CHARAC_VAL_CP_SIZE];
00613 } PACKED gatt_read_multiple_charac_val_cp;
00614 
00615 #define OCF_GATT_WRITE_CHAR_VALUE   0x011C
00616 
00617 #define OCF_GATT_WRITE_LONG_CHARAC_VAL   0x011D
00618 #define GATT_WRITE_LONG_CHARAC_VAL_CP_SIZE 7  // without set_of_handles
00619 typedef __packed struct _gatt_write_long_charac_val_cp{
00620   uint16_t conn_handle;
00621   uint16_t attr_handle;
00622   uint16_t val_offset;
00623   uint8_t  val_len;
00624   uint8_t  attr_val[HCI_MAX_PAYLOAD_SIZE-GATT_WRITE_LONG_CHARAC_VAL_CP_SIZE];
00625 } PACKED gatt_write_long_charac_val_cp;
00626 
00627 #define OCF_GATT_WRITE_CHARAC_RELIABLE   0x011E
00628 #define GATT_WRITE_CHARAC_RELIABLE_CP_SIZE 7  // without set_of_handles
00629 typedef __packed struct _gatt_write_charac_reliable_cp{
00630   uint16_t conn_handle;
00631   uint16_t attr_handle;
00632   uint16_t val_offset;
00633   uint8_t  val_len;
00634   uint8_t  attr_val[HCI_MAX_PAYLOAD_SIZE-GATT_WRITE_CHARAC_RELIABLE_CP_SIZE];
00635 } PACKED gatt_write_charac_reliable_cp;
00636 
00637 #define OCF_GATT_WRITE_LONG_CHARAC_DESC   0x011F
00638 #define GATT_WRITE_LONG_CHARAC_DESC_CP_SIZE 7  // without set_of_handles
00639 typedef __packed struct _gatt_write_long_charac_desc_cp{
00640   uint16_t conn_handle;
00641   uint16_t attr_handle;
00642   uint16_t val_offset;
00643   uint8_t  val_len;
00644   uint8_t  attr_val[HCI_MAX_PAYLOAD_SIZE-GATT_WRITE_LONG_CHARAC_DESC_CP_SIZE];
00645 } PACKED gatt_write_long_charac_desc_cp;
00646 
00647 #define OCF_GATT_READ_LONG_CHARAC_DESC   0x0120
00648 typedef __packed struct _gatt_read_long_charac_desc_cp{
00649   uint16_t conn_handle;
00650   uint16_t attr_handle;
00651   uint16_t val_offset;
00652 } PACKED gatt_read_long_charac_desc_cp;
00653 #define GATT_READ_LONG_CHARAC_DESC_CP_SIZE 6
00654 
00655 #define OCF_GATT_WRITE_CHAR_DESCRIPTOR      0x0121
00656 
00657 #define OCF_GATT_READ_CHAR_DESCRIPTOR       0x0122
00658 typedef __packed struct _gatt_read_charac_desc_cp{
00659   uint16_t conn_handle;
00660   uint16_t attr_handle;
00661 } PACKED gatt_read_charac_desc_cp;
00662 #define GATT_READ_CHAR_DESCRIPTOR_CP_SIZE 4
00663 
00664 #define OCF_GATT_WRITE_WITHOUT_RESPONSE     0x0123
00665 #define GATT_WRITE_WITHOUT_RESPONSE_CP_SIZE 5  // without attr_val
00666 typedef __packed struct _gatt_write_without_resp_cp{
00667   uint16_t conn_handle;
00668   uint16_t attr_handle;
00669   uint8_t  val_len;
00670   uint8_t  attr_val[ATT_MTU - 3];
00671 } PACKED gatt_write_without_resp_cp;
00672 
00673 #define OCF_GATT_SIGNED_WRITE_WITHOUT_RESPONSE     0x0124
00674 #define GATT_SIGNED_WRITE_WITHOUT_RESPONSE_CP_SIZE 5  // without attr_val
00675 typedef __packed struct _gatt_signed_write_without_resp_cp{
00676   uint16_t conn_handle;
00677   uint16_t attr_handle;
00678   uint8_t  val_len;
00679   uint8_t  attr_val[ATT_MTU - 13];
00680 } PACKED gatt_signed_write_without_resp_cp;
00681 
00682 #define OCF_GATT_CONFIRM_INDICATION                0x0125
00683 typedef __packed struct _gatt_confirm_indication_cp{
00684     uint16_t    conn_handle;
00685 } PACKED gatt_confirm_indication_cp;
00686 #define GATT_CONFIRM_INDICATION_CP_SIZE 2
00687 
00688 #define OCF_GATT_WRITE_RESPONSE                    0x0126
00689 
00690 #define OCF_GATT_ALLOW_READ         0x0127
00691 typedef __packed struct _gatt_allow_read_cp{
00692     uint16_t    conn_handle;
00693 } PACKED gatt_allow_read_cp;
00694 #define GATT_ALLOW_READ_CP_SIZE 2
00695 
00696 #define OCF_GATT_SET_SECURITY_PERMISSION            0x0128
00697 typedef __packed struct _gatt_set_security_permission_cp{
00698     uint16_t    service_handle;
00699     uint16_t    attr_handle;
00700     uint8_t     security_permission;
00701 } PACKED gatt_set_security_permission_cp;
00702 #define GATT_GATT_SET_SECURITY_PERMISSION_CP_SIZE 5
00703 
00704 #define OCF_GATT_SET_DESC_VAL       0x0129
00705 
00706 #define OCF_GATT_READ_HANDLE_VALUE      0x012A
00707 typedef __packed struct _gatt_read_handle_val_cp{
00708     uint16_t    attr_handle;
00709 } PACKED gatt_read_handle_val_cp;
00710 #define GATT_READ_HANDLE_VALUE_RP_SIZE 3
00711 typedef __packed struct _gatt_read_handle_val_rp{
00712     uint8_t     status;
00713     uint16_t    value_len;
00714     uint8_t     value[HCI_MAX_PAYLOAD_SIZE-GATT_READ_HANDLE_VALUE_RP_SIZE];
00715 } PACKED gatt_read_handle_val_rp;
00716 
00717 #define OCF_GATT_READ_HANDLE_VALUE_OFFSET      0x012B
00718 typedef __packed struct _gatt_read_handle_val_offset_cp{
00719     uint16_t    attr_handle;
00720     uint8_t     offset;
00721 } PACKED gatt_read_handle_val_offset_cp;
00722 #define GATT_READ_HANDLE_VALUE_OFFSET_RP_SIZE 2
00723 typedef __packed struct _gatt_read_handle_val_offset_rp{
00724     uint8_t     status;
00725     uint8_t     value_len;
00726     uint8_t     value[HCI_MAX_PAYLOAD_SIZE-GATT_READ_HANDLE_VALUE_OFFSET_RP_SIZE];
00727 } PACKED gatt_read_handle_val_offset_rp;
00728 
00729 #define OCF_L2CAP_CONN_PARAM_UPDATE_REQ  0x0181
00730 typedef __packed struct _l2cap_conn_param_update_req_cp{
00731   uint16_t conn_handle;
00732   uint16_t interval_min;
00733   uint16_t interval_max;
00734   uint16_t slave_latency;
00735   uint16_t timeout_multiplier;
00736 } PACKED l2cap_conn_param_update_req_cp;
00737 #define L2CAP_CONN_PARAM_UPDATE_REQ_CP_SIZE 10
00738 
00739 #define OCF_L2CAP_CONN_PARAM_UPDATE_RESP  0x0182
00740 typedef __packed struct _l2cap_conn_param_update_resp_cp_IDB05A1{
00741   uint16_t conn_handle;
00742   uint16_t interval_min;
00743   uint16_t interval_max;
00744   uint16_t slave_latency;
00745   uint16_t timeout_multiplier;
00746   uint16_t min_ce_length;
00747   uint16_t max_ce_length;
00748   uint8_t id;
00749   uint8_t accept;
00750 } PACKED l2cap_conn_param_update_resp_cp_IDB05A1;
00751 
00752 typedef __packed struct _l2cap_conn_param_update_resp_cp_IDB04A1{
00753   uint16_t conn_handle;
00754   uint16_t interval_min;
00755   uint16_t interval_max;
00756   uint16_t slave_latency;
00757   uint16_t timeout_multiplier;
00758   uint8_t id;
00759   uint8_t accept;
00760 } PACKED l2cap_conn_param_update_resp_cp_IDB04A1;
00761 
00762 /**
00763  * @defgroup BlueNRG_Events BlueNRG events (vendor specific)
00764  * @{
00765  */
00766 
00767 /**
00768  * Vendor specific event for BlueNRG.
00769  */
00770 typedef __packed struct _evt_blue_aci{
00771   uint16_t ecode; /**< One of the BlueNRG event codes. */
00772   uint8_t  data[VARIABLE_SIZE];
00773 } PACKED evt_blue_aci;
00774 
00775 
00776 /**
00777  * @}
00778  */
00779 
00780 #endif /* __BLUENRG_ACI_CONST_H_ */