NUCLEO-F401RE + BlueNRG shield client test (TI Sensortag reading)
Embed:
(wiki syntax)
Show/hide line numbers
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
Generated on Tue Jul 12 2022 20:44:37 by 1.7.2