Программа считывает показания датчиков и управляет сервомашинками.

Dependencies:   mbed-src

Fork of NUCLEO_BLUENRG by Ostap Ostapsky

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers bluenrg_hci_internal.h Source File

bluenrg_hci_internal.h

00001 /******************** (C) COPYRIGHT 2013 STMicroelectronics ********************
00002 * File Name          : bluenrg_hci_internal.h
00003 * Author             : AMS - HEA&RF BU
00004 * Version            : V1.0.0
00005 * Date               : 4-Oct-2013
00006 * Description        : Header file with ACI definitions for BlueNRG FW6.0 and
00007 *                      above.
00008 ********************************************************************************
00009 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
00010 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
00011 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
00012 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
00013 * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
00014 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
00015 *******************************************************************************/
00016 
00017 #ifndef __BLUENRG_HCI_INTERNAL_H_
00018 #define __BLUENRG_HCI_INTERNAL_H_
00019 
00020 #include "compiler.h"
00021 #include "bluenrg_hci.h"
00022 
00023 #define OCF_HAL_WRITE_CONFIG_DATA   0x000C
00024 
00025 /* Offsets and lengths for configuration values */
00026 #define CONFIG_DATA_PUBADDR_OFFSET          (0x00)
00027 #define CONFIG_DATA_DIV_OFFSET              (0x06)
00028 #define CONFIG_DATA_ER_OFFSET               (0x08)
00029 #define CONFIG_DATA_IR_OFFSET               (0x18)
00030 
00031 #define CONFIG_DATA_PUBADDR_LEN             (0x06)
00032 #define CONFIG_DATA_DIV_LEN                 (0x02)
00033 #define CONFIG_DATA_ER_LEN                  (0x10)
00034 #define CONFIG_DATA_IR_LEN                  (0x10)
00035 
00036 #define OCF_HAL_SET_TX_POWER_LEVEL          0x000F
00037 typedef __packed struct _hal_set_tx_power_level_cp{
00038     uint8_t en_high_power;
00039     uint8_t pa_level;
00040 } PACKED hal_set_tx_power_level_cp;
00041 #define HAL_SET_TX_POWER_LEVEL_CP_SIZE 2
00042 
00043 #define OCF_HAL_TONE_START                  0x0015
00044 typedef __packed struct _hal_tone_start_cp{
00045     uint8_t rf_channel;
00046 } PACKED hal_tone_start_cp;
00047 #define HAL_TONE_START_CP_SIZE 1
00048 
00049 #define OCF_UPDATER_START                   0x0020
00050 #define OCF_UPDATER_REBOOT                  0x0021
00051 
00052 #define OCF_GET_UPDATER_VERSION                 0x0022
00053 typedef __packed struct _get_updater_version_rp{
00054     uint8_t         status;
00055     uint8_t         version;
00056 } PACKED get_updater_version_rp;
00057 #define GET_UPDATER_VERSION_RP_SIZE 2
00058 
00059 #define OCF_GET_UPDATER_BUFSIZE             0x0023
00060 typedef __packed struct _get_updater_bufsize_rp{
00061     uint8_t         status;
00062     uint8_t         buffer_size;
00063 } PACKED get_updater_bufsize_rp;
00064 #define GET_UPDATER_BUFSIZE_RP_SIZE 2
00065 
00066 #define OCF_UPDATER_ERASE_BLUE_FLAG         0x0024
00067 
00068 #define OCF_UPDATER_RESET_BLUE_FLAG         0x0025
00069 
00070 #define OCF_UPDATER_ERASE_SECTOR            0x0026
00071 typedef __packed struct _updater_erase_sector_cp{
00072     uint32_t    address;
00073 } PACKED updater_erase_sector_cp;
00074 #define UPDATER_ERASE_SECTOR_CP_SIZE 4
00075 
00076 #define OCF_UPDATER_PROG_DATA_BLOCK         0x0027
00077 /* Variable length parameters */
00078 
00079 #define OCF_UPDATER_READ_DATA_BLOCK         0x0028
00080 typedef __packed struct _updater_read_data_block_cp{
00081     uint32_t    address;
00082     uint16_t    data_len;
00083 } PACKED updater_read_data_block_cp;
00084 #define UPDATER_READ_DATA_BLOCK_CP_SIZE 6
00085 typedef __packed struct _updater_read_data_block_rp{
00086     uint8_t         status;
00087     uint8_t         data[0];
00088 } PACKED updater_read_data_block_rp;
00089 #define GET_UPDATER_BUFSIZE_RP_SIZE 2
00090 
00091 #define OCF_UPDATER_CALC_CRC                0x0029
00092 typedef __packed struct _updater_calc_crc_cp{
00093     uint32_t    address;
00094     uint8_t    num_sectors;
00095 } PACKED updater_calc_crc_cp;
00096 #define UPDATER_CALC_CRC_CP_SIZE 5
00097 typedef __packed struct _updater_calc_crc_rp{
00098     uint8_t         status;
00099     uint32_t        crc;
00100 } PACKED updater_calc_crc_rp;
00101 #define UPDATER_CALC_CRC_RP_SIZE 5
00102 
00103 #define OCF_UPDATER_HW_VERSION              0x002A
00104 typedef __packed struct _updater_hw_version_rp{
00105     uint8_t         status;
00106     uint8_t         version;
00107 } PACKED updater_hw_version_rp;
00108 #define UPDATER_HW_VERSION_RP_SIZE 2
00109 
00110 #define OCF_GAP_SET_NON_DISCOVERABLE        0x0081
00111 
00112 #define OCF_GAP_SET_LIMITED_DISCOVERABLE    0x0082
00113 
00114 #define OCF_GAP_SET_DISCOVERABLE            0x0083
00115 
00116 #define OCF_GAP_SET_DIRECT_CONNECTABLE      0x0084
00117 typedef __packed struct _gap_set_direct_conectable_cp{
00118     uint8_t     own_bdaddr_type;
00119     uint8_t     direct_bdaddr_type;
00120     tBDAddr     direct_bdaddr;
00121 } PACKED gap_set_direct_conectable_cp;
00122 #define GAP_SET_DIRECT_CONNECTABLE_CP_SIZE 8
00123 
00124 #define OCF_GAP_SET_IO_CAPABILITY      0x0085
00125 typedef __packed struct _gap_set_io_capability_cp{
00126     uint8_t     io_capability;
00127 } PACKED gap_set_io_capability_cp;
00128 #define GAP_SET_IO_CAPABILITY_CP_SIZE 1
00129 
00130 #define OCF_GAP_SET_AUTH_REQUIREMENT      0x0086
00131 typedef __packed struct _gap_set_auth_requirement_cp{
00132     uint8_t     mitm_mode;
00133     uint8_t     oob_enable;
00134     uint8_t     oob_data[16];
00135     uint8_t     min_encryption_key_size;
00136     uint8_t     max_encryption_key_size;
00137     uint8_t     use_fixed_pin;
00138     uint32_t    fixed_pin;
00139     uint8_t     bonding_mode;
00140 } PACKED gap_set_auth_requirement_cp;
00141 #define GAP_SET_AUTH_REQUIREMENT_CP_SIZE 26
00142 
00143 #define OCF_GAP_SET_AUTHOR_REQUIREMENT      0x0087
00144 typedef __packed struct _gap_set_author_requirement_cp{
00145     uint8_t     authorization_enable;
00146 } PACKED gap_set_author_requirement_cp;
00147 #define GAP_SET_AUTHOR_REQUIREMENT_CP_SIZE 1
00148 
00149 #define OCF_GAP_PASSKEY_RESPONSE      0x0088
00150 typedef __packed struct _gap_passkey_response_cp{
00151     uint32_t    passkey;
00152 } PACKED gap_passkey_response_cp;
00153 #define GAP_PASSKEY_RESPONSE_CP_SIZE 4
00154 
00155 #define OCF_GAP_AUTHORIZATION_RESPONSE      0x0089
00156 typedef __packed struct _gap_authorization_response_cp{
00157     uint8_t authorize;
00158 } PACKED gap_authorization_response_cp;
00159 #define GAP_AUTHORIZATION_RESPONSE_CP_SIZE 1
00160 
00161 #define OCF_GAP_INIT                0x008A
00162 typedef __packed struct _gap_init_cp{
00163     uint8_t role;
00164 } PACKED gap_init_cp;
00165 #define GAP_INIT_CP_SIZE 1
00166 typedef __packed struct _gap_init_rp{
00167     uint8_t         status;
00168     uint16_t        service_handle;
00169     uint16_t        dev_name_char_handle;
00170     uint16_t        appearance_char_handle;
00171 } PACKED gap_init_rp;
00172 #define GAP_INIT_RP_SIZE 7
00173 
00174 #define OCF_GAP_SET_NON_CONNECTABLE      0x008B
00175 typedef __packed struct _gap_set_non_connectable_cp{
00176     uint8_t advertising_event_type;
00177 } PACKED gap_set_non_connectable_cp;
00178 #define GAP_SET_NON_CONNECTABLE_CP_SIZE 1
00179 
00180 #define OCF_GAP_SET_UNDIRECTED_CONNECTABLE      0x008C
00181 typedef __packed struct _gap_set_undirected_connectable_cp{
00182     uint8_t adv_filter_policy;
00183     uint8_t own_addr_type;
00184 } PACKED gap_set_undirected_connectable_cp;
00185 #define GAP_SET_UNDIRECTED_CONNECTABLE_CP_SIZE 2
00186 
00187 #define OCF_GAP_SLAVE_SECURITY_REQUEST      0x008D
00188 typedef __packed struct _gap_slave_security_request_cp{
00189     uint8_t bonding;
00190     uint8_t mitm_protection;
00191 } PACKED gap_slave_security_request_cp;
00192 #define GAP_SLAVE_SECURITY_REQUEST_CP_SIZE 2
00193 
00194 #define OCF_GAP_UPDATE_ADV_DATA      0x008E
00195 
00196 #define OCF_GAP_DELETE_AD_TYPE      0x008F
00197 typedef __packed struct _gap_delete_ad_type_cp{
00198     uint8_t ad_type;
00199 } PACKED gap_delete_ad_type_cp;
00200 #define GAP_DELETE_AD_TYPE_CP_SIZE 1
00201 
00202 #define OCF_GAP_GET_SECURITY_LEVEL      0x0090
00203 typedef __packed struct _gap_get_security_level_rp{
00204     uint8_t         status;
00205     uint8_t         mitm_protection;
00206     uint8_t         bonding;
00207     uint8_t         oob_data;
00208     uint8_t         passkey_required;
00209 } PACKED gap_get_security_level_rp;
00210 #define GAP_GET_SECURITY_LEVEL_RP_SIZE 5
00211 
00212 #define OCF_GAP_SET_EVT_MASK      0x0091
00213 typedef __packed struct _gap_set_evt_mask_cp{
00214     uint16_t    evt_mask;
00215 } PACKED gap_set_evt_mask_cp;
00216 #define GAP_SET_EVT_MASK_CP_SIZE 2
00217 
00218 #define OCF_GAP_CONFIGURE_WHITELIST   0x0092
00219 
00220 #define OCF_GAP_TERMINATE      0x0093
00221 typedef __packed struct _gap_terminate_cp{
00222   uint16_t handle;
00223   uint8_t  reason;
00224 } PACKED gap_terminate_cp;
00225 #define GAP_TERMINATE_CP_SIZE 3
00226 
00227 #define OCF_GAP_CLEAR_SECURITY_DB   0x0094
00228 
00229 #define OCF_GAP_ALLOW_REBOND_DB     0x0095
00230 
00231 #define OCF_GAP_START_LIMITED_DISCOVERY_PROC   0x0096
00232 typedef __packed struct _gap_start_limited_discovery_proc_cp{
00233   uint16_t scanInterval;
00234   uint16_t scanWindow;
00235   uint8_t  own_address_type;
00236   uint8_t  filterDuplicates;
00237 } PACKED gap_start_limited_discovery_proc_cp;
00238 #define GAP_START_LIMITED_DISCOVERY_PROC_CP_SIZE 6
00239 
00240 #define OCF_GAP_START_GENERAL_DISCOVERY_PROC   0x0097
00241 typedef __packed struct _gap_start_general_discovery_proc_cp{
00242   uint16_t scanInterval;
00243   uint16_t scanWindow;
00244   uint8_t  own_address_type;
00245   uint8_t  filterDuplicates;
00246 } PACKED gap_start_general_discovery_proc_cp;
00247 #define GAP_START_GENERAL_DISCOVERY_PROC_CP_SIZE 6
00248 
00249 #define OCF_GAP_START_AUTO_CONN_ESTABLISHMENT  0x0099
00250 
00251 #define OCF_GAP_CREATE_CONNECTION      0x009C
00252 typedef __packed struct _gap_create_connection_cp{
00253   uint16_t scanInterval;
00254   uint16_t scanWindow;
00255   uint8_t peer_bdaddr_type;
00256   tBDAddr peer_bdaddr;
00257   uint8_t own_bdaddr_type;
00258   uint16_t conn_min_interval;
00259   uint16_t conn_max_interval;
00260   uint16_t conn_latency;
00261   uint16_t supervision_timeout;
00262   uint16_t min_conn_length;
00263   uint16_t max_conn_length;
00264 } PACKED gap_create_connection_cp;
00265 #define GAP_CREATE_CONNECTION_CP_SIZE 24
00266 
00267 #define OCF_GAP_TERMINATE_GAP_PROCEDURE      0x009D
00268 
00269 #define OCF_GATT_INIT               0x0101
00270 
00271 #define OCF_GATT_ADD_SERV           0x0102
00272 typedef __packed struct _gatt_add_serv_rp{
00273     uint8_t         status;
00274     uint16_t        handle;
00275 } PACKED gatt_add_serv_rp;
00276 #define GATT_ADD_SERV_RP_SIZE 3
00277 
00278 #define OCF_GATT_INCLUDE_SERV       0x0103
00279 typedef __packed struct _gatt_include_serv_rp{
00280     uint8_t         status;
00281     uint16_t        handle;    
00282 } PACKED gatt_include_serv_rp;
00283 #define GATT_INCLUDE_SERV_RP_SIZE 3
00284 
00285 #define OCF_GATT_ADD_CHAR           0x0104
00286 typedef __packed struct _gatt_add_char_rp{
00287     uint8_t         status;
00288     uint16_t        handle;
00289 } PACKED gatt_add_char_rp;
00290 #define GATT_ADD_CHAR_RP_SIZE 3
00291 
00292 #define OCF_GATT_ADD_CHAR_DESC      0x0105
00293 typedef __packed struct _gatt_add_char_desc_rp{
00294     uint8_t         status;
00295     uint16_t        handle;
00296 } PACKED gatt_add_char_desc_rp;
00297 #define GATT_ADD_CHAR_DESC_RP_SIZE 3
00298 
00299 #define OCF_GATT_UPD_CHAR_VAL       0x0106
00300 
00301 #define OCF_GATT_DEL_CHAR           0x0107
00302 typedef __packed struct _gatt_del_char_cp{
00303     uint16_t    service_handle;
00304     uint16_t    char_handle;
00305 } PACKED gatt_del_char_cp;
00306 #define GATT_DEL_CHAR_CP_SIZE 4
00307 
00308 #define OCF_GATT_DEL_SERV           0x0108
00309 typedef __packed struct _gatt_del_serv_cp{
00310     uint16_t    service_handle;
00311 } PACKED gatt_del_serv_cp;
00312 #define GATT_DEL_SERV_CP_SIZE 2
00313 
00314 #define OCF_GATT_DEL_INC_SERV       0x0109
00315 typedef __packed struct _gatt_del_inc_serv_cp{
00316     uint16_t    service_handle;
00317     uint16_t    inc_serv_handle;
00318 } PACKED gatt_del_inc_serv_cp;
00319 #define GATT_DEL_INC_SERV_CP_SIZE 4
00320 
00321 #define OCF_GATT_SET_EVT_MASK      0x010A
00322 typedef __packed struct _gatt_set_evt_mask_cp{
00323     uint32_t    evt_mask;
00324 } PACKED gatt_set_evt_mask_cp;
00325 #define GATT_SET_EVT_MASK_CP_SIZE 4
00326 
00327 #define OCF_GATT_DISC_ALL_PRIM_SERVICES 0X0112
00328 typedef __packed struct _gatt_disc_all_prim_serivces_cp{
00329   uint16_t conn_handle;
00330 } PACKED gatt_disc_all_prim_services_cp;
00331 #define GATT_DISC_ALL_PRIM_SERVICES_CP_SIZE 2
00332 
00333 #define OCF_GATT_FIND_INCLUDED_SERVICES 0X0114
00334 typedef __packed struct _gatt_disc_find_included_services_cp{
00335   uint16_t conn_handle;
00336   uint16_t start_handle;
00337   uint16_t end_handle;
00338 } PACKED gatt_find_included_services_cp;
00339 #define GATT_FIND_INCLUDED_SERVICES_CP_SIZE 6
00340 
00341 #define OCF_GATT_DISC_ALL_CHARAC_OF_SERV 0X0115
00342 typedef __packed struct _gatt_disc_all_charac_of_serv_cp{
00343   uint16_t conn_handle;
00344   uint16_t start_attr_handle;
00345   uint16_t end_attr_handle;
00346 } PACKED gatt_disc_all_charac_of_serv_cp;
00347 #define GATT_DISC_ALL_CHARAC_OF_SERV_CP_SIZE 6
00348 
00349 #define OCF_GATT_DISC_ALL_CHARAC_DESCRIPTORS 0X0117
00350 typedef __packed struct _gatt_disc_all_charac_descriptors_cp{
00351   uint16_t conn_handle;
00352   uint16_t char_val_handle;
00353   uint16_t char_end_handle;
00354 } PACKED gatt_disc_all_charac_descriptors_cp;
00355 #define GATT_DISC_ALL_CHARAC_DESCRIPTORS_CP_SIZE 6
00356 
00357 #define OCF_GATT_READ_CHARAC_VAL   0x0118
00358 typedef __packed struct _gatt_read_charac_val_cp{
00359   uint16_t conn_handle;
00360   uint16_t attr_handle;
00361 } PACKED gatt_read_charac_val_cp;
00362 #define GATT_READ_CHARAC_VAL_CP_SIZE 4
00363 
00364 #define OCF_GATT_READ_LONG_CHARAC_VAL   0x011A
00365 typedef __packed struct _gatt_read_long_charac_val_cp{
00366   uint16_t conn_handle;
00367   uint16_t attr_handle;
00368   uint16_t val_offset;
00369 } PACKED gatt_read_long_charac_val_cp;
00370 #define GATT_READ_LONG_CHARAC_VAL_CP_SIZE 6
00371 
00372 #define OCF_GATT_WRITE_CHAR_VALUE   0x011C
00373 #define OCF_GATT_WRITE_CHAR_DESCRIPTOR      0x0121
00374 
00375 #define OCF_GATT_READ_CHAR_DESCRIPTOR       0x0122
00376 
00377 #define OCF_GATT_WRITE_WITHOUT_RESPONSE     0x0123
00378 
00379 #define OCF_GATT_SIGNED_WRITE_WITHOUT_RESPONSE     0x0124
00380 
00381 #define OCF_GATT_CONFIRM_INDICATION                0x0125
00382 
00383 #define OCF_GATT_WRITE_RESPONSE                    0x0126
00384 
00385 #define OCF_GATT_ALLOW_READ         0x0127
00386 typedef __packed struct _gatt_allow_read_cp{
00387     uint16_t    conn_handle;
00388 } PACKED gatt_allow_read_cp;
00389 #define GATT_ALLOW_READ_CP_SIZE 2
00390 
00391 #define OCF_GATT_SET_DESC_VAL       0x0129
00392 
00393 #define OCF_L2CAP_CONN_PARAM_UPD_REQ           0x0181
00394 typedef __packed struct _l2cap_conn_param_upd_cp{
00395     uint16_t    handle;
00396     uint16_t    interval_min;
00397     uint16_t    interval_max;
00398     uint16_t    slave_latency;
00399     uint16_t    timeout_multiplier;
00400 } PACKED l2cap_conn_param_upd_cp;
00401 #define L2CAP_CONN_PARAM_UPD_REQ_CP_SIZE 10
00402 
00403 
00404 /*------------- Events -------------*/
00405 
00406 #define EVT_VENDOR  0xFF /* The event code in the hci_event_pckt structure */
00407 typedef __packed struct _evt_blue_aci{
00408   uint16_t ecode;
00409   uint8_t  data[0];
00410 } PACKED evt_blue_aci;
00411 
00412 /* HCI vendor specific event */
00413 #define EVT_BLUE_INITIALIZED                      (0x0001)
00414 
00415 /* GAP Vendor specific event codes */
00416 #define EVT_BLUE_GAP_SET_LIMITED_DISCOVERABLE     (0x0400)
00417 #define EVT_BLUE_GAP_PAIRING_CMPLT                (0x0401)
00418 #define EVT_BLUE_GAP_PASS_KEY_REQUEST             (0x0402)
00419 #define EVT_BLUE_GAP_AUTHORIZATION_REQUEST        (0x0403)
00420 #define EVT_BLUE_GAP_SLAVE_SECURITY_INITIATED     (0X0404)
00421 #define EVT_BLUE_GAP_DEVICE_FOUND                 (0x0406)
00422 typedef __packed struct _evt_gap_device_found{
00423   uint8_t peer_address_type;
00424   uint8_t peer_address[6];
00425 } PACKED evt_gap_device_found;
00426 #define EVT_BLUE_GAP_PROCEDURE_COMPLETE           (0x0407)
00427 typedef __packed struct _evt_gap_procedure_complete{
00428   uint8_t procedure_code;
00429   uint8_t status;
00430   uint8_t data[0];
00431 } PACKED evt_gap_procedure_complete;
00432 
00433 /* L2CAP vendor specific event codes */
00434 #define EVT_BLUE_L2CAP_CONN_UPD_RESP          (0x0800)
00435 typedef __packed struct _evt_l2cap_conn_param_upd_resp{
00436   uint16_t conn_handle;
00437   uint8_t  packet_length;
00438   uint8_t  code;
00439   uint8_t  id;
00440   uint16_t l2c_lenght;
00441   uint16_t result;
00442 } PACKED evt_l2cap_conn_param_upd_resp;
00443 #define EVT_L2CAP_CONN_PARAM_UPD_RESP_SIZE 9
00444 
00445 #define EVT_BLUE_L2CAP_PROCEDURE_TIMEOUT          (0x0801)
00446 
00447 
00448 /* vendor specific debug events */
00449 #define EVT_BLUE_DEBUG                (0x1000)
00450 
00451 /* GATT vendor specific event codes */
00452 #define EVT_BLUE_GATT_ATTRIBUTE_MODIFIED          (0x0C01)
00453 typedef __packed struct _evt_gatt_attr_modified{
00454   uint16_t conn_handle;
00455   uint16_t attr_handle;
00456   uint8_t  data_length;
00457   uint8_t  att_data[0];
00458 } PACKED evt_gatt_attr_modified;
00459 
00460 #define EVT_BLUE_GATT_PROCEDURE_TIMEOUT           (0x0C02)
00461 #define EVT_BLUE_EXCHANGE_MTU_RESP        (0x0C03)
00462 #define EVT_BLUE_ATT_FIND_INFORMATION_RESP    (0x0C04)
00463 typedef __packed struct _evt_att_find_information_resp{
00464   uint16_t conn_handle;
00465   uint8_t  event_data_length;
00466   uint8_t  format;
00467   uint8_t  handle_uuid_pair[0];
00468 } PACKED evt_att_find_information_resp;
00469 
00470 #define EVT_BLUE_ATT_FIND_BY_TYPE_VAL_RESP    (0x0C05)
00471 #define EVT_BLUE_ATT_READ_BY_TYPE_RESP        (0x0C06)
00472 typedef __packed struct _evt_att_read_by_type_resp{
00473   uint16_t conn_handle;
00474   uint8_t  event_data_length;
00475   uint8_t  handle_value_pair_length;
00476   uint8_t  handle_value_pair[0];
00477 } PACKED evt_att_read_by_type_resp;
00478 
00479 #define EVT_BLUE_ATT_READ_RESP            (0x0C07)
00480 #define EVT_BLUE_ATT_READ_BLOB_RESP       (0x0C08)
00481 #define EVT_BLUE_ATT_READ_MULTIPLE_RESP       (0x0C09)
00482 #define EVT_BLUE_ATT_READ_BY_GROUP_RESP           (0x0C0A)
00483 typedef __packed struct _evt_att_read_by_group_resp{
00484   uint16_t conn_handle;
00485   uint8_t  event_data_length;
00486   uint8_t  handle_value_pair_length;
00487   uint8_t  handle_value_pair[0];
00488 } PACKED evt_att_read_by_group_resp;
00489 
00490 #define EVT_BLUE_ATT_WRITE_RESP           (0x0C0B)
00491 #define EVT_BLUE_ATT_PREPARE_WRITE_RESP       (0x0C0C)
00492 #define EVT_BLUE_ATT_EXEC_WRITE_RESP          (0x0C0D)
00493 #define EVT_BLUE_GATT_INDICATION          (0x0C0E)
00494 #define EVT_BLUE_GATT_NOTIFICATION        (0x0C0F)
00495 typedef __packed struct _evt_gatt_notification{
00496   uint16_t conn_handle;
00497   uint8_t  data_length; // Lenght of attribute value + handle.
00498   uint16_t attr_handle;
00499   uint8_t  attr_value[0];
00500 } PACKED evt_gatt_attr_notification;
00501 
00502 #define EVT_BLUE_GATT_PROCEDURE_COMPLETE          (0x0C10)
00503 typedef __packed struct _evt_gatt_procedure_complete{
00504   uint16_t conn_handle;
00505   uint8_t  data_length;
00506   uint8_t  data[0];
00507 } PACKED evt_gatt_procedure_complete;
00508 
00509 #define EVT_BLUE_GATT_ERROR_RESP                  (0x0C11)
00510 #define EVT_BLUE_GATT_DISC_READ_CHAR_BY_UUID_RESP (0x0C12)
00511 #define EVT_BLUE_GATT_WRITE_PERMIT_REQ            (0x0C13)
00512 typedef __packed struct _evt_gatt_write_permit_req{
00513   uint16_t conn_handle;
00514   uint16_t attr_handle;
00515   uint8_t  data_length;
00516   uint8_t  offset_data[0];
00517 } PACKED evt_gatt_write_permit_req;
00518 
00519 #define EVT_BLUE_GATT_READ_PERMIT_REQ             (0x0C14)
00520 typedef __packed struct _evt_gatt_read_permit_req{
00521   uint16_t conn_handle;
00522   uint16_t attr_handle;
00523   uint8_t  data_length;
00524   uint8_t  offset_data[0];
00525 } PACKED evt_gatt_read_permit_req;
00526 
00527 #define EVT_BLUE_GATT_READ_MULTI_PERMIT_REQ       (0x0C15)
00528 
00529 
00530 
00531 #endif /* __BLUENRG_HCI_INTERNAL_H_ */
00532