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