Skip to main content

android_ble/
btuuid.rs

1//! `Uuid` extensions for Bluetooth UUIDs.
2
3use crate::Uuid;
4
5/// This is the Bluetooth Base UUID. It is used with 16-bit and 32-bit UUIDs
6/// [defined](https://www.bluetooth.com/specifications/assigned-numbers/) by the Bluetooth SIG.
7pub const BLUETOOTH_BASE_UUID: u128 = 0x00000000_0000_1000_8000_00805f9b34fb;
8
9/// Const function to create a 16-bit Bluetooth UUID
10#[must_use]
11pub const fn bluetooth_uuid_from_u16(uuid: u16) -> Uuid {
12    Uuid::from_u128(((uuid as u128) << 96) | BLUETOOTH_BASE_UUID)
13}
14
15/// Const function to create a 32-bit Bluetooth UUID
16#[must_use]
17pub const fn bluetooth_uuid_from_u32(uuid: u32) -> Uuid {
18    Uuid::from_u128(((uuid as u128) << 96) | BLUETOOTH_BASE_UUID)
19}
20
21/// Extension trait for [`Uuid`] with helper methods for dealing with Bluetooth 16-bit and 32-bit UUIDs
22pub trait BluetoothUuidExt: private::Sealed {
23    /// Creates a 16-bit Bluetooth UUID
24    fn from_u16(uuid: u16) -> Self;
25
26    /// Creates a 32-bit Bluetooth UUID
27    fn from_u32(uuid: u32) -> Self;
28
29    /// Creates a UUID from `bytes`
30    ///
31    /// # Panics
32    ///
33    /// Panics if `bytes.len()` is not one of 2, 4, or 16
34    fn from_bluetooth_bytes(bytes: &[u8]) -> Self;
35
36    /// Returns `true` if self is a valid 16-bit Bluetooth UUID
37    fn is_u16_uuid(&self) -> bool;
38
39    /// Returns `true` if self is a valid 32-bit Bluetooth UUID
40    fn is_u32_uuid(&self) -> bool;
41
42    /// Tries to convert self into a 16-bit Bluetooth UUID
43    fn try_to_u16(&self) -> Option<u16>;
44
45    /// Tries to convert self into a 32-bit Bluetooth UUID
46    fn try_to_u32(&self) -> Option<u32>;
47
48    /// Returns a slice of octets representing the UUID. If the UUID is a valid 16- or 32-bit Bluetooth UUID, the
49    /// returned slice will be 2 or 4 octets long, respectively. Otherwise the slice will be 16-octets in length.
50    fn as_bluetooth_bytes(&self) -> &[u8];
51}
52
53impl BluetoothUuidExt for Uuid {
54    fn from_u16(uuid: u16) -> Self {
55        bluetooth_uuid_from_u16(uuid)
56    }
57
58    fn from_u32(uuid: u32) -> Self {
59        bluetooth_uuid_from_u32(uuid)
60    }
61
62    fn from_bluetooth_bytes(bytes: &[u8]) -> Self {
63        bytes
64            .try_into()
65            .map(|x| Self::from_u16(u16::from_be_bytes(x)))
66            .or_else(|_| {
67                bytes
68                    .try_into()
69                    .map(|x| Self::from_u32(u32::from_be_bytes(x)))
70            })
71            .or_else(|_| bytes.try_into().map(Self::from_bytes))
72            .expect("invalid slice length for bluetooth UUID")
73    }
74
75    fn is_u16_uuid(&self) -> bool {
76        self.try_to_u16().is_some()
77    }
78
79    fn is_u32_uuid(&self) -> bool {
80        let u = self.as_u128();
81        (u & ((1 << 96) - 1)) == BLUETOOTH_BASE_UUID
82    }
83
84    fn try_to_u16(&self) -> Option<u16> {
85        self.try_to_u32().and_then(|x| x.try_into().ok())
86    }
87
88    fn try_to_u32(&self) -> Option<u32> {
89        let u = self.as_u128();
90        self.is_u32_uuid().then_some((u >> 96) as u32)
91    }
92
93    fn as_bluetooth_bytes(&self) -> &[u8] {
94        let bytes = self.as_bytes();
95        if self.is_u16_uuid() {
96            &bytes[2..4]
97        } else if self.is_u32_uuid() {
98            &bytes[0..4]
99        } else {
100            &bytes[..]
101        }
102    }
103}
104
105mod private {
106    use crate::Uuid;
107
108    pub trait Sealed {}
109
110    impl Sealed for Uuid {}
111}
112
113/// Bluetooth GATT Service 16-bit UUIDs
114#[allow(missing_docs)]
115pub mod services {
116    use super::bluetooth_uuid_from_u16;
117    use crate::Uuid;
118
119    pub const GENERIC_ACCESS: Uuid = bluetooth_uuid_from_u16(0x1800);
120    pub const GENERIC_ATTRIBUTE: Uuid = bluetooth_uuid_from_u16(0x1801);
121    pub const IMMEDIATE_ALERT: Uuid = bluetooth_uuid_from_u16(0x1802);
122    pub const LINK_LOSS: Uuid = bluetooth_uuid_from_u16(0x1803);
123    pub const TX_POWER: Uuid = bluetooth_uuid_from_u16(0x1804);
124    pub const CURRENT_TIME: Uuid = bluetooth_uuid_from_u16(0x1805);
125    pub const REFERENCE_TIME_UPDATE: Uuid = bluetooth_uuid_from_u16(0x1806);
126    pub const NEXT_DST_CHANGE: Uuid = bluetooth_uuid_from_u16(0x1807);
127    pub const GLUCOSE: Uuid = bluetooth_uuid_from_u16(0x1808);
128    pub const HEALTH_THERMOMETER: Uuid = bluetooth_uuid_from_u16(0x1809);
129    pub const DEVICE_INFORMATION: Uuid = bluetooth_uuid_from_u16(0x180A);
130    pub const HEART_RATE: Uuid = bluetooth_uuid_from_u16(0x180D);
131    pub const PHONE_ALERT_STATUS: Uuid = bluetooth_uuid_from_u16(0x180E);
132    pub const BATTERY: Uuid = bluetooth_uuid_from_u16(0x180F);
133    pub const BLOOD_PRESSURE: Uuid = bluetooth_uuid_from_u16(0x1810);
134    pub const ALERT_NOTIFICATION: Uuid = bluetooth_uuid_from_u16(0x1811);
135    pub const HUMAN_INTERFACE_DEVICE: Uuid = bluetooth_uuid_from_u16(0x1812);
136    pub const SCAN_PARAMETERS: Uuid = bluetooth_uuid_from_u16(0x1813);
137    pub const RUNNING_SPEED_AND_CADENCE: Uuid = bluetooth_uuid_from_u16(0x1814);
138    pub const AUTOMATION_IO: Uuid = bluetooth_uuid_from_u16(0x1815);
139    pub const CYCLING_SPEED_AND_CADENCE: Uuid = bluetooth_uuid_from_u16(0x1816);
140    pub const CYCLING_POWER: Uuid = bluetooth_uuid_from_u16(0x1818);
141    pub const LOCATION_AND_NAVIGATION: Uuid = bluetooth_uuid_from_u16(0x1819);
142    pub const ENVIRONMENTAL_SENSING: Uuid = bluetooth_uuid_from_u16(0x181A);
143    pub const BODY_COMPOSITION: Uuid = bluetooth_uuid_from_u16(0x181B);
144    pub const USER_DATA: Uuid = bluetooth_uuid_from_u16(0x181C);
145    pub const WEIGHT_SCALE: Uuid = bluetooth_uuid_from_u16(0x181D);
146    pub const BOND_MANAGEMENT: Uuid = bluetooth_uuid_from_u16(0x181E);
147    pub const CONTINUOUS_GLUCOSE_MONITORING: Uuid = bluetooth_uuid_from_u16(0x181F);
148    pub const INTERNET_PROTOCOL_SUPPORT: Uuid = bluetooth_uuid_from_u16(0x1820);
149    pub const INDOOR_POSITIONING: Uuid = bluetooth_uuid_from_u16(0x1821);
150    pub const PULSE_OXIMETER: Uuid = bluetooth_uuid_from_u16(0x1822);
151    pub const HTTP_PROXY: Uuid = bluetooth_uuid_from_u16(0x1823);
152    pub const TRANSPORT_DISCOVERY: Uuid = bluetooth_uuid_from_u16(0x1824);
153    pub const OBJECT_TRANSFER: Uuid = bluetooth_uuid_from_u16(0x1825);
154    pub const FITNESS_MACHINE: Uuid = bluetooth_uuid_from_u16(0x1826);
155    pub const MESH_PROVISIONING: Uuid = bluetooth_uuid_from_u16(0x1827);
156    pub const MESH_PROXY: Uuid = bluetooth_uuid_from_u16(0x1828);
157    pub const RECONNECTION_CONFIGURATION: Uuid = bluetooth_uuid_from_u16(0x1829);
158    pub const INSULIN_DELIVERY: Uuid = bluetooth_uuid_from_u16(0x183A);
159    pub const BINARY_SENSOR: Uuid = bluetooth_uuid_from_u16(0x183B);
160    pub const EMERGENCY_CONFIGURATION: Uuid = bluetooth_uuid_from_u16(0x183C);
161    pub const PHYSICAL_ACTIVITY_MONITOR: Uuid = bluetooth_uuid_from_u16(0x183E);
162    pub const AUDIO_INPUT_CONTROL: Uuid = bluetooth_uuid_from_u16(0x1843);
163    pub const VOLUME_CONTROL: Uuid = bluetooth_uuid_from_u16(0x1844);
164    pub const VOLUME_OFFSET_CONTROL: Uuid = bluetooth_uuid_from_u16(0x1845);
165    pub const COORDINATED_SET_IDENTIFICATION: Uuid = bluetooth_uuid_from_u16(0x1846);
166    pub const DEVICE_TIME: Uuid = bluetooth_uuid_from_u16(0x1847);
167    pub const MEDIA_CONTROL: Uuid = bluetooth_uuid_from_u16(0x1848);
168    pub const GENERIC_MEDIA_CONTROL: Uuid = bluetooth_uuid_from_u16(0x1849);
169    pub const CONSTANT_TONE_EXTENSION: Uuid = bluetooth_uuid_from_u16(0x184A);
170    pub const TELEPHONE_BEARER: Uuid = bluetooth_uuid_from_u16(0x184B);
171    pub const GENERIC_TELEPHONE_BEARER: Uuid = bluetooth_uuid_from_u16(0x184C);
172    pub const MICROPHONE_CONTROL: Uuid = bluetooth_uuid_from_u16(0x184D);
173    pub const AUDIO_STREAM_CONTROL: Uuid = bluetooth_uuid_from_u16(0x184E);
174    pub const BROADCAST_AUDIO_SCAN: Uuid = bluetooth_uuid_from_u16(0x184F);
175    pub const PUBLISHED_AUDIO_CAPABILITIES: Uuid = bluetooth_uuid_from_u16(0x1850);
176    pub const BASIC_AUDIO_ANNOUNCEMENT: Uuid = bluetooth_uuid_from_u16(0x1851);
177    pub const BROADCAST_AUDIO_ANNOUNCEMENT: Uuid = bluetooth_uuid_from_u16(0x1852);
178    pub const COMMON_AUDIO: Uuid = bluetooth_uuid_from_u16(0x1853);
179    pub const HEARING_ACCESS: Uuid = bluetooth_uuid_from_u16(0x1854);
180    pub const TMAS: Uuid = bluetooth_uuid_from_u16(0x1855);
181    pub const PUBLIC_BROADCAST_ANNOUNCEMENT: Uuid = bluetooth_uuid_from_u16(0x1856);
182}
183
184/// Bluetooth GATT Characteristic 16-bit UUIDs
185#[allow(missing_docs)]
186pub mod characteristics {
187    use super::bluetooth_uuid_from_u16;
188    use crate::Uuid;
189
190    pub const DEVICE_NAME: Uuid = bluetooth_uuid_from_u16(0x2A00);
191    pub const APPEARANCE: Uuid = bluetooth_uuid_from_u16(0x2A01);
192    pub const PERIPHERAL_PRIVACY_FLAG: Uuid = bluetooth_uuid_from_u16(0x2A02);
193    pub const RECONNECTION_ADDRESS: Uuid = bluetooth_uuid_from_u16(0x2A03);
194    pub const PERIPHERAL_PREFERRED_CONNECTION_PARAMETERS: Uuid = bluetooth_uuid_from_u16(0x2A04);
195    pub const SERVICE_CHANGED: Uuid = bluetooth_uuid_from_u16(0x2A05);
196    pub const ALERT_LEVEL: Uuid = bluetooth_uuid_from_u16(0x2A06);
197    pub const TX_POWER_LEVEL: Uuid = bluetooth_uuid_from_u16(0x2A07);
198    pub const DATE_TIME: Uuid = bluetooth_uuid_from_u16(0x2A08);
199    pub const DAY_OF_WEEK: Uuid = bluetooth_uuid_from_u16(0x2A09);
200    pub const DAY_DATE_TIME: Uuid = bluetooth_uuid_from_u16(0x2A0A);
201    pub const EXACT_TIME_256: Uuid = bluetooth_uuid_from_u16(0x2A0C);
202    pub const DST_OFFSET: Uuid = bluetooth_uuid_from_u16(0x2A0D);
203    pub const TIME_ZONE: Uuid = bluetooth_uuid_from_u16(0x2A0E);
204    pub const LOCAL_TIME_INFORMATION: Uuid = bluetooth_uuid_from_u16(0x2A0F);
205    pub const TIME_WITH_DST: Uuid = bluetooth_uuid_from_u16(0x2A11);
206    pub const TIME_ACCURACY: Uuid = bluetooth_uuid_from_u16(0x2A12);
207    pub const TIME_SOURCE: Uuid = bluetooth_uuid_from_u16(0x2A13);
208    pub const REFERENCE_TIME_INFORMATION: Uuid = bluetooth_uuid_from_u16(0x2A14);
209    pub const TIME_UPDATE_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2A16);
210    pub const TIME_UPDATE_STATE: Uuid = bluetooth_uuid_from_u16(0x2A17);
211    pub const GLUCOSE_MEASUREMENT: Uuid = bluetooth_uuid_from_u16(0x2A18);
212    pub const BATTERY_LEVEL: Uuid = bluetooth_uuid_from_u16(0x2A19);
213    pub const TEMPERATURE_MEASUREMENT: Uuid = bluetooth_uuid_from_u16(0x2A1C);
214    pub const TEMPERATURE_TYPE: Uuid = bluetooth_uuid_from_u16(0x2A1D);
215    pub const INTERMEDIATE_TEMPERATURE: Uuid = bluetooth_uuid_from_u16(0x2A1E);
216    pub const MEASUREMENT_INTERVAL: Uuid = bluetooth_uuid_from_u16(0x2A21);
217    pub const BOOT_KEYBOARD_INPUT_REPORT: Uuid = bluetooth_uuid_from_u16(0x2A22);
218    pub const SYSTEM_ID: Uuid = bluetooth_uuid_from_u16(0x2A23);
219    pub const MODEL_NUMBER_STRING: Uuid = bluetooth_uuid_from_u16(0x2A24);
220    pub const SERIAL_NUMBER_STRING: Uuid = bluetooth_uuid_from_u16(0x2A25);
221    pub const FIRMWARE_REVISION_STRING: Uuid = bluetooth_uuid_from_u16(0x2A26);
222    pub const HARDWARE_REVISION_STRING: Uuid = bluetooth_uuid_from_u16(0x2A27);
223    pub const SOFTWARE_REVISION_STRING: Uuid = bluetooth_uuid_from_u16(0x2A28);
224    pub const MANUFACTURER_NAME_STRING: Uuid = bluetooth_uuid_from_u16(0x2A29);
225    pub const IEEE_11073_20601_REGULATORY_CERTIFICATION_DATA_LIST: Uuid =
226        bluetooth_uuid_from_u16(0x2A2A);
227    pub const CURRENT_TIME: Uuid = bluetooth_uuid_from_u16(0x2A2B);
228    pub const SCAN_REFRESH: Uuid = bluetooth_uuid_from_u16(0x2A31);
229    pub const BOOT_KEYBOARD_OUTPUT_REPORT: Uuid = bluetooth_uuid_from_u16(0x2A32);
230    pub const BOOT_MOUSE_INPUT_REPORT: Uuid = bluetooth_uuid_from_u16(0x2A33);
231    pub const GLUCOSE_MEASUREMENT_CONTEXT: Uuid = bluetooth_uuid_from_u16(0x2A34);
232    pub const BLOOD_PRESSURE_MEASUREMENT: Uuid = bluetooth_uuid_from_u16(0x2A35);
233    pub const INTERMEDIATE_CUFF_PRESSURE: Uuid = bluetooth_uuid_from_u16(0x2A36);
234    pub const HEART_RATE_MEASUREMENT: Uuid = bluetooth_uuid_from_u16(0x2A37);
235    pub const BODY_SENSOR_LOCATION: Uuid = bluetooth_uuid_from_u16(0x2A38);
236    pub const HEART_RATE_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2A39);
237    pub const ALERT_STATUS: Uuid = bluetooth_uuid_from_u16(0x2A3F);
238    pub const RINGER_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2A40);
239    pub const RINGER_SETTING: Uuid = bluetooth_uuid_from_u16(0x2A41);
240    pub const ALERT_CATEGORY_ID_BIT_MASK: Uuid = bluetooth_uuid_from_u16(0x2A42);
241    pub const ALERT_CATEGORY_ID: Uuid = bluetooth_uuid_from_u16(0x2A43);
242    pub const ALERT_NOTIFICATION_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2A44);
243    pub const UNREAD_ALERT_STATUS: Uuid = bluetooth_uuid_from_u16(0x2A45);
244    pub const NEW_ALERT: Uuid = bluetooth_uuid_from_u16(0x2A46);
245    pub const SUPPORTED_NEW_ALERT_CATEGORY: Uuid = bluetooth_uuid_from_u16(0x2A47);
246    pub const SUPPORTED_UNREAD_ALERT_CATEGORY: Uuid = bluetooth_uuid_from_u16(0x2A48);
247    pub const BLOOD_PRESSURE_FEATURE: Uuid = bluetooth_uuid_from_u16(0x2A49);
248    pub const HID_INFORMATION: Uuid = bluetooth_uuid_from_u16(0x2A4A);
249    pub const REPORT_MAP: Uuid = bluetooth_uuid_from_u16(0x2A4B);
250    pub const HID_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2A4C);
251    pub const REPORT: Uuid = bluetooth_uuid_from_u16(0x2A4D);
252    pub const PROTOCOL_MODE: Uuid = bluetooth_uuid_from_u16(0x2A4E);
253    pub const SCAN_INTERVAL_WINDOW: Uuid = bluetooth_uuid_from_u16(0x2A4F);
254    pub const PNP_ID: Uuid = bluetooth_uuid_from_u16(0x2A50);
255    pub const GLUCOSE_FEATURE: Uuid = bluetooth_uuid_from_u16(0x2A51);
256    pub const RECORD_ACCESS_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2A52);
257    pub const RSC_MEASUREMENT: Uuid = bluetooth_uuid_from_u16(0x2A53);
258    pub const RSC_FEATURE: Uuid = bluetooth_uuid_from_u16(0x2A54);
259    pub const SC_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2A55);
260    pub const AGGREGATE: Uuid = bluetooth_uuid_from_u16(0x2A5A);
261    pub const CSC_MEASUREMENT: Uuid = bluetooth_uuid_from_u16(0x2A5B);
262    pub const CSC_FEATURE: Uuid = bluetooth_uuid_from_u16(0x2A5C);
263    pub const SENSOR_LOCATION: Uuid = bluetooth_uuid_from_u16(0x2A5D);
264    pub const PLX_SPOT_CHECK_MEASUREMENT: Uuid = bluetooth_uuid_from_u16(0x2A5E);
265    pub const PLX_CONTINUOUS_MEASUREMENT: Uuid = bluetooth_uuid_from_u16(0x2A5F);
266    pub const PLX_FEATURES: Uuid = bluetooth_uuid_from_u16(0x2A60);
267    pub const CYCLING_POWER_MEASUREMENT: Uuid = bluetooth_uuid_from_u16(0x2A63);
268    pub const CYCLING_POWER_VECTOR: Uuid = bluetooth_uuid_from_u16(0x2A64);
269    pub const CYCLING_POWER_FEATURE: Uuid = bluetooth_uuid_from_u16(0x2A65);
270    pub const CYCLING_POWER_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2A66);
271    pub const LOCATION_AND_SPEED: Uuid = bluetooth_uuid_from_u16(0x2A67);
272    pub const NAVIGATION: Uuid = bluetooth_uuid_from_u16(0x2A68);
273    pub const POSITION_QUALITY: Uuid = bluetooth_uuid_from_u16(0x2A69);
274    pub const LN_FEATURE: Uuid = bluetooth_uuid_from_u16(0x2A6A);
275    pub const LN_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2A6B);
276    pub const ELEVATION: Uuid = bluetooth_uuid_from_u16(0x2A6C);
277    pub const PRESSURE: Uuid = bluetooth_uuid_from_u16(0x2A6D);
278    pub const TEMPERATURE: Uuid = bluetooth_uuid_from_u16(0x2A6E);
279    pub const HUMIDITY: Uuid = bluetooth_uuid_from_u16(0x2A6F);
280    pub const TRUE_WIND_SPEED: Uuid = bluetooth_uuid_from_u16(0x2A70);
281    pub const TRUE_WIND_DIRECTION: Uuid = bluetooth_uuid_from_u16(0x2A71);
282    pub const APPARENT_WIND_SPEED: Uuid = bluetooth_uuid_from_u16(0x2A72);
283    pub const APPARENT_WIND_DIRECTION: Uuid = bluetooth_uuid_from_u16(0x2A73);
284    pub const GUST_FACTOR: Uuid = bluetooth_uuid_from_u16(0x2A74);
285    pub const POLLEN_CONCENTRATION: Uuid = bluetooth_uuid_from_u16(0x2A75);
286    pub const UV_INDEX: Uuid = bluetooth_uuid_from_u16(0x2A76);
287    pub const IRRADIANCE: Uuid = bluetooth_uuid_from_u16(0x2A77);
288    pub const RAINFALL: Uuid = bluetooth_uuid_from_u16(0x2A78);
289    pub const WIND_CHILL: Uuid = bluetooth_uuid_from_u16(0x2A79);
290    pub const HEAT_INDEX: Uuid = bluetooth_uuid_from_u16(0x2A7A);
291    pub const DEW_POINT: Uuid = bluetooth_uuid_from_u16(0x2A7B);
292    pub const DESCRIPTOR_VALUE_CHANGED: Uuid = bluetooth_uuid_from_u16(0x2A7D);
293    pub const AEROBIC_HEART_RATE_LOWER_LIMIT: Uuid = bluetooth_uuid_from_u16(0x2A7E);
294    pub const AEROBIC_THRESHOLD: Uuid = bluetooth_uuid_from_u16(0x2A7F);
295    pub const AGE: Uuid = bluetooth_uuid_from_u16(0x2A80);
296    pub const ANAEROBIC_HEART_RATE_LOWER_LIMIT: Uuid = bluetooth_uuid_from_u16(0x2A81);
297    pub const ANAEROBIC_HEART_RATE_UPPER_LIMIT: Uuid = bluetooth_uuid_from_u16(0x2A82);
298    pub const ANAEROBIC_THRESHOLD: Uuid = bluetooth_uuid_from_u16(0x2A83);
299    pub const AEROBIC_HEART_RATE_UPPER_LIMIT: Uuid = bluetooth_uuid_from_u16(0x2A84);
300    pub const DATE_OF_BIRTH: Uuid = bluetooth_uuid_from_u16(0x2A85);
301    pub const DATE_OF_THRESHOLD_ASSESSMENT: Uuid = bluetooth_uuid_from_u16(0x2A86);
302    pub const EMAIL_ADDRESS: Uuid = bluetooth_uuid_from_u16(0x2A87);
303    pub const FAT_BURN_HEART_RATE_LOWER_LIMIT: Uuid = bluetooth_uuid_from_u16(0x2A88);
304    pub const FAT_BURN_HEART_RATE_UPPER_LIMIT: Uuid = bluetooth_uuid_from_u16(0x2A89);
305    pub const FIRST_NAME: Uuid = bluetooth_uuid_from_u16(0x2A8A);
306    pub const FIVE_ZONE_HEART_RATE_LIMITS: Uuid = bluetooth_uuid_from_u16(0x2A8B);
307    pub const GENDER: Uuid = bluetooth_uuid_from_u16(0x2A8C);
308    pub const HEART_RATE_MAX: Uuid = bluetooth_uuid_from_u16(0x2A8D);
309    pub const HEIGHT: Uuid = bluetooth_uuid_from_u16(0x2A8E);
310    pub const HIP_CIRCUMFERENCE: Uuid = bluetooth_uuid_from_u16(0x2A8F);
311    pub const LAST_NAME: Uuid = bluetooth_uuid_from_u16(0x2A90);
312    pub const MAXIMUM_RECOMMENDED_HEART_RATE: Uuid = bluetooth_uuid_from_u16(0x2A91);
313    pub const RESTING_HEART_RATE: Uuid = bluetooth_uuid_from_u16(0x2A92);
314    pub const SPORT_TYPE_FOR_AEROBIC_AND_ANAEROBIC_THRESHOLDS: Uuid =
315        bluetooth_uuid_from_u16(0x2A93);
316    pub const THREE_ZONE_HEART_RATE_LIMITS: Uuid = bluetooth_uuid_from_u16(0x2A94);
317    pub const TWO_ZONE_HEART_RATE_LIMITS: Uuid = bluetooth_uuid_from_u16(0x2A95);
318    pub const VO2_MAX: Uuid = bluetooth_uuid_from_u16(0x2A96);
319    pub const WAIST_CIRCUMFERENCE: Uuid = bluetooth_uuid_from_u16(0x2A97);
320    pub const WEIGHT: Uuid = bluetooth_uuid_from_u16(0x2A98);
321    pub const DATABASE_CHANGE_INCREMENT: Uuid = bluetooth_uuid_from_u16(0x2A99);
322    pub const USER_INDEX: Uuid = bluetooth_uuid_from_u16(0x2A9A);
323    pub const BODY_COMPOSITION_FEATURE: Uuid = bluetooth_uuid_from_u16(0x2A9B);
324    pub const BODY_COMPOSITION_MEASUREMENT: Uuid = bluetooth_uuid_from_u16(0x2A9C);
325    pub const WEIGHT_MEASUREMENT: Uuid = bluetooth_uuid_from_u16(0x2A9D);
326    pub const WEIGHT_SCALE_FEATURE: Uuid = bluetooth_uuid_from_u16(0x2A9E);
327    pub const USER_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2A9F);
328    pub const MAGNETIC_FLUX_DENSITY_2D: Uuid = bluetooth_uuid_from_u16(0x2AA0);
329    pub const MAGNETIC_FLUX_DENSITY_3D: Uuid = bluetooth_uuid_from_u16(0x2AA1);
330    pub const LANGUAGE: Uuid = bluetooth_uuid_from_u16(0x2AA2);
331    pub const BAROMETRIC_PRESSURE_TREND: Uuid = bluetooth_uuid_from_u16(0x2AA3);
332    pub const BOND_MANAGEMENT_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2AA4);
333    pub const BOND_MANAGEMENT_FEATURE: Uuid = bluetooth_uuid_from_u16(0x2AA5);
334    pub const CENTRAL_ADDRESS_RESOLUTION: Uuid = bluetooth_uuid_from_u16(0x2AA6);
335    pub const CGM_MEASUREMENT: Uuid = bluetooth_uuid_from_u16(0x2AA7);
336    pub const CGM_FEATURE: Uuid = bluetooth_uuid_from_u16(0x2AA8);
337    pub const CGM_STATUS: Uuid = bluetooth_uuid_from_u16(0x2AA9);
338    pub const CGM_SESSION_START_TIME: Uuid = bluetooth_uuid_from_u16(0x2AAA);
339    pub const CGM_SESSION_RUN_TIME: Uuid = bluetooth_uuid_from_u16(0x2AAB);
340    pub const CGM_SPECIFIC_OPS_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2AAC);
341    pub const INDOOR_POSITIONING_CONFIGURATION: Uuid = bluetooth_uuid_from_u16(0x2AAD);
342    pub const LATITUDE: Uuid = bluetooth_uuid_from_u16(0x2AAE);
343    pub const LONGITUDE: Uuid = bluetooth_uuid_from_u16(0x2AAF);
344    pub const LOCAL_NORTH_COORDINATE: Uuid = bluetooth_uuid_from_u16(0x2AB0);
345    pub const LOCAL_EAST_COORDINATE: Uuid = bluetooth_uuid_from_u16(0x2AB1);
346    pub const FLOOR_NUMBER: Uuid = bluetooth_uuid_from_u16(0x2AB2);
347    pub const ALTITUDE: Uuid = bluetooth_uuid_from_u16(0x2AB3);
348    pub const UNCERTAINTY: Uuid = bluetooth_uuid_from_u16(0x2AB4);
349    pub const LOCATION_NAME: Uuid = bluetooth_uuid_from_u16(0x2AB5);
350    pub const URI: Uuid = bluetooth_uuid_from_u16(0x2AB6);
351    pub const HTTP_HEADERS: Uuid = bluetooth_uuid_from_u16(0x2AB7);
352    pub const HTTP_STATUS_CODE: Uuid = bluetooth_uuid_from_u16(0x2AB8);
353    pub const HTTP_ENTITY_BODY: Uuid = bluetooth_uuid_from_u16(0x2AB9);
354    pub const HTTP_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2ABA);
355    pub const HTTPS_SECURITY: Uuid = bluetooth_uuid_from_u16(0x2ABB);
356    pub const TDS_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2ABC);
357    pub const OTS_FEATURE: Uuid = bluetooth_uuid_from_u16(0x2ABD);
358    pub const OBJECT_NAME: Uuid = bluetooth_uuid_from_u16(0x2ABE);
359    pub const OBJECT_TYPE: Uuid = bluetooth_uuid_from_u16(0x2ABF);
360    pub const OBJECT_SIZE: Uuid = bluetooth_uuid_from_u16(0x2AC0);
361    pub const OBJECT_FIRST_CREATED: Uuid = bluetooth_uuid_from_u16(0x2AC1);
362    pub const OBJECT_LAST_MODIFIED: Uuid = bluetooth_uuid_from_u16(0x2AC2);
363    pub const OBJECT_ID: Uuid = bluetooth_uuid_from_u16(0x2AC3);
364    pub const OBJECT_PROPERTIES: Uuid = bluetooth_uuid_from_u16(0x2AC4);
365    pub const OBJECT_ACTION_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2AC5);
366    pub const OBJECT_LIST_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2AC6);
367    pub const OBJECT_LIST_FILTER: Uuid = bluetooth_uuid_from_u16(0x2AC7);
368    pub const OBJECT_CHANGED: Uuid = bluetooth_uuid_from_u16(0x2AC8);
369    pub const RESOLVABLE_PRIVATE_ADDRESS_ONLY: Uuid = bluetooth_uuid_from_u16(0x2AC9);
370    pub const UNSPECIFIED: Uuid = bluetooth_uuid_from_u16(0x2ACA);
371    pub const DIRECTORY_LISTING: Uuid = bluetooth_uuid_from_u16(0x2ACB);
372    pub const FITNESS_MACHINE_FEATURE: Uuid = bluetooth_uuid_from_u16(0x2ACC);
373    pub const TREADMILL_DATA: Uuid = bluetooth_uuid_from_u16(0x2ACD);
374    pub const CROSS_TRAINER_DATA: Uuid = bluetooth_uuid_from_u16(0x2ACE);
375    pub const STEP_CLIMBER_DATA: Uuid = bluetooth_uuid_from_u16(0x2ACF);
376    pub const STAIR_CLIMBER_DATA: Uuid = bluetooth_uuid_from_u16(0x2AD0);
377    pub const ROWER_DATA: Uuid = bluetooth_uuid_from_u16(0x2AD1);
378    pub const INDOOR_BIKE_DATA: Uuid = bluetooth_uuid_from_u16(0x2AD2);
379    pub const TRAINING_STATUS: Uuid = bluetooth_uuid_from_u16(0x2AD3);
380    pub const SUPPORTED_SPEED_RANGE: Uuid = bluetooth_uuid_from_u16(0x2AD4);
381    pub const SUPPORTED_INCLINATION_RANGE: Uuid = bluetooth_uuid_from_u16(0x2AD5);
382    pub const SUPPORTED_RESISTANCE_LEVEL_RANGE: Uuid = bluetooth_uuid_from_u16(0x2AD6);
383    pub const SUPPORTED_HEART_RATE_RANGE: Uuid = bluetooth_uuid_from_u16(0x2AD7);
384    pub const SUPPORTED_POWER_RANGE: Uuid = bluetooth_uuid_from_u16(0x2AD8);
385    pub const FITNESS_MACHINE_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2AD9);
386    pub const FITNESS_MACHINE_STATUS: Uuid = bluetooth_uuid_from_u16(0x2ADA);
387    pub const MESH_PROVISIONING_DATA_IN: Uuid = bluetooth_uuid_from_u16(0x2ADB);
388    pub const MESH_PROVISIONING_DATA_OUT: Uuid = bluetooth_uuid_from_u16(0x2ADC);
389    pub const MESH_PROXY_DATA_IN: Uuid = bluetooth_uuid_from_u16(0x2ADD);
390    pub const MESH_PROXY_DATA_OUT: Uuid = bluetooth_uuid_from_u16(0x2ADE);
391    pub const AVERAGE_CURRENT: Uuid = bluetooth_uuid_from_u16(0x2AE0);
392    pub const AVERAGE_VOLTAGE: Uuid = bluetooth_uuid_from_u16(0x2AE1);
393    pub const BOOLEAN: Uuid = bluetooth_uuid_from_u16(0x2AE2);
394    pub const CHROMATIC_DISTANCE_FROM_PLANCKIAN: Uuid = bluetooth_uuid_from_u16(0x2AE3);
395    pub const CHROMATICITY_COORDINATES: Uuid = bluetooth_uuid_from_u16(0x2AE4);
396    pub const CHROMATICITY_IN_CCT_AND_DUV_VALUES: Uuid = bluetooth_uuid_from_u16(0x2AE5);
397    pub const CHROMATICITY_TOLERANCE: Uuid = bluetooth_uuid_from_u16(0x2AE6);
398    pub const CIE_13_3_1995_COLOR_RENDERING_INDEX: Uuid = bluetooth_uuid_from_u16(0x2AE7);
399    pub const COEFFICIENT: Uuid = bluetooth_uuid_from_u16(0x2AE8);
400    pub const CORRELATED_COLOR_TEMPERATURE: Uuid = bluetooth_uuid_from_u16(0x2AE9);
401    pub const COUNT_16: Uuid = bluetooth_uuid_from_u16(0x2AEA);
402    pub const COUNT_24: Uuid = bluetooth_uuid_from_u16(0x2AEB);
403    pub const COUNTRY_CODE: Uuid = bluetooth_uuid_from_u16(0x2AEC);
404    pub const DATE_UTC: Uuid = bluetooth_uuid_from_u16(0x2AED);
405    pub const ELECTRIC_CURRENT: Uuid = bluetooth_uuid_from_u16(0x2AEE);
406    pub const ELECTRIC_CURRENT_RANGE: Uuid = bluetooth_uuid_from_u16(0x2AEF);
407    pub const ELECTRIC_CURRENT_SPECIFICATION: Uuid = bluetooth_uuid_from_u16(0x2AF0);
408    pub const ELECTRIC_CURRENT_STATISTICS: Uuid = bluetooth_uuid_from_u16(0x2AF1);
409    pub const ENERGY: Uuid = bluetooth_uuid_from_u16(0x2AF2);
410    pub const ENERGY_IN_A_PERIOD_OF_DAY: Uuid = bluetooth_uuid_from_u16(0x2AF3);
411    pub const EVENT_STATISTICS: Uuid = bluetooth_uuid_from_u16(0x2AF4);
412    pub const FIXED_STRING_16: Uuid = bluetooth_uuid_from_u16(0x2AF5);
413    pub const FIXED_STRING_24: Uuid = bluetooth_uuid_from_u16(0x2AF6);
414    pub const FIXED_STRING_36: Uuid = bluetooth_uuid_from_u16(0x2AF7);
415    pub const FIXED_STRING_8: Uuid = bluetooth_uuid_from_u16(0x2AF8);
416    pub const GENERIC_LEVEL: Uuid = bluetooth_uuid_from_u16(0x2AF9);
417    pub const GLOBAL_TRADE_ITEM_NUMBER: Uuid = bluetooth_uuid_from_u16(0x2AFA);
418    pub const ILLUMINANCE: Uuid = bluetooth_uuid_from_u16(0x2AFB);
419    pub const LUMINOUS_EFFICACY: Uuid = bluetooth_uuid_from_u16(0x2AFC);
420    pub const LUMINOUS_ENERGY: Uuid = bluetooth_uuid_from_u16(0x2AFD);
421    pub const LUMINOUS_EXPOSURE: Uuid = bluetooth_uuid_from_u16(0x2AFE);
422    pub const LUMINOUS_FLUX: Uuid = bluetooth_uuid_from_u16(0x2AFF);
423    pub const LUMINOUS_FLUX_RANGE: Uuid = bluetooth_uuid_from_u16(0x2B00);
424    pub const LUMINOUS_INTENSITY: Uuid = bluetooth_uuid_from_u16(0x2B01);
425    pub const MASS_FLOW: Uuid = bluetooth_uuid_from_u16(0x2B02);
426    pub const PERCEIVED_LIGHTNESS: Uuid = bluetooth_uuid_from_u16(0x2B03);
427    pub const PERCENTAGE_8: Uuid = bluetooth_uuid_from_u16(0x2B04);
428    pub const POWER: Uuid = bluetooth_uuid_from_u16(0x2B05);
429    pub const POWER_SPECIFICATION: Uuid = bluetooth_uuid_from_u16(0x2B06);
430    pub const RELATIVE_RUNTIME_IN_A_CURRENT_RANGE: Uuid = bluetooth_uuid_from_u16(0x2B07);
431    pub const RELATIVE_RUNTIME_IN_A_GENERIC_LEVEL_RANGE: Uuid = bluetooth_uuid_from_u16(0x2B08);
432    pub const RELATIVE_VALUE_IN_A_VOLTAGE_RANGE: Uuid = bluetooth_uuid_from_u16(0x2B09);
433    pub const RELATIVE_VALUE_IN_AN_ILLUMINANCE_RANGE: Uuid = bluetooth_uuid_from_u16(0x2B0A);
434    pub const RELATIVE_VALUE_IN_A_PERIOD_OF_DAY: Uuid = bluetooth_uuid_from_u16(0x2B0B);
435    pub const RELATIVE_VALUE_IN_A_TEMPERATURE_RANGE: Uuid = bluetooth_uuid_from_u16(0x2B0C);
436    pub const TEMPERATURE_8: Uuid = bluetooth_uuid_from_u16(0x2B0D);
437    pub const TEMPERATURE_8_IN_A_PERIOD_OF_DAY: Uuid = bluetooth_uuid_from_u16(0x2B0E);
438    pub const TEMPERATURE_8_STATISTICS: Uuid = bluetooth_uuid_from_u16(0x2B0F);
439    pub const TEMPERATURE_RANGE: Uuid = bluetooth_uuid_from_u16(0x2B10);
440    pub const TEMPERATURE_STATISTICS: Uuid = bluetooth_uuid_from_u16(0x2B11);
441    pub const TIME_DECIHOUR_8: Uuid = bluetooth_uuid_from_u16(0x2B12);
442    pub const TIME_EXPONENTIAL_8: Uuid = bluetooth_uuid_from_u16(0x2B13);
443    pub const TIME_HOUR_24: Uuid = bluetooth_uuid_from_u16(0x2B14);
444    pub const TIME_MILLISECOND_24: Uuid = bluetooth_uuid_from_u16(0x2B15);
445    pub const TIME_SECOND_16: Uuid = bluetooth_uuid_from_u16(0x2B16);
446    pub const TIME_SECOND_8: Uuid = bluetooth_uuid_from_u16(0x2B17);
447    pub const VOLTAGE: Uuid = bluetooth_uuid_from_u16(0x2B18);
448    pub const VOLTAGE_SPECIFICATION: Uuid = bluetooth_uuid_from_u16(0x2B19);
449    pub const VOLTAGE_STATISTICS: Uuid = bluetooth_uuid_from_u16(0x2B1A);
450    pub const VOLUME_FLOW: Uuid = bluetooth_uuid_from_u16(0x2B1B);
451    pub const CHROMATICITY_COORDINATE: Uuid = bluetooth_uuid_from_u16(0x2B1C);
452    pub const RC_FEATURE: Uuid = bluetooth_uuid_from_u16(0x2B1D);
453    pub const RC_SETTINGS: Uuid = bluetooth_uuid_from_u16(0x2B1E);
454    pub const RECONNECTION_CONFIGURATION_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2B1F);
455    pub const IDD_STATUS_CHANGED: Uuid = bluetooth_uuid_from_u16(0x2B20);
456    pub const IDD_STATUS: Uuid = bluetooth_uuid_from_u16(0x2B21);
457    pub const IDD_ANNUNCIATION_STATUS: Uuid = bluetooth_uuid_from_u16(0x2B22);
458    pub const IDD_FEATURES: Uuid = bluetooth_uuid_from_u16(0x2B23);
459    pub const IDD_STATUS_READER_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2B24);
460    pub const IDD_COMMAND_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2B25);
461    pub const IDD_COMMAND_DATA: Uuid = bluetooth_uuid_from_u16(0x2B26);
462    pub const IDD_RECORD_ACCESS_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2B27);
463    pub const IDD_HISTORY_DATA: Uuid = bluetooth_uuid_from_u16(0x2B28);
464    pub const CLIENT_SUPPORTED_FEATURES: Uuid = bluetooth_uuid_from_u16(0x2B29);
465    pub const DATABASE_HASH: Uuid = bluetooth_uuid_from_u16(0x2B2A);
466    pub const BSS_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2B2B);
467    pub const BSS_RESPONSE: Uuid = bluetooth_uuid_from_u16(0x2B2C);
468    pub const EMERGENCY_ID: Uuid = bluetooth_uuid_from_u16(0x2B2D);
469    pub const EMERGENCY_TEXT: Uuid = bluetooth_uuid_from_u16(0x2B2E);
470    pub const ENHANCED_BLOOD_PRESSURE_MEASUREMENT: Uuid = bluetooth_uuid_from_u16(0x2B34);
471    pub const ENHANCED_INTERMEDIATE_CUFF_PRESSURE: Uuid = bluetooth_uuid_from_u16(0x2B35);
472    pub const BLOOD_PRESSURE_RECORD: Uuid = bluetooth_uuid_from_u16(0x2B36);
473    pub const BR_EDR_HANDOVER_DATA: Uuid = bluetooth_uuid_from_u16(0x2B38);
474    pub const BLUETOOTH_SIG_DATA: Uuid = bluetooth_uuid_from_u16(0x2B39);
475    pub const SERVER_SUPPORTED_FEATURES: Uuid = bluetooth_uuid_from_u16(0x2B3A);
476    pub const PHYSICAL_ACTIVITY_MONITOR_FEATURES: Uuid = bluetooth_uuid_from_u16(0x2B3B);
477    pub const GENERAL_ACTIVITY_INSTANTANEOUS_DATA: Uuid = bluetooth_uuid_from_u16(0x2B3C);
478    pub const GENERAL_ACTIVITY_SUMMARY_DATA: Uuid = bluetooth_uuid_from_u16(0x2B3D);
479    pub const CARDIORESPIRATORY_ACTIVITY_INSTANTANEOUS_DATA: Uuid = bluetooth_uuid_from_u16(0x2B3E);
480    pub const CARDIORESPIRATORY_ACTIVITY_SUMMARY_DATA: Uuid = bluetooth_uuid_from_u16(0x2B3F);
481    pub const STEP_COUNTER_ACTIVITY_SUMMARY_DATA: Uuid = bluetooth_uuid_from_u16(0x2B40);
482    pub const SLEEP_ACTIVITY_INSTANTANEOUS_DATA: Uuid = bluetooth_uuid_from_u16(0x2B41);
483    pub const SLEEP_ACTIVITY_SUMMARY_DATA: Uuid = bluetooth_uuid_from_u16(0x2B42);
484    pub const PHYSICAL_ACTIVITY_MONITOR_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2B43);
485    pub const ACTIVITY_CURRENT_SESSION: Uuid = bluetooth_uuid_from_u16(0x2B44);
486    pub const PHYSICAL_ACTIVITY_SESSION_DESCRIPTOR: Uuid = bluetooth_uuid_from_u16(0x2B45);
487    pub const PREFERRED_UNITS: Uuid = bluetooth_uuid_from_u16(0x2B46);
488    pub const HIGH_RESOLUTION_HEIGHT: Uuid = bluetooth_uuid_from_u16(0x2B47);
489    pub const MIDDLE_NAME: Uuid = bluetooth_uuid_from_u16(0x2B48);
490    pub const STRIDE_LENGTH: Uuid = bluetooth_uuid_from_u16(0x2B49);
491    pub const HANDEDNESS: Uuid = bluetooth_uuid_from_u16(0x2B4A);
492    pub const DEVICE_WEARING_POSITION: Uuid = bluetooth_uuid_from_u16(0x2B4B);
493    pub const FOUR_ZONE_HEART_RATE_LIMITS: Uuid = bluetooth_uuid_from_u16(0x2B4C);
494    pub const HIGH_INTENSITY_EXERCISE_THRESHOLD: Uuid = bluetooth_uuid_from_u16(0x2B4D);
495    pub const ACTIVITY_GOAL: Uuid = bluetooth_uuid_from_u16(0x2B4E);
496    pub const SEDENTARY_INTERVAL_NOTIFICATION: Uuid = bluetooth_uuid_from_u16(0x2B4F);
497    pub const CALORIC_INTAKE: Uuid = bluetooth_uuid_from_u16(0x2B50);
498    pub const TMAP_ROLE: Uuid = bluetooth_uuid_from_u16(0x2B51);
499    pub const AUDIO_INPUT_STATE: Uuid = bluetooth_uuid_from_u16(0x2B77);
500    pub const GAIN_SETTINGS_ATTRIBUTE: Uuid = bluetooth_uuid_from_u16(0x2B78);
501    pub const AUDIO_INPUT_TYPE: Uuid = bluetooth_uuid_from_u16(0x2B79);
502    pub const AUDIO_INPUT_STATUS: Uuid = bluetooth_uuid_from_u16(0x2B7A);
503    pub const AUDIO_INPUT_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2B7B);
504    pub const AUDIO_INPUT_DESCRIPTION: Uuid = bluetooth_uuid_from_u16(0x2B7C);
505    pub const VOLUME_STATE: Uuid = bluetooth_uuid_from_u16(0x2B7D);
506    pub const VOLUME_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2B7E);
507    pub const VOLUME_FLAGS: Uuid = bluetooth_uuid_from_u16(0x2B7F);
508    pub const VOLUME_OFFSET_STATE: Uuid = bluetooth_uuid_from_u16(0x2B80);
509    pub const AUDIO_LOCATION: Uuid = bluetooth_uuid_from_u16(0x2B81);
510    pub const VOLUME_OFFSET_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2B82);
511    pub const AUDIO_OUTPUT_DESCRIPTION: Uuid = bluetooth_uuid_from_u16(0x2B83);
512    pub const SET_IDENTITY_RESOLVING_KEY: Uuid = bluetooth_uuid_from_u16(0x2B84);
513    pub const COORDINATED_SET_SIZE: Uuid = bluetooth_uuid_from_u16(0x2B85);
514    pub const SET_MEMBER_LOCK: Uuid = bluetooth_uuid_from_u16(0x2B86);
515    pub const SET_MEMBER_RANK: Uuid = bluetooth_uuid_from_u16(0x2B87);
516    pub const DEVICE_TIME_FEATURE: Uuid = bluetooth_uuid_from_u16(0x2B8E);
517    pub const DEVICE_TIME_PARAMETERS: Uuid = bluetooth_uuid_from_u16(0x2B8F);
518    pub const DEVICE_TIME: Uuid = bluetooth_uuid_from_u16(0x2B90);
519    pub const DEVICE_TIME_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2B91);
520    pub const TIME_CHANGE_LOG_DATA: Uuid = bluetooth_uuid_from_u16(0x2B92);
521    pub const MEDIA_PLAYER_NAME: Uuid = bluetooth_uuid_from_u16(0x2B93);
522    pub const MEDIA_PLAYER_ICON_OBJECT_ID: Uuid = bluetooth_uuid_from_u16(0x2B94);
523    pub const MEDIA_PLAYER_ICON_URL: Uuid = bluetooth_uuid_from_u16(0x2B95);
524    pub const TRACK_CHANGED: Uuid = bluetooth_uuid_from_u16(0x2B96);
525    pub const TRACK_TITLE: Uuid = bluetooth_uuid_from_u16(0x2B97);
526    pub const TRACK_DURATION: Uuid = bluetooth_uuid_from_u16(0x2B98);
527    pub const TRACK_POSITION: Uuid = bluetooth_uuid_from_u16(0x2B99);
528    pub const PLAYBACK_SPEED: Uuid = bluetooth_uuid_from_u16(0x2B9A);
529    pub const SEEKING_SPEED: Uuid = bluetooth_uuid_from_u16(0x2B9B);
530    pub const CURRENT_TRACK_SEGMENTS_OBJECT_ID: Uuid = bluetooth_uuid_from_u16(0x2B9C);
531    pub const CURRENT_TRACK_OBJECT_ID: Uuid = bluetooth_uuid_from_u16(0x2B9D);
532    pub const NEXT_TRACK_OBJECT_ID: Uuid = bluetooth_uuid_from_u16(0x2B9E);
533    pub const PARENT_GROUP_OBJECT_ID: Uuid = bluetooth_uuid_from_u16(0x2B9F);
534    pub const CURRENT_GROUP_OBJECT_ID: Uuid = bluetooth_uuid_from_u16(0x2BA0);
535    pub const PLAYING_ORDER: Uuid = bluetooth_uuid_from_u16(0x2BA1);
536    pub const PLAYING_ORDERS_SUPPORTED: Uuid = bluetooth_uuid_from_u16(0x2BA2);
537    pub const MEDIA_STATE: Uuid = bluetooth_uuid_from_u16(0x2BA3);
538    pub const MEDIA_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2BA4);
539    pub const MEDIA_CONTROL_POINT_OPCODES_SUPPORTED: Uuid = bluetooth_uuid_from_u16(0x2BA5);
540    pub const SEARCH_RESULTS_OBJECT_ID: Uuid = bluetooth_uuid_from_u16(0x2BA6);
541    pub const SEARCH_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2BA7);
542    pub const MEDIA_PLAYER_ICON_OBJECT_TYPE: Uuid = bluetooth_uuid_from_u16(0x2BA9);
543    pub const TRACK_SEGMENTS_OBJECT_TYPE: Uuid = bluetooth_uuid_from_u16(0x2BAA);
544    pub const TRACK_OBJECT_TYPE: Uuid = bluetooth_uuid_from_u16(0x2BAB);
545    pub const GROUP_OBJECT_TYPE: Uuid = bluetooth_uuid_from_u16(0x2BAC);
546    pub const CONSTANT_TONE_EXTENSION_ENABLE: Uuid = bluetooth_uuid_from_u16(0x2BAD);
547    pub const ADVERTISING_CONSTANT_TONE_EXTENSION_MINIMUM_LENGTH: Uuid =
548        bluetooth_uuid_from_u16(0x2BAE);
549    pub const ADVERTISING_CONSTANT_TONE_EXTENSION_MINIMUM_TRANSMIT_COUNT: Uuid =
550        bluetooth_uuid_from_u16(0x2BAF);
551    pub const ADVERTISING_CONSTANT_TONE_EXTENSION_TRANSMIT_DURATION: Uuid =
552        bluetooth_uuid_from_u16(0x2BB0);
553    pub const ADVERTISING_CONSTANT_TONE_EXTENSION_INTERVAL: Uuid = bluetooth_uuid_from_u16(0x2BB1);
554    pub const ADVERTISING_CONSTANT_TONE_EXTENSION_PHY: Uuid = bluetooth_uuid_from_u16(0x2BB2);
555    pub const BEARER_PROVIDER_NAME: Uuid = bluetooth_uuid_from_u16(0x2BB3);
556    pub const BEARER_UCI: Uuid = bluetooth_uuid_from_u16(0x2BB4);
557    pub const BEARER_TECHNOLOGY: Uuid = bluetooth_uuid_from_u16(0x2BB5);
558    pub const BEARER_URI_SCHEMES_SUPPORTED_LIST: Uuid = bluetooth_uuid_from_u16(0x2BB6);
559    pub const BEARER_SIGNAL_STRENGTH: Uuid = bluetooth_uuid_from_u16(0x2BB7);
560    pub const BEARER_SIGNAL_STRENGTH_REPORTING_INTERVAL: Uuid = bluetooth_uuid_from_u16(0x2BB8);
561    pub const BEARER_LIST_CURRENT_CALLS: Uuid = bluetooth_uuid_from_u16(0x2BB9);
562    pub const CONTENT_CONTROL_ID: Uuid = bluetooth_uuid_from_u16(0x2BBA);
563    pub const STATUS_FLAGS: Uuid = bluetooth_uuid_from_u16(0x2BBB);
564    pub const INCOMING_CALL_TARGET_BEARER_URI: Uuid = bluetooth_uuid_from_u16(0x2BBC);
565    pub const CALL_STATE: Uuid = bluetooth_uuid_from_u16(0x2BBD);
566    pub const CALL_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2BBE);
567    pub const CALL_CONTROL_POINT_OPTIONAL_OPCODES: Uuid = bluetooth_uuid_from_u16(0x2BBF);
568    pub const TERMINATION_REASON: Uuid = bluetooth_uuid_from_u16(0x2BC0);
569    pub const INCOMING_CALL: Uuid = bluetooth_uuid_from_u16(0x2BC1);
570    pub const CALL_FRIENDLY_NAME: Uuid = bluetooth_uuid_from_u16(0x2BC2);
571    pub const MUTE: Uuid = bluetooth_uuid_from_u16(0x2BC3);
572    pub const SINK_ASE: Uuid = bluetooth_uuid_from_u16(0x2BC4);
573    pub const SOURCE_ASE: Uuid = bluetooth_uuid_from_u16(0x2BC5);
574    pub const ASE_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2BC6);
575    pub const BROADCAST_AUDIO_SCAN_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2BC7);
576    pub const BROADCAST_RECEIVE_STATE: Uuid = bluetooth_uuid_from_u16(0x2BC8);
577    pub const SINK_PAC: Uuid = bluetooth_uuid_from_u16(0x2BC9);
578    pub const SINK_AUDIO_LOCATIONS: Uuid = bluetooth_uuid_from_u16(0x2BCA);
579    pub const SOURCE_PAC: Uuid = bluetooth_uuid_from_u16(0x2BCB);
580    pub const SOURCE_AUDIO_LOCATIONS: Uuid = bluetooth_uuid_from_u16(0x2BCC);
581    pub const AVAILABLE_AUDIO_CONTEXTS: Uuid = bluetooth_uuid_from_u16(0x2BCD);
582    pub const SUPPORTED_AUDIO_CONTEXTS: Uuid = bluetooth_uuid_from_u16(0x2BCE);
583    pub const AMMONIA_CONCENTRATION: Uuid = bluetooth_uuid_from_u16(0x2BCF);
584    pub const CARBON_MONOXIDE_CONCENTRATION: Uuid = bluetooth_uuid_from_u16(0x2BD0);
585    pub const METHANE_CONCENTRATION: Uuid = bluetooth_uuid_from_u16(0x2BD1);
586    pub const NITROGEN_DIOXIDE_CONCENTRATION: Uuid = bluetooth_uuid_from_u16(0x2BD2);
587    pub const NON_METHANE_VOLATILE_ORGANIC_COMPOUNDS_CONCENTRATION: Uuid =
588        bluetooth_uuid_from_u16(0x2BD3);
589    pub const OZONE_CONCENTRATION: Uuid = bluetooth_uuid_from_u16(0x2BD4);
590    pub const PARTICULATE_MATTER_PM1_CONCENTRATION: Uuid = bluetooth_uuid_from_u16(0x2BD5);
591    pub const PARTICULATE_MATTER_PM2_5_CONCENTRATION: Uuid = bluetooth_uuid_from_u16(0x2BD6);
592    pub const PARTICULATE_MATTER_PM10_CONCENTRATION: Uuid = bluetooth_uuid_from_u16(0x2BD7);
593    pub const SULFUR_DIOXIDE_CONCENTRATION: Uuid = bluetooth_uuid_from_u16(0x2BD8);
594    pub const SULFUR_HEXAFLUORIDE_CONCENTRATION: Uuid = bluetooth_uuid_from_u16(0x2BD9);
595    pub const HEARING_AID_FEATURES: Uuid = bluetooth_uuid_from_u16(0x2BDA);
596    pub const HEARING_AID_PRESET_CONTROL_POINT: Uuid = bluetooth_uuid_from_u16(0x2BDB);
597    pub const ACTIVE_PRESET_INDEX: Uuid = bluetooth_uuid_from_u16(0x2BDC);
598}
599
600/// Bluetooth GATT Descriptor 16-bit UUIDs
601#[allow(missing_docs)]
602pub mod descriptors {
603    use super::bluetooth_uuid_from_u16;
604    use crate::Uuid;
605
606    pub const CHARACTERISTIC_EXTENDED_PROPERTIES: Uuid = bluetooth_uuid_from_u16(0x2900);
607    pub const CHARACTERISTIC_USER_DESCRIPTION: Uuid = bluetooth_uuid_from_u16(0x2901);
608    pub const CLIENT_CHARACTERISTIC_CONFIGURATION: Uuid = bluetooth_uuid_from_u16(0x2902);
609    pub const SERVER_CHARACTERISTIC_CONFIGURATION: Uuid = bluetooth_uuid_from_u16(0x2903);
610    pub const CHARACTERISTIC_PRESENTATION_FORMAT: Uuid = bluetooth_uuid_from_u16(0x2904);
611    pub const CHARACTERISTIC_AGGREGATE_FORMAT: Uuid = bluetooth_uuid_from_u16(0x2905);
612    pub const VALID_RANGE: Uuid = bluetooth_uuid_from_u16(0x2906);
613    pub const EXTERNAL_REPORT_REFERENCE: Uuid = bluetooth_uuid_from_u16(0x2907);
614    pub const REPORT_REFERENCE: Uuid = bluetooth_uuid_from_u16(0x2908);
615    pub const NUMBER_OF_DIGITALS: Uuid = bluetooth_uuid_from_u16(0x2909);
616    pub const VALUE_TRIGGER_SETTING: Uuid = bluetooth_uuid_from_u16(0x290A);
617    pub const ENVIRONMENTAL_SENSING_CONFIGURATION: Uuid = bluetooth_uuid_from_u16(0x290B);
618    pub const ENVIRONMENTAL_SENSING_MEASUREMENT: Uuid = bluetooth_uuid_from_u16(0x290C);
619    pub const ENVIRONMENTAL_SENSING_TRIGGER_SETTING: Uuid = bluetooth_uuid_from_u16(0x290D);
620    pub const TIME_TRIGGER_SETTING: Uuid = bluetooth_uuid_from_u16(0x290E);
621    pub const COMPLETE_BR_EDR_TRANSPORT_BLOCK_DATA: Uuid = bluetooth_uuid_from_u16(0x290F);
622    pub const L2CAPPSM_CHARACTERISTIC: Uuid =
623        Uuid::from_u128(0xABDD3056_28FA_441D_A470_55A75A52553Au128);
624}