aboutsummaryrefslogtreecommitdiffstats
path: root/arduino/libraries/Bluefruit52Lib/src/BLEUuid.h
blob: 6cdc10147bcde18afbe70d05d15aa7f88b8e9d7c (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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
/**************************************************************************/
/*!
    @file     BLEUuid.h
    @author   hathach (tinyusb.org)

    @section LICENSE

    Software License Agreement (BSD License)

    Copyright (c) 2018, Adafruit Industries (adafruit.com)
    All rights reserved.

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
    1. Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.
    2. Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.
    3. Neither the name of the copyright holders nor the
    names of its contributors may be used to endorse or promote products
    derived from this software without specific prior written permission.

    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
    EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
    ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**************************************************************************/
#ifndef BLEUUID_H_
#define BLEUUID_H_

#include "bluefruit_common.h"

class BLEUuid
{
  public:
    ble_uuid_t _uuid;
    uint8_t const* _uuid128;
    
    // Constructors
    BLEUuid(void                      ) { _uuid.type = BLE_UUID_TYPE_UNKNOWN; _uuid.uuid = 0; _uuid128 = NULL; }
    BLEUuid(uint16_t uuid16           ) { set(uuid16 );                  }
    BLEUuid(uint8_t const uuid128[16] ) { set(uuid128);                  }
    BLEUuid(ble_uuid_t uuid           ) { _uuid = uuid; _uuid128 = NULL; }

    void set(uint16_t uuid16);
    void set(uint8_t const uuid128[16]);

    bool get(uint16_t* uuid16) const;
    bool get(uint8_t uuid128[16]);

    size_t size (void) const;

    // Add UUID128 if needed, in case of UUID16, no actions is required
    err_t begin(void);

    bool operator==(const BLEUuid&   uuid) const;
    bool operator!=(const BLEUuid&   uuid) const;
    bool operator==(const ble_uuid_t uuid) const;
    bool operator!=(const ble_uuid_t uuid) const;

    // Overload copy operator to allow initialization from other type
    BLEUuid& operator=(const uint16_t uuid);
    BLEUuid& operator=(uint8_t const uuid128[16]);
    BLEUuid& operator=(ble_uuid_t uuid);
};

/*------------------------------------------------------------------*/
/* Service UUID
 * https://www.bluetooth.com/specifications/gatt/services
 *------------------------------------------------------------------*/
#define UUID16_SVC_ALERT_NOTIFICATION                         0x1811
#define UUID16_SVC_BATTERY                                    0x180F
#define UUID16_SVC_BLOOD_PRESSURE                             0x1810
#define UUID16_SVC_CURRENT_TIME                               0x1805
#define UUID16_SVC_CYCLING_SPEED_AND_CADENCE                  0x1816
#define UUID16_SVC_CYCLING_POWER                              0x1818
#define UUID16_SVC_LOCATION_AND_NAVIGATION                    0x1819
#define UUID16_SVC_DEVICE_INFORMATION                         0x180A
#define UUID16_SVC_GLUCOSE                                    0x1808
#define UUID16_SVC_HEALTH_THERMOMETER                         0x1809
#define UUID16_SVC_HEART_RATE                                 0x180D
#define UUID16_SVC_HUMAN_INTERFACE_DEVICE                     0x1812
#define UUID16_SVC_IMMEDIATE_ALERT                            0x1802
#define UUID16_SVC_LINK_LOSS                                  0x1803
#define UUID16_SVC_NEXT_DST_CHANGE                            0x1807
#define UUID16_SVC_PHONE_ALERT_STATUS                         0x180E
#define UUID16_SVC_REFERENCE_TIME_UPDATE                      0x1806
#define UUID16_SVC_RUNNING_SPEED_AND_CADENCE                  0x1814
#define UUID16_SVC_SCAN_PARAMETERS                            0x1813
#define UUID16_SVC_TX_POWER                                   0x1804
#define UUID16_SVC_IPSP                                       0x1820
#define UUID16_SVC_BMS                                        0x181E
#define UUID16_SVC_CGM                                        0x181F
#define UUID16_SVC_PLX                                        0x1822

#define UUID16_SVC_EDDYSTONE                                  0xFEAA

/*------------------------------------------------------------------*/
/* Characteristic UUID
 * https://www.bluetooth.com/specifications/gatt/characteristics
 *------------------------------------------------------------------*/
#define UUID16_CHR_REMOVABLE                                  0x2A3A
#define UUID16_CHR_SERVICE_REQUIRED                           0x2A3B
#define UUID16_CHR_ALERT_CATEGORY_ID                          0x2A43
#define UUID16_CHR_ALERT_CATEGORY_ID_BIT_MASK                 0x2A42
#define UUID16_CHR_ALERT_LEVEL                                0x2A06
#define UUID16_CHR_ALERT_NOTIFICATION_CONTROL_POINT           0x2A44
#define UUID16_CHR_ALERT_STATUS                               0x2A3F
#define UUID16_CHR_BATTERY_LEVEL                              0x2A19
#define UUID16_CHR_BLOOD_PRESSURE_FEATURE                     0x2A49
#define UUID16_CHR_BLOOD_PRESSURE_MEASUREMENT                 0x2A35
#define UUID16_CHR_BODY_SENSOR_LOCATION                       0x2A38
#define UUID16_CHR_BOOT_KEYBOARD_INPUT_REPORT                 0x2A22
#define UUID16_CHR_BOOT_KEYBOARD_OUTPUT_REPORT                0x2A32
#define UUID16_CHR_BOOT_MOUSE_INPUT_REPORT                    0x2A33
#define UUID16_CHR_CURRENT_TIME                               0x2A2B
#define UUID16_CHR_CYCLING_POWER_MEASUREMENT                  0x2A63
#define UUID16_CHR_CYCLING_POWER_FEATURE                      0x2A65
#define UUID16_CHR_DATE_TIME                                  0x2A08
#define UUID16_CHR_DAY_DATE_TIME                              0x2A0A
#define UUID16_CHR_DAY_OF_WEEK                                0x2A09
#define UUID16_CHR_DST_OFFSET                                 0x2A0D
#define UUID16_CHR_EXACT_TIME_256                             0x2A0C
#define UUID16_CHR_FIRMWARE_REVISION_STRING                   0x2A26
#define UUID16_CHR_GLUCOSE_FEATURE                            0x2A51
#define UUID16_CHR_GLUCOSE_MEASUREMENT                        0x2A18
#define UUID16_CHR_GLUCOSE_MEASUREMENT_CONTEXT                0x2A34
#define UUID16_CHR_HARDWARE_REVISION_STRING                   0x2A27
#define UUID16_CHR_HEART_RATE_CONTROL_POINT                   0x2A39
#define UUID16_CHR_HEART_RATE_MEASUREMENT                     0x2A37
#define UUID16_CHR_HID_CONTROL_POINT                          0x2A4C
#define UUID16_CHR_HID_INFORMATION                            0x2A4A
#define UUID16_CHR_IEEE_REGULATORY_CERTIFICATION_DATA_LIST    0x2A2A
#define UUID16_CHR_INTERMEDIATE_CUFF_PRESSURE                 0x2A36
#define UUID16_CHR_INTERMEDIATE_TEMPERATURE                   0x2A1E
#define UUID16_CHR_LOCAL_TIME_INFORMATION                     0x2A0F
#define UUID16_CHR_MANUFACTURER_NAME_STRING                   0x2A29
#define UUID16_CHR_MEASUREMENT_INTERVAL                       0x2A21
#define UUID16_CHR_MODEL_NUMBER_STRING                        0x2A24
#define UUID16_CHR_UNREAD_ALERT                               0x2A45
#define UUID16_CHR_NEW_ALERT                                  0x2A46
#define UUID16_CHR_PNP_ID                                     0x2A50
#define UUID16_CHR_PROTOCOL_MODE                              0x2A4E
#define UUID16_CHR_RECORD_ACCESS_CONTROL_POINT                0x2A52
#define UUID16_CHR_REFERENCE_TIME_INFORMATION                 0x2A14
#define UUID16_CHR_REPORT                                     0x2A4D
#define UUID16_CHR_REPORT_MAP                                 0x2A4B
#define UUID16_CHR_RINGER_CONTROL_POINT                       0x2A40
#define UUID16_CHR_RINGER_SETTING                             0x2A41
#define UUID16_CHR_SCAN_INTERVAL_WINDOW                       0x2A4F
#define UUID16_CHR_SCAN_REFRESH                               0x2A31
#define UUID16_CHR_SERIAL_NUMBER_STRING                       0x2A25
#define UUID16_CHR_SOFTWARE_REVISION_STRING                   0x2A28
#define UUID16_CHR_SUPPORTED_NEW_ALERT_CATEGORY               0x2A47
#define UUID16_CHR_SUPPORTED_UNREAD_ALERT_CATEGORY            0x2A48
#define UUID16_CHR_SYSTEM_ID                                  0x2A23
#define UUID16_CHR_TEMPERATURE_MEASUREMENT                    0x2A1C
#define UUID16_CHR_TEMPERATURE_TYPE                           0x2A1D
#define UUID16_CHR_TIME_ACCURACY                              0x2A12
#define UUID16_CHR_TIME_SOURCE                                0x2A13
#define UUID16_CHR_TIME_UPDATE_CONTROL_POINT                  0x2A16
#define UUID16_CHR_TIME_UPDATE_STATE                          0x2A17
#define UUID16_CHR_TIME_WITH_DST                              0x2A11
#define UUID16_CHR_TIME_ZONE                                  0x2A0E
#define UUID16_CHR_TX_POWER_LEVEL                             0x2A07
#define UUID16_CHR_CSC_FEATURE                                0x2A5C
#define UUID16_CHR_CSC_MEASUREMENT                            0x2A5B
#define UUID16_CHR_RSC_FEATURE                                0x2A54
#define UUID16_CHR_SC_CTRLPT                                  0x2A55
#define UUID16_CHR_RSC_MEASUREMENT                            0x2A53
#define UUID16_CHR_SENSOR_LOCATION                            0x2A5D
#define UUID16_EXTERNAL_REPORT_REF_DESCR                      0x2907
#define UUID16_REPORT_REF_DESCR                               0x2908
#define UUID16_CHR_LN_FEATURE                                 0x2A6A
#define UUID16_CHR_LN_POSITION_QUALITY                        0x2A69
#define UUID16_CHR_LN_LOCATION_AND_SPEED                      0x2A67
#define UUID16_CHR_LN_NAVIGATION                              0x2A68
#define UUID16_CHR_LN_CONTROL_POINT                           0x2A6B
#define UUID16_BMS_CTRLPT                                     0x2AA4
#define UUID16_BMS_FEATURE                                    0x2AA5
#define UUID16_CGM_MEASUREMENT                                0x2AA7
#define UUID16_CGM_FEATURE                                    0x2AA8
#define UUID16_CGM_STATUS                                     0x2AA9
#define UUID16_CGM_SESSION_START_TIME                         0x2AAA
#define UUID16_CGM_SESSION_RUN_TIME                           0x2AAB
#define UUID16_CGM_SPECIFIC_OPS_CTRLPT                        0x2AAC
#define UUID16_PLX_SPOT_CHECK_MEAS                            0x2A5E
#define UUID16_PLX_CONTINUOUS_MEAS                            0x2A5F
#define UUID16_PLX_FEATURES                                   0x2A60

/*------------------------------------------------------------------*/
/* Company UUID
 * https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers
 *------------------------------------------------------------------*/
#define UUID16_COMPANY_ID_APPLE         0x004C


/*------------------------------------------------------------------*/
/* Unit values ( used in Characteristic Presentation Format )
 * https://developer.bluetooth.org/gatt/units/Pages/default.aspx
 *------------------------------------------------------------------*/
#define UUID16_UNIT_UNITLESS                                                0x2700
#define UUID16_UNIT_LENGTH_METRE                                            0x2701
#define UUID16_UNIT_MASS_KILOGRAM                                           0x2702
#define UUID16_UNIT_TIME_SECOND                                             0x2703
#define UUID16_UNIT_ELECTRIC_CURRENT_AMPERE                                 0x2704
#define UUID16_UNIT_THERMODYNAMIC_TEMPERATURE_KELVIN                        0x2705
#define UUID16_UNIT_AMOUNT_OF_SUBSTANCE_MOLE                                0x2706
#define UUID16_UNIT_LUMINOUS_INTENSITY_CANDELA                              0x2707
#define UUID16_UNIT_AREA_SQUARE_METRES                                      0x2710
#define UUID16_UNIT_VOLUME_CUBIC_METRES                                     0x2711
#define UUID16_UNIT_VELOCITY_METRES_PER_SECOND                              0x2712
#define UUID16_UNIT_ACCELERATION_METRES_PER_SECOND_SQUARED                  0x2713
#define UUID16_UNIT_WAVENUMBER_RECIPROCAL_METRE                             0x2714
#define UUID16_UNIT_DENSITY_KILOGRAM_PER_CUBIC_METRE                        0x2715
#define UUID16_UNIT_SURFACE_DENSITY_KILOGRAM_PER_SQUARE_METRE               0x2716
#define UUID16_UNIT_SPECIFIC_VOLUME_CUBIC_METRE_PER_KILOGRAM                0x2717
#define UUID16_UNIT_CURRENT_DENSITY_AMPERE_PER_SQUARE_METRE                 0x2718
#define UUID16_UNIT_MAGNETIC_FIELD_STRENGTH_AMPERE_PER_METRE                0x2719
#define UUID16_UNIT_AMOUNT_CONCENTRATION_MOLE_PER_CUBIC_METRE               0x271A
#define UUID16_UNIT_MASS_CONCENTRATION_KILOGRAM_PER_CUBIC_METRE             0x271B
#define UUID16_UNIT_LUMINANCE_CANDELA_PER_SQUARE_METRE                      0x271C
#define UUID16_UNIT_REFRACTIVE_INDEX                                        0x271D
#define UUID16_UNIT_RELATIVE_PERMEABILITY                                   0x271E
#define UUID16_UNIT_PLANE_ANGLE_RADIAN                                      0x2720
#define UUID16_UNIT_SOLID_ANGLE_STERADIAN                                   0x2721
#define UUID16_UNIT_FREQUENCY_HERTZ                                         0x2722
#define UUID16_UNIT_FORCE_NEWTON                                            0x2723
#define UUID16_UNIT_PRESSURE_PASCAL                                         0x2724
#define UUID16_UNIT_ENERGY_JOULE                                            0x2725
#define UUID16_UNIT_POWER_WATT                                              0x2726
#define UUID16_UNIT_ELECTRIC_CHARGE_COULOMB                                 0x2727
#define UUID16_UNIT_ELECTRIC_POTENTIAL_DIFFERENCE_VOLT                      0x2728
#define UUID16_UNIT_CAPACITANCE_FARAD                                       0x2729
#define UUID16_UNIT_ELECTRIC_RESISTANCE_OHM                                 0x272A
#define UUID16_UNIT_ELECTRIC_CONDUCTANCE_SIEMENS                            0x272B
#define UUID16_UNIT_MAGNETIC_FLEX_WEBER                                     0x272C
#define UUID16_UNIT_MAGNETIC_FLEX_DENSITY_TESLA                             0x272D
#define UUID16_UNIT_INDUCTANCE_HENRY                                        0x272E
#define UUID16_UNIT_THERMODYNAMIC_TEMPERATURE_DEGREE_CELSIUS                0x272F
#define UUID16_UNIT_LUMINOUS_FLUX_LUMEN                                     0x2730
#define UUID16_UNIT_ILLUMINANCE_LUX                                         0x2731
#define UUID16_UNIT_ACTIVITY_REFERRED_TO_A_RADIONUCLIDE_BECQUEREL           0x2732
#define UUID16_UNIT_ABSORBED_DOSE_GRAY                                      0x2733
#define UUID16_UNIT_DOSE_EQUIVALENT_SIEVERT                                 0x2734
#define UUID16_UNIT_CATALYTIC_ACTIVITY_KATAL                                0x2735
#define UUID16_UNIT_DYNAMIC_VISCOSITY_PASCAL_SECOND                         0x2740
#define UUID16_UNIT_MOMENT_OF_FORCE_NEWTON_METRE                            0x2741
#define UUID16_UNIT_SURFACE_TENSION_NEWTON_PER_METRE                        0x2742
#define UUID16_UNIT_ANGULAR_VELOCITY_RADIAN_PER_SECOND                      0x2743
#define UUID16_UNIT_ANGULAR_ACCELERATION_RADIAN_PER_SECOND_SQUARED          0x2744
#define UUID16_UNIT_HEAT_FLUX_DENSITY_WATT_PER_SQUARE_METRE                 0x2745
#define UUID16_UNIT_HEAT_CAPACITY_JOULE_PER_KELVIN                          0x2746
#define UUID16_UNIT_SPECIFIC_HEAT_CAPACITY_JOULE_PER_KILOGRAM_KELVIN        0x2747
#define UUID16_UNIT_SPECIFIC_ENERGY_JOULE_PER_KILOGRAM                      0x2748
#define UUID16_UNIT_THERMAL_CONDUCTIVITY_WATT_PER_METRE_KELVIN              0x2749
#define UUID16_UNIT_ENERGY_DENSITY_JOULE_PER_CUBIC_METRE                    0x274A
#define UUID16_UNIT_ELECTRIC_FIELD_STRENGTH_VOLT_PER_METRE                  0x274B
#define UUID16_UNIT_ELECTRIC_CHARGE_DENSITY_COULOMB_PER_CUBIC_METRE         0x274C
#define UUID16_UNIT_SURFACE_CHARGE_DENSITY_COULOMB_PER_SQUARE_METRE         0x274D
#define UUID16_UNIT_ELECTRIC_FLUX_DENSITY_COULOMB_PER_SQUARE_METRE          0x274E
#define UUID16_UNIT_PERMITTIVITY_FARAD_PER_METRE                            0x274F
#define UUID16_UNIT_PERMEABILITY_HENRY_PER_METRE                            0x2750
#define UUID16_UNIT_MOLAR_ENERGY_JOULE_PER_MOLE                             0x2751
#define UUID16_UNIT_MOLAR_ENTROPY_JOULE_PER_MOLE_KELVIN                     0x2752
#define UUID16_UNIT_EXPOSURE_COULOMB_PER_KILOGRAM                           0x2753
#define UUID16_UNIT_ABSORBED_DOSE_RATE_GRAY_PER_SECOND                      0x2754
#define UUID16_UNIT_RADIANT_INTENSITY_WATT_PER_STERADIAN                    0x2755
#define UUID16_UNIT_RADIANCE_WATT_PER_SQUARE_METRE_STERADIAN                0x2756
#define UUID16_UNIT_CATALYTIC_ACTIVITY_CONCENTRATION_KATAL_PER_CUBIC_METRE  0x2757
#define UUID16_UNIT_TIME_MINUTE                                             0x2760
#define UUID16_UNIT_TIME_HOUR                                               0x2761
#define UUID16_UNIT_TIME_DAY                                                0x2762
#define UUID16_UNIT_PLANE_ANGLE_DEGREE                                      0x2763
#define UUID16_UNIT_PLANE_ANGLE_MINUTE                                      0x2764
#define UUID16_UNIT_PLANE_ANGLE_SECOND                                      0x2765
#define UUID16_UNIT_AREA_HECTARE                                            0x2766
#define UUID16_UNIT_VOLUME_LITRE                                            0x2767
#define UUID16_UNIT_MASS_TONNE                                              0x2768
#define UUID16_UNIT_PRESSURE_BAR                                            0x2780
#define UUID16_UNIT_PRESSURE_MILLIMETRE_OF_MERCURY                          0x2781
#define UUID16_UNIT_LENGTH_ANGSTROM                                         0x2782
#define UUID16_UNIT_LENGTH_NAUTICAL_MILE                                    0x2783
#define UUID16_UNIT_AREA_BARN                                               0x2784
#define UUID16_UNIT_VELOCITY_KNOT                                           0x2785
#define UUID16_UNIT_LOGARITHMIC_RADIO_QUANTITY_NEPER                        0x2786
#define UUID16_UNIT_LOGARITHMIC_RADIO_QUANTITY_BEL                          0x2787
#define UUID16_UNIT_LENGTH_YARD                                             0x27A0
#define UUID16_UNIT_LENGTH_PARSEC                                           0x27A1
#define UUID16_UNIT_LENGTH_INCH                                             0x27A2
#define UUID16_UNIT_LENGTH_FOOT                                             0x27A3
#define UUID16_UNIT_LENGTH_MILE                                             0x27A4
#define UUID16_UNIT_PRESSURE_POUND_FORCE_PER_SQUARE_INCH                    0x27A5
#define UUID16_UNIT_VELOCITY_KILOMETRE_PER_HOUR                             0x27A6
#define UUID16_UNIT_VELOCITY_MILE_PER_HOUR                                  0x27A7
#define UUID16_UNIT_ANGULAR_VELOCITY_REVOLUTION_PER_MINUTE                  0x27A8
#define UUID16_UNIT_ENERGY_GRAM_CALORIE                                     0x27A9
#define UUID16_UNIT_ENERGY_KILOGRAM_CALORIE                                 0x27AA
#define UUID16_UNIT_ENERGY_KILOWATT_HOUR                                    0x27AB
#define UUID16_UNIT_THERMODYNAMIC_TEMPERATURE_DEGREE_FAHRENHEIT             0x27AC
#define UUID16_UNIT_PERCENTAGE                                              0x27AD
#define UUID16_UNIT_PER_MILLE                                               0x27AE
#define UUID16_UNIT_PERIOD_BEATS_PER_MINUTE                                 0x27AF
#define UUID16_UNIT_ELECTRIC_CHARGE_AMPERE_HOURS                            0x27B0
#define UUID16_UNIT_MASS_DENSITY_MILLIGRAM_PER_DECILITRE                    0x27B1
#define UUID16_UNIT_MASS_DENSITY_MILLIMOLE_PER_LITRE                        0x27B2
#define UUID16_UNIT_TIME_YEAR                                               0x27B3
#define UUID16_UNIT_TIME_MONTH                                              0x27B4
#define UUID16_UNIT_CONCENTRATION_COUNT_PER_CUBIC_METRE                     0x27B5
#define UUID16_UNIT_IRRADIANCE_WATT_PER_SQUARE_METRE                        0x27B6

#endif /* BLEUUID_H_ */