Filippo Casamassima / Nucleo_blueNRG

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers bluenrg_aci_const.h Source File

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 
00022 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00023 
00024 #define OCF_HAL_WRITE_CONFIG_DATA   0x000C
00025 
00026 #define OCF_HAL_SET_TX_POWER_LEVEL          0x000F
00027 typedef __packed struct _hal_set_tx_power_level_cp{
00028     uint8_t en_high_power;
00029     uint8_t pa_level;
00030 } PACKED hal_set_tx_power_level_cp;
00031 #define HAL_SET_TX_POWER_LEVEL_CP_SIZE 2
00032 
00033 #define OCF_HAL_DEVICE_STANDBY          0x0013
00034 
00035 #define OCF_HAL_TONE_START                  0x0015
00036 typedef __packed struct _hal_tone_start_cp{
00037     uint8_t rf_channel;
00038 } PACKED hal_tone_start_cp;
00039 #define HAL_TONE_START_CP_SIZE 1
00040 
00041 #define OCF_HAL_TONE_STOP                   0x0016
00042 
00043 #define OCF_UPDATER_START                   0x0020
00044 #define OCF_UPDATER_REBOOT                  0x0021
00045 
00046 #define OCF_GET_UPDATER_VERSION                 0x0022
00047 typedef __packed struct _get_updater_version_rp{
00048     uint8_t         status;
00049     uint8_t         version;
00050 } PACKED get_updater_version_rp;
00051 #define GET_UPDATER_VERSION_RP_SIZE 2
00052 
00053 #define OCF_GET_UPDATER_BUFSIZE             0x0023
00054 typedef __packed struct _get_updater_bufsize_rp{
00055     uint8_t         status;
00056     uint8_t         buffer_size;
00057 } PACKED get_updater_bufsize_rp;
00058 #define GET_UPDATER_BUFSIZE_RP_SIZE 2
00059 
00060 #define OCF_UPDATER_ERASE_BLUE_FLAG         0x0024
00061 
00062 #define OCF_UPDATER_RESET_BLUE_FLAG         0x0025
00063 
00064 #define OCF_UPDATER_ERASE_SECTOR            0x0026
00065 typedef __packed struct _updater_erase_sector_cp{
00066     uint32_t    address;
00067 } PACKED updater_erase_sector_cp;
00068 #define UPDATER_ERASE_SECTOR_CP_SIZE 4
00069 
00070 #define OCF_UPDATER_PROG_DATA_BLOCK         0x0027
00071 /* Variable length parameters */
00072 
00073 #define OCF_UPDATER_READ_DATA_BLOCK         0x0028
00074 typedef __packed struct _updater_read_data_block_cp{
00075     uint32_t    address;
00076     uint16_t    data_len;
00077 } PACKED updater_read_data_block_cp;
00078 #define UPDATER_READ_DATA_BLOCK_CP_SIZE 6
00079 typedef __packed struct _updater_read_data_block_rp{
00080     uint8_t         status;
00081     uint8_t         data[0];
00082 } PACKED updater_read_data_block_rp;
00083 #define GET_UPDATER_BUFSIZE_RP_SIZE 2
00084 
00085 #define OCF_UPDATER_CALC_CRC                0x0029
00086 typedef __packed struct _updater_calc_crc_cp{
00087     uint32_t    address;
00088     uint8_t    num_sectors;
00089 } PACKED updater_calc_crc_cp;
00090 #define UPDATER_CALC_CRC_CP_SIZE 5
00091 typedef __packed struct _updater_calc_crc_rp{
00092     uint8_t         status;
00093     uint32_t        crc;
00094 } PACKED updater_calc_crc_rp;
00095 #define UPDATER_CALC_CRC_RP_SIZE 5
00096 
00097 #define OCF_UPDATER_HW_VERSION              0x002A
00098 typedef __packed struct _updater_hw_version_rp{
00099     uint8_t         status;
00100     uint8_t         version;
00101 } PACKED updater_hw_version_rp;
00102 #define UPDATER_HW_VERSION_RP_SIZE 2
00103 
00104 #define OCF_GAP_SET_NON_DISCOVERABLE        0x0081
00105 
00106 #define OCF_GAP_SET_LIMITED_DISCOVERABLE    0x0082
00107 
00108 #define OCF_GAP_SET_DISCOVERABLE            0x0083
00109 
00110 #define OCF_GAP_SET_DIRECT_CONNECTABLE      0x0084
00111 typedef __packed struct _gap_set_direct_conectable_cp{
00112     uint8_t     own_bdaddr_type;
00113     uint8_t     direct_bdaddr_type;
00114     tBDAddr     direct_bdaddr;
00115 } PACKED gap_set_direct_conectable_cp;
00116 #define GAP_SET_DIRECT_CONNECTABLE_CP_SIZE 8
00117 
00118 #define OCF_GAP_SET_IO_CAPABILITY      0x0085
00119 typedef __packed struct _gap_set_io_capability_cp{
00120     uint8_t     io_capability;
00121 } PACKED gap_set_io_capability_cp;
00122 #define GAP_SET_IO_CAPABILITY_CP_SIZE 1
00123 
00124 #define OCF_GAP_SET_AUTH_REQUIREMENT      0x0086
00125 typedef __packed struct _gap_set_auth_requirement_cp{
00126     uint8_t mitm_mode;
00127     uint8_t     oob_enable;
00128     uint8_t     oob_data[16];
00129     uint8_t     min_encryption_key_size;
00130     uint8_t     max_encryption_key_size;
00131     uint8_t     use_fixed_pin;
00132     uint32_t    fixed_pin;
00133     uint8_t     bonding_mode;
00134 } PACKED gap_set_auth_requirement_cp;
00135 #define GAP_SET_AUTH_REQUIREMENT_CP_SIZE 26
00136 
00137 #define OCF_GAP_SET_AUTHOR_REQUIREMENT      0x0087
00138 typedef __packed struct _gap_set_author_requirement_cp{
00139   uint16_t      conn_handle;
00140   uint8_t       authorization_enable;
00141 } PACKED gap_set_author_requirement_cp;
00142 #define GAP_SET_AUTHOR_REQUIREMENT_CP_SIZE 3
00143 
00144 #define OCF_GAP_PASSKEY_RESPONSE      0x0088
00145 typedef __packed struct _gap_passkey_response_cp{
00146   uint16_t conn_handle;
00147   uint32_t passkey;
00148 } PACKED gap_passkey_response_cp;
00149 #define GAP_PASSKEY_RESPONSE_CP_SIZE 6
00150 
00151 #define OCF_GAP_AUTHORIZATION_RESPONSE      0x0089
00152 typedef __packed struct _gap_authorization_response_cp{
00153   uint16_t conn_handle;
00154   uint8_t  authorize;
00155 } PACKED gap_authorization_response_cp;
00156 #define GAP_AUTHORIZATION_RESPONSE_CP_SIZE 3
00157 
00158 #define OCF_GAP_INIT                0x008A
00159 typedef __packed struct _gap_init_cp{
00160     uint8_t role;
00161 } PACKED gap_init_cp;
00162 #define GAP_INIT_CP_SIZE 1
00163 typedef __packed struct _gap_init_rp{
00164     uint8_t         status;
00165     uint16_t        service_handle;
00166     uint16_t        dev_name_char_handle;
00167     uint16_t        appearance_char_handle;
00168 } PACKED gap_init_rp;
00169 #define GAP_INIT_RP_SIZE 7
00170 
00171 #define OCF_GAP_SET_NON_CONNECTABLE      0x008B
00172 typedef __packed struct _gap_set_non_connectable_cp{
00173     uint8_t advertising_event_type;
00174 } PACKED gap_set_non_connectable_cp;
00175 #define GAP_SET_NON_CONNECTABLE_CP_SIZE 1
00176 
00177 #define OCF_GAP_SET_UNDIRECTED_CONNECTABLE      0x008C
00178 typedef __packed struct _gap_set_undirected_connectable_cp{
00179     uint8_t adv_filter_policy;
00180     uint8_t own_addr_type;
00181 } PACKED gap_set_undirected_connectable_cp;
00182 #define GAP_SET_UNDIRECTED_CONNECTABLE_CP_SIZE 2
00183 
00184 #define OCF_GAP_SLAVE_SECURITY_REQUEST      0x008D
00185 typedef __packed struct _gap_slave_security_request_cp{
00186   uint16_t conn_handle;
00187   uint8_t  bonding;
00188   uint8_t  mitm_protection;
00189 } PACKED gap_slave_security_request_cp;
00190 #define GAP_SLAVE_SECURITY_REQUEST_CP_SIZE 4
00191 
00192 #define OCF_GAP_UPDATE_ADV_DATA      0x008E
00193 
00194 #define OCF_GAP_DELETE_AD_TYPE      0x008F
00195 typedef __packed struct _gap_delete_ad_type_cp{
00196     uint8_t ad_type;
00197 } PACKED gap_delete_ad_type_cp;
00198 #define GAP_DELETE_AD_TYPE_CP_SIZE 1
00199 
00200 #define OCF_GAP_GET_SECURITY_LEVEL      0x0090
00201 typedef __packed struct _gap_get_security_level_rp{
00202     uint8_t         status;
00203     uint8_t         mitm_protection;
00204     uint8_t         bonding;
00205     uint8_t         oob_data;
00206     uint8_t         passkey_required;
00207 } PACKED gap_get_security_level_rp;
00208 #define GAP_GET_SECURITY_LEVEL_RP_SIZE 5
00209 
00210 #define OCF_GAP_SET_EVT_MASK      0x0091
00211 typedef __packed struct _gap_set_evt_mask_cp{
00212     uint16_t    evt_mask;
00213 } PACKED gap_set_evt_mask_cp;
00214 #define GAP_SET_EVT_MASK_CP_SIZE 2
00215 
00216 #define OCF_GAP_CONFIGURE_WHITELIST   0x0092
00217 
00218 #define OCF_GAP_TERMINATE      0x0093
00219 typedef __packed struct _gap_terminate_cp{
00220   uint16_t handle;
00221   uint8_t  reason;
00222 } PACKED gap_terminate_cp;
00223 #define GAP_TERMINATE_CP_SIZE 3
00224 
00225 #define OCF_GAP_CLEAR_SECURITY_DB   0x0094
00226 
00227 #define OCF_GAP_ALLOW_REBOND_DB     0x0095
00228 
00229 #define OCF_GAP_START_LIMITED_DISCOVERY_PROC   0x0096
00230 typedef __packed struct _gap_start_limited_discovery_proc_cp{
00231   uint16_t scanInterval;
00232   uint16_t scanWindow;
00233   uint8_t  own_address_type;
00234   uint8_t  filterDuplicates;
00235 } PACKED gap_start_limited_discovery_proc_cp;
00236 #define GAP_START_LIMITED_DISCOVERY_PROC_CP_SIZE 6
00237 
00238 #define OCF_GAP_START_GENERAL_DISCOVERY_PROC   0x0097
00239 typedef __packed struct _gap_start_general_discovery_proc_cp{
00240   uint16_t scanInterval;
00241   uint16_t scanWindow;
00242   uint8_t  own_address_type;
00243   uint8_t  filterDuplicates;
00244 } PACKED gap_start_general_discovery_proc_cp;
00245 #define GAP_START_GENERAL_DISCOVERY_PROC_CP_SIZE 6
00246 
00247 #define OCF_GAP_START_AUTO_CONN_ESTABLISHMENT  0x0099
00248 
00249 #define OCF_GAP_CREATE_CONNECTION      0x009C
00250 typedef __packed struct _gap_create_connection_cp{
00251   uint16_t scanInterval;
00252   uint16_t scanWindow;
00253   uint8_t peer_bdaddr_type;
00254   tBDAddr peer_bdaddr;
00255   uint8_t own_bdaddr_type;
00256   uint16_t conn_min_interval;
00257   uint16_t conn_max_interval;
00258   uint16_t conn_latency;
00259   uint16_t supervision_timeout;
00260   uint16_t min_conn_length;
00261   uint16_t max_conn_length;
00262 } PACKED gap_create_connection_cp;
00263 #define GAP_CREATE_CONNECTION_CP_SIZE 24
00264 
00265 #define OCF_GAP_TERMINATE_GAP_PROCEDURE      0x009D
00266 
00267 #define OCF_GAP_SEND_PAIRING_REQUEST      0x009F
00268 typedef __packed struct _gap_send_pairing_request_cp{
00269   uint16_t conn_handle;
00270   uint8_t force_rebond;
00271 } PACKED gap_send_pairing_request_cp;
00272 #define GAP_SEND_PAIRING_REQUEST_CP_SIZE 3
00273 
00274 #define OCF_GATT_INIT               0x0101
00275 
00276 #define OCF_GATT_ADD_SERV           0x0102
00277 typedef __packed struct _gatt_add_serv_rp{
00278     uint8_t         status;
00279     uint16_t        handle;
00280 } PACKED gatt_add_serv_rp;
00281 #define GATT_ADD_SERV_RP_SIZE 3
00282 
00283 #define OCF_GATT_INCLUDE_SERV       0x0103
00284 typedef __packed struct _gatt_include_serv_rp{
00285     uint8_t         status;
00286     uint16_t        handle;    
00287 } PACKED gatt_include_serv_rp;
00288 #define GATT_INCLUDE_SERV_RP_SIZE 3
00289 
00290 #define OCF_GATT_ADD_CHAR           0x0104
00291 typedef __packed struct _gatt_add_char_rp{
00292     uint8_t         status;
00293     uint16_t        handle;
00294 } PACKED gatt_add_char_rp;
00295 #define GATT_ADD_CHAR_RP_SIZE 3
00296 
00297 #define OCF_GATT_ADD_CHAR_DESC      0x0105
00298 typedef __packed struct _gatt_add_char_desc_rp{
00299     uint8_t         status;
00300     uint16_t        handle;
00301 } PACKED gatt_add_char_desc_rp;
00302 #define GATT_ADD_CHAR_DESC_RP_SIZE 3
00303 
00304 #define OCF_GATT_UPD_CHAR_VAL       0x0106
00305 
00306 #define OCF_GATT_DEL_CHAR           0x0107
00307 typedef __packed struct _gatt_del_char_cp{
00308     uint16_t    service_handle;
00309     uint16_t    char_handle;
00310 } PACKED gatt_del_char_cp;
00311 #define GATT_DEL_CHAR_CP_SIZE 4
00312 
00313 #define OCF_GATT_DEL_SERV           0x0108
00314 typedef __packed struct _gatt_del_serv_cp{
00315     uint16_t    service_handle;
00316 } PACKED gatt_del_serv_cp;
00317 #define GATT_DEL_SERV_CP_SIZE 2
00318 
00319 #define OCF_GATT_DEL_INC_SERV       0x0109
00320 typedef __packed struct _gatt_del_inc_serv_cp{
00321     uint16_t    service_handle;
00322     uint16_t    inc_serv_handle;
00323 } PACKED gatt_del_inc_serv_cp;
00324 #define GATT_DEL_INC_SERV_CP_SIZE 4
00325 
00326 #define OCF_GATT_SET_EVT_MASK      0x010A
00327 typedef __packed struct _gatt_set_evt_mask_cp{
00328     uint32_t    evt_mask;
00329 } PACKED gatt_set_evt_mask_cp;
00330 #define GATT_SET_EVT_MASK_CP_SIZE 4
00331 
00332 #define OCF_GATT_EXCHANGE_CONFIG      0x010B
00333 typedef __packed struct _gatt_exchange_config_cp{
00334     uint16_t    conn_handle;
00335 } PACKED gatt_exchange_config_cp;
00336 #define GATT_EXCHANGE_CONFIG_CP_SIZE 2
00337 
00338 #define OCF_GATT_FIND_INFO_REQ      0x010C
00339 typedef __packed struct _gatt_find_info_req_cp{
00340     uint16_t    conn_handle;
00341     uint16_t    start_handle;
00342     uint16_t    end_handle;
00343 } PACKED gatt_find_info_req_cp;
00344 #define GATT_GATT_FIND_INFO_REQ_CP_SIZE 6
00345 
00346 #define OCF_GATT_DISC_ALL_PRIM_SERVICES 0X0112
00347 typedef __packed struct _gatt_disc_all_prim_serivces_cp{
00348   uint16_t conn_handle;
00349 } PACKED gatt_disc_all_prim_services_cp;
00350 #define GATT_DISC_ALL_PRIM_SERVICES_CP_SIZE 2
00351 
00352 #define OCF_GATT_FIND_INCLUDED_SERVICES 0X0114
00353 typedef __packed struct _gatt_disc_find_included_services_cp{
00354   uint16_t conn_handle;
00355   uint16_t start_handle;
00356   uint16_t end_handle;
00357 } PACKED gatt_find_included_services_cp;
00358 #define GATT_FIND_INCLUDED_SERVICES_CP_SIZE 6
00359 
00360 #define OCF_GATT_DISC_ALL_CHARAC_OF_SERV 0X0115
00361 typedef __packed struct _gatt_disc_all_charac_of_serv_cp{
00362   uint16_t conn_handle;
00363   uint16_t start_attr_handle;
00364   uint16_t end_attr_handle;
00365 } PACKED gatt_disc_all_charac_of_serv_cp;
00366 #define GATT_DISC_ALL_CHARAC_OF_SERV_CP_SIZE 6
00367 
00368 #define OCF_GATT_DISC_CHARAC_BY_UUID 0X0116
00369 
00370 #define OCF_GATT_DISC_ALL_CHARAC_DESCRIPTORS 0X0117
00371 typedef __packed struct _gatt_disc_all_charac_descriptors_cp{
00372   uint16_t conn_handle;
00373   uint16_t char_val_handle;
00374   uint16_t char_end_handle;
00375 } PACKED gatt_disc_all_charac_descriptors_cp;
00376 #define GATT_DISC_ALL_CHARAC_DESCRIPTORS_CP_SIZE 6
00377 
00378 #define OCF_GATT_READ_CHARAC_VAL   0x0118
00379 typedef __packed struct _gatt_read_charac_val_cp{
00380   uint16_t conn_handle;
00381   uint16_t attr_handle;
00382 } PACKED gatt_read_charac_val_cp;
00383 #define GATT_READ_CHARAC_VAL_CP_SIZE 4
00384 
00385 #define OCF_GATT_READ_LONG_CHARAC_VAL   0x011A
00386 typedef __packed struct _gatt_read_long_charac_val_cp{
00387   uint16_t conn_handle;
00388   uint16_t attr_handle;
00389   uint16_t val_offset;
00390 } PACKED gatt_read_long_charac_val_cp;
00391 #define GATT_READ_LONG_CHARAC_VAL_CP_SIZE 6
00392 
00393 #define OCF_GATT_WRITE_CHAR_VALUE   0x011C
00394 #define OCF_GATT_WRITE_CHAR_DESCRIPTOR      0x0121
00395 
00396 #define OCF_GATT_READ_CHAR_DESCRIPTOR       0x0122
00397 
00398 #define OCF_GATT_WRITE_WITHOUT_RESPONSE     0x0123
00399 
00400 #define OCF_GATT_SIGNED_WRITE_WITHOUT_RESPONSE     0x0124
00401 
00402 #define OCF_GATT_CONFIRM_INDICATION                0x0125
00403 typedef __packed struct _gatt_confirm_indication_cp{
00404     uint16_t    conn_handle;
00405 } PACKED gatt_confirm_indication_cp;
00406 #define GATT_CONFIRM_INDICATION_CP_SIZE 2
00407 
00408 #define OCF_GATT_WRITE_RESPONSE                    0x0126
00409 
00410 #define OCF_GATT_ALLOW_READ         0x0127
00411 typedef __packed struct _gatt_allow_read_cp{
00412     uint16_t    conn_handle;
00413 } PACKED gatt_allow_read_cp;
00414 #define GATT_ALLOW_READ_CP_SIZE 2
00415 
00416 #define OCF_GATT_SET_DESC_VAL       0x0129
00417 
00418 #define OCF_GATT_READ_HANDLE_VALUE      0x012A
00419 typedef __packed struct _gatt_read_handle_val_cp{
00420     uint16_t    attr_handle;
00421 } PACKED gatt_read_handle_val_cp;
00422 #define GATT_READ_HANDLE_VALUE_CP_SIZE 2
00423 
00424 #define OCF_L2CAP_CONN_PARAM_UPDATE_REQ  0x0181
00425 typedef __packed struct _l2cap_conn_param_update_req_cp{
00426   uint16_t conn_handle;
00427   uint16_t interval_min;
00428   uint16_t interval_max;
00429   uint16_t slave_latency;
00430   uint16_t timeout_multiplier;
00431 } PACKED l2cap_conn_param_update_req_cp;
00432 #define L2CAP_CONN_PARAM_UPDATE_REQ_CP_SIZE 10
00433 
00434 #define OCF_L2CAP_CONN_PARAM_UPDATE_RESP  0x0182
00435 typedef __packed struct _l2cap_conn_param_update_resp_cp{
00436   uint16_t conn_handle;
00437   uint16_t interval_min;
00438   uint16_t interval_max;
00439   uint16_t slave_latency;
00440   uint16_t timeout_multiplier;
00441   uint8_t id;
00442   uint8_t accept;
00443 } PACKED l2cap_conn_param_update_resp_cp;
00444 #define L2CAP_CONN_PARAM_UPDATE_RESP_CP_SIZE 12
00445 
00446 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00447 
00448 /**
00449  * @defgroup BlueNRG_Events BlueNRG events (vendor specific)
00450  * @{
00451  */
00452 
00453 /**
00454  * Vendor specific event for BlueNRG.
00455  */
00456 typedef __packed struct _evt_blue_aci{
00457   uint16_t ecode; /**< One of the BlueNRG event codes. */
00458   uint8_t  data[0];
00459 } PACKED evt_blue_aci;
00460 
00461 
00462 /**
00463  * @}
00464  */
00465 
00466 #endif /* __BLUENRG_ACI_CONST_H_ */
00467