Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of BLE_BlueNRG by
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_ */
Generated on Tue Jul 12 2022 16:24:20 by
1.7.2
