xref: /btstack/port/stm32-wb55xx-nucleo-freertos/Middlewares/STM32_WPAN/ble/core/ble_std.h (revision 0561b2d8d5dba972c7daa57d5e677f7a1327edfd)
1 /******************************************************************************
2  * @file    ble_std.h
3  * @author  MCD Application Team
4  * @brief   BLE standard definitions
5  ******************************************************************************
6  * @attention
7  *
8  * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
9  * All rights reserved.</center></h2>
10  *
11  * This software component is licensed by ST under Ultimate Liberty license
12  * SLA0044, the "License"; You may not use this file except in compliance with
13  * the License. You may obtain a copy of the License at:
14  *                             www.st.com/SLA0044
15  *
16  ******************************************************************************
17  */
18 
19 #ifndef BLE_STD_H__
20 #define BLE_STD_H__
21 
22 
23 /* HCI packet type */
24 #define HCI_COMMAND_PKT_TYPE             0x01
25 #define HCI_ACLDATA_PKT_TYPE             0x02
26 #define HCI_EVENT_PKT_TYPE               0x04
27 
28 /* HCI packet header size */
29 #define HCI_COMMAND_HDR_SIZE             4
30 #define HCI_ACLDATA_HDR_SIZE             5
31 #define HCI_EVENT_HDR_SIZE               3
32 
33 /* HCI parameters length */
34 #define HCI_COMMAND_MAX_PARAM_LEN        255
35 #define HCI_ACLDATA_MAX_DATA_LEN         251  /* HC_LE_Data_Packet_Length */
36 #define HCI_EVENT_MAX_PARAM_LEN          255
37 
38 /* HCI packet maximum size */
39 #define HCI_COMMAND_PKT_MAX_SIZE \
40             (HCI_COMMAND_HDR_SIZE + HCI_COMMAND_MAX_PARAM_LEN)
41 #define HCI_ACLDATA_PKT_MAX_SIZE \
42             (HCI_ACLDATA_HDR_SIZE + HCI_ACLDATA_MAX_DATA_LEN)
43 #define HCI_EVENT_PKT_MAX_SIZE \
44             (HCI_EVENT_HDR_SIZE   + HCI_EVENT_MAX_PARAM_LEN)
45 
46 /* HCI event code */
47 #define HCI_DISCONNECTION_COMPLETE_EVT_CODE                    0x05
48 #define HCI_ENCRYPTION_CHANGE_EVT_CODE                         0x08
49 #define HCI_READ_REMOTE_VERSION_INFORMATION_COMPLETE_EVT_CODE  0x0C
50 #define HCI_COMMAND_COMPLETE_EVT_CODE                          0x0E
51 #define HCI_COMMAND_STATUS_EVT_CODE                            0x0F
52 #define HCI_HARDWARE_ERROR_EVT_CODE                            0x10
53 #define HCI_NUMBER_OF_COMPLETED_PACKETS_EVT_CODE               0x13
54 #define HCI_DATA_BUFFER_OVERFLOW_EVT_CODE                      0x1A
55 #define HCI_ENCRYPTION_KEY_REFRESH_COMPLETE_EVT_CODE           0x30
56 #define HCI_LE_META_EVT_CODE                                   0x3E
57 #define HCI_VENDOR_SPECIFIC_DEBUG_EVT_CODE                     0xFF
58 
59 /* HCI error code */
60 #define HCI_SUCCESS_ERR_CODE                                   0x00
61 #define HCI_UNKNOWN_HCI_COMMAND_ERR_CODE                       0x01
62 #define HCI_UNKNOWN_CONNECTION_IDENTIFIER_ERR_CODE             0x02
63 #define HCI_AUTHENTICATION_FAILURE_ERR_CODE                    0x05
64 #define HCI_PIN_OR_KEY_MISSING_ERR_CODE                        0x06
65 #define HCI_MEMORY_CAPACITY_EXCEEDED_ERR_CODE                  0x07
66 #define HCI_CONNECTION_TIMEOUT_ERR_CODE                        0x08
67 #define HCI_COMMAND_DISALLOWED_ERR_CODE                        0x0C
68 #define HCI_UNSUPPORTED_FEATURE_OR_PARAMETER_VALUE_ERR_CODE    0x11
69 #define HCI_INVALID_HCI_COMMAND_PARAMETERS_ERR_CODE            0x12
70 #define HCI_REMOTE_USER_TERMINATED_CONNECTION_ERR_CODE         0x13
71 #define HCI_CONNECTION_TERMINATED_BY_LOCAL_HOST_ERR_CODE       0x16
72 #define HCI_LMP_FEATURE_ERR_CODE                               0x1A
73 #define HCI_INVALID_LL_PARAMETERS_ERR_CODE                     0x1E
74 #define HCI_UNSPECIFIED_ERROR_ERR_CODE                         0x1F
75 #define HCI_LL_RESPONSE_TIMEOUT_ERR_CODE                       0x22
76 #define HCI_LL_PROCEDURE_COLLISION_ERR_CODE                    0x23
77 #define HCI_LMP_PDU_NOT_ALLOWED_ERR_CODE                       0x24
78 #define HCI_INSTANT_PASSED_ERR_CODE                            0x28
79 #define HCI_DIFFERENT_TRANSACTION_COLLISION_ERR_CODE           0x2A
80 #define HCI_PARAMETER_OUT_OF_MANDATORY_RANGE_ERR_CODE          0x30
81 #define HCI_HOST_BUSY_PAIRING_ERR_CODE                         0x38
82 #define HCI_CONTROLLER_BUSY_ERR_CODE                           0x3A
83 #define HCI_ADVERTISING_TIMEOUT_ERR_CODE                       0x3C
84 #define HCI_CONNECTION_TERMINATED_DUE_TO_MIC_FAILURE_ERR_CODE  0x3D
85 #define HCI_CONNECTION_FAILED_TO_BE_ESTABLISHED_ERR_CODE       0x3E
86 
87 /* HCI_LE_Read_PHY */
88 #define HCI_TX_PHY_LE_1M                 0x01
89 #define HCI_TX_PHY_LE_2M                 0x02
90 #define HCI_TX_PHY_LE_CODED              0x03
91 #define HCI_RX_PHY_LE_1M                 0x01
92 #define HCI_RX_PHY_LE_2M                 0x02
93 #define HCI_RX_PHY_LE_CODED              0x03
94 
95 /* HCI_LE_Set_PHY */
96 #define HCI_ALL_PHYS_TX_NO_PREF          0x01
97 #define HCI_ALL_PHYS_RX_NO_PREF          0x02
98 #define HCI_TX_PHYS_LE_1M_PREF           0x01
99 #define HCI_TX_PHYS_LE_2M_PREF           0x02
100 #define HCI_TX_PHYS_LE_CODED_PREF        0x04
101 #define HCI_RX_PHYS_LE_1M_PREF           0x01
102 #define HCI_RX_PHYS_LE_2M_PREF           0x02
103 #define HCI_RX_PHYS_LE_CODED_PREF        0x04
104 
105 
106 #endif /* BLE_STD_H__ */
107 
108 /*********************** (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
109