Welcome to mirror list, hosted at ThFree Co, Russian Federation.

ble_std.h « core « ble « STM32_WPAN « ST « Middlewares - github.com/Flipper-Zero/STM32CubeWB.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: eb40ed0fedfc5aa062ba8e19017304725d2b8137 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
/******************************************************************************
 * @file    ble_std.h
 * @author  MCD
 * @brief   BLE standard definitions
 ******************************************************************************
 * @attention
 *
 * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
 * All rights reserved.</center></h2>
 *
 * This software component is licensed by ST under Ultimate Liberty license
 * SLA0044, the "License"; You may not use this file except in compliance with
 * the License. You may obtain a copy of the License at:
 *                             www.st.com/SLA0044
 *
 ******************************************************************************
 */

#ifndef BLE_STD_H__
#define BLE_STD_H__


/* HCI packet type */
#define HCI_COMMAND_PKT_TYPE             0x01U
#define HCI_ACLDATA_PKT_TYPE             0x02U
#define HCI_EVENT_PKT_TYPE               0x04U

/* HCI packet header size */
#define HCI_COMMAND_HDR_SIZE             4
#define HCI_ACLDATA_HDR_SIZE             5
#define HCI_EVENT_HDR_SIZE               3

/* HCI parameters length */
#define HCI_COMMAND_MAX_PARAM_LEN        255
#define HCI_ACLDATA_MAX_DATA_LEN         251  /* HC_LE_Data_Packet_Length */
#define HCI_EVENT_MAX_PARAM_LEN          255

/* HCI packet maximum size */
#define HCI_COMMAND_PKT_MAX_SIZE \
            (HCI_COMMAND_HDR_SIZE + HCI_COMMAND_MAX_PARAM_LEN)
#define HCI_ACLDATA_PKT_MAX_SIZE \
            (HCI_ACLDATA_HDR_SIZE + HCI_ACLDATA_MAX_DATA_LEN)
#define HCI_EVENT_PKT_MAX_SIZE \
            (HCI_EVENT_HDR_SIZE   + HCI_EVENT_MAX_PARAM_LEN)

/* HCI event code */
#define HCI_DISCONNECTION_COMPLETE_EVT_CODE                    0x05U
#define HCI_ENCRYPTION_CHANGE_EVT_CODE                         0x08U
#define HCI_READ_REMOTE_VERSION_INFORMATION_COMPLETE_EVT_CODE  0x0CU
#define HCI_COMMAND_COMPLETE_EVT_CODE                          0x0EU
#define HCI_COMMAND_STATUS_EVT_CODE                            0x0FU
#define HCI_HARDWARE_ERROR_EVT_CODE                            0x10U
#define HCI_NUMBER_OF_COMPLETED_PACKETS_EVT_CODE               0x13U
#define HCI_DATA_BUFFER_OVERFLOW_EVT_CODE                      0x1AU
#define HCI_ENCRYPTION_KEY_REFRESH_COMPLETE_EVT_CODE           0x30U
#define HCI_LE_META_EVT_CODE                                   0x3EU
#define HCI_VENDOR_SPECIFIC_DEBUG_EVT_CODE                     0xFFU

/* HCI LE subevent code */
#define HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE                 0x01U
#define HCI_LE_ADVERTISING_REPORT_SUBEVT_CODE                  0x02U
#define HCI_LE_CONNECTION_UPDATE_COMPLETE_SUBEVT_CODE          0x03U
#define HCI_LE_READ_REMOTE_FEATURES_COMPLETE_SUBEVT_CODE       0x04U
#define HCI_LE_LONG_TERM_KEY_REQUEST_SUBEVT_CODE               0x05U
#define HCI_LE_DATA_LENGTH_CHANGE_SUBEVT_CODE                  0x07U
#define HCI_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE_SUBEVT_CODE 0x08U
#define HCI_LE_GENERATE_DHKEY_COMPLETE_SUBEVT_CODE             0x09U
#define HCI_LE_ENHANCED_CONNECTION_COMPLETE_SUBEVT_CODE        0x0AU
#define HCI_LE_DIRECT_ADVERTISING_REPORT_SUBEVT_CODE           0x0BU
#define HCI_LE_PHY_UPDATE_COMPLETE_SUBEVT_CODE                 0x0CU
#define HCI_LE_EXTENDED_ADVERTISING_REPORT_SUBEVT_CODE         0x0DU
#define HCI_LE_SCAN_TIMEOUT_SUBEVT_CODE                        0x11U
#define HCI_LE_ADVERTISING_SET_TERMINATED_SUBEVT_CODE          0x12U
#define HCI_LE_SCAN_REQUEST_RECEIVED_SUBEVT_CODE               0x13U

/* HCI error code */
#define HCI_SUCCESS_ERR_CODE                                   0x00U
#define HCI_UNKNOWN_HCI_COMMAND_ERR_CODE                       0x01U
#define HCI_UNKNOWN_CONNECTION_IDENTIFIER_ERR_CODE             0x02U
#define HCI_AUTHENTICATION_FAILURE_ERR_CODE                    0x05U
#define HCI_PIN_OR_KEY_MISSING_ERR_CODE                        0x06U
#define HCI_MEMORY_CAPACITY_EXCEEDED_ERR_CODE                  0x07U
#define HCI_CONNECTION_TIMEOUT_ERR_CODE                        0x08U
#define HCI_COMMAND_DISALLOWED_ERR_CODE                        0x0CU
#define HCI_UNSUPPORTED_FEATURE_OR_PARAMETER_VALUE_ERR_CODE    0x11U
#define HCI_INVALID_HCI_COMMAND_PARAMETERS_ERR_CODE            0x12U
#define HCI_REMOTE_USER_TERMINATED_CONNECTION_ERR_CODE         0x13U
#define HCI_CONNECTION_TERMINATED_BY_LOCAL_HOST_ERR_CODE       0x16U
#define HCI_LMP_FEATURE_ERR_CODE                               0x1AU
#define HCI_INVALID_LL_PARAMETERS_ERR_CODE                     0x1EU
#define HCI_UNSPECIFIED_ERROR_ERR_CODE                         0x1FU
#define HCI_LL_RESPONSE_TIMEOUT_ERR_CODE                       0x22U
#define HCI_LL_PROCEDURE_COLLISION_ERR_CODE                    0x23U
#define HCI_LMP_PDU_NOT_ALLOWED_ERR_CODE                       0x24U
#define HCI_INSTANT_PASSED_ERR_CODE                            0x28U
#define HCI_DIFFERENT_TRANSACTION_COLLISION_ERR_CODE           0x2AU
#define HCI_PARAMETER_OUT_OF_MANDATORY_RANGE_ERR_CODE          0x30U
#define HCI_HOST_BUSY_PAIRING_ERR_CODE                         0x38U
#define HCI_CONTROLLER_BUSY_ERR_CODE                           0x3AU
#define HCI_ADVERTISING_TIMEOUT_ERR_CODE                       0x3CU
#define HCI_CONNECTION_TERMINATED_DUE_TO_MIC_FAILURE_ERR_CODE  0x3DU
#define HCI_CONNECTION_FAILED_TO_BE_ESTABLISHED_ERR_CODE       0x3EU

/* HCI_LE_Read_PHY */
#define HCI_TX_PHY_LE_1M                          0x01U
#define HCI_TX_PHY_LE_2M                          0x02U
#define HCI_TX_PHY_LE_CODED                       0x03U
#define HCI_RX_PHY_LE_1M                          0x01U
#define HCI_RX_PHY_LE_2M                          0x02U
#define HCI_RX_PHY_LE_CODED                       0x03U

/* HCI_LE_Set_PHY */
#define HCI_ALL_PHYS_TX_NO_PREF                   0x01U
#define HCI_ALL_PHYS_RX_NO_PREF                   0x02U
#define HCI_TX_PHYS_LE_1M_PREF                    0x01U
#define HCI_TX_PHYS_LE_2M_PREF                    0x02U
#define HCI_TX_PHYS_LE_CODED_PREF                 0x04U
#define HCI_RX_PHYS_LE_1M_PREF                    0x01U
#define HCI_RX_PHYS_LE_2M_PREF                    0x02U
#define HCI_RX_PHYS_LE_CODED_PREF                 0x04U

/* HCI_LE_Advertising_Report */
#define HCI_ADV_EVT_TYPE_ADV_IND                  0x00U
#define HCI_ADV_EVT_TYPE_ADV_DIRECT_IND           0x01U
#define HCI_ADV_EVT_TYPE_ADV_SCAN_IND             0x02U
#define HCI_ADV_EVT_TYPE_ADV_NONCONN_IND          0x03U
#define HCI_ADV_EVT_TYPE_SCAN_RSP                 0x04U

/* HCI_LE_Set_Advertising_Parameters */
#define HCI_ADV_TYPE_ADV_IND                      0x00U
#define HCI_ADV_TYPE_ADV_DIRECT_IND_HDC           0x01U
#define HCI_ADV_TYPE_ADV_SCAN_IND                 0x02U
#define HCI_ADV_TYPE_ADV_NONCONN_IND              0x03U
#define HCI_ADV_TYPE_ADV_DIRECT_IND_LDC           0x04U

/* HCI_LE_Set_Scan_Parameters */
#define HCI_SCAN_FILTER_NO                        0x00U
#define HCI_SCAN_FILTER_WHITELIST                 0x01U
#define HCI_SCAN_FILTER_NO_EVEN_RPA               0x02U
#define HCI_SCAN_FILTER_WHITELIST_BUT_RPA         0x03U


#endif /* BLE_STD_H__ */

/*********************** (C) COPYRIGHT STMicroelectronics *****END OF FILE****/