1 /******************************************************************************
2  * @file    ble_std.h
3  * @author  MDG
4  * @brief   BLE standard definitions
5  ******************************************************************************
6  * @attention
7  *
8  * Copyright (c) 2018-2024 STMicroelectronics.
9  * All rights reserved.
10  *
11  * This software is licensed under terms that can be found in the LICENSE file
12  * in the root directory of this software component.
13  * If no LICENSE file comes with this software, it is provided AS-IS.
14  *
15  *****************************************************************************
16  */
17 
18 #ifndef BLE_STD_H__
19 #define BLE_STD_H__
20 
21 
22 /* HCI packet type */
23 #define HCI_COMMAND_PKT_TYPE             0x01U
24 #define HCI_ACLDATA_PKT_TYPE             0x02U
25 #define HCI_EVENT_PKT_TYPE               0x04U
26 #define HCI_ISODATA_PKT_TYPE             0x05U
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 #define HCI_ISODATA_HDR_SIZE             5
33 
34 /* HCI parameters length */
35 #define HCI_COMMAND_MAX_PARAM_LEN        255
36 #define HCI_ACLDATA_MAX_DATA_LEN         251  /* LE_ACL_Data_Packet_Length */
37 #define HCI_EVENT_MAX_PARAM_LEN          255
38 #define HCI_ISODATA_MAX_DATA_LEN         300  /* ISO_Data_Packet_Length */
39 
40 /* HCI packet maximum size */
41 #define HCI_COMMAND_PKT_MAX_SIZE \
42           (HCI_COMMAND_HDR_SIZE + HCI_COMMAND_MAX_PARAM_LEN)
43 #define HCI_ACLDATA_PKT_MAX_SIZE \
44           (HCI_ACLDATA_HDR_SIZE + HCI_ACLDATA_MAX_DATA_LEN)
45 #define HCI_EVENT_PKT_MAX_SIZE \
46           (HCI_EVENT_HDR_SIZE   + HCI_EVENT_MAX_PARAM_LEN)
47 #define HCI_ISODATA_PKT_MAX_SIZE \
48           (HCI_ISODATA_HDR_SIZE + HCI_ISODATA_MAX_DATA_LEN)
49 
50 /* HCI event code */
51 #define HCI_DISCONNECTION_COMPLETE_EVT_CODE                            0x05U
52 #define HCI_ENCRYPTION_CHANGE_EVT_CODE                                 0x08U
53 #define HCI_READ_REMOTE_VERSION_INFORMATION_COMPLETE_EVT_CODE          0x0CU
54 #define HCI_COMMAND_COMPLETE_EVT_CODE                                  0x0EU
55 #define HCI_COMMAND_STATUS_EVT_CODE                                    0x0FU
56 #define HCI_HARDWARE_ERROR_EVT_CODE                                    0x10U
57 #define HCI_NUMBER_OF_COMPLETED_PACKETS_EVT_CODE                       0x13U
58 #define HCI_DATA_BUFFER_OVERFLOW_EVT_CODE                              0x1AU
59 #define HCI_ENCRYPTION_KEY_REFRESH_COMPLETE_EVT_CODE                   0x30U
60 #define HCI_LE_META_EVT_CODE                                           0x3EU
61 #define HCI_AUTHENTICATED_PAYLOAD_TIMEOUT_EXPIRED_EVT_CODE             0x57U
62 #define HCI_VENDOR_SPECIFIC_DEBUG_EVT_CODE                             0xFFU
63 
64 /* HCI LE subevent code */
65 #define HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE                         0x01U
66 #define HCI_LE_ADVERTISING_REPORT_SUBEVT_CODE                          0x02U
67 #define HCI_LE_CONNECTION_UPDATE_COMPLETE_SUBEVT_CODE                  0x03U
68 #define HCI_LE_READ_REMOTE_FEATURES_COMPLETE_SUBEVT_CODE               0x04U
69 #define HCI_LE_LONG_TERM_KEY_REQUEST_SUBEVT_CODE                       0x05U
70 #define HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_SUBEVT_CODE         0x06U
71 #define HCI_LE_DATA_LENGTH_CHANGE_SUBEVT_CODE                          0x07U
72 #define HCI_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE_SUBEVT_CODE         0x08U
73 #define HCI_LE_GENERATE_DHKEY_COMPLETE_SUBEVT_CODE                     0x09U
74 #define HCI_LE_ENHANCED_CONNECTION_COMPLETE_SUBEVT_CODE                0x0AU
75 #define HCI_LE_DIRECTED_ADVERTISING_REPORT_SUBEVT_CODE                 0x0BU
76 #define HCI_LE_PHY_UPDATE_COMPLETE_SUBEVT_CODE                         0x0CU
77 #define HCI_LE_EXTENDED_ADVERTISING_REPORT_SUBEVT_CODE                 0x0DU
78 #define HCI_LE_PERIODIC_ADVERTISING_SYNC_ESTABLISHED_SUBEVT_CODE       0x0EU
79 #define HCI_LE_PERIODIC_ADVERTISING_REPORT_SUBEVT_CODE                 0x0FU
80 #define HCI_LE_PERIODIC_ADVERTISING_SYNC_LOST_SUBEVT_CODE              0x10U
81 #define HCI_LE_SCAN_TIMEOUT_SUBEVT_CODE                                0x11U
82 #define HCI_LE_ADVERTISING_SET_TERMINATED_SUBEVT_CODE                  0x12U
83 #define HCI_LE_SCAN_REQUEST_RECEIVED_SUBEVT_CODE                       0x13U
84 #define HCI_LE_CHANNEL_SELECTION_ALGORITHM_SUBEVT_CODE                 0x14U
85 #define HCI_LE_CONNECTIONLESS_IQ_REPORT_SUBEVT_CODE                    0x15U
86 #define HCI_LE_CONNECTION_IQ_REPORT_SUBEVT_CODE                        0x16U
87 #define HCI_LE_CTE_REQUEST_FAILED_SUBEVT_CODE                          0x17U
88 #define HCI_LE_PERIODIC_ADVERTISING_SYNC_TRANSFER_RECEIVED_SUBEVT_CODE 0x18U
89 #define HCI_LE_CIS_ESTABLISHED_SUBEVT_CODE                             0x19U
90 #define HCI_LE_CIS_REQUEST_SUBEVT_CODE                                 0x1AU
91 #define HCI_LE_CREATE_BIG_COMPLETE_SUBEVT_CODE                         0x1BU
92 #define HCI_LE_TERMINATE_BIG_COMPLETE_SUBEVT_CODE                      0x1CU
93 #define HCI_LE_BIG_SYNC_ESTABLISHED_SUBEVT_CODE                        0x1DU
94 #define HCI_LE_BIG_SYNC_LOST_SUBEVT_CODE                               0x1EU
95 #define HCI_LE_REQUEST_PEER_SCA_COMPLETE_SUBEVT_CODE                   0x1FU
96 #define HCI_LE_PATH_LOSS_THRESHOLD_SUBEVT_CODE                         0x20U
97 #define HCI_LE_TRANSMIT_POWER_REPORTING_SUBEVT_CODE                    0x21U
98 #define HCI_LE_BIGINFO_ADVERTISING_REPORT_SUBEVT_CODE                  0x22U
99 #define HCI_LE_SUBRATE_CHANGE_SUBEVT_CODE                              0x23U
100 
101 /* HCI error code */
102 #define HCI_SUCCESS_ERR_CODE                                           0x00U
103 #define HCI_UNKNOWN_HCI_COMMAND_ERR_CODE                               0x01U
104 #define HCI_UNKNOWN_CONNECTION_IDENTIFIER_ERR_CODE                     0x02U
105 #define HCI_HARDWARE_FAILURE_ERR_CODE                                  0x03U
106 #define HCI_AUTHENTICATION_FAILURE_ERR_CODE                            0x05U
107 #define HCI_PIN_OR_KEY_MISSING_ERR_CODE                                0x06U
108 #define HCI_MEMORY_CAPACITY_EXCEEDED_ERR_CODE                          0x07U
109 #define HCI_CONNECTION_TIMEOUT_ERR_CODE                                0x08U
110 #define HCI_CONNECTION_LIMIT_EXCEEDED_ERR_CODE                         0x09U
111 #define HCI_CONNECTION_ALREADY_EXISTS_ERR_CODE                         0x0BU
112 #define HCI_COMMAND_DISALLOWED_ERR_CODE                                0x0CU
113 #define HCI_UNSUPPORTED_FEATURE_OR_PARAMETER_VALUE_ERR_CODE            0x11U
114 #define HCI_INVALID_HCI_COMMAND_PARAMETERS_ERR_CODE                    0x12U
115 #define HCI_REMOTE_USER_TERMINATED_CONNECTION_ERR_CODE                 0x13U
116 #define HCI_REMOTE_TERMINATED_CONNECTION_DUE_TO_LOW_RESOURCES_ERR_CODE 0x14U
117 #define HCI_REMOTE_TERMINATED_CONNECTION_DUE_TO_POWER_OFF_ERR_CODE     0x15U
118 #define HCI_CONNECTION_TERMINATED_BY_LOCAL_HOST_ERR_CODE               0x16U
119 #define HCI_UNSUPPORTED_REMOTE_FEATURE_ERR_CODE                        0x1AU
120 #define HCI_INVALID_LL_PARAMETERS_ERR_CODE                             0x1EU
121 #define HCI_UNSPECIFIED_ERROR_ERR_CODE                                 0x1FU
122 #define HCI_UNSUPPORTED_LL_PARAMETER_VALUE_ERR_CODE                    0x20U
123 #define HCI_LL_RESPONSE_TIMEOUT_ERR_CODE                               0x22U
124 #define HCI_LL_PROCEDURE_COLLISION_ERR_CODE                            0x23U
125 #define HCI_LMP_PDU_NOT_ALLOWED_ERR_CODE                               0x24U
126 #define HCI_INSTANT_PASSED_ERR_CODE                                    0x28U
127 #define HCI_DIFFERENT_TRANSACTION_COLLISION_ERR_CODE                   0x2AU
128 #define HCI_PARAMETER_OUT_OF_MANDATORY_RANGE_ERR_CODE                  0x30U
129 #define HCI_HOST_BUSY_PAIRING_ERR_CODE                                 0x38U
130 #define HCI_CONTROLLER_BUSY_ERR_CODE                                   0x3AU
131 #define HCI_UNACCEPTABLE_CONNECTION_PARAMETERS_ERR_CODE                0x3BU
132 #define HCI_ADVERTISING_TIMEOUT_ERR_CODE                               0x3CU
133 #define HCI_CONNECTION_TERMINATED_DUE_TO_MIC_FAILURE_ERR_CODE          0x3DU
134 #define HCI_CONNECTION_FAILED_TO_BE_ESTABLISHED_ERR_CODE               0x3EU
135 #define HCI_UNKNOWN_ADVERTISING_IDENTIFIER_ERR_CODE                    0x42U
136 #define HCI_ADVERTISING_LIMIT_REACHED_ERR_CODE                         0x43U
137 #define HCI_PACKET_TOO_LONG_ERR_CODE                                   0x45U
138 
139 /* HCI_LE_Set_Advertising_Parameters: Advertising_Type */
140 #define HCI_ADV_TYPE_ADV_IND                           0x00U
141 #define HCI_ADV_TYPE_ADV_DIRECT_IND_HDC                0x01U
142 #define HCI_ADV_TYPE_ADV_SCAN_IND                      0x02U
143 #define HCI_ADV_TYPE_ADV_NONCONN_IND                   0x03U
144 #define HCI_ADV_TYPE_ADV_DIRECT_IND_LDC                0x04U
145 
146 /* HCI_LE_Set_Advertising_Parameters: Advertising_Filter_Policy */
147 #define HCI_ADV_FILTER_NO                              0x00U
148 #define HCI_ADV_FILTER_ACC_LIST_USED_FOR_SCAN          0x01U
149 #define HCI_ADV_FILTER_ACC_LIST_USED_FOR_CONNECT       0x02U
150 #define HCI_ADV_FILTER_ACC_LIST_USED_FOR_ALL           0x03U
151 
152 /* HCI_LE_Set_[Advertising/Scan]_Parameters: Own_Address_Type */
153 #define HCI_OWN_ADDR_TYPE_PUBLIC                       0x00U
154 #define HCI_OWN_ADDR_TYPE_RANDOM                       0x01U
155 #define HCI_OWN_ADDR_TYPE_RP_OR_PUBLIC                 0x02U
156 #define HCI_OWN_ADDR_TYPE_RP_OR_RANDOM                 0x03U
157 
158 /* HCI_LE_Set_Scan_Parameters: LE_Scan_Type */
159 #define HCI_SCAN_TYPE_PASSIVE                          0x00U
160 #define HCI_SCAN_TYPE_ACTIVE                           0x01U
161 
162 /* HCI_LE_Set_Scan_Parameters: Scanning_Filter_Policy */
163 #define HCI_SCAN_FILTER_NO                             0x00U
164 #define HCI_SCAN_FILTER_ACC_LIST_USED                  0x01U
165 #define HCI_SCAN_FILTER_NO_EXT                         0x02U
166 #define HCI_SCAN_FILTER_ACC_LIST_USED_EXT              0x03U
167 
168 /* HCI_LE_Create_Connection: Initiator_Filter_Policy */
169 #define HCI_INIT_FILTER_NO                             0x00U
170 #define HCI_INIT_FILTER_ACC_LIST_USED                  0x01U
171 
172 /* HCI_LE_Read_PHY: TX_PHY */
173 #define HCI_TX_PHY_LE_1M                               0x01U
174 #define HCI_TX_PHY_LE_2M                               0x02U
175 #define HCI_TX_PHY_LE_CODED                            0x03U
176 
177 /* HCI_LE_Read_PHY: RX_PHY */
178 #define HCI_RX_PHY_LE_1M                               0x01U
179 #define HCI_RX_PHY_LE_2M                               0x02U
180 #define HCI_RX_PHY_LE_CODED                            0x03U
181 
182 /* HCI_LE_Set_PHY: ALL_PHYS */
183 #define HCI_ALL_PHYS_TX_NO_PREF                        0x01U
184 #define HCI_ALL_PHYS_RX_NO_PREF                        0x02U
185 
186 /* HCI_LE_Set_PHY: TX_PHYS */
187 #define HCI_TX_PHYS_LE_1M_PREF                         0x01U
188 #define HCI_TX_PHYS_LE_2M_PREF                         0x02U
189 #define HCI_TX_PHYS_LE_CODED_PREF                      0x04U
190 
191 /* HCI_LE_Set_PHY: RX_PHYS */
192 #define HCI_RX_PHYS_LE_1M_PREF                         0x01U
193 #define HCI_RX_PHYS_LE_2M_PREF                         0x02U
194 #define HCI_RX_PHYS_LE_CODED_PREF                      0x04U
195 
196 /* HCI_LE_Set_Extended_Advertising_Parameters: Advertising_Event_Properties */
197 #define HCI_ADV_EVENT_PROP_CONNECTABLE                 0x0001U
198 #define HCI_ADV_EVENT_PROP_SCANNABLE                   0x0002U
199 #define HCI_ADV_EVENT_PROP_DIRECTED                    0x0004U
200 #define HCI_ADV_EVENT_PROP_HDC_DIRECTED                0x0008U
201 #define HCI_ADV_EVENT_PROP_LEGACY                      0x0010U
202 #define HCI_ADV_EVENT_PROP_ANONYMOUS                   0x0020U
203 #define HCI_ADV_EVENT_PROP_TXPOWER_INC                 0x0040U
204 
205 /* HCI_LE_Set_Extended_Advertising_Parameters: Primary_Advertising_PHY */
206 #define HCI_PRIMARY_ADV_PHY_LE_1M                      0x01U
207 #define HCI_PRIMARY_ADV_PHY_LE_CODED                   0x03U
208 
209 /* HCI_LE_Set_Extended_Advertising_Data: Operation */
210 #define HCI_SET_ADV_DATA_OPERATION_INTERMEDIATE        0x00U
211 #define HCI_SET_ADV_DATA_OPERATION_FIRST               0x01U
212 #define HCI_SET_ADV_DATA_OPERATION_LAST                0x02U
213 #define HCI_SET_ADV_DATA_OPERATION_COMPLETE            0x03U
214 #define HCI_SET_ADV_DATA_OPERATION_UNCHANGED           0x04U
215 
216 /* HCI_LE_Advertising_Report: Event_Type */
217 #define HCI_ADV_EVT_TYPE_ADV_IND                       0x00U
218 #define HCI_ADV_EVT_TYPE_ADV_DIRECT_IND                0x01U
219 #define HCI_ADV_EVT_TYPE_ADV_SCAN_IND                  0x02U
220 #define HCI_ADV_EVT_TYPE_ADV_NONCONN_IND               0x03U
221 #define HCI_ADV_EVT_TYPE_SCAN_RSP                      0x04U
222 
223 /* HCI_LE_Set_Extended_Scan_Parameters: Scanning_PHYs */
224 #define HCI_SCANNING_PHYS_LE_1M                        0x01U
225 #define HCI_SCANNING_PHYS_LE_CODED                     0x04U
226 
227 /* HCI_LE_Extended_Create_Connection: Initiating_PHYs */
228 #define HCI_INIT_PHYS_SCAN_CONN_LE_1M                  0x01U
229 #define HCI_INIT_PHYS_CONN_LE_2M                       0x02U
230 #define HCI_INIT_PHYS_SCAN_CONN_LE_CODED               0x04U
231 
232 /* HCI_LE_Receiver_Test/HCI_LE_Transmitter_Test [v2]: PHY */
233 #define HCI_TEST_PHY_LE_1M                             0x01U
234 #define HCI_TEST_PHY_LE_2M                             0x02U
235 
236 /* HCI_LE_Connection_Complete/HCI_LE_Enhanced_Connection_Complete: Role */
237 #define HCI_ROLE_CENTRAL                               0x00U
238 #define HCI_ROLE_PERIPHERAL                            0x01U
239 
240 /* HCI_LE_Set_Privacy_Mode: Privacy_Mode */
241 #define HCI_PRIV_MODE_NETWORK                          0x00U
242 #define HCI_PRIV_MODE_DEVICE                           0x01U
243 
244 /* Bluetooth Core Specification versions
245  */
246 #define BLE_CORE_5_2                                   11
247 #define BLE_CORE_5_3                                   12
248 #define BLE_CORE_5_4                                   13
249 
250 /* AD types for advertising data and scan response data
251  */
252 #define AD_TYPE_FLAGS                                  0x01U
253 #define AD_TYPE_16_BIT_SERV_UUID                       0x02U
254 #define AD_TYPE_16_BIT_SERV_UUID_CMPLT_LIST            0x03U
255 #define AD_TYPE_32_BIT_SERV_UUID                       0x04U
256 #define AD_TYPE_32_BIT_SERV_UUID_CMPLT_LIST            0x05U
257 #define AD_TYPE_128_BIT_SERV_UUID                      0x06U
258 #define AD_TYPE_128_BIT_SERV_UUID_CMPLT_LIST           0x07U
259 #define AD_TYPE_SHORTENED_LOCAL_NAME                   0x08U
260 #define AD_TYPE_COMPLETE_LOCAL_NAME                    0x09U
261 #define AD_TYPE_TX_POWER_LEVEL                         0x0AU
262 #define AD_TYPE_CLASS_OF_DEVICE                        0x0DU
263 #define AD_TYPE_SEC_MGR_TK_VALUE                       0x10U
264 #define AD_TYPE_SEC_MGR_OOB_FLAGS                      0x11U
265 #define AD_TYPE_PERIPHERAL_CONN_INTERVAL               0x12U
266 #define AD_TYPE_SERV_SOLICIT_16_BIT_UUID_LIST          0x14U
267 #define AD_TYPE_SERV_SOLICIT_128_BIT_UUID_LIST         0x15U
268 #define AD_TYPE_SERVICE_DATA                           0x16U
269 #define AD_TYPE_APPEARANCE                             0x19U
270 #define AD_TYPE_ADVERTISING_INTERVAL                   0x1AU
271 #define AD_TYPE_LE_ROLE                                0x1CU
272 #define AD_TYPE_SERV_SOLICIT_32_BIT_UUID_LIST          0x1FU
273 #define AD_TYPE_URI                                    0x24U
274 #define AD_TYPE_MANUFACTURER_SPECIFIC_DATA             0xFFU
275 
276 /* Flag bits for Flags AD Type
277  */
278 #define FLAG_BIT_LE_LIMITED_DISCOVERABLE_MODE          0x01U
279 #define FLAG_BIT_LE_GENERAL_DISCOVERABLE_MODE          0x02U
280 #define FLAG_BIT_BR_EDR_NOT_SUPPORTED                  0x04U
281 #define FLAG_BIT_LE_BR_EDR_CONTROLLER                  0x08U
282 #define FLAG_BIT_LE_BR_EDR_HOST                        0x10U
283 
284 /* Appearance values
285  */
286 #define GAP_APPEARANCE_UNKNOWN                                 0x0000
287 #define GAP_APPEARANCE_GENERIC_PHONE                           0x0040
288 #define GAP_APPEARANCE_GENERIC_COMPUTER                        0x0080
289 #define GAP_APPEARANCE_GENERIC_WATCH                           0x00C0
290 #define GAP_APPEARANCE_WATCH_SPORT_WATCH                       0x00C1
291 #define GAP_APPEARANCE_GENERIC_CLOCK                           0x0100
292 #define GAP_APPEARANCE_GENERIC_DISPLAY                         0x0140
293 #define GAP_APPEARANCE_GENERIC_REMOTE_CONTROL                  0x0180
294 #define GAP_APPEARANCE_GENERIC_EYE_GLASSES                     0x01C0
295 #define GAP_APPEARANCE_GENERIC_TAG                             0x0200
296 #define GAP_APPEARANCE_GENERIC_KEYRING                         0x0240
297 #define GAP_APPEARANCE_GENERIC_MEDIA_PLAYER                    0x0280
298 #define GAP_APPEARANCE_GENERIC_BARCODE_SCANNER                 0x02C0
299 #define GAP_APPEARANCE_GENERIC_THERMOMETER                     0x0300
300 #define GAP_APPEARANCE_THERMOMETER_EAR                         0x0301
301 #define GAP_APPEARANCE_GENERIC_HEART_RATE_SENSOR               0x0340
302 #define GAP_APPEARANCE_HEART_RATE_SENSOR_HEART_RATE_BELT       0x0341
303 #define GAP_APPEARANCE_GENERIC_BLOOD_PRESSURE                  0x0380
304 #define GAP_APPEARANCE_BLOOD_PRESSURE_ARM                      0x0381
305 #define GAP_APPEARANCE_BLOOD_PRESSURE_WRIST                    0x0382
306 #define GAP_APPEARANCE_HUMAN_INTERFACE_DEVICE                  0x03C0
307 #define GAP_APPEARANCE_KEYBOARD                                0x03C1
308 #define GAP_APPEARANCE_MOUSE                                   0x03C2
309 #define GAP_APPEARANCE_JOYSTICK                                0x03C3
310 #define GAP_APPEARANCE_GAMEPAD                                 0x03C4
311 #define GAP_APPEARANCE_DIGITIZER_TABLET                        0x03C5
312 #define GAP_APPEARANCE_CARD_READER                             0x03C6
313 #define GAP_APPEARANCE_DIGITAL_PEN                             0x03C7
314 #define GAP_APPEARANCE_BARCODE_SCANNER                         0x03C8
315 #define GAP_APPEARANCE_GENERIC_GLUCOSE_METER                   0x0400
316 #define GAP_APPEARANCE_GENERIC_RUNNING_WALKING_SENSOR          0x0440
317 #define GAP_APPEARANCE_RUNNING_WALKING_IN_SHOE                 0x0441
318 #define GAP_APPEARANCE_RUNNING_WALKING_ON_SHOE                 0x0442
319 #define GAP_APPEARANCE_RUNNING_WALKING_ON_HIP                  0x0443
320 #define GAP_APPEARANCE_GENERIC_CYCLING                         0x0480
321 #define GAP_APPEARANCE_CYCLING_CYCLING_COMPUTER                0x0481
322 #define GAP_APPEARANCE_CYCLING_SPEED_SENSOR                    0x0482
323 #define GAP_APPEARANCE_CYCLING_CADENCE_SENSOR                  0x0483
324 #define GAP_APPEARANCE_CYCLING_POWER_SENSOR                    0x0484
325 #define GAP_APPEARANCE_CYCLING_SPEED_AND_CADENCE_SENSOR        0x0485
326 #define GAP_APPEARANCE_GENERIC_PULSE_OXYMETER                  0x0C40
327 #define GAP_APPEARANCE_FINGERTIP                               0x0C41
328 #define GAP_APPEARANCE_WRIST_WORN                              0x0C42
329 #define GAP_APPEARANCE_GENERIC_WEIGHT_SCALE                    0x0C80
330 #define GAP_APPEARANCE_GENERIC_OUTDOOR_SPORT_ACTIVITY          0x1440
331 #define GAP_APPEARANCE_LOCATION_DISPLAY_DEVICE                 0x1441
332 #define GAP_APPEARANCE_LOCATION_AND_NAVIGATION_DISPLAY_DEVICE  0x1442
333 #define GAP_APPEARANCE_LOCATION_POD                            0x1443
334 #define GAP_APPEARANCE_LOCATION_AND_NAVIGATION_POD             0x1444
335 #define GAP_APPEARANCE_GENERIC_ENVIRONMENTAL_SENSOR            0x1640
336 
337 /* GATT UUIDs
338  */
339 #define GATT_SERVICE_UUID                        0x1801U
340 #define PRIMARY_SERVICE_UUID                     0x2800U
341 #define SECONDARY_SERVICE_UUID                   0x2801U
342 #define INCLUDE_SERVICE_UUID                     0x2802U
343 #define CHARACTERISTIC_UUID                      0x2803U
344 #define CHAR_EXTENDED_PROP_DESC_UUID             0x2900U
345 #define CHAR_USER_DESC_UUID                      0x2901U
346 #define CHAR_CLIENT_CONFIG_DESC_UUID             0x2902U
347 #define CHAR_SERVER_CONFIG_DESC_UUID             0x2903U
348 #define CHAR_FORMAT_DESC_UUID                    0x2904U
349 #define CHAR_AGGR_FMT_DESC_UUID                  0x2905U
350 #define SERVICE_CHANGED_UUID                     0x2A05U
351 #define CLIENT_SUPPORTED_FEATURES_UUID           0X2B29U
352 #define DATABASE_HASH_UUID                       0X2B2AU
353 #define SERVER_SUPPORTED_FEATURES_UUID           0X2B3AU
354 
355 /* GAP UUIDs
356  */
357 #define GAP_SERVICE_UUID                         0x1800U
358 #define DEVICE_NAME_UUID                         0x2A00U
359 #define APPEARANCE_UUID                          0x2A01U
360 #define PERIPHERAL_PREFERRED_CONN_PARAMS_UUID    0x2A04U
361 #define CENTRAL_ADDRESS_RESOLUTION_UUID          0x2AA6U
362 #define RESOLVABLE_PRIVATE_ADDRESS_ONLY_UUID     0x2AC9U
363 #define ENCRYPTED_DATA_KEY_MATERIAL_UUID         0x2B88U
364 #define LE_GATT_SECURITY_LEVELS_UUID             0x2BF5U
365 
366 
367 #endif /* BLE_STD_H__ */
368