X_NUCLEO_IDB0XA1
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 "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_ */
Generated on Thu Jul 14 2022 02:49:15 by 1.7.2