bluetooth

package module
v0.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 18, 2024 License: BSD-3-Clause Imports: 9 Imported by: 214

README

Go Bluetooth

Go Bluetooth

PkgGoDev Linux macOS

Go Bluetooth is a cross-platform package for using Bluetooth Low Energy hardware from the Go programming language.

It works on typical operating systems such as Linux, macOS, and Windows.

It can also be used running "bare metal" on microcontrollers produced by Nordic Semiconductor or using the Bluetooth Host Controller Interface (HCI) by using TinyGo.

The Go Bluetooth package can be used to create both Bluetooth Low Energy Centrals as well as to create Bluetooth Low Energy Peripherals.

Bluetooth Low Energy Central

A typical Bluetooth Low Energy Central would be your laptop computer or mobile phone.

This example shows a central that scans for peripheral devices and then displays information about them as they are discovered:

package main

import (
	"tinygo.org/x/bluetooth"
)

var adapter = bluetooth.DefaultAdapter

func main() {
	// Enable BLE interface.
	must("enable BLE stack", adapter.Enable())

	// Start scanning.
	println("scanning...")
	err := adapter.Scan(func(adapter *bluetooth.Adapter, device bluetooth.ScanResult) {
		println("found device:", device.Address.String(), device.RSSI, device.LocalName())
	})
	must("start scan", err)
}

func must(action string, err error) {
	if err != nil {
		panic("failed to " + action + ": " + err.Error())
	}
}

Bluetooth Low Energy Peripheral

A typical Bluetooth Low Energy Peripheral would be a temperature sensor or heart rate sensor.

This example shows a peripheral that advertises itself as being available for connection:

package main

import (
	"time"

	"tinygo.org/x/bluetooth"
)

var adapter = bluetooth.DefaultAdapter

func main() {
  	// Enable BLE interface.
	must("enable BLE stack", adapter.Enable())

  	// Define the peripheral device info.
	adv := adapter.DefaultAdvertisement()
	must("config adv", adv.Configure(bluetooth.AdvertisementOptions{
		LocalName: "Go Bluetooth",
  	}))
  
  	// Start advertising
	must("start adv", adv.Start())

	println("advertising...")
	for {
		// Sleep forever.
		time.Sleep(time.Hour)
	}
}

func must(action string, err error) {
	if err != nil {
		panic("failed to " + action + ": " + err.Error())
	}
}

Current support

Linux macOS Windows Nordic Semi ESP32 (NINA-FW) CYW43439 (RP2040-W)
API used BlueZ CoreBluetooth WinRT SoftDevice HCI HCI
Scanning
Connect to peripheral
Write peripheral characteristics
Receive notifications
Advertisement
Local services
Local characteristics
Send notifications

Linux

Go Bluetooth support for Linux uses BlueZ via the D-Bus interface. This should work with most distros that support BlueZ such as Ubuntu, Debian, Fedora, and Arch Linux, among others.

Linux can be used both as a BLE Central or as a BLE Peripheral.

Installation

You need to have a fairly recent version of BlueZ, for example v5.48 is the latest released version for Ubuntu/Debian.

sudo apt update
sudo apt install bluez

Once you have done this, you can obtain the Go Bluetooth package using Git:

git clone https://github.com/tinygo-org/bluetooth.git
Compiling

After you have followed the installation, you should be able to compile/run the "scanner" test program:

cd bluetooth
go run ./examples/scanner

macOS

Go Bluetooth support for macOS uses the CoreBluetooth libraries thanks to the https://github.com/tinygo-org/cbgo fork of the cbgo package.

As a result, it should work with most versions of macOS, although it will require compiling using whatever specific version of XCode is required by your version of the operating system.

The macOS support only can only act as a BLE Central at this time, with some additional development work needed for full functionality.

Installation

In order to compile Go Bluetooth code targeting macOS, you must do so on macOS itself. In other words, we do not currently have cross compiler support. You must also have XCode tools installed:

xcode-select --install

Once you have done this, you can obtain the Go Bluetooth package using Git:

git clone https://github.com/tinygo-org/bluetooth.git
Compiling

After you have followed the installation, you should be able to compile/run the "scanner" test program:

cd bluetooth
go run ./examples/scanner
Troubleshooting

There is a known issue with iTerm2 and the Bluetooth package. If you are getting a message like abort: trap, try whitelisting iTerm2 manually through System Settings -> Privacy & Security -> Bluetooth.

Windows

Go Bluetooth support for Windows uses the WinRT Bluetooth interfaces by way of the https://github.com/saltosystems/winrt-go package.

The Windows support only can only act as a BLE Central at this time, with some additional development work needed for full functionality.

Installation

Only the Go compiler itself is needed to compile Go Bluetooth code targeting Windows.

You can obtain the Go Bluetooth package using Git:

git clone https://github.com/tinygo-org/bluetooth.git
Compiling

After you have followed the installation, you should be able to compile/run the "scanner" test program:

cd bluetooth
go run .\examples\scanner

Nordic Semiconductor

Go Bluetooth has bare metal support for several chips from Nordic Semiconductor that include a built-in Bluetooth Low Energy radio.

This support requires compiling your programs using TinyGo.

You must also use firmware provided by Nordic Semiconductor known as the "SoftDevice". The SoftDevice is a binary blob that implements the BLE stack. There are other (open source) BLE stacks, but the SoftDevices are pretty solid and have all the qualifications you might need. Other BLE stacks might be added in the future.

The Nordic Semiconductor SoftDevice can be used both as a BLE Central or as a BLE Peripheral, depending on which chip is being used. See the "Supported Chips" section below.

Installation

You must install TinyGo to be able to compile bare metal code using Go Bluetooth. Follow the instructions for your operating system at https://tinygo.org/getting-started/

Once you have installed TinyGo, you can install the Go Bluetooth package by running:

git clone https://github.com/tinygo-org/bluetooth.git

Check your desired target board for any additional installation requirements.

Adafruit "Bluefruit" boards

The line of "Bluefruit" boards created by Adafruit already have the SoftDevice firmware pre-loaded. This means you can use TinyGo and the Go Bluetooth package without any additional steps required. Supported Adafruit boards include:

After you have installed TinyGo and the Go Bluetooth package, you should be able to compile/run code for your device.

For example, this command can be used to compile and flash an Adafruit Circuit Playground Bluefruit board with the example we provide that turns it into a BLE server to control the built-in NeoPixel LEDs:

tinygo flash -target circuitplay-bluefruit ./examples/circuitplay

There are other boards with TinyGo support that also use the same UF2 bootloader with pre-loaded SoftDevice. They include:

BBC micro:bit
Version 1

The BBC micro:bit uses an nRF51 chip with a CMSIS-DAP interface.

You will need to install OpenOCD (http://openocd.org/) to flash the board.

First, flash the SoftDevice firmware by copying the .hex file to the device. For example (on Linux):

cd bluetooth
cp ./s110_nrf51_8.0.0/s110_nrf51_8.0.0_softdevice.hex /media/yourusername/MICROBIT/

Once you have copied the SoftDevice firmware to the BBC micro:bit, you can then flash your TinyGo program:

tinygo flash -target=microbit-s110v8 ./examples/heartrate
Version 2

The BBC micro:bit v2 uses an nRF52833 chip with a CMSIS-DAP interface.

Support for the v2 will be available soon.

Supported Chips

The following Nordic Semiconductor chips are currently supported:

  • nRF51822 with the S110 SoftDevice (version 8). This SoftDevice does not support all features (e.g. scanning).
  • nRF52832 with the S132 SoftDevice (version 6).
  • nRF52840 with the S140 SoftDevice (version 6 and 7).
Flashing the SoftDevice on Other Boards

To use a board that uses one of the above supported chips from Nordic Semiconductor, other then those already listed, you will probably need to install the SoftDevice firmware on the board yourself in order to use it with TinyGo and the Go Bluetooth package.

Flashing the SoftDevice can sometimes be tricky. If you have nrfjprog installed, you can erase the flash and flash the new BLE firmware using the following commands. Replace the path to the hex file with the correct SoftDevice, for example s132_nrf52_6.1.1/s132_nrf52_6.1.1_softdevice.hex for S132 version 6.

nrfjprog -f nrf52 --eraseall
nrfjprog -f nrf52 --program path/to/softdevice.hex

After that, don't reset the board but instead flash a new program to it. For example, you can flash the Heart Rate Sensor example using tinygo (modify the -target flag as needed for your board):

tinygo flash -target=pca10040-s132v6 ./examples/heartrate

Flashing will normally reset the board.

ESP32 (NINA)

Go Bluetooth has bare metal support for boards that include a separate ESP32 Bluetooth Low Energy radio co-processor. The ESP32 must be running the Arduino or Adafruit nina_fw firmware.

Several boards created by Adafruit and Arduino already have the nina-fw firmware pre-loaded. This means you can use TinyGo and the Go Bluetooth package without any additional steps required.

Currently supported boards include:

After you have installed TinyGo and the Go Bluetooth package, you should be able to compile/run code for your device.

For example, this command can be used to compile and flash an Arduino Nano RP2040 Connect board with the example we provide that turns it into a BLE peripheral to act like a heart rate monitor:

tinygo flash -target nano-rp2040 ./examples/heartrate

If you want more information about the nina-fw firmware, or want to add support for other ESP32-equipped boards, please see https://github.com/arduino/nina-fw

CYW43439 (RP2040-W)

Go Bluetooth has bare metal support for boards that include a separate CYW43439 Bluetooth Low Energy radio co-processor.

Currently supported boards include:

After you have installed TinyGo and the Go Bluetooth package, you should be able to compile/run code for your device.

For example, this command can be used to compile and flash a Pico RP2040-W board with the example we provide that turns it into a BLE peripheral to act like a heart rate monitor:

tinygo flash -target pico-w ./examples/heartrate

If you want more information about the cyw43439 support, please see https://github.com/soypat/cyw43439

API stability

The API is not stable! Because many features are not yet implemented and some platforms (e.g. Windows and macOS) are not yet fully supported, it's hard to say what a good API will be. Therefore, if you want stability you should pick a particular git commit and use that. Go modules can be useful for this purpose.

Some things that will probably change:

  • Add options to the Scan method, for example to filter on UUID.
  • Extra options to the Enable function, to request particular features (such as the number of peripheral connections supported).

This package will probably remain unstable until the following has been implemented:

  • Scan filters. For example, to filter on service UUID.
  • Bonding and private addresses.
  • Full support for all features at least two desktop operating systems.
  • Maybe some Bluetooth Classic support, such as A2DP.

Contributing

Your contributions are welcome!

Please take a look at our CONTRIBUTING.md document for details.

Frequently Asked Questions

Q. Where can I get an introduction to Bluetooth Low Energy, GAP, GATT, etc.?

A. Please see this excellent article from our friends at Adafruit: https://learn.adafruit.com/introduction-to-bluetooth-low-energy

Q. What is a client and server in BLE?

A. Please see https://devzone.nordicsemi.com/f/nordic-q-a/71/what-is-a-client-and-server-in-ble

Q. Can a device be both a GATT client and GATT server?

A. Yes, but this is not currently supported by Go Bluetooth. Current support is either to act as a central in client mode, or as a peripheral in server mode.

License

This project is licensed under the BSD 3-clause license, see the LICENSE file for details.

The SoftDevices from Nordic are licensed under a different license, check the license file in the SoftDevice source directory.

Documentation

Overview

Package bluetooth provides a cross-platform Bluetooth module for Go that can be used on operating systems such as Linux, macOS, and Windows.

It can also be used running "bare metal" on microcontrollers such as those produced by Nordic Semiconductor.

This package can be use to create Bluetooth Low Energy centrals as well as peripherals.

Code generated by bin/gen-characteristic-uuids; DO NOT EDIT. This file was generated on 2022-12-21 19:28:17.221517808 +0100 CET m=+0.001758142 using the list of standard characteristics UUIDs from https://github.com/NordicSemiconductor/bluetooth-numbers-database/blob/master/v1/characteristics_uuids.json

Code generated by bin/gen-service-uuids; DO NOT EDIT. This file was generated on 2022-12-21 19:21:51.011665984 +0100 CET m=+0.000615122 using the list of standard service UUIDs from https://github.com/NordicSemiconductor/bluetooth-numbers-database/blob/master/v1/service_uuids.json

Index

Constants

View Source
const Version = "0.10.0"

Version returns a user-readable string showing the version of the bluetooth package for support purposes. Update this value before release of new version of software.

Variables

View Source
var (

	// CharacteristicUUIDB02MassFlow - B02 Mass Flow
	CharacteristicUUIDB02MassFlow = New16BitUUID(0x2B02)

	// CharacteristicUUIDMicrobitPinIOConfiguration - micro:bit Pin I/O Configuration
	CharacteristicUUIDMicrobitPinIOConfiguration = NewUUID([16]byte{0xe9, 0x5d, 0xb9, 0xfe, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDMicrobitClientEvent - micro:bit Client Event
	CharacteristicUUIDMicrobitClientEvent = NewUUID([16]byte{0xe9, 0x5d, 0x54, 0x04, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDLastName - Last Name
	CharacteristicUUIDLastName = New16BitUUID(0x2A90)

	// CharacteristicUUIDRSCFeature - RSC Feature
	CharacteristicUUIDRSCFeature = New16BitUUID(0x2A54)

	// CharacteristicUUIDSetMemberRank - Set Member Rank
	CharacteristicUUIDSetMemberRank = New16BitUUID(0x2B87)

	// CharacteristicUUIDLegacyDFUVersion - Legacy DFU Version
	CharacteristicUUIDLegacyDFUVersion = NewUUID([16]byte{0x00, 0x00, 0x15, 0x34, 0x12, 0x12, 0xef, 0xde, 0x15, 0x23, 0x78, 0x5f, 0xea, 0xbc, 0xd1, 0x23})

	// CharacteristicUUIDAdafruitPressed - Adafruit Pressed
	CharacteristicUUIDAdafruitPressed = NewUUID([16]byte{0xad, 0xaf, 0x06, 0x01, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDHeatIndex - Heat Index
	CharacteristicUUIDHeatIndex = New16BitUUID(0x2A7A)

	// CharacteristicUUIDPressure - Pressure
	CharacteristicUUIDPressure = New16BitUUID(0x2A6D)

	// CharacteristicUUIDTwoZoneHeartRateLimit - Two Zone Heart Rate Limit
	CharacteristicUUIDTwoZoneHeartRateLimit = New16BitUUID(0x2A95)

	// CharacteristicUUIDMicrobitButtonAState - micro:bit Button A State
	CharacteristicUUIDMicrobitButtonAState = NewUUID([16]byte{0xe9, 0x5d, 0xda, 0x90, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDFitnessMachineControlPoint - Fitness Machine Control Point
	CharacteristicUUIDFitnessMachineControlPoint = New16BitUUID(0x2AD9)

	// CharacteristicUUIDIDDStatusReaderControlPoint1 - IDD Status Reader Control Point 1
	CharacteristicUUIDIDDStatusReaderControlPoint1 = New16BitUUID(0x2B24)

	// CharacteristicUUIDIDDStatusReaderControlPoint2 - IDD Status Reader Control Point 2
	CharacteristicUUIDIDDStatusReaderControlPoint2 = New16BitUUID(0x2B24)

	// CharacteristicUUIDCurrentTrackObjectID - Current Track Object ID
	CharacteristicUUIDCurrentTrackObjectID = New16BitUUID(0x2B9D)

	// CharacteristicUUIDMeshProvisioningDataIn - Mesh Provisioning Data In
	CharacteristicUUIDMeshProvisioningDataIn = New16BitUUID(0x2ADB)

	// CharacteristicUUIDLocationName - Location Name
	CharacteristicUUIDLocationName = New16BitUUID(0x2AB5)

	// CharacteristicUUIDRelativeValueInAVoltageRange - Relative Value In A Voltage Range
	CharacteristicUUIDRelativeValueInAVoltageRange = New16BitUUID(0x2B09)

	// CharacteristicUUIDDateTime - Date Time
	CharacteristicUUIDDateTime = New16BitUUID(0x2A08)

	// CharacteristicUUIDVoltageStatistics - Voltage Statistics
	CharacteristicUUIDVoltageStatistics = New16BitUUID(0x2B1A)

	// CharacteristicUUIDBSSResponse - BSS Response
	CharacteristicUUIDBSSResponse = New16BitUUID(0x2B2C)

	// CharacteristicUUIDEddystoneAdvancedAdvertisedTxPower - Eddystone (Advanced) Advertised Tx Power
	CharacteristicUUIDEddystoneAdvancedAdvertisedTxPower = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x05, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95})

	// CharacteristicUUIDAnaerobicThreshold - Anaerobic Threshold
	CharacteristicUUIDAnaerobicThreshold = New16BitUUID(0x2A83)

	// CharacteristicUUIDCGMMeasurement - CGM Measurement
	CharacteristicUUIDCGMMeasurement = New16BitUUID(0x2AA7)

	// CharacteristicUUIDDateOfBirth - Date of Birth
	CharacteristicUUIDDateOfBirth = New16BitUUID(0x2A85)

	// CharacteristicUUIDCountryCode - Country Code
	CharacteristicUUIDCountryCode = New16BitUUID(0x2AEC)

	// CharacteristicUUIDTrueWindSpeed - True Wind Speed
	CharacteristicUUIDTrueWindSpeed = New16BitUUID(0x2A70)

	// CharacteristicUUIDElectricCurrent - Electric Current
	CharacteristicUUIDElectricCurrent = New16BitUUID(0x2AEE)

	// CharacteristicUUIDThingyMTURequest - Thingy MTU Request
	CharacteristicUUIDThingyMTURequest = NewUUID([16]byte{0xef, 0x68, 0x01, 0x08, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDBatteryLevelState - Battery Level State
	CharacteristicUUIDBatteryLevelState = New16BitUUID(0x2A1B)

	// CharacteristicUUIDIntermediateTemperature - Intermediate Temperature
	CharacteristicUUIDIntermediateTemperature = New16BitUUID(0x2A1E)

	// CharacteristicUUIDLatitude - Latitude
	CharacteristicUUIDLatitude = New16BitUUID(0x2AAE)

	// CharacteristicUUIDEventStatistics - Event Statistics
	CharacteristicUUIDEventStatistics = New16BitUUID(0x2AF4)

	// CharacteristicUUIDGroupObjectType - Group Object Type
	CharacteristicUUIDGroupObjectType = New16BitUUID(0x2BAC)

	// CharacteristicUUIDCallControlPoint - Call Control Point
	CharacteristicUUIDCallControlPoint = New16BitUUID(0x2BBE)

	// CharacteristicUUIDMicrobitButtonBState - micro:bit Button B State
	CharacteristicUUIDMicrobitButtonBState = NewUUID([16]byte{0xe9, 0x5d, 0xda, 0x91, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDScanIntervalWindow - Scan Interval Window
	CharacteristicUUIDScanIntervalWindow = New16BitUUID(0x2A4F)

	// CharacteristicUUIDCIE1331995ColorRenderingIndex - CIE 13.3-1995 Color Rendering Index
	CharacteristicUUIDCIE1331995ColorRenderingIndex = New16BitUUID(0x2AE7)

	// CharacteristicUUIDGeneralActivityInstantaneousData - General Activity Instantaneous Data
	CharacteristicUUIDGeneralActivityInstantaneousData = New16BitUUID(0x2B3C)

	// CharacteristicUUIDAppleEntityAttribute - Apple Entity Attribute
	CharacteristicUUIDAppleEntityAttribute = NewUUID([16]byte{0xc6, 0xb2, 0xf3, 0x8c, 0x23, 0xab, 0x46, 0xd8, 0xa6, 0xab, 0xa3, 0xa8, 0x70, 0xbb, 0xd5, 0xd7})

	// CharacteristicUUIDLocalTimeInformation - Local Time Information
	CharacteristicUUIDLocalTimeInformation = New16BitUUID(0x2A0F)

	// CharacteristicUUIDTimeUpdateState - Time Update State
	CharacteristicUUIDTimeUpdateState = New16BitUUID(0x2A17)

	// CharacteristicUUIDThreeZoneHeartRateLimits - Three Zone Heart Rate Limits
	CharacteristicUUIDThreeZoneHeartRateLimits = New16BitUUID(0x2A94)

	// CharacteristicUUIDElectricCurrentRange - Electric Current Range
	CharacteristicUUIDElectricCurrentRange = New16BitUUID(0x2AEF)

	// CharacteristicUUIDEnhancedIntermediateCuffPressure - Enhanced Intermediate Cuff Pressure
	CharacteristicUUIDEnhancedIntermediateCuffPressure = New16BitUUID(0x2B35)

	// CharacteristicUUIDAdafruitSoundSamples - Adafruit Sound Samples
	CharacteristicUUIDAdafruitSoundSamples = NewUUID([16]byte{0xad, 0xaf, 0x0b, 0x01, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDBootKeyboardOutputReport - Boot Keyboard Output Report
	CharacteristicUUIDBootKeyboardOutputReport = New16BitUUID(0x2A32)

	// CharacteristicUUIDLNControlPoint - LN Control Point
	CharacteristicUUIDLNControlPoint = New16BitUUID(0x2A6B)

	// CharacteristicUUIDWeight - Weight
	CharacteristicUUIDWeight = New16BitUUID(0x2A98)

	// CharacteristicUUIDMicrobitPinADConfiguration - micro:bit Pin AD Configuration
	CharacteristicUUIDMicrobitPinADConfiguration = NewUUID([16]byte{0xe9, 0x5d, 0x58, 0x99, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDFatBurnHeartRateLowerLimit - Fat Burn Heart Rate Lower Limit
	CharacteristicUUIDFatBurnHeartRateLowerLimit = New16BitUUID(0x2A88)

	// CharacteristicUUIDTemperatureCelsius - Temperature Celsius
	CharacteristicUUIDTemperatureCelsius = New16BitUUID(0x2A1F)

	// CharacteristicUUIDPnPID - PnP ID
	CharacteristicUUIDPnPID = New16BitUUID(0x2A50)

	// CharacteristicUUIDWindChill - Wind Chill
	CharacteristicUUIDWindChill = New16BitUUID(0x2A79)

	// CharacteristicUUIDCorrelatedColorTemperature - Correlated Color Temperature
	CharacteristicUUIDCorrelatedColorTemperature = New16BitUUID(0x2AE9)

	// CharacteristicUUIDPlayingOrdersSupported - Playing Orders Supported
	CharacteristicUUIDPlayingOrdersSupported = New16BitUUID(0x2BA2)

	// CharacteristicUUIDAdafruitMagnetic - Adafruit Magnetic
	CharacteristicUUIDAdafruitMagnetic = NewUUID([16]byte{0xad, 0xaf, 0x05, 0x01, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDAnalogOutput - Analog Output
	CharacteristicUUIDAnalogOutput = New16BitUUID(0x2A59)

	// CharacteristicUUIDFitnessMachineStatus - Fitness Machine Status
	CharacteristicUUIDFitnessMachineStatus = New16BitUUID(0x2ADA)

	// CharacteristicUUIDLocalNorthCoordinate - Local North Coordinate
	CharacteristicUUIDLocalNorthCoordinate = New16BitUUID(0x2AB0)

	// CharacteristicUUIDObjectChanged - Object Changed
	CharacteristicUUIDObjectChanged = New16BitUUID(0x2AC8)

	// CharacteristicUUIDPlayingOrder - Playing Order
	CharacteristicUUIDPlayingOrder = New16BitUUID(0x2BA1)

	// CharacteristicUUIDEddystoneAdvancedRemainConnectable - Eddystone (Advanced) Remain Connectable
	CharacteristicUUIDEddystoneAdvancedRemainConnectable = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x0c, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95})

	// CharacteristicUUIDBodySensorLocation - Body Sensor Location
	CharacteristicUUIDBodySensorLocation = New16BitUUID(0x2A38)

	// CharacteristicUUIDDigitalOutput - Digital Output
	CharacteristicUUIDDigitalOutput = New16BitUUID(0x2A57)

	// CharacteristicUUIDMDSDeviceDataURI - MDS Device Data URI Characteristic
	CharacteristicUUIDMDSDeviceDataURI = NewUUID([16]byte{0x54, 0x22, 0x00, 0x03, 0xf6, 0xa5, 0x40, 0x07, 0xa3, 0x71, 0x72, 0x2f, 0x4e, 0xbd, 0x84, 0x36})

	// CharacteristicUUIDNetworkAvailability - Network Availability
	CharacteristicUUIDNetworkAvailability = New16BitUUID(0x2A3E)

	// CharacteristicUUIDTimeAccuracy - Time Accuracy
	CharacteristicUUIDTimeAccuracy = New16BitUUID(0x2A12)

	// CharacteristicUUIDRestingHeartRate - Resting Heart Rate
	CharacteristicUUIDRestingHeartRate = New16BitUUID(0x2A92)

	// CharacteristicUUIDTimeHour24 - Time Hour 24
	CharacteristicUUIDTimeHour24 = New16BitUUID(0x2B14)

	// CharacteristicUUIDPositionQuality - Position Quality
	CharacteristicUUIDPositionQuality = New16BitUUID(0x2A69)

	// CharacteristicUUIDBluetoothSIGData - Bluetooth SIG Data
	CharacteristicUUIDBluetoothSIGData = New16BitUUID(0x2B39)

	// CharacteristicUUIDSeekingSpeed - Seeking Speed
	CharacteristicUUIDSeekingSpeed = New16BitUUID(0x2B9B)

	// CharacteristicUUIDHTTPSSecurity - HTTPS Security
	CharacteristicUUIDHTTPSSecurity = New16BitUUID(0x2ABB)

	// CharacteristicUUIDObjectName - Object Name
	CharacteristicUUIDObjectName = New16BitUUID(0x2ABE)

	// CharacteristicUUIDAudioLocation - Audio Location
	CharacteristicUUIDAudioLocation = New16BitUUID(0x2B81)

	// CharacteristicUUIDBroadcastAudioScanControlPoint - Broadcast Audio Scan Control Point
	CharacteristicUUIDBroadcastAudioScanControlPoint = New16BitUUID(0x2BC7)

	// CharacteristicUUIDIrradiance - Irradiance
	CharacteristicUUIDIrradiance = New16BitUUID(0x2A77)

	// CharacteristicUUIDBoolean - Boolean
	CharacteristicUUIDBoolean = New16BitUUID(0x2AE2)

	// CharacteristicUUIDLNFeature - LN Feature
	CharacteristicUUIDLNFeature = New16BitUUID(0x2A6A)

	// CharacteristicUUIDThingyConfiguration - Thingy Configuration
	CharacteristicUUIDThingyConfiguration = NewUUID([16]byte{0xef, 0x68, 0x02, 0x06, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDSinkASE - Sink ASE
	CharacteristicUUIDSinkASE = New16BitUUID(0x2BC4)

	// CharacteristicUUIDSMP - SMP Characteristic
	CharacteristicUUIDSMP = NewUUID([16]byte{0xda, 0x2e, 0x78, 0x28, 0xfb, 0xce, 0x4e, 0x01, 0xae, 0x9e, 0x26, 0x11, 0x74, 0x99, 0x7c, 0x48})

	// CharacteristicUUIDPhilipsHueLightColor - Philips Hue Light Color
	CharacteristicUUIDPhilipsHueLightColor = NewUUID([16]byte{0x93, 0x2c, 0x32, 0xbd, 0x00, 0x05, 0x47, 0xa2, 0x83, 0x5a, 0xa8, 0xd4, 0x55, 0xb8, 0x59, 0xdd})

	// CharacteristicUUIDFastPairData - Fast Pair Data
	CharacteristicUUIDFastPairData = NewUUID([16]byte{0xfe, 0x2c, 0x12, 0x37, 0x83, 0x66, 0x48, 0x14, 0x8e, 0xb0, 0x01, 0xde, 0x32, 0x10, 0x0b, 0xea})

	// CharacteristicUUIDGlucoseFeature - Glucose Feature
	CharacteristicUUIDGlucoseFeature = New16BitUUID(0x2A51)

	// CharacteristicUUIDHandedness - Handedness
	CharacteristicUUIDHandedness = New16BitUUID(0x2B4A)

	// CharacteristicUUIDCount24 - Count 24
	CharacteristicUUIDCount24 = New16BitUUID(0x2AEB)

	// CharacteristicUUIDHighIntensityExerciseThreshold - High Intensity Exercise Threshold
	CharacteristicUUIDHighIntensityExerciseThreshold = New16BitUUID(0x2B4D)

	// CharacteristicUUIDMediaState - Media State
	CharacteristicUUIDMediaState = New16BitUUID(0x2BA3)

	// CharacteristicUUIDAdafruitHumidity - Adafruit Humidity
	CharacteristicUUIDAdafruitHumidity = NewUUID([16]byte{0xad, 0xaf, 0x07, 0x01, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDAdafruitTone - Adafruit Tone
	CharacteristicUUIDAdafruitTone = NewUUID([16]byte{0xad, 0xaf, 0x0c, 0x01, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDHeliumHotspotWiFiConfiguredServices - Helium Hotspot WiFi Configured Services
	CharacteristicUUIDHeliumHotspotWiFiConfiguredServices = NewUUID([16]byte{0xe1, 0x25, 0xbd, 0xa4, 0x6f, 0xb8, 0x11, 0xea, 0xbc, 0x55, 0x02, 0x42, 0xac, 0x13, 0x00, 0x03})

	// CharacteristicUUIDIDDFeatures1 - IDD Features 1
	CharacteristicUUIDIDDFeatures1 = New16BitUUID(0x2B23)

	// CharacteristicUUIDIDDFeatures2 - IDD Features 2
	CharacteristicUUIDIDDFeatures2 = New16BitUUID(0x2B23)

	// CharacteristicUUIDTimeSource - Time Source
	CharacteristicUUIDTimeSource = New16BitUUID(0x2A13)

	// CharacteristicUUIDHIDControlPoint - HID Control Point
	CharacteristicUUIDHIDControlPoint = New16BitUUID(0x2A4C)

	// CharacteristicUUIDSetMemberLock - Set Member Lock
	CharacteristicUUIDSetMemberLock = New16BitUUID(0x2B86)

	// CharacteristicUUIDScientificTemperatureCelsius - Scientific Temperature Celsius
	CharacteristicUUIDScientificTemperatureCelsius = New16BitUUID(0x2A3C)

	// CharacteristicUUIDTrackChanged - Track Changed
	CharacteristicUUIDTrackChanged = New16BitUUID(0x2B96)

	// CharacteristicUUIDAdafruitAcceleration - Adafruit Acceleration
	CharacteristicUUIDAdafruitAcceleration = NewUUID([16]byte{0xad, 0xaf, 0x02, 0x01, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDHeliumHotspotDiagnostics - Helium Hotspot Diagnostics
	CharacteristicUUIDHeliumHotspotDiagnostics = NewUUID([16]byte{0xb8, 0x33, 0xd3, 0x4f, 0xd8, 0x71, 0x42, 0x2c, 0xbf, 0x9e, 0x8e, 0x6e, 0xc1, 0x17, 0xd5, 0x7e})

	// CharacteristicUUIDAltitude - Altitude
	CharacteristicUUIDAltitude = New16BitUUID(0x2AB3)

	// CharacteristicUUIDApparentWindSpeed - Apparent Wind Speed
	CharacteristicUUIDApparentWindSpeed = New16BitUUID(0x2A72)

	// CharacteristicUUIDContentControlID - Content Control ID
	CharacteristicUUIDContentControlID = New16BitUUID(0x2BBA)

	// CharacteristicUUIDAdafruitTemperature - Adafruit Temperature
	CharacteristicUUIDAdafruitTemperature = NewUUID([16]byte{0xad, 0xaf, 0x01, 0x01, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDRemovable - Removable
	CharacteristicUUIDRemovable = New16BitUUID(0x2A3A)

	// CharacteristicUUIDTrueWindDirection - True Wind Direction
	CharacteristicUUIDTrueWindDirection = New16BitUUID(0x2A71)

	// CharacteristicUUIDCardioRespiratoryActivitySummaryData - CardioRespiratory Activity Summary Data
	CharacteristicUUIDCardioRespiratoryActivitySummaryData = New16BitUUID(0x2B3F)

	// CharacteristicUUIDStrideLength - Stride Length
	CharacteristicUUIDStrideLength = New16BitUUID(0x2B49)

	// CharacteristicUUIDCoordinatedSetSize - Coordinated Set Size
	CharacteristicUUIDCoordinatedSetSize = New16BitUUID(0x2B85)

	// CharacteristicUUIDEddystoneRadioTxPower - Eddystone Radio Tx Power
	CharacteristicUUIDEddystoneRadioTxPower = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x04, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95})

	// CharacteristicUUIDAdafruitQuaternions - Adafruit Quaternions
	CharacteristicUUIDAdafruitQuaternions = NewUUID([16]byte{0xad, 0xaf, 0x0d, 0x01, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDAppearance - Appearance
	CharacteristicUUIDAppearance = New16BitUUID(0x2A01)

	// CharacteristicUUIDSystemID - System ID
	CharacteristicUUIDSystemID = New16BitUUID(0x2A23)

	// CharacteristicUUIDPhysicalActivitySessionDescriptor - Physical Activity Session Descriptor
	CharacteristicUUIDPhysicalActivitySessionDescriptor = New16BitUUID(0x2B45)

	// CharacteristicUUIDThingyPedometer - Thingy Pedometer
	CharacteristicUUIDThingyPedometer = NewUUID([16]byte{0xef, 0x68, 0x04, 0x05, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDAlertLevel - Alert Level
	CharacteristicUUIDAlertLevel = New16BitUUID(0x2A06)

	// CharacteristicUUIDBootKeyboardInputReport - Boot Keyboard Input Report
	CharacteristicUUIDBootKeyboardInputReport = New16BitUUID(0x2A22)

	// CharacteristicUUIDExactTime100 - Exact Time 100
	CharacteristicUUIDExactTime100 = New16BitUUID(0x2A0B)

	// CharacteristicUUIDTemperature8InAPeriodOfDay - Temperature 8 In A Period Of Day
	CharacteristicUUIDTemperature8InAPeriodOfDay = New16BitUUID(0x2B0E)

	// CharacteristicUUIDDeviceTime - Device Time
	CharacteristicUUIDDeviceTime = New16BitUUID(0x2B90)

	// CharacteristicUUIDThingyAdvertisingParameters - Thingy Advertising Parameters
	CharacteristicUUIDThingyAdvertisingParameters = NewUUID([16]byte{0xef, 0x68, 0x01, 0x02, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDThingyEddystoneURL - Thingy Eddystone URL
	CharacteristicUUIDThingyEddystoneURL = NewUUID([16]byte{0xef, 0x68, 0x01, 0x05, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDEddystoneCapabilities - Eddystone Capabilities
	CharacteristicUUIDEddystoneCapabilities = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x01, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95})

	// CharacteristicUUIDCurrentTime - Current Time
	CharacteristicUUIDCurrentTime = New16BitUUID(0x2A2B)

	// CharacteristicUUIDDewPoint - Dew Point
	CharacteristicUUIDDewPoint = New16BitUUID(0x2A7B)

	// CharacteristicUUIDAppleRemoteCommand - Apple Remote Command
	CharacteristicUUIDAppleRemoteCommand = NewUUID([16]byte{0x9b, 0x3c, 0x81, 0xd8, 0x57, 0xb1, 0x4a, 0x8a, 0xb8, 0xdf, 0x0e, 0x56, 0xf7, 0xca, 0x51, 0xc2})

	// CharacteristicUUIDMediaControlPointOpcodesSupported - Media Control Point Opcodes Supported
	CharacteristicUUIDMediaControlPointOpcodesSupported = New16BitUUID(0x2BA5)

	// CharacteristicUUIDExperimentalButtonlessDFU - Experimental Buttonless DFU
	CharacteristicUUIDExperimentalButtonlessDFU = NewUUID([16]byte{0x8e, 0x40, 0x00, 0x01, 0xf3, 0x15, 0x4f, 0x60, 0x9f, 0xb8, 0x83, 0x88, 0x30, 0xda, 0xea, 0x50})

	// CharacteristicUUIDAdafruitPressure - Adafruit Pressure
	CharacteristicUUIDAdafruitPressure = NewUUID([16]byte{0xad, 0xaf, 0x08, 0x01, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDMeasurementInterval - Measurement Interval
	CharacteristicUUIDMeasurementInterval = New16BitUUID(0x2A21)

	// CharacteristicUUIDPlaybackSpeed - Playback Speed
	CharacteristicUUIDPlaybackSpeed = New16BitUUID(0x2B9A)

	// CharacteristicUUIDVolumeOffsetControlPoint - Volume Offset Control Point
	CharacteristicUUIDVolumeOffsetControlPoint = New16BitUUID(0x2B82)

	// CharacteristicUUIDThingyAirQuality - Thingy Air Quality
	CharacteristicUUIDThingyAirQuality = NewUUID([16]byte{0xef, 0x68, 0x02, 0x04, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDObjectFirstCreated - Object First-Created
	CharacteristicUUIDObjectFirstCreated = New16BitUUID(0x2AC1)

	// CharacteristicUUIDScanRefresh - Scan Refresh
	CharacteristicUUIDScanRefresh = New16BitUUID(0x2A31)

	// CharacteristicUUIDVoltage - Voltage
	CharacteristicUUIDVoltage = New16BitUUID(0x2B18)

	// CharacteristicUUIDEnhancedBloodPressureMeasurement - Enhanced Blood Pressure Measurement
	CharacteristicUUIDEnhancedBloodPressureMeasurement = New16BitUUID(0x2B34)

	// CharacteristicUUIDStatusFlags - Status Flags
	CharacteristicUUIDStatusFlags = New16BitUUID(0x2BBB)

	// CharacteristicUUIDMicrobitMagnetometerBearing - micro:bit Magnetometer Bearing
	CharacteristicUUIDMicrobitMagnetometerBearing = NewUUID([16]byte{0xe9, 0x5d, 0x97, 0x15, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDCyclingPowerFeature - Cycling Power Feature
	CharacteristicUUIDCyclingPowerFeature = New16BitUUID(0x2A65)

	// CharacteristicUUIDObjectActionControlPoint - Object Action Control Point
	CharacteristicUUIDObjectActionControlPoint = New16BitUUID(0x2AC5)

	// CharacteristicUUIDThingyButtonState - Thingy Button State
	CharacteristicUUIDThingyButtonState = NewUUID([16]byte{0xef, 0x68, 0x03, 0x02, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDAdafruitVersion - Adafruit Version
	CharacteristicUUIDAdafruitVersion = NewUUID([16]byte{0xad, 0xaf, 0x01, 0x00, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72})

	// CharacteristicUUIDLuminousEfficacy - Luminous Efficacy
	CharacteristicUUIDLuminousEfficacy = New16BitUUID(0x2AFC)

	// CharacteristicUUIDAdvertisingConstantToneExtensionTransmitDuration - Advertising Constant Tone Extension Transmit Duration
	CharacteristicUUIDAdvertisingConstantToneExtensionTransmitDuration = New16BitUUID(0x2BB0)

	// CharacteristicUUIDObjectSize - Object Size
	CharacteristicUUIDObjectSize = New16BitUUID(0x2AC0)

	// CharacteristicUUIDAudioInputStatus - Audio Input Status
	CharacteristicUUIDAudioInputStatus = New16BitUUID(0x2B7A)

	// CharacteristicUUIDFloorNumber - Floor Number
	CharacteristicUUIDFloorNumber = New16BitUUID(0x2AB2)

	// CharacteristicUUIDSleepActivityInstantaneousData - Sleep Activity Instantaneous Data
	CharacteristicUUIDSleepActivityInstantaneousData = New16BitUUID(0x2B41)

	// CharacteristicUUIDDeviceTimeControlPoint - Device Time Control Point
	CharacteristicUUIDDeviceTimeControlPoint = New16BitUUID(0x2B91)

	// CharacteristicUUIDSupportedInclinationRange - Supported Inclination Range
	CharacteristicUUIDSupportedInclinationRange = New16BitUUID(0x2AD5)

	// CharacteristicUUIDChromaticDistanceFromPlanckian - Chromatic Distance From Planckian
	CharacteristicUUIDChromaticDistanceFromPlanckian = New16BitUUID(0x2AE3)

	// CharacteristicUUIDPhysicalActivityMonitorControlPoint - Physical Activity Monitor Control Point
	CharacteristicUUIDPhysicalActivityMonitorControlPoint = New16BitUUID(0x2B43)

	// CharacteristicUUIDLuminousFlux - Luminous Flux
	CharacteristicUUIDLuminousFlux = New16BitUUID(0x2AFF)

	// CharacteristicUUIDEmergencyID - Emergency ID
	CharacteristicUUIDEmergencyID = New16BitUUID(0x2B2D)

	// CharacteristicUUIDBearerURISchemesSupportedList - Bearer URI Schemes Supported List
	CharacteristicUUIDBearerURISchemesSupportedList = New16BitUUID(0x2BB6)

	// CharacteristicUUIDRSCMeasurement - RSC Measurement
	CharacteristicUUIDRSCMeasurement = New16BitUUID(0x2A53)

	// CharacteristicUUIDTreadmillData - Treadmill Data
	CharacteristicUUIDTreadmillData = New16BitUUID(0x2ACD)

	// CharacteristicUUIDSupportedUnreadAlertCategory - Supported Unread Alert Category
	CharacteristicUUIDSupportedUnreadAlertCategory = New16BitUUID(0x2A48)

	// CharacteristicUUIDBSSControlPoint - BSS Control Point
	CharacteristicUUIDBSSControlPoint = New16BitUUID(0x2B2B)

	// CharacteristicUUIDDFUPacket - DFU Packet
	CharacteristicUUIDDFUPacket = NewUUID([16]byte{0x8e, 0xc9, 0x00, 0x02, 0xf3, 0x15, 0x4f, 0x60, 0x9f, 0xb8, 0x83, 0x88, 0x30, 0xda, 0xea, 0x50})

	// CharacteristicUUIDThingyTemperature - Thingy Temperature
	CharacteristicUUIDThingyTemperature = NewUUID([16]byte{0xef, 0x68, 0x02, 0x01, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDHeartRateMeasurement - Heart Rate Measurement
	CharacteristicUUIDHeartRateMeasurement = New16BitUUID(0x2A37)

	// CharacteristicUUIDPollenConcentration - Pollen Concentration
	CharacteristicUUIDPollenConcentration = New16BitUUID(0x2A75)

	// CharacteristicUUIDAppleEntityUpdate - Apple Entity Update
	CharacteristicUUIDAppleEntityUpdate = NewUUID([16]byte{0x2f, 0x7c, 0xab, 0xce, 0x80, 0x8d, 0x41, 0x1f, 0x9a, 0x0c, 0xbb, 0x92, 0xba, 0x96, 0xc1, 0x02})

	// CharacteristicUUIDURI - URI
	CharacteristicUUIDURI = New16BitUUID(0x2AB6)

	// CharacteristicUUIDCaloricIntake - Caloric Intake
	CharacteristicUUIDCaloricIntake = New16BitUUID(0x2B50)

	// CharacteristicUUIDMethaneConcentration - Methane Concentration
	CharacteristicUUIDMethaneConcentration = New16BitUUID(0x2BD1)

	// CharacteristicUUIDMicrobitLEDMatrixState - micro:bit LED Matrix State
	CharacteristicUUIDMicrobitLEDMatrixState = NewUUID([16]byte{0xe9, 0x5d, 0x7b, 0x77, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDHeliumHotspotPublicKey - Helium Hotspot Public Key
	CharacteristicUUIDHeliumHotspotPublicKey = NewUUID([16]byte{0x0a, 0x85, 0x2c, 0x59, 0x50, 0xd3, 0x44, 0x92, 0xbf, 0xd3, 0x22, 0xfe, 0x58, 0xa2, 0x4f, 0x01})

	// CharacteristicUUIDElevation - Elevation
	CharacteristicUUIDElevation = New16BitUUID(0x2A6C)

	// CharacteristicUUIDStairClimberData - Stair Climber Data
	CharacteristicUUIDStairClimberData = New16BitUUID(0x2AD0)

	// CharacteristicUUIDCount16 - Count 16
	CharacteristicUUIDCount16 = New16BitUUID(0x2AEA)

	// CharacteristicUUIDDFUControlPoint - DFU Control Point
	CharacteristicUUIDDFUControlPoint = NewUUID([16]byte{0x8e, 0xc9, 0x00, 0x01, 0xf3, 0x15, 0x4f, 0x60, 0x9f, 0xb8, 0x83, 0x88, 0x30, 0xda, 0xea, 0x50})

	// CharacteristicUUIDThingyMicrophone - Thingy Microphone
	CharacteristicUUIDThingyMicrophone = NewUUID([16]byte{0xef, 0x68, 0x05, 0x04, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDObjectListFilter - Object List Filter
	CharacteristicUUIDObjectListFilter = New16BitUUID(0x2AC7)

	// CharacteristicUUIDReportMap - Report Map
	CharacteristicUUIDReportMap = New16BitUUID(0x2A4B)

	// CharacteristicUUIDDeprecatedFastPairPasskey - Deprecated Fast Pair Passkey
	CharacteristicUUIDDeprecatedFastPairPasskey = New16BitUUID(0x1235)

	// CharacteristicUUIDTimeZone - Time Zone
	CharacteristicUUIDTimeZone = New16BitUUID(0x2A0E)

	// CharacteristicUUIDHearingAidPresetControlPoint - Hearing Aid Preset Control Point
	CharacteristicUUIDHearingAidPresetControlPoint = New16BitUUID(0x2BDB)

	// CharacteristicUUIDFixedString24 - Fixed String 24
	CharacteristicUUIDFixedString24 = New16BitUUID(0x2AF6)

	// CharacteristicUUIDAppleControlPoint - Apple Control Point
	CharacteristicUUIDAppleControlPoint = NewUUID([16]byte{0x69, 0xd1, 0xd8, 0xf3, 0x45, 0xe1, 0x49, 0xa8, 0x98, 0x21, 0x9b, 0xbd, 0xfd, 0xaa, 0xd9, 0xd9})

	// CharacteristicUUIDAdafruitPixelPinType - Adafruit Pixel Pin Type
	CharacteristicUUIDAdafruitPixelPinType = NewUUID([16]byte{0xad, 0xaf, 0x09, 0x02, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDAdafruitProximity - Adafruit Proximity
	CharacteristicUUIDAdafruitProximity = NewUUID([16]byte{0xad, 0xaf, 0x0e, 0x01, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDAnalog - Analog
	CharacteristicUUIDAnalog = New16BitUUID(0x2A58)

	// CharacteristicUUIDMaximumRecommendedHeartRate - Maximum Recommended Heart Rate
	CharacteristicUUIDMaximumRecommendedHeartRate = New16BitUUID(0x2A91)

	// CharacteristicUUIDThingyCloudToken - Thingy Cloud Token
	CharacteristicUUIDThingyCloudToken = NewUUID([16]byte{0xef, 0x68, 0x01, 0x06, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDThingyLEDState - Thingy LED State
	CharacteristicUUIDThingyLEDState = NewUUID([16]byte{0xef, 0x68, 0x03, 0x01, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDTimeDecihour8 - Time Decihour 8
	CharacteristicUUIDTimeDecihour8 = New16BitUUID(0x2B12)

	// CharacteristicUUIDThingyDeviceName - Thingy Device Name
	CharacteristicUUIDThingyDeviceName = NewUUID([16]byte{0xef, 0x68, 0x01, 0x01, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDVolumeState - Volume State
	CharacteristicUUIDVolumeState = New16BitUUID(0x2B7D)

	// CharacteristicUUIDTimeSecond8 - Time Second 8
	CharacteristicUUIDTimeSecond8 = New16BitUUID(0x2B17)

	// CharacteristicUUIDGeneralActivitySummaryData - General Activity Summary Data
	CharacteristicUUIDGeneralActivitySummaryData = New16BitUUID(0x2B3D)

	// CharacteristicUUIDActivityCurrentSession - Activity Current Session
	CharacteristicUUIDActivityCurrentSession = New16BitUUID(0x2B44)

	// CharacteristicUUIDCarbonMonoxideConcentration - Carbon Monoxide Concentration
	CharacteristicUUIDCarbonMonoxideConcentration = New16BitUUID(0x2BD0)

	// CharacteristicUUIDHTTPControlPoint - HTTP Control Point
	CharacteristicUUIDHTTPControlPoint = New16BitUUID(0x2ABA)

	// CharacteristicUUIDIDDCommandData1 - IDD Command Data 1
	CharacteristicUUIDIDDCommandData1 = New16BitUUID(0x2B26)

	// CharacteristicUUIDIDDCommandData2 - IDD Command Data 2
	CharacteristicUUIDIDDCommandData2 = New16BitUUID(0x2B26)

	// CharacteristicUUIDRCSettings1 - RC Settings 1
	CharacteristicUUIDRCSettings1 = New16BitUUID(0x2B1E)

	// CharacteristicUUIDRCSettings2 - RC Settings 2
	CharacteristicUUIDRCSettings2 = New16BitUUID(0x2B1E)

	// CharacteristicUUIDUserControlPoint - User Control Point
	CharacteristicUUIDUserControlPoint = New16BitUUID(0x2A9F)

	// CharacteristicUUIDAggregate - Aggregate
	CharacteristicUUIDAggregate = New16BitUUID(0x2A5A)

	// CharacteristicUUIDCGMSpecificOpsControlPoint - CGM Specific Ops Control Point
	CharacteristicUUIDCGMSpecificOpsControlPoint = New16BitUUID(0x2AAC)

	// CharacteristicUUIDTemperatureMeasurement - Temperature Measurement
	CharacteristicUUIDTemperatureMeasurement = New16BitUUID(0x2A1C)

	// CharacteristicUUIDRelativeValueInATemperatureRange - Relative Value In A Temperature Range
	CharacteristicUUIDRelativeValueInATemperatureRange = New16BitUUID(0x2B0C)

	// CharacteristicUUIDBodyCompositionFeature - Body Composition Feature
	CharacteristicUUIDBodyCompositionFeature = New16BitUUID(0x2A9B)

	// CharacteristicUUIDPeripheralPrivacyFlag - Peripheral Privacy Flag
	CharacteristicUUIDPeripheralPrivacyFlag = New16BitUUID(0x2A02)

	// CharacteristicUUIDObjectLastModified - Object Last-Modified
	CharacteristicUUIDObjectLastModified = New16BitUUID(0x2AC2)

	// CharacteristicUUIDVolumeOffsetState - Volume Offset State
	CharacteristicUUIDVolumeOffsetState = New16BitUUID(0x2B80)

	// CharacteristicUUIDTimeChangeLogData - Time Change Log Data
	CharacteristicUUIDTimeChangeLogData = New16BitUUID(0x2B92)

	// CharacteristicUUIDDeprecatedFastPairData - Deprecated Fast Pair Data
	CharacteristicUUIDDeprecatedFastPairData = New16BitUUID(0x1237)

	// CharacteristicUUIDDayDateTime - Day Date Time
	CharacteristicUUIDDayDateTime = New16BitUUID(0x2A0A)

	// CharacteristicUUIDDSTOffset - DST Offset
	CharacteristicUUIDDSTOffset = New16BitUUID(0x2A0D)

	// CharacteristicUUIDTemperatureType - Temperature Type
	CharacteristicUUIDTemperatureType = New16BitUUID(0x2A1D)

	// CharacteristicUUIDAudioInputControlPoint - Audio Input Control Point
	CharacteristicUUIDAudioInputControlPoint = New16BitUUID(0x2B7B)

	// CharacteristicUUIDEddystoneActiveSlot - Eddystone Active Slot
	CharacteristicUUIDEddystoneActiveSlot = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x02, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95})

	// CharacteristicUUIDAppleNotificationSource - Apple Notification Source
	CharacteristicUUIDAppleNotificationSource = NewUUID([16]byte{0x9f, 0xbf, 0x12, 0x0d, 0x63, 0x01, 0x42, 0xd9, 0x8c, 0x58, 0x25, 0xe6, 0x99, 0xa2, 0x1d, 0xbd})

	// CharacteristicUUIDBodyCompositionMeasurement - Body Composition Measurement
	CharacteristicUUIDBodyCompositionMeasurement = New16BitUUID(0x2A9C)

	// CharacteristicUUIDDescriptorValueChanged - Descriptor Value Changed
	CharacteristicUUIDDescriptorValueChanged = New16BitUUID(0x2A7D)

	// CharacteristicUUIDEddystoneLockState - Eddystone Lock State
	CharacteristicUUIDEddystoneLockState = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x06, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95})

	// CharacteristicUUIDSportTypeForAerobicAndAnaerobicThresholds - Sport Type for Aerobic and Anaerobic Thresholds
	CharacteristicUUIDSportTypeForAerobicAndAnaerobicThresholds = New16BitUUID(0x2A93)

	// CharacteristicUUIDAdvertisingConstantToneExtensionMinimumLength - Advertising Constant Tone Extension Minimum Length
	CharacteristicUUIDAdvertisingConstantToneExtensionMinimumLength = New16BitUUID(0x2BAE)

	// CharacteristicUUIDMDSSupportedFeatures - MDS Supported Features Characteristic
	CharacteristicUUIDMDSSupportedFeatures = NewUUID([16]byte{0x54, 0x22, 0x00, 0x01, 0xf6, 0xa5, 0x40, 0x07, 0xa3, 0x71, 0x72, 0x2f, 0x4e, 0xbd, 0x84, 0x36})

	// CharacteristicUUIDCGMSessionStartTime - CGM Session Start Time
	CharacteristicUUIDCGMSessionStartTime = New16BitUUID(0x2AAA)

	// CharacteristicUUIDServiceRequired - Service Required
	CharacteristicUUIDServiceRequired = New16BitUUID(0x2A3B)

	// CharacteristicUUIDSourceASE - Source ASE
	CharacteristicUUIDSourceASE = New16BitUUID(0x2BC5)

	// CharacteristicUUIDPhilipsHueLightOnOffToggle - Philips Hue Light On/Off Toggle
	CharacteristicUUIDPhilipsHueLightOnOffToggle = NewUUID([16]byte{0x93, 0x2c, 0x32, 0xbd, 0x00, 0x02, 0x47, 0xa2, 0x83, 0x5a, 0xa8, 0xd4, 0x55, 0xb8, 0x59, 0xdd})

	// CharacteristicUUIDMicrobitAccelerometerPeriod - micro:bit Accelerometer Period
	CharacteristicUUIDMicrobitAccelerometerPeriod = NewUUID([16]byte{0xe9, 0x5d, 0xfb, 0x24, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDObjectID - Object ID
	CharacteristicUUIDObjectID = New16BitUUID(0x2AC3)

	// CharacteristicUUIDPosition3D - Position 3D
	CharacteristicUUIDPosition3D = New16BitUUID(0x2A30)

	// CharacteristicUUIDThingyEuler - Thingy Euler
	CharacteristicUUIDThingyEuler = NewUUID([16]byte{0xef, 0x68, 0x04, 0x07, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDMicrobitAccelerometerData - micro:bit Accelerometer Data
	CharacteristicUUIDMicrobitAccelerometerData = NewUUID([16]byte{0xe9, 0x5d, 0xca, 0x4b, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDChromaticityTolerance - Chromaticity Tolerance
	CharacteristicUUIDChromaticityTolerance = New16BitUUID(0x2AE6)

	// CharacteristicUUIDSourcePAC - Source PAC
	CharacteristicUUIDSourcePAC = New16BitUUID(0x2BCB)

	// CharacteristicUUIDTimeUpdateControlPoint - Time Update Control Point
	CharacteristicUUIDTimeUpdateControlPoint = New16BitUUID(0x2A16)

	// CharacteristicUUIDTemperature - Temperature
	CharacteristicUUIDTemperature = New16BitUUID(0x2A6E)

	// CharacteristicUUIDWeightScaleFeature - Weight Scale Feature
	CharacteristicUUIDWeightScaleFeature = New16BitUUID(0x2A9E)

	// CharacteristicUUIDMicrobitPWMControl - micro:bit PWM Control
	CharacteristicUUIDMicrobitPWMControl = NewUUID([16]byte{0xe9, 0x5d, 0xd8, 0x22, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDModelNumberString - Model Number String
	CharacteristicUUIDModelNumberString = New16BitUUID(0x2A24)

	// CharacteristicUUIDRainfall - Rainfall
	CharacteristicUUIDRainfall = New16BitUUID(0x2A78)

	// CharacteristicUUIDEnergyInAPeriodOfDay - Energy In A Period Of Day
	CharacteristicUUIDEnergyInAPeriodOfDay = New16BitUUID(0x2AF3)

	// CharacteristicUUIDTemperature8Statistics - Temperature 8 Statistics
	CharacteristicUUIDTemperature8Statistics = New16BitUUID(0x2B0F)

	// CharacteristicUUIDTimeSecond16 - Time Second 16
	CharacteristicUUIDTimeSecond16 = New16BitUUID(0x2B16)

	// CharacteristicUUIDServerSupportedFeatures - Server Supported Features
	CharacteristicUUIDServerSupportedFeatures = New16BitUUID(0x2B3A)

	// CharacteristicUUIDParentGroupObjectID - Parent Group Object ID
	CharacteristicUUIDParentGroupObjectID = New16BitUUID(0x2B9F)

	// CharacteristicUUIDAvailableAudioContexts - Available Audio Contexts
	CharacteristicUUIDAvailableAudioContexts = New16BitUUID(0x2BCD)

	// CharacteristicUUIDBarometricPressureTrend - Barometric Pressure Trend
	CharacteristicUUIDBarometricPressureTrend = New16BitUUID(0x2AA3)

	// CharacteristicUUIDElectricCurrentSpecification - Electric Current Specification
	CharacteristicUUIDElectricCurrentSpecification = New16BitUUID(0x2AF0)

	// CharacteristicUUIDLegacyDFUControlPoint - Legacy DFU Control Point
	CharacteristicUUIDLegacyDFUControlPoint = NewUUID([16]byte{0x00, 0x00, 0x15, 0x31, 0x12, 0x12, 0xef, 0xde, 0x15, 0x23, 0x78, 0x5f, 0xea, 0xbc, 0xd1, 0x23})

	// CharacteristicUUIDCallState - Call State
	CharacteristicUUIDCallState = New16BitUUID(0x2BBD)

	// CharacteristicUUIDAdafruitColor - Adafruit Color
	CharacteristicUUIDAdafruitColor = NewUUID([16]byte{0xad, 0xaf, 0x0a, 0x01, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDIDDAnnunciationStatus1 - IDD Annunciation Status 1
	CharacteristicUUIDIDDAnnunciationStatus1 = New16BitUUID(0x2B22)

	// CharacteristicUUIDIDDAnnunciationStatus2 - IDD Annunciation Status 2
	CharacteristicUUIDIDDAnnunciationStatus2 = New16BitUUID(0x2B22)

	// CharacteristicUUIDIDDStatus1 - IDD Status 1
	CharacteristicUUIDIDDStatus1 = New16BitUUID(0x2B21)

	// CharacteristicUUIDIDDStatus2 - IDD Status 2
	CharacteristicUUIDIDDStatus2 = New16BitUUID(0x2B21)

	// CharacteristicUUIDAnaerobicHeartRateUpperLimit - Anaerobic Heart Rate Upper Limit
	CharacteristicUUIDAnaerobicHeartRateUpperLimit = New16BitUUID(0x2A82)

	// CharacteristicUUIDPhysicalActivityMonitorFeatures - Physical Activity Monitor Features
	CharacteristicUUIDPhysicalActivityMonitorFeatures = New16BitUUID(0x2B3B)

	// CharacteristicUUIDFixedString36 - Fixed String 36
	CharacteristicUUIDFixedString36 = New16BitUUID(0x2AF7)

	// CharacteristicUUIDMeshProxyDataOut - Mesh Proxy Data Out
	CharacteristicUUIDMeshProxyDataOut = New16BitUUID(0x2ADE)

	// CharacteristicUUIDIDDRecordAccessControlPoint1 - IDD Record Access Control Point 1
	CharacteristicUUIDIDDRecordAccessControlPoint1 = New16BitUUID(0x2B27)

	// CharacteristicUUIDIDDRecordAccessControlPoint2 - IDD Record Access Control Point 2
	CharacteristicUUIDIDDRecordAccessControlPoint2 = New16BitUUID(0x2B27)

	// CharacteristicUUIDPeripheralPreferredConnectionParameters - Peripheral Preferred Connection Parameters
	CharacteristicUUIDPeripheralPreferredConnectionParameters = New16BitUUID(0x2A04)

	// CharacteristicUUIDLanguage - Language
	CharacteristicUUIDLanguage = New16BitUUID(0x2AA2)

	// CharacteristicUUIDSupportedResistanceLevelRange - Supported Resistance Level Range
	CharacteristicUUIDSupportedResistanceLevelRange = New16BitUUID(0x2AD6)

	// CharacteristicUUIDHighResolutionHeight - High Resolution Height
	CharacteristicUUIDHighResolutionHeight = New16BitUUID(0x2B47)

	// CharacteristicUUIDParticulateMatterPM1Concentration - Particulate Matter - PM1 Concentration
	CharacteristicUUIDParticulateMatterPM1Concentration = New16BitUUID(0x2BD5)

	// CharacteristicUUIDAdafruitRawTXRX - Adafruit Raw TX/RX
	CharacteristicUUIDAdafruitRawTXRX = NewUUID([16]byte{0xad, 0xaf, 0x02, 0x00, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72})

	// CharacteristicUUIDIDDCommandControlPoint1 - IDD Command Control Point 1
	CharacteristicUUIDIDDCommandControlPoint1 = New16BitUUID(0x2B25)

	// CharacteristicUUIDIDDCommandControlPoint2 - IDD Command Control Point 2
	CharacteristicUUIDIDDCommandControlPoint2 = New16BitUUID(0x2B25)

	// CharacteristicUUIDIndoorBikeData - Indoor Bike Data
	CharacteristicUUIDIndoorBikeData = New16BitUUID(0x2AD2)

	// CharacteristicUUIDMediaPlayerIconObjectType - Media Player Icon Object Type
	CharacteristicUUIDMediaPlayerIconObjectType = New16BitUUID(0x2BA9)

	// CharacteristicUUIDMicrobitScrollingDelay - micro:bit Scrolling Delay
	CharacteristicUUIDMicrobitScrollingDelay = NewUUID([16]byte{0xe9, 0x5d, 0x0d, 0x2d, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDObjectListControlPoint - Object List Control Point
	CharacteristicUUIDObjectListControlPoint = New16BitUUID(0x2AC6)

	// CharacteristicUUIDClientSupportedFeatures - Client Supported Features
	CharacteristicUUIDClientSupportedFeatures = New16BitUUID(0x2B29)

	// CharacteristicUUIDMediaPlayerIconURL - Media Player Icon URL
	CharacteristicUUIDMediaPlayerIconURL = New16BitUUID(0x2B95)

	// CharacteristicUUIDThingyColor - Thingy Color
	CharacteristicUUIDThingyColor = NewUUID([16]byte{0xef, 0x68, 0x02, 0x05, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDEddystoneADVSlotData - Eddystone ADV Slot Data
	CharacteristicUUIDEddystoneADVSlotData = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x0a, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95})

	// CharacteristicUUIDOTSFeature - OTS Feature
	CharacteristicUUIDOTSFeature = New16BitUUID(0x2ABD)

	// CharacteristicUUIDTimeExponential8 - Time Exponential 8
	CharacteristicUUIDTimeExponential8 = New16BitUUID(0x2B13)

	// CharacteristicUUIDSleepActivitySummaryData - Sleep Activity Summary Data
	CharacteristicUUIDSleepActivitySummaryData = New16BitUUID(0x2B42)

	// CharacteristicUUIDAmmoniaConcentration - Ammonia Concentration
	CharacteristicUUIDAmmoniaConcentration = New16BitUUID(0x2BCF)

	// CharacteristicUUIDButtonlessDFUWithoutBonds - Buttonless DFU Without Bonds
	CharacteristicUUIDButtonlessDFUWithoutBonds = NewUUID([16]byte{0x8e, 0xc9, 0x00, 0x03, 0xf3, 0x15, 0x4f, 0x60, 0x9f, 0xb8, 0x83, 0x88, 0x30, 0xda, 0xea, 0x50})

	// CharacteristicUUIDThingyConnectionParameters - Thingy Connection Parameters
	CharacteristicUUIDThingyConnectionParameters = NewUUID([16]byte{0xef, 0x68, 0x01, 0x04, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDLocationAndSpeed - Location and Speed Characteristic
	CharacteristicUUIDLocationAndSpeed = New16BitUUID(0x2A67)

	// CharacteristicUUIDSCControlPoint - SC Control Point
	CharacteristicUUIDSCControlPoint = New16BitUUID(0x2A55)

	// CharacteristicUUIDChromaticityCoordinate - Chromaticity Coordinate
	CharacteristicUUIDChromaticityCoordinate = New16BitUUID(0x2B1C)

	// CharacteristicUUIDLuminousFluxRange - Luminous Flux Range
	CharacteristicUUIDLuminousFluxRange = New16BitUUID(0x2B00)

	// CharacteristicUUIDTemperature8 - Temperature 8
	CharacteristicUUIDTemperature8 = New16BitUUID(0x2B0D)

	// CharacteristicUUIDPLXFeatures - PLX Features
	CharacteristicUUIDPLXFeatures = New16BitUUID(0x2A60)

	// CharacteristicUUIDProtocolMode - Protocol Mode
	CharacteristicUUIDProtocolMode = New16BitUUID(0x2A4E)

	// CharacteristicUUIDRelativeValueInAPeriodOfDay - Relative Value In A Period Of Day
	CharacteristicUUIDRelativeValueInAPeriodOfDay = New16BitUUID(0x2B0B)

	// CharacteristicUUIDAerobicHeartRateLowerLimit - Aerobic Heart Rate Lower Limit
	CharacteristicUUIDAerobicHeartRateLowerLimit = New16BitUUID(0x2A7E)

	// CharacteristicUUIDMagneticFluxDensity3D - Magnetic Flux Density - 3D
	CharacteristicUUIDMagneticFluxDensity3D = New16BitUUID(0x2AA1)

	// CharacteristicUUIDStepCounterActivitySummaryData - Step Counter Activity Summary Data
	CharacteristicUUIDStepCounterActivitySummaryData = New16BitUUID(0x2B40)

	// CharacteristicUUIDBearerSignalStrengthReportingInterval - Bearer Signal Strength Reporting Interval
	CharacteristicUUIDBearerSignalStrengthReportingInterval = New16BitUUID(0x2BB8)

	// CharacteristicUUIDThingyPressure - Thingy Pressure
	CharacteristicUUIDThingyPressure = NewUUID([16]byte{0xef, 0x68, 0x02, 0x02, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDMicrobitRequirements - micro:bit Requirements
	CharacteristicUUIDMicrobitRequirements = NewUUID([16]byte{0xe9, 0x5d, 0xb8, 0x4c, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDTimeWithDST - Time with DST
	CharacteristicUUIDTimeWithDST = New16BitUUID(0x2A11)

	// CharacteristicUUIDSupportedPowerRange - Supported Power Range
	CharacteristicUUIDSupportedPowerRange = New16BitUUID(0x2AD8)

	// CharacteristicUUIDHardwareRevisionString - Hardware Revision String
	CharacteristicUUIDHardwareRevisionString = New16BitUUID(0x2A27)

	// CharacteristicUUIDCGMSessionRunTime - CGM Session Run Time
	CharacteristicUUIDCGMSessionRunTime = New16BitUUID(0x2AAB)

	// CharacteristicUUIDCrossTrainerData - Cross Trainer Data
	CharacteristicUUIDCrossTrainerData = New16BitUUID(0x2ACE)

	// CharacteristicUUIDGenericLevel - Generic Level
	CharacteristicUUIDGenericLevel = New16BitUUID(0x2AF9)

	// CharacteristicUUIDSinkPAC - Sink PAC
	CharacteristicUUIDSinkPAC = New16BitUUID(0x2BC9)

	// CharacteristicUUIDMagneticFluxDensity2D - Magnetic Flux Density - 2D
	CharacteristicUUIDMagneticFluxDensity2D = New16BitUUID(0x2AA0)

	// CharacteristicUUIDManufacturerNameString - Manufacturer Name String
	CharacteristicUUIDManufacturerNameString = New16BitUUID(0x2A29)

	// CharacteristicUUIDVO2Max - VO2 Max
	CharacteristicUUIDVO2Max = New16BitUUID(0x2A96)

	// CharacteristicUUIDCSCFeature - CSC Feature
	CharacteristicUUIDCSCFeature = New16BitUUID(0x2A5C)

	// CharacteristicUUIDMagneticDeclination - Magnetic Declination
	CharacteristicUUIDMagneticDeclination = New16BitUUID(0x2A2C)

	// CharacteristicUUIDPreferredUnits - Preferred Units
	CharacteristicUUIDPreferredUnits = New16BitUUID(0x2B46)

	// CharacteristicUUIDAdafruitNumberOfChannels - Adafruit Number of Channels
	CharacteristicUUIDAdafruitNumberOfChannels = NewUUID([16]byte{0xad, 0xaf, 0x0b, 0x02, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDAlertNotificationControlPoint - Alert Notification Control Point
	CharacteristicUUIDAlertNotificationControlPoint = New16BitUUID(0x2A44)

	// CharacteristicUUIDSupportedHeartRateRange - Supported Heart Rate Range
	CharacteristicUUIDSupportedHeartRateRange = New16BitUUID(0x2AD7)

	// CharacteristicUUIDHearingAidFeatures - Hearing Aid Features
	CharacteristicUUIDHearingAidFeatures = New16BitUUID(0x2BDA)

	// CharacteristicUUIDThingyQuaternion - Thingy Quaternion
	CharacteristicUUIDThingyQuaternion = NewUUID([16]byte{0xef, 0x68, 0x04, 0x04, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDMicrobitEvent - micro:bit Event
	CharacteristicUUIDMicrobitEvent = NewUUID([16]byte{0xe9, 0x5d, 0x97, 0x75, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDUncertainty - Uncertainty
	CharacteristicUUIDUncertainty = New16BitUUID(0x2AB4)

	// CharacteristicUUIDAverageVoltage - Average Voltage
	CharacteristicUUIDAverageVoltage = New16BitUUID(0x2AE1)

	// CharacteristicUUIDPowerSpecification - Power Specification
	CharacteristicUUIDPowerSpecification = New16BitUUID(0x2B06)

	// CharacteristicUUIDMiddleName - Middle Name
	CharacteristicUUIDMiddleName = New16BitUUID(0x2B48)

	// CharacteristicUUIDBlinkyButtonState - Blinky Button State
	CharacteristicUUIDBlinkyButtonState = NewUUID([16]byte{0x00, 0x00, 0x15, 0x24, 0x12, 0x12, 0xef, 0xde, 0x15, 0x23, 0x78, 0x5f, 0xea, 0xbc, 0xd1, 0x23})

	// CharacteristicUUIDSerialNumberString - Serial Number String
	CharacteristicUUIDSerialNumberString = New16BitUUID(0x2A25)

	// CharacteristicUUIDUnreadAlertStatus - Unread Alert Status
	CharacteristicUUIDUnreadAlertStatus = New16BitUUID(0x2A45)

	// CharacteristicUUIDRelativeRuntimeInAGenericLevelRange - Relative Runtime In A Generic Level Range
	CharacteristicUUIDRelativeRuntimeInAGenericLevelRange = New16BitUUID(0x2B08)

	// CharacteristicUUIDHeliumHotspotWiFiMACAddress - Helium Hotspot WiFi MAC Address
	CharacteristicUUIDHeliumHotspotWiFiMACAddress = NewUUID([16]byte{0x9c, 0x43, 0x14, 0xf2, 0x8a, 0x0c, 0x45, 0xfd, 0xa5, 0x8d, 0xd4, 0xa7, 0xe6, 0x4c, 0x3a, 0x57})

	// CharacteristicUUIDEddystonePublicECDHKey - Eddystone Public ECDH Key
	CharacteristicUUIDEddystonePublicECDHKey = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x08, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95})

	// CharacteristicUUIDEddystoneEIDIdentityKey - Eddystone EID Identity Key
	CharacteristicUUIDEddystoneEIDIdentityKey = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x09, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95})

	// CharacteristicUUIDDeprecatedFastPairModelID - Deprecated Fast Pair Model ID
	CharacteristicUUIDDeprecatedFastPairModelID = New16BitUUID(0x1233)

	// CharacteristicUUIDBloodPressureRecord - Blood Pressure Record
	CharacteristicUUIDBloodPressureRecord = New16BitUUID(0x2B36)

	// CharacteristicUUIDConstantToneExtensionEnable - Constant Tone Extension Enable
	CharacteristicUUIDConstantToneExtensionEnable = New16BitUUID(0x2BAD)

	// CharacteristicUUIDFatBurnHeartRateUpperLimit - Fat Burn Heart Rate Upper Limit
	CharacteristicUUIDFatBurnHeartRateUpperLimit = New16BitUUID(0x2A89)

	// CharacteristicUUIDTDSControlPoint - TDS Control Point
	CharacteristicUUIDTDSControlPoint = New16BitUUID(0x2ABC)

	// CharacteristicUUIDEdgeImpulseRemoteManagementTX - Edge Impulse Remote Management TX Characteristic
	CharacteristicUUIDEdgeImpulseRemoteManagementTX = NewUUID([16]byte{0xe2, 0xa0, 0x00, 0x03, 0xec, 0x31, 0x4e, 0xc3, 0xa9, 0x7a, 0x1c, 0x34, 0xd8, 0x7e, 0x98, 0x78})

	// CharacteristicUUIDFastPairKeybasedPairing - Fast Pair Key-based Pairing
	CharacteristicUUIDFastPairKeybasedPairing = NewUUID([16]byte{0xfe, 0x2c, 0x12, 0x34, 0x83, 0x66, 0x48, 0x14, 0x8e, 0xb0, 0x01, 0xde, 0x32, 0x10, 0x0b, 0xea})

	// CharacteristicUUIDMicrobitMagnetometerPeriod - micro:bit Magnetometer Period
	CharacteristicUUIDMicrobitMagnetometerPeriod = NewUUID([16]byte{0xe9, 0x5d, 0x38, 0x6c, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDAlertStatus - Alert Status
	CharacteristicUUIDAlertStatus = New16BitUUID(0x2A3F)

	// CharacteristicUUIDCGMStatus - CGM Status
	CharacteristicUUIDCGMStatus = New16BitUUID(0x2AA9)

	// CharacteristicUUIDCardioRespiratoryActivityInstantaneousData - CardioRespiratory Activity Instantaneous Data
	CharacteristicUUIDCardioRespiratoryActivityInstantaneousData = New16BitUUID(0x2B3E)

	// CharacteristicUUIDBearerTechnology - Bearer Technology
	CharacteristicUUIDBearerTechnology = New16BitUUID(0x2BB5)

	// CharacteristicUUIDAdafruitCalibrationOut - Adafruit Calibration Out
	CharacteristicUUIDAdafruitCalibrationOut = NewUUID([16]byte{0xad, 0xaf, 0x0d, 0x03, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDAerobicHeartRateUpperLimit - Aerobic Heart Rate Upper Limit
	CharacteristicUUIDAerobicHeartRateUpperLimit = New16BitUUID(0x2A84)

	// CharacteristicUUIDRingerControlPoint - Ringer Control point
	CharacteristicUUIDRingerControlPoint = New16BitUUID(0x2A40)

	// CharacteristicUUIDPLXSpotCheckMeasurement - PLX Spot-Check Measurement
	CharacteristicUUIDPLXSpotCheckMeasurement = New16BitUUID(0x2A5E)

	// CharacteristicUUIDTemperatureStatistics - Temperature Statistics
	CharacteristicUUIDTemperatureStatistics = New16BitUUID(0x2B11)

	// CharacteristicUUIDAdafruitCalibrationIn - Adafruit Calibration In
	CharacteristicUUIDAdafruitCalibrationIn = NewUUID([16]byte{0xad, 0xaf, 0x0d, 0x02, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDIDDHistoryData1 - IDD History Data 1
	CharacteristicUUIDIDDHistoryData1 = New16BitUUID(0x2B28)

	// CharacteristicUUIDIDDHistoryData2 - IDD History Data 2
	CharacteristicUUIDIDDHistoryData2 = New16BitUUID(0x2B28)

	// CharacteristicUUIDIDDStatusChanged1 - IDD Status Changed 1
	CharacteristicUUIDIDDStatusChanged1 = New16BitUUID(0x2B20)

	// CharacteristicUUIDIDDStatusChanged2 - IDD Status Changed 2
	CharacteristicUUIDIDDStatusChanged2 = New16BitUUID(0x2B20)

	// CharacteristicUUIDPercentage8 - Percentage 8
	CharacteristicUUIDPercentage8 = New16BitUUID(0x2B04)

	// CharacteristicUUIDRelativeValueInAnIlluminanceRange - Relative Value In An Illuminance Range
	CharacteristicUUIDRelativeValueInAnIlluminanceRange = New16BitUUID(0x2B0A)

	// CharacteristicUUIDHeight - Height
	CharacteristicUUIDHeight = New16BitUUID(0x2A8E)

	// CharacteristicUUIDLuminousEnergy - Luminous Energy
	CharacteristicUUIDLuminousEnergy = New16BitUUID(0x2AFD)

	// CharacteristicUUIDTimeMillisecond24 - Time Millisecond 24
	CharacteristicUUIDTimeMillisecond24 = New16BitUUID(0x2B15)

	// CharacteristicUUIDThingyEXTPin - Thingy EXT Pin
	CharacteristicUUIDThingyEXTPin = NewUUID([16]byte{0xef, 0x68, 0x03, 0x03, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDLEGOWirelessProtocolV3Hub - LEGO® Wireless Protocol v3 Hub Characteristic
	CharacteristicUUIDLEGOWirelessProtocolV3Hub = NewUUID([16]byte{0x00, 0x00, 0x16, 0x24, 0x12, 0x12, 0xef, 0xde, 0x16, 0x23, 0x78, 0x5f, 0xea, 0xbc, 0xd1, 0x23})

	// CharacteristicUUIDAdafruitPixelPin - Adafruit Pixel Pin
	CharacteristicUUIDAdafruitPixelPin = NewUUID([16]byte{0xad, 0xaf, 0x09, 0x01, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDIEEE1107320601RegulatoryCertificationDataList - IEEE 11073-20601 Regulatory Certification Data List
	CharacteristicUUIDIEEE1107320601RegulatoryCertificationDataList = New16BitUUID(0x2A2A)

	// CharacteristicUUIDTemperatureFahrenheit - Temperature Fahrenheit
	CharacteristicUUIDTemperatureFahrenheit = New16BitUUID(0x2A20)

	// CharacteristicUUIDBearerListCurrentCalls - Bearer List Current Calls
	CharacteristicUUIDBearerListCurrentCalls = New16BitUUID(0x2BB9)

	// CharacteristicUUIDMDSDeviceDataExport - MDS Device Data Export Characteristic
	CharacteristicUUIDMDSDeviceDataExport = NewUUID([16]byte{0x54, 0x22, 0x00, 0x05, 0xf6, 0xa5, 0x40, 0x07, 0xa3, 0x71, 0x72, 0x2f, 0x4e, 0xbd, 0x84, 0x36})

	// CharacteristicUUIDAnaerobicHeartRateLowerLimit - Anaerobic Heart Rate Lower Limit
	CharacteristicUUIDAnaerobicHeartRateLowerLimit = New16BitUUID(0x2A81)

	// CharacteristicUUIDGlobalTradeItemNumber - Global Trade Item Number
	CharacteristicUUIDGlobalTradeItemNumber = New16BitUUID(0x2AFA)

	// CharacteristicUUIDTrackDuration - Track Duration
	CharacteristicUUIDTrackDuration = New16BitUUID(0x2B98)

	// CharacteristicUUIDCurrentTrackSegmentsObjectID - Current Track Segments Object ID
	CharacteristicUUIDCurrentTrackSegmentsObjectID = New16BitUUID(0x2B9C)

	// CharacteristicUUIDSupportedAudioContexts - Supported Audio Contexts
	CharacteristicUUIDSupportedAudioContexts = New16BitUUID(0x2BCE)

	// CharacteristicUUIDMicrobitTemperaturePeriod - micro:bit Temperature Period
	CharacteristicUUIDMicrobitTemperaturePeriod = NewUUID([16]byte{0xe9, 0x5d, 0x1b, 0x25, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDResolvablePrivateAddressOnly - Resolvable Private Address Only
	CharacteristicUUIDResolvablePrivateAddressOnly = New16BitUUID(0x2AC9)

	// CharacteristicUUIDString - String
	CharacteristicUUIDString = New16BitUUID(0x2A3D)

	// CharacteristicUUIDThingyOrientation - Thingy Orientation
	CharacteristicUUIDThingyOrientation = NewUUID([16]byte{0xef, 0x68, 0x04, 0x03, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDMDSDeviceIdentifier - MDS Device Identifier Characteristic
	CharacteristicUUIDMDSDeviceIdentifier = NewUUID([16]byte{0x54, 0x22, 0x00, 0x02, 0xf6, 0xa5, 0x40, 0x07, 0xa3, 0x71, 0x72, 0x2f, 0x4e, 0xbd, 0x84, 0x36})

	// CharacteristicUUIDHipCircumference - Hip Circumference
	CharacteristicUUIDHipCircumference = New16BitUUID(0x2A8F)

	// CharacteristicUUIDAdvertisingConstantToneExtensionMinimumTransmitCount - Advertising Constant Tone Extension Minimum Transmit Count
	CharacteristicUUIDAdvertisingConstantToneExtensionMinimumTransmitCount = New16BitUUID(0x2BAF)

	// CharacteristicUUIDHIDInformation - HID Information
	CharacteristicUUIDHIDInformation = New16BitUUID(0x2A4A)

	// CharacteristicUUIDActivityGoal - Activity Goal
	CharacteristicUUIDActivityGoal = New16BitUUID(0x2B4E)

	// CharacteristicUUIDHeliumHotspotWiFiSSID - Helium Hotspot WiFi SSID
	CharacteristicUUIDHeliumHotspotWiFiSSID = NewUUID([16]byte{0x77, 0x31, 0xde, 0x63, 0xbc, 0x6a, 0x41, 0x00, 0x8a, 0xb1, 0x89, 0xb2, 0x35, 0x6b, 0x03, 0x8b})

	// CharacteristicUUIDCGMFeature - CGM Feature
	CharacteristicUUIDCGMFeature = New16BitUUID(0x2AA8)

	// CharacteristicUUIDDigital - Digital
	CharacteristicUUIDDigital = New16BitUUID(0x2A56)

	// CharacteristicUUIDAppleDataSource - Apple Data Source
	CharacteristicUUIDAppleDataSource = NewUUID([16]byte{0x22, 0xea, 0xc6, 0xe9, 0x24, 0xd6, 0x4b, 0xb5, 0xbe, 0x44, 0xb3, 0x6a, 0xce, 0x7c, 0x7b, 0xfb})

	// CharacteristicUUIDMicrobitTemperature - micro:bit Temperature
	CharacteristicUUIDMicrobitTemperature = NewUUID([16]byte{0xe9, 0x5d, 0x92, 0x50, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDBloodPressureFeature - Blood Pressure Feature
	CharacteristicUUIDBloodPressureFeature = New16BitUUID(0x2A49)

	// CharacteristicUUIDSulfurHexafluorideConcentration - Sulfur Hexafluoride Concentration
	CharacteristicUUIDSulfurHexafluorideConcentration = New16BitUUID(0x2BD9)

	// CharacteristicUUIDHeartRateControlPoint - Heart Rate Control Point
	CharacteristicUUIDHeartRateControlPoint = New16BitUUID(0x2A39)

	// CharacteristicUUIDTrainingStatus - Training Status
	CharacteristicUUIDTrainingStatus = New16BitUUID(0x2AD3)

	// CharacteristicUUIDBearerProviderName - Bearer Provider Name
	CharacteristicUUIDBearerProviderName = New16BitUUID(0x2BB3)

	// CharacteristicUUIDASEControlPoint - ASE Control Point
	CharacteristicUUIDASEControlPoint = New16BitUUID(0x2BC6)

	// CharacteristicUUIDAppleReserved1 - Apple Reserved Characteristic 1
	CharacteristicUUIDAppleReserved1 = NewUUID([16]byte{0x7d, 0xfc, 0x60, 0x01, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved2 - Apple Reserved Characteristic 2
	CharacteristicUUIDAppleReserved2 = NewUUID([16]byte{0x7d, 0xfc, 0x60, 0x02, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved3 - Apple Reserved Characteristic 3
	CharacteristicUUIDAppleReserved3 = NewUUID([16]byte{0x7d, 0xfc, 0x60, 0x03, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved4 - Apple Reserved Characteristic 4
	CharacteristicUUIDAppleReserved4 = NewUUID([16]byte{0x7d, 0xfc, 0x60, 0x04, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved5 - Apple Reserved Characteristic 5
	CharacteristicUUIDAppleReserved5 = NewUUID([16]byte{0x7d, 0xfc, 0x60, 0x05, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved6 - Apple Reserved Characteristic 6
	CharacteristicUUIDAppleReserved6 = NewUUID([16]byte{0x7d, 0xfc, 0x61, 0x01, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved7 - Apple Reserved Characteristic 7
	CharacteristicUUIDAppleReserved7 = NewUUID([16]byte{0x7d, 0xfc, 0x61, 0x02, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved8 - Apple Reserved Characteristic 8
	CharacteristicUUIDAppleReserved8 = NewUUID([16]byte{0x7d, 0xfc, 0x61, 0x03, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved9 - Apple Reserved Characteristic 9
	CharacteristicUUIDAppleReserved9 = NewUUID([16]byte{0x7d, 0xfc, 0x61, 0x04, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved10 - Apple Reserved Characteristic 10
	CharacteristicUUIDAppleReserved10 = NewUUID([16]byte{0x7d, 0xfc, 0x61, 0x05, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved11 - Apple Reserved Characteristic 11
	CharacteristicUUIDAppleReserved11 = NewUUID([16]byte{0x7d, 0xfc, 0x61, 0x06, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved12 - Apple Reserved Characteristic 12
	CharacteristicUUIDAppleReserved12 = NewUUID([16]byte{0x7d, 0xfc, 0x61, 0x07, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved13 - Apple Reserved Characteristic 13
	CharacteristicUUIDAppleReserved13 = NewUUID([16]byte{0x7d, 0xfc, 0x61, 0x08, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved14 - Apple Reserved Characteristic 14
	CharacteristicUUIDAppleReserved14 = NewUUID([16]byte{0x7d, 0xfc, 0x62, 0x01, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved15 - Apple Reserved Characteristic 15
	CharacteristicUUIDAppleReserved15 = NewUUID([16]byte{0x7d, 0xfc, 0x62, 0x02, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved16 - Apple Reserved Characteristic 16
	CharacteristicUUIDAppleReserved16 = NewUUID([16]byte{0x7d, 0xfc, 0x62, 0x03, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved17 - Apple Reserved Characteristic 17
	CharacteristicUUIDAppleReserved17 = NewUUID([16]byte{0x7d, 0xfc, 0x80, 0x03, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved18 - Apple Reserved Characteristic 18
	CharacteristicUUIDAppleReserved18 = NewUUID([16]byte{0x7d, 0xfc, 0x70, 0x04, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved19 - Apple Reserved Characteristic 19
	CharacteristicUUIDAppleReserved19 = NewUUID([16]byte{0x7d, 0xfc, 0x70, 0x05, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved20 - Apple Reserved Characteristic 20
	CharacteristicUUIDAppleReserved20 = NewUUID([16]byte{0x7d, 0xfc, 0x70, 0x06, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved21 - Apple Reserved Characteristic 21
	CharacteristicUUIDAppleReserved21 = NewUUID([16]byte{0x7d, 0xfc, 0x70, 0x07, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved22 - Apple Reserved Characteristic 22
	CharacteristicUUIDAppleReserved22 = NewUUID([16]byte{0x7d, 0xfc, 0x70, 0x08, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved23 - Apple Reserved Characteristic 23
	CharacteristicUUIDAppleReserved23 = NewUUID([16]byte{0x7d, 0xfc, 0x70, 0x09, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved24 - Apple Reserved Characteristic 24
	CharacteristicUUIDAppleReserved24 = NewUUID([16]byte{0x7d, 0xfc, 0x70, 0x0a, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved25 - Apple Reserved Characteristic 25
	CharacteristicUUIDAppleReserved25 = NewUUID([16]byte{0x7d, 0xfc, 0x70, 0x0b, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved26 - Apple Reserved Characteristic 26
	CharacteristicUUIDAppleReserved26 = NewUUID([16]byte{0x7d, 0xfc, 0x70, 0x0c, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved27 - Apple Reserved Characteristic 27
	CharacteristicUUIDAppleReserved27 = NewUUID([16]byte{0x7d, 0xfc, 0x71, 0x03, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved28 - Apple Reserved Characteristic 28
	CharacteristicUUIDAppleReserved28 = NewUUID([16]byte{0x7d, 0xfc, 0x71, 0x04, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved29 - Apple Reserved Characteristic 29
	CharacteristicUUIDAppleReserved29 = NewUUID([16]byte{0x7d, 0xfc, 0x71, 0x05, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved30 - Apple Reserved Characteristic 30
	CharacteristicUUIDAppleReserved30 = NewUUID([16]byte{0x7d, 0xfc, 0x71, 0x06, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved31 - Apple Reserved Characteristic 31
	CharacteristicUUIDAppleReserved31 = NewUUID([16]byte{0x7d, 0xfc, 0x71, 0x07, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved32 - Apple Reserved Characteristic 32
	CharacteristicUUIDAppleReserved32 = NewUUID([16]byte{0x7d, 0xfc, 0x71, 0x08, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved33 - Apple Reserved Characteristic 33
	CharacteristicUUIDAppleReserved33 = NewUUID([16]byte{0x7d, 0xfc, 0x71, 0x09, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved34 - Apple Reserved Characteristic 34
	CharacteristicUUIDAppleReserved34 = NewUUID([16]byte{0x7d, 0xfc, 0x71, 0x0b, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved35 - Apple Reserved Characteristic 35
	CharacteristicUUIDAppleReserved35 = NewUUID([16]byte{0x7d, 0xfc, 0x71, 0x0c, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved36 - Apple Reserved Characteristic 36
	CharacteristicUUIDAppleReserved36 = NewUUID([16]byte{0x7d, 0xfc, 0x71, 0x0d, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved37 - Apple Reserved Characteristic 37
	CharacteristicUUIDAppleReserved37 = NewUUID([16]byte{0x7d, 0xfc, 0x80, 0x04, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDAppleReserved38 - Apple Reserved Characteristic 38
	CharacteristicUUIDAppleReserved38 = NewUUID([16]byte{0x7d, 0xfc, 0x90, 0x01, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// CharacteristicUUIDApparentWindDirection - Apparent Wind Direction
	CharacteristicUUIDApparentWindDirection = New16BitUUID(0x2A73)

	// CharacteristicUUIDGlucoseMeasurementContext - Glucose Measurement Context
	CharacteristicUUIDGlucoseMeasurementContext = New16BitUUID(0x2A34)

	// CharacteristicUUIDNitrogenDioxideConcentration - Nitrogen Dioxide Concentration
	CharacteristicUUIDNitrogenDioxideConcentration = New16BitUUID(0x2BD2)

	// CharacteristicUUIDHTTPStatusCode - HTTP Status Code
	CharacteristicUUIDHTTPStatusCode = New16BitUUID(0x2AB8)

	// CharacteristicUUIDVolumeFlags - Volume Flags
	CharacteristicUUIDVolumeFlags = New16BitUUID(0x2B7F)

	// CharacteristicUUIDPhilipsHueLightBrightnessLevel - Philips Hue Light Brightness Level
	CharacteristicUUIDPhilipsHueLightBrightnessLevel = NewUUID([16]byte{0x93, 0x2c, 0x32, 0xbd, 0x00, 0x03, 0x47, 0xa2, 0x83, 0x5a, 0xa8, 0xd4, 0x55, 0xb8, 0x59, 0xdd})

	// CharacteristicUUIDRecordAccessControlPoint - Record Access Control Point
	CharacteristicUUIDRecordAccessControlPoint = New16BitUUID(0x2A52)

	// CharacteristicUUIDDeviceWearingPosition - Device Wearing Position
	CharacteristicUUIDDeviceWearingPosition = New16BitUUID(0x2B4B)

	// CharacteristicUUIDPosition2D - Position 2D
	CharacteristicUUIDPosition2D = New16BitUUID(0x2A2F)

	// CharacteristicUUIDBearerUCI - Bearer UCI
	CharacteristicUUIDBearerUCI = New16BitUUID(0x2BB4)

	// CharacteristicUUIDFiveZoneHeartRateLimits - Five Zone Heart Rate Limits
	CharacteristicUUIDFiveZoneHeartRateLimits = New16BitUUID(0x2A8B)

	// CharacteristicUUIDHTTPHeaders - HTTP Headers
	CharacteristicUUIDHTTPHeaders = New16BitUUID(0x2AB7)

	// CharacteristicUUIDSecondaryTimeZone - Secondary Time Zone
	CharacteristicUUIDSecondaryTimeZone = New16BitUUID(0x2A10)

	// CharacteristicUUIDSedentaryIntervalNotification - Sedentary Interval Notification
	CharacteristicUUIDSedentaryIntervalNotification = New16BitUUID(0x2B4F)

	// CharacteristicUUIDSinkAudioLocations - Sink Audio Locations
	CharacteristicUUIDSinkAudioLocations = New16BitUUID(0x2BCA)

	// CharacteristicUUIDBondManagementFeatures - Bond Management Features
	CharacteristicUUIDBondManagementFeatures = New16BitUUID(0x2AA5)

	// CharacteristicUUIDNewAlert - New Alert
	CharacteristicUUIDNewAlert = New16BitUUID(0x2A46)

	// CharacteristicUUIDSensorLocation - Sensor Location
	CharacteristicUUIDSensorLocation = New16BitUUID(0x2A5D)

	// CharacteristicUUIDThingySoundConfig - Thingy Sound Config
	CharacteristicUUIDThingySoundConfig = NewUUID([16]byte{0xef, 0x68, 0x05, 0x01, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDActivePresetIndex - Active Preset Index
	CharacteristicUUIDActivePresetIndex = New16BitUUID(0x2BDC)

	// CharacteristicUUIDEdgeImpulseRemoteManagementRX - Edge Impulse Remote Management RX Characteristic
	CharacteristicUUIDEdgeImpulseRemoteManagementRX = NewUUID([16]byte{0xe2, 0xa0, 0x00, 0x02, 0xec, 0x31, 0x4e, 0xc3, 0xa9, 0x7a, 0x1c, 0x34, 0xd8, 0x7e, 0x98, 0x78})

	// CharacteristicUUIDHeliumHotspotWiFiRemove - Helium Hotspot WiFi Remove
	CharacteristicUUIDHeliumHotspotWiFiRemove = NewUUID([16]byte{0x8c, 0xc6, 0xe0, 0xb3, 0x98, 0xc5, 0x40, 0xcc, 0xb1, 0xd8, 0x69, 0x29, 0x40, 0xe6, 0x99, 0x4b})

	// CharacteristicUUIDAlertCategoryID - Alert Category ID
	CharacteristicUUIDAlertCategoryID = New16BitUUID(0x2A43)

	// CharacteristicUUIDFixedString16 - Fixed String 16
	CharacteristicUUIDFixedString16 = New16BitUUID(0x2AF5)

	// CharacteristicUUIDPower - Power
	CharacteristicUUIDPower = New16BitUUID(0x2B05)

	// CharacteristicUUIDFourZoneHeartRateLimits - Four Zone Heart Rate Limits
	CharacteristicUUIDFourZoneHeartRateLimits = New16BitUUID(0x2B4C)

	// CharacteristicUUIDBatteryPowerState - Battery Power State
	CharacteristicUUIDBatteryPowerState = New16BitUUID(0x2A1A)

	// CharacteristicUUIDLocalEastCoordinate - Local East Coordinate
	CharacteristicUUIDLocalEastCoordinate = New16BitUUID(0x2AB1)

	// CharacteristicUUIDBroadcastReceiveState - Broadcast Receive State
	CharacteristicUUIDBroadcastReceiveState = New16BitUUID(0x2BC8)

	// CharacteristicUUIDReconnectionConfigurationControlPoint1 - Reconnection Configuration Control Point 1
	CharacteristicUUIDReconnectionConfigurationControlPoint1 = New16BitUUID(0x2B1F)

	// CharacteristicUUIDReconnectionConfigurationControlPoint2 - Reconnection Configuration Control Point 2
	CharacteristicUUIDReconnectionConfigurationControlPoint2 = New16BitUUID(0x2B1F)

	// CharacteristicUUIDIlluminance - Illuminance
	CharacteristicUUIDIlluminance = New16BitUUID(0x2AFB)

	// CharacteristicUUIDMeshProxyDataIn - Mesh Proxy Data In
	CharacteristicUUIDMeshProxyDataIn = New16BitUUID(0x2ADD)

	// CharacteristicUUIDCallControlPointOptionalOpcodes - Call Control Point Optional Opcodes
	CharacteristicUUIDCallControlPointOptionalOpcodes = New16BitUUID(0x2BBF)

	// CharacteristicUUIDMicrobitPinData - micro:bit Pin Data
	CharacteristicUUIDMicrobitPinData = NewUUID([16]byte{0xe9, 0x5d, 0x8d, 0x00, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDElectricCurrentStatistics - Electric Current Statistics
	CharacteristicUUIDElectricCurrentStatistics = New16BitUUID(0x2AF1)

	// CharacteristicUUIDHTTPEntityBody - HTTP Entity Body
	CharacteristicUUIDHTTPEntityBody = New16BitUUID(0x2AB9)

	// CharacteristicUUIDWeightMeasurement - Weight Measurement
	CharacteristicUUIDWeightMeasurement = New16BitUUID(0x2A9D)

	// CharacteristicUUIDPulseOximetryControlPoint - Pulse Oximetry Control Point
	CharacteristicUUIDPulseOximetryControlPoint = New16BitUUID(0x2A62)

	// CharacteristicUUIDFastPairAccountKey - Fast Pair Account Key
	CharacteristicUUIDFastPairAccountKey = NewUUID([16]byte{0xfe, 0x2c, 0x12, 0x36, 0x83, 0x66, 0x48, 0x14, 0x8e, 0xb0, 0x01, 0xde, 0x32, 0x10, 0x0b, 0xea})

	// CharacteristicUUIDSupportedNewAlertCategory - Supported New Alert Category
	CharacteristicUUIDSupportedNewAlertCategory = New16BitUUID(0x2A47)

	// CharacteristicUUIDSearchResultsObjectID - Search Results Object ID
	CharacteristicUUIDSearchResultsObjectID = New16BitUUID(0x2BA6)

	// CharacteristicUUIDBondManagementControlPoint - Bond Management Control Point
	CharacteristicUUIDBondManagementControlPoint = New16BitUUID(0x2AA4)

	// CharacteristicUUIDDeviceName - Device Name
	CharacteristicUUIDDeviceName = New16BitUUID(0x2A00)

	// CharacteristicUUIDUVIndex - UV Index
	CharacteristicUUIDUVIndex = New16BitUUID(0x2A76)

	// CharacteristicUUIDAudioInputDescription - Audio Input Description
	CharacteristicUUIDAudioInputDescription = New16BitUUID(0x2B7C)

	// CharacteristicUUIDAdvertisingConstantToneExtensionInterval - Advertising Constant Tone Extension Interval
	CharacteristicUUIDAdvertisingConstantToneExtensionInterval = New16BitUUID(0x2BB1)

	// CharacteristicUUIDCyclingPowerVector - Cycling Power Vector
	CharacteristicUUIDCyclingPowerVector = New16BitUUID(0x2A64)

	// CharacteristicUUIDObjectType - Object Type
	CharacteristicUUIDObjectType = New16BitUUID(0x2ABF)

	// CharacteristicUUIDSetIdentityResolvingKey - Set Identity Resolving Key
	CharacteristicUUIDSetIdentityResolvingKey = New16BitUUID(0x2B84)

	// CharacteristicUUIDMediaPlayerName - Media Player Name
	CharacteristicUUIDMediaPlayerName = New16BitUUID(0x2B93)

	// CharacteristicUUIDButtonlessDFUWithBonds - Buttonless DFU With Bonds
	CharacteristicUUIDButtonlessDFUWithBonds = NewUUID([16]byte{0x8e, 0xc9, 0x00, 0x04, 0xf3, 0x15, 0x4f, 0x60, 0x9f, 0xb8, 0x83, 0x88, 0x30, 0xda, 0xea, 0x50})

	// CharacteristicUUIDCyclingPowerMeasurement - Cycling Power Measurement
	CharacteristicUUIDCyclingPowerMeasurement = New16BitUUID(0x2A63)

	// CharacteristicUUIDFixedString8 - Fixed String 8
	CharacteristicUUIDFixedString8 = New16BitUUID(0x2AF8)

	// CharacteristicUUIDUARTTX - UART TX Characteristic
	CharacteristicUUIDUARTTX = NewUUID([16]byte{0x6e, 0x40, 0x00, 0x03, 0xb5, 0xa3, 0xf3, 0x93, 0xe0, 0xa9, 0xe5, 0x0e, 0x24, 0xdc, 0xca, 0x9e})

	// CharacteristicUUIDBatteryLevel - Battery Level
	CharacteristicUUIDBatteryLevel = New16BitUUID(0x2A19)

	// CharacteristicUUIDHeartRateMax - Heart Rate Max
	CharacteristicUUIDHeartRateMax = New16BitUUID(0x2A8D)

	// CharacteristicUUIDBlinkyLEDState - Blinky LED State
	CharacteristicUUIDBlinkyLEDState = NewUUID([16]byte{0x00, 0x00, 0x15, 0x25, 0x12, 0x12, 0xef, 0xde, 0x15, 0x23, 0x78, 0x5f, 0xea, 0xbc, 0xd1, 0x23})

	// CharacteristicUUIDThingySpeakerStatus - Thingy Speaker Status
	CharacteristicUUIDThingySpeakerStatus = NewUUID([16]byte{0xef, 0x68, 0x05, 0x03, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDBootMouseInputReport - Boot Mouse Input Report
	CharacteristicUUIDBootMouseInputReport = New16BitUUID(0x2A33)

	// CharacteristicUUIDStepClimberData - Step Climber Data
	CharacteristicUUIDStepClimberData = New16BitUUID(0x2ACF)

	// CharacteristicUUIDWaistCircumference - Waist Circumference
	CharacteristicUUIDWaistCircumference = New16BitUUID(0x2A97)

	// CharacteristicUUIDPerceivedLightness - Perceived Lightness
	CharacteristicUUIDPerceivedLightness = New16BitUUID(0x2B03)

	// CharacteristicUUIDRelativeRuntimeInACurrentRange - Relative Runtime In A Current Range
	CharacteristicUUIDRelativeRuntimeInACurrentRange = New16BitUUID(0x2B07)

	// CharacteristicUUIDTexasInstrumentsImageBlock - Texas Instruments Image Block
	CharacteristicUUIDTexasInstrumentsImageBlock = NewUUID([16]byte{0xf0, 0x00, 0xff, 0xc2, 0x04, 0x51, 0x40, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})

	// CharacteristicUUIDServiceChanged - Service Changed
	CharacteristicUUIDServiceChanged = New16BitUUID(0x2A05)

	// CharacteristicUUIDUserIndex - User Index
	CharacteristicUUIDUserIndex = New16BitUUID(0x2A9A)

	// CharacteristicUUIDBloodPressureMeasurement - Blood Pressure Measurement
	CharacteristicUUIDBloodPressureMeasurement = New16BitUUID(0x2A35)

	// CharacteristicUUIDAdvertisingConstantToneExtensionPHY - Advertising Constant Tone Extension PHY
	CharacteristicUUIDAdvertisingConstantToneExtensionPHY = New16BitUUID(0x2BB2)

	// CharacteristicUUIDTrackSegmentsObjectType - Track Segments Object Type
	CharacteristicUUIDTrackSegmentsObjectType = New16BitUUID(0x2BAA)

	// CharacteristicUUIDEddystoneAdvertisingInterval - Eddystone Advertising Interval
	CharacteristicUUIDEddystoneAdvertisingInterval = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x03, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95})

	// CharacteristicUUIDFirmwareRevisionString - Firmware Revision String
	CharacteristicUUIDFirmwareRevisionString = New16BitUUID(0x2A26)

	// CharacteristicUUIDGlucoseMeasurement - Glucose Measurement
	CharacteristicUUIDGlucoseMeasurement = New16BitUUID(0x2A18)

	// CharacteristicUUIDCurrentGroupObjectID - Current Group Object ID
	CharacteristicUUIDCurrentGroupObjectID = New16BitUUID(0x2BA0)

	// CharacteristicUUIDThingyTap - Thingy Tap
	CharacteristicUUIDThingyTap = NewUUID([16]byte{0xef, 0x68, 0x04, 0x02, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDMicrobitDFUControl - micro:bit DFU Control
	CharacteristicUUIDMicrobitDFUControl = NewUUID([16]byte{0xe9, 0x5d, 0x93, 0xb1, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDHeliumHotspotOnboardingKey - Helium Hotspot Onboarding Key
	CharacteristicUUIDHeliumHotspotOnboardingKey = NewUUID([16]byte{0xd0, 0x83, 0xb2, 0xbd, 0xbe, 0x16, 0x46, 0x00, 0xb3, 0x97, 0x61, 0x51, 0x2c, 0xa2, 0xf5, 0xad})

	// CharacteristicUUIDReport - Report
	CharacteristicUUIDReport = New16BitUUID(0x2A4D)

	// CharacteristicUUIDVoltageSpecification - Voltage Specification
	CharacteristicUUIDVoltageSpecification = New16BitUUID(0x2B19)

	// CharacteristicUUIDDeviceTimeFeature - Device Time Feature
	CharacteristicUUIDDeviceTimeFeature = New16BitUUID(0x2B8E)

	// CharacteristicUUIDIncomingCallTargetBearerURI - Incoming Call Target Bearer URI
	CharacteristicUUIDIncomingCallTargetBearerURI = New16BitUUID(0x2BBC)

	// CharacteristicUUIDFastPairModelID - Fast Pair Model ID
	CharacteristicUUIDFastPairModelID = NewUUID([16]byte{0xfe, 0x2c, 0x12, 0x33, 0x83, 0x66, 0x48, 0x14, 0x8e, 0xb0, 0x01, 0xde, 0x32, 0x10, 0x0b, 0xea})

	// CharacteristicUUIDDeprecatedFastPairAccountKey - Deprecated Fast Pair Account Key
	CharacteristicUUIDDeprecatedFastPairAccountKey = New16BitUUID(0x1236)

	// CharacteristicUUIDHeliumHotspotEthernetOnline - Helium Hotspot Ethernet Online
	CharacteristicUUIDHeliumHotspotEthernetOnline = NewUUID([16]byte{0xe5, 0x86, 0x6b, 0xd6, 0x02, 0x88, 0x44, 0x76, 0x98, 0xca, 0xef, 0x7d, 0xa6, 0xb4, 0xd2, 0x89})

	// CharacteristicUUIDSupportedSpeedRange - Supported Speed Range
	CharacteristicUUIDSupportedSpeedRange = New16BitUUID(0x2AD4)

	// CharacteristicUUIDCoefficient - Coefficient
	CharacteristicUUIDCoefficient = New16BitUUID(0x2AE8)

	// CharacteristicUUIDDeviceTimeParameters - Device Time Parameters
	CharacteristicUUIDDeviceTimeParameters = New16BitUUID(0x2B8F)

	// CharacteristicUUIDTrackTitle - Track Title
	CharacteristicUUIDTrackTitle = New16BitUUID(0x2B97)

	// CharacteristicUUIDNextTrackObjectID - Next Track Object ID
	CharacteristicUUIDNextTrackObjectID = New16BitUUID(0x2B9E)

	// CharacteristicUUIDThingyRawData - Thingy Raw Data
	CharacteristicUUIDThingyRawData = NewUUID([16]byte{0xef, 0x68, 0x04, 0x06, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDFastPairPasskey - Fast Pair Passkey
	CharacteristicUUIDFastPairPasskey = NewUUID([16]byte{0xfe, 0x2c, 0x12, 0x35, 0x83, 0x66, 0x48, 0x14, 0x8e, 0xb0, 0x01, 0xde, 0x32, 0x10, 0x0b, 0xea})

	// CharacteristicUUIDLEGOWirelessProtocolV3Bootloader - LEGO® Wireless Protocol v3 Bootloader Characteristic
	CharacteristicUUIDLEGOWirelessProtocolV3Bootloader = NewUUID([16]byte{0x00, 0x00, 0x16, 0x26, 0x12, 0x12, 0xef, 0xde, 0x16, 0x23, 0x78, 0x5f, 0xea, 0xbc, 0xd1, 0x23})

	// CharacteristicUUIDDatabaseChangeIncrement - Database Change Increment
	CharacteristicUUIDDatabaseChangeIncrement = New16BitUUID(0x2A99)

	// CharacteristicUUIDDatabaseHash - Database Hash
	CharacteristicUUIDDatabaseHash = New16BitUUID(0x2B2A)

	// CharacteristicUUIDGender - Gender
	CharacteristicUUIDGender = New16BitUUID(0x2A8C)

	// CharacteristicUUIDEnergy - Energy
	CharacteristicUUIDEnergy = New16BitUUID(0x2AF2)

	// CharacteristicUUIDDeprecatedFastPairKeybasedPairing - Deprecated Fast Pair Key-based Pairing
	CharacteristicUUIDDeprecatedFastPairKeybasedPairing = New16BitUUID(0x1234)

	// CharacteristicUUIDMeshProvisioningDataOut - Mesh Provisioning Data Out
	CharacteristicUUIDMeshProvisioningDataOut = New16BitUUID(0x2ADC)

	// CharacteristicUUIDAdafruitSensorServiceVersion - Adafruit Sensor Service Version
	CharacteristicUUIDAdafruitSensorServiceVersion = NewUUID([16]byte{0xad, 0xaf, 0x00, 0x02, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDAlertCategoryIDBitMask - Alert Category ID Bit Mask
	CharacteristicUUIDAlertCategoryIDBitMask = New16BitUUID(0x2A42)

	// CharacteristicUUIDDayOfWeek - Day of Week
	CharacteristicUUIDDayOfWeek = New16BitUUID(0x2A09)

	// CharacteristicUUIDEddystoneAvancedFactoryReset - Eddystone Avanced Factory Reset
	CharacteristicUUIDEddystoneAvancedFactoryReset = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x0b, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95})

	// CharacteristicUUIDObjectProperties - Object Properties
	CharacteristicUUIDObjectProperties = New16BitUUID(0x2AC4)

	// CharacteristicUUIDAudioInputType - Audio Input Type
	CharacteristicUUIDAudioInputType = New16BitUUID(0x2B79)

	// CharacteristicUUIDBearerSignalStrength - Bearer Signal Strength
	CharacteristicUUIDBearerSignalStrength = New16BitUUID(0x2BB7)

	// CharacteristicUUIDParticulateMatterPM10Concentration - Particulate Matter - PM10 Concentration
	CharacteristicUUIDParticulateMatterPM10Concentration = New16BitUUID(0x2BD7)

	// CharacteristicUUIDAdafruitPixelData - Adafruit Pixel Data
	CharacteristicUUIDAdafruitPixelData = NewUUID([16]byte{0xad, 0xaf, 0x09, 0x03, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDCyclingPowerControlPoint - Cycling Power Control Point
	CharacteristicUUIDCyclingPowerControlPoint = New16BitUUID(0x2A66)

	// CharacteristicUUIDMediaPlayerIconObjectID - Media Player Icon Object ID
	CharacteristicUUIDMediaPlayerIconObjectID = New16BitUUID(0x2B94)

	// CharacteristicUUIDAudioInputState - Audio Input State
	CharacteristicUUIDAudioInputState = New16BitUUID(0x2B77)

	// CharacteristicUUIDSourceAudioLocations - Source Audio Locations
	CharacteristicUUIDSourceAudioLocations = New16BitUUID(0x2BCC)

	// CharacteristicUUIDReferenceTimeInformation - Reference Time Information
	CharacteristicUUIDReferenceTimeInformation = New16BitUUID(0x2A14)

	// CharacteristicUUIDBREDRHandoverData - BR-EDR Handover Data
	CharacteristicUUIDBREDRHandoverData = New16BitUUID(0x2B38)

	// CharacteristicUUIDLuminousExposure - Luminous Exposure
	CharacteristicUUIDLuminousExposure = New16BitUUID(0x2AFE)

	// CharacteristicUUIDTemperatureRange - Temperature Range
	CharacteristicUUIDTemperatureRange = New16BitUUID(0x2B10)

	// CharacteristicUUIDSearchControlPoint - Search Control Point
	CharacteristicUUIDSearchControlPoint = New16BitUUID(0x2BA7)

	// CharacteristicUUIDThingyFWVersion - Thingy FW Version
	CharacteristicUUIDThingyFWVersion = NewUUID([16]byte{0xef, 0x68, 0x01, 0x07, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDUARTRX - UART RX Characteristic
	CharacteristicUUIDUARTRX = NewUUID([16]byte{0x6e, 0x40, 0x00, 0x02, 0xb5, 0xa3, 0xf3, 0x93, 0xe0, 0xa9, 0xe5, 0x0e, 0x24, 0xdc, 0xca, 0x9e})

	// CharacteristicUUIDIntermediateCuffPressure - Intermediate Cuff Pressure
	CharacteristicUUIDIntermediateCuffPressure = New16BitUUID(0x2A36)

	// CharacteristicUUIDRowerData - Rower Data
	CharacteristicUUIDRowerData = New16BitUUID(0x2AD1)

	// CharacteristicUUIDNonMethaneVolatileOrganicCompoundsConcentration - Non-Methane Volatile Organic Compounds Concentration
	CharacteristicUUIDNonMethaneVolatileOrganicCompoundsConcentration = New16BitUUID(0x2BD3)

	// CharacteristicUUIDThingyHumidity - Thingy Humidity
	CharacteristicUUIDThingyHumidity = NewUUID([16]byte{0xef, 0x68, 0x02, 0x03, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDThingySpeakerData - Thingy Speaker Data
	CharacteristicUUIDThingySpeakerData = NewUUID([16]byte{0xef, 0x68, 0x05, 0x02, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDLongitude - Longitude
	CharacteristicUUIDLongitude = New16BitUUID(0x2AAF)

	// CharacteristicUUIDVolumeFlow - Volume Flow
	CharacteristicUUIDVolumeFlow = New16BitUUID(0x2B1B)

	// CharacteristicUUIDLegacyDFUPacket - Legacy DFU Packet
	CharacteristicUUIDLegacyDFUPacket = NewUUID([16]byte{0x00, 0x00, 0x15, 0x32, 0x12, 0x12, 0xef, 0xde, 0x15, 0x23, 0x78, 0x5f, 0xea, 0xbc, 0xd1, 0x23})

	// CharacteristicUUIDThingyRotationMatrix - Thingy Rotation Matrix
	CharacteristicUUIDThingyRotationMatrix = NewUUID([16]byte{0xef, 0x68, 0x04, 0x08, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDThingyHeading - Thingy Heading
	CharacteristicUUIDThingyHeading = NewUUID([16]byte{0xef, 0x68, 0x04, 0x09, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDHeliumHotspotAssertLocation - Helium Hotspot Assert Location
	CharacteristicUUIDHeliumHotspotAssertLocation = NewUUID([16]byte{0xd4, 0x35, 0xf5, 0xde, 0x01, 0xa4, 0x4e, 0x7d, 0x84, 0xba, 0xdf, 0xd3, 0x47, 0xf6, 0x02, 0x75})

	// CharacteristicUUIDMDSDeviceAuthorization - MDS Device Authorization Characteristic
	CharacteristicUUIDMDSDeviceAuthorization = NewUUID([16]byte{0x54, 0x22, 0x00, 0x04, 0xf6, 0xa5, 0x40, 0x07, 0xa3, 0x71, 0x72, 0x2f, 0x4e, 0xbd, 0x84, 0x36})

	// CharacteristicUUIDFitnessMachineFeature - Fitness Machine Feature
	CharacteristicUUIDFitnessMachineFeature = New16BitUUID(0x2ACC)

	// CharacteristicUUIDTxPowerLevel - Tx Power Level
	CharacteristicUUIDTxPowerLevel = New16BitUUID(0x2A07)

	// CharacteristicUUIDThingyMotionConfig - Thingy Motion Config
	CharacteristicUUIDThingyMotionConfig = NewUUID([16]byte{0xef, 0x68, 0x04, 0x01, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDEddystoneUnlock - Eddystone Unlock
	CharacteristicUUIDEddystoneUnlock = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x07, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95})

	// CharacteristicUUIDAdafruitSensorMeasurementPeriod - Adafruit Sensor Measurement Period
	CharacteristicUUIDAdafruitSensorMeasurementPeriod = NewUUID([16]byte{0xad, 0xaf, 0x00, 0x01, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDAdafruitGyro - Adafruit Gyro
	CharacteristicUUIDAdafruitGyro = NewUUID([16]byte{0xad, 0xaf, 0x04, 0x01, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDTexasInstrumentsImageIdentify - Texas Instruments Image Identify
	CharacteristicUUIDTexasInstrumentsImageIdentify = NewUUID([16]byte{0xf0, 0x00, 0xff, 0xc1, 0x04, 0x51, 0x40, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})

	// CharacteristicUUIDHeliumHotspotLights - Helium Hotspot Lights
	CharacteristicUUIDHeliumHotspotLights = NewUUID([16]byte{0x18, 0x0e, 0xfd, 0xef, 0x75, 0x79, 0x4b, 0x4a, 0xb2, 0xdf, 0x72, 0x73, 0x3b, 0x7f, 0xa2, 0xfe})

	// CharacteristicUUIDEmergencyText - Emergency Text
	CharacteristicUUIDEmergencyText = New16BitUUID(0x2B2E)

	// CharacteristicUUIDGainSettingsAttribute - Gain Settings Attribute
	CharacteristicUUIDGainSettingsAttribute = New16BitUUID(0x2B78)

	// CharacteristicUUIDTMAPRole - TMAP Role
	CharacteristicUUIDTMAPRole = New16BitUUID(0x2B51)

	// CharacteristicUUIDTrackPosition - Track Position
	CharacteristicUUIDTrackPosition = New16BitUUID(0x2B99)

	// CharacteristicUUIDMediaControlPoint - Media Control Point
	CharacteristicUUIDMediaControlPoint = New16BitUUID(0x2BA4)

	// CharacteristicUUIDAdafruitPixelBufferSize - Adafruit Pixel Buffer Size
	CharacteristicUUIDAdafruitPixelBufferSize = NewUUID([16]byte{0xad, 0xaf, 0x09, 0x04, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDHeliumHotspotWiFiServices - Helium Hotspot WiFi Services
	CharacteristicUUIDHeliumHotspotWiFiServices = NewUUID([16]byte{0xd7, 0x51, 0x50, 0x33, 0x7e, 0x7b, 0x45, 0xbe, 0x80, 0x3f, 0xc8, 0x73, 0x7b, 0x17, 0x1a, 0x29})

	// CharacteristicUUIDCSCMeasurement - CSC Measurement
	CharacteristicUUIDCSCMeasurement = New16BitUUID(0x2A5B)

	// CharacteristicUUIDNavigation - Navigation
	CharacteristicUUIDNavigation = New16BitUUID(0x2A68)

	// CharacteristicUUIDEmailAddress - Email Address
	CharacteristicUUIDEmailAddress = New16BitUUID(0x2A87)

	// CharacteristicUUIDMicrobitMagnetometerData - micro:bit Magnetometer Data
	CharacteristicUUIDMicrobitMagnetometerData = NewUUID([16]byte{0xe9, 0x5d, 0xfb, 0x11, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDAerobicThreshold - Aerobic Threshold
	CharacteristicUUIDAerobicThreshold = New16BitUUID(0x2A7F)

	// CharacteristicUUIDDateOfThresholdAssessment - Date of Threshold Assessment
	CharacteristicUUIDDateOfThresholdAssessment = New16BitUUID(0x2A86)

	// CharacteristicUUIDExactTime256 - Exact Time 256
	CharacteristicUUIDExactTime256 = New16BitUUID(0x2A0C)

	// CharacteristicUUIDDateUTC - Date UTC
	CharacteristicUUIDDateUTC = New16BitUUID(0x2AED)

	// CharacteristicUUIDAudioOutputDescription - Audio Output Description
	CharacteristicUUIDAudioOutputDescription = New16BitUUID(0x2B83)

	// CharacteristicUUIDMicrobitLEDText - micro:bit LED Text
	CharacteristicUUIDMicrobitLEDText = NewUUID([16]byte{0xe9, 0x5d, 0x93, 0xee, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDHumidity - Humidity
	CharacteristicUUIDHumidity = New16BitUUID(0x2A6F)

	// CharacteristicUUIDTimeBroadcast - Time Broadcast
	CharacteristicUUIDTimeBroadcast = New16BitUUID(0x2A15)

	// CharacteristicUUIDAverageCurrent - Average Current
	CharacteristicUUIDAverageCurrent = New16BitUUID(0x2AE0)

	// CharacteristicUUIDTerminationReason - Termination Reason
	CharacteristicUUIDTerminationReason = New16BitUUID(0x2BC0)

	// CharacteristicUUIDParticulateMatterPM25Concentration - Particulate Matter - PM2.5 Concentration
	CharacteristicUUIDParticulateMatterPM25Concentration = New16BitUUID(0x2BD6)

	// CharacteristicUUIDThingyGravityVector - Thingy Gravity Vector
	CharacteristicUUIDThingyGravityVector = NewUUID([16]byte{0xef, 0x68, 0x04, 0x0a, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// CharacteristicUUIDIndoorPositioningConfiguration - Indoor Positioning Configuration
	CharacteristicUUIDIndoorPositioningConfiguration = New16BitUUID(0x2AAD)

	// CharacteristicUUIDPLXContinuousMeasurement - PLX Continuous Measurement Characteristic
	CharacteristicUUIDPLXContinuousMeasurement = New16BitUUID(0x2A5F)

	// CharacteristicUUIDChromaticityCoordinates - Chromaticity Coordinates
	CharacteristicUUIDChromaticityCoordinates = New16BitUUID(0x2AE4)

	// CharacteristicUUIDAdafruitLightLevel - Adafruit Light Level
	CharacteristicUUIDAdafruitLightLevel = NewUUID([16]byte{0xad, 0xaf, 0x03, 0x01, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// CharacteristicUUIDVolumeControlPoint - Volume Control Point
	CharacteristicUUIDVolumeControlPoint = New16BitUUID(0x2B7E)

	// CharacteristicUUIDTexasInstrumentsOADControl - Texas Instruments OAD Control
	CharacteristicUUIDTexasInstrumentsOADControl = NewUUID([16]byte{0xf0, 0x00, 0xff, 0xc5, 0x04, 0x51, 0x40, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})

	// CharacteristicUUIDHeliumHotspotWiFiConnect - Helium Hotspot WiFi Connect
	CharacteristicUUIDHeliumHotspotWiFiConnect = NewUUID([16]byte{0x39, 0x81, 0x68, 0xaa, 0x01, 0x11, 0x4e, 0xc0, 0xb1, 0xfa, 0x17, 0x16, 0x71, 0x27, 0x06, 0x08})

	// CharacteristicUUIDFirstName - First Name
	CharacteristicUUIDFirstName = New16BitUUID(0x2A8A)

	// CharacteristicUUIDChromaticityInCCTAndDuvValues - Chromaticity In CCT And Duv Values
	CharacteristicUUIDChromaticityInCCTAndDuvValues = New16BitUUID(0x2AE5)

	// CharacteristicUUIDRingerSetting - Ringer Setting
	CharacteristicUUIDRingerSetting = New16BitUUID(0x2A41)

	// CharacteristicUUIDLuminousIntensity - Luminous Intensity
	CharacteristicUUIDLuminousIntensity = New16BitUUID(0x2B01)

	// CharacteristicUUIDTrackObjectType - Track Object Type
	CharacteristicUUIDTrackObjectType = New16BitUUID(0x2BAB)

	// CharacteristicUUIDMicrobitClientRequirements - micro:bit Client Requirements
	CharacteristicUUIDMicrobitClientRequirements = NewUUID([16]byte{0xe9, 0x5d, 0x23, 0xc4, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// CharacteristicUUIDAge - Age
	CharacteristicUUIDAge = New16BitUUID(0x2A80)

	// CharacteristicUUIDGustFactor - Gust Factor
	CharacteristicUUIDGustFactor = New16BitUUID(0x2A74)

	// CharacteristicUUIDIncomingCall - Incoming Call
	CharacteristicUUIDIncomingCall = New16BitUUID(0x2BC1)

	// CharacteristicUUIDCallFriendlyName - Call Friendly Name
	CharacteristicUUIDCallFriendlyName = New16BitUUID(0x2BC2)

	// CharacteristicUUIDMute - Mute
	CharacteristicUUIDMute = New16BitUUID(0x2BC3)

	// CharacteristicUUIDHeliumHotspotAddGateway - Helium Hotspot Add Gateway
	CharacteristicUUIDHeliumHotspotAddGateway = NewUUID([16]byte{0xdf, 0x3b, 0x16, 0xca, 0xc9, 0x85, 0x4d, 0xa2, 0xa6, 0xd2, 0x9b, 0x9b, 0x9a, 0xbd, 0xb8, 0x58})

	// CharacteristicUUIDRCFeature1 - RC Feature 1
	CharacteristicUUIDRCFeature1 = New16BitUUID(0x2B1D)

	// CharacteristicUUIDRCFeature2 - RC Feature 2
	CharacteristicUUIDRCFeature2 = New16BitUUID(0x2B1D)

	// CharacteristicUUIDReconnectionAddress - Reconnection Address
	CharacteristicUUIDReconnectionAddress = New16BitUUID(0x2A03)

	// CharacteristicUUIDOzoneConcentration - Ozone Concentration
	CharacteristicUUIDOzoneConcentration = New16BitUUID(0x2BD4)

	// CharacteristicUUIDSulfurDioxideConcentration - Sulfur Dioxide Concentration
	CharacteristicUUIDSulfurDioxideConcentration = New16BitUUID(0x2BD8)

	// CharacteristicUUIDCentralAddressResolution - Central Address Resolution
	CharacteristicUUIDCentralAddressResolution = New16BitUUID(0x2AA6)

	// CharacteristicUUIDSoftwareRevisionString - Software Revision String
	CharacteristicUUIDSoftwareRevisionString = New16BitUUID(0x2A28)
)
View Source
var (

	// ServiceUUIDExperimentalButtonlessDFU - Experimental Buttonless DFU Service
	ServiceUUIDExperimentalButtonlessDFU = NewUUID([16]byte{0x8e, 0x40, 0x00, 0x01, 0xf3, 0x15, 0x4f, 0x60, 0x9f, 0xb8, 0x83, 0x88, 0x30, 0xda, 0xea, 0x50})

	// ServiceUUIDAdafruitTemperature - Adafruit Temperature Service
	ServiceUUIDAdafruitTemperature = NewUUID([16]byte{0xad, 0xaf, 0x01, 0x00, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// ServiceUUIDAdafruitHumidity - Adafruit Humidity Service
	ServiceUUIDAdafruitHumidity = NewUUID([16]byte{0xad, 0xaf, 0x07, 0x00, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// ServiceUUIDUserData - User Data
	ServiceUUIDUserData = New16BitUUID(0x181C)

	// ServiceUUIDAudioStreamControl - Audio Stream Control
	ServiceUUIDAudioStreamControl = New16BitUUID(0x184E)

	// ServiceUUIDSMP - SMP Service
	ServiceUUIDSMP = NewUUID([16]byte{0x8d, 0x53, 0xdc, 0x1d, 0x1d, 0xb7, 0x4c, 0xd3, 0x86, 0x8b, 0x8a, 0x52, 0x74, 0x60, 0xaa, 0x84})

	// ServiceUUIDAdafruitSound - Adafruit Sound Service
	ServiceUUIDAdafruitSound = NewUUID([16]byte{0xad, 0xaf, 0x0b, 0x00, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// ServiceUUIDPulseOximeter - Pulse Oximeter Service
	ServiceUUIDPulseOximeter = New16BitUUID(0x1822)

	// ServiceUUIDEddystoneConfiguration - Eddystone Configuration Service
	ServiceUUIDEddystoneConfiguration = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x00, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95})

	// ServiceUUIDLocationAndNavigation - Location and Navigation
	ServiceUUIDLocationAndNavigation = New16BitUUID(0x1819)

	// ServiceUUIDMediaControl - Media Control
	ServiceUUIDMediaControl = New16BitUUID(0x1848)

	// ServiceUUIDGenericMediaControl - Generic Media Control
	ServiceUUIDGenericMediaControl = New16BitUUID(0x1849)

	// ServiceUUIDSignifyNetherlandsBVFormerlyPhilipsLighting - Signify Netherlands B.V. (formerly Philips Lighting) Service
	ServiceUUIDSignifyNetherlandsBVFormerlyPhilipsLighting = New16BitUUID(0xFE0F)

	// ServiceUUIDPhilipsHueLightControl - Philips Hue Light Control Service
	ServiceUUIDPhilipsHueLightControl = NewUUID([16]byte{0x93, 0x2c, 0x32, 0xbd, 0x00, 0x00, 0x47, 0xa2, 0x83, 0x5a, 0xa8, 0xd4, 0x55, 0xb8, 0x59, 0xdd})

	// ServiceUUIDThingyUI - Thingy UI Service
	ServiceUUIDThingyUI = NewUUID([16]byte{0xef, 0x68, 0x03, 0x00, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// ServiceUUIDAlertNotification - Alert Notification Service
	ServiceUUIDAlertNotification = New16BitUUID(0x1811)

	// ServiceUUIDEnvironmentalSensing - Environmental Sensing
	ServiceUUIDEnvironmentalSensing = New16BitUUID(0x181A)

	// ServiceUUIDGenericTelephoneBearer - Generic Telephone Bearer
	ServiceUUIDGenericTelephoneBearer = New16BitUUID(0x184C)

	// ServiceUUIDGenericAttribute - Generic Attribute
	ServiceUUIDGenericAttribute = New16BitUUID(0x1801)

	// ServiceUUIDAdafruitMagnetometer - Adafruit Magnetometer Service
	ServiceUUIDAdafruitMagnetometer = NewUUID([16]byte{0xad, 0xaf, 0x05, 0x00, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// ServiceUUIDMicrophoneControl - Microphone Control
	ServiceUUIDMicrophoneControl = New16BitUUID(0x184D)

	// ServiceUUIDLEGOWirelessProtocolV3Bootloader - LEGO® Wireless Protocol v3 Bootloader Service
	ServiceUUIDLEGOWirelessProtocolV3Bootloader = NewUUID([16]byte{0x00, 0x00, 0x16, 0x25, 0x12, 0x12, 0xef, 0xde, 0x16, 0x23, 0x78, 0x5f, 0xea, 0xbc, 0xd1, 0x23})

	// ServiceUUIDAdafruitColor - Adafruit Color Service
	ServiceUUIDAdafruitColor = NewUUID([16]byte{0xad, 0xaf, 0x0a, 0x00, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// ServiceUUIDMeshProvisioning - Mesh Provisioning Service
	ServiceUUIDMeshProvisioning = New16BitUUID(0x1827)

	// ServiceUUIDTransportDiscovery - Transport Discovery
	ServiceUUIDTransportDiscovery = New16BitUUID(0x1824)

	// ServiceUUIDAppleReserved1 - Apple Reserved Service 1
	ServiceUUIDAppleReserved1 = NewUUID([16]byte{0x7d, 0xfc, 0x60, 0x00, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// ServiceUUIDAppleReserved2 - Apple Reserved Service 2
	ServiceUUIDAppleReserved2 = NewUUID([16]byte{0x7d, 0xfc, 0x70, 0x00, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// ServiceUUIDAppleReserved3 - Apple Reserved Service 3
	ServiceUUIDAppleReserved3 = NewUUID([16]byte{0x7d, 0xfc, 0x80, 0x00, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// ServiceUUIDAppleReserved4 - Apple Reserved Service 4
	ServiceUUIDAppleReserved4 = NewUUID([16]byte{0x7d, 0xfc, 0x90, 0x00, 0x7d, 0x1c, 0x49, 0x51, 0x86, 0xaa, 0x8d, 0x97, 0x28, 0xf8, 0xd6, 0x6c})

	// ServiceUUIDAdafruitButton - Adafruit Button Service
	ServiceUUIDAdafruitButton = NewUUID([16]byte{0xad, 0xaf, 0x06, 0x00, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// ServiceUUIDMemfaultDiagnostic - Memfault Diagnostic Service
	ServiceUUIDMemfaultDiagnostic = NewUUID([16]byte{0x54, 0x22, 0x00, 0x00, 0xf6, 0xa5, 0x40, 0x07, 0xa3, 0x71, 0x72, 0x2f, 0x4e, 0xbd, 0x84, 0x36})

	// ServiceUUIDScanParameters - Scan Parameters
	ServiceUUIDScanParameters = New16BitUUID(0x1813)

	// ServiceUUIDCoordinatedSetIdentification - Coordinated Set Identification
	ServiceUUIDCoordinatedSetIdentification = New16BitUUID(0x1846)

	// ServiceUUIDMicrobitAccelerometer - micro:bit Accelerometer Service
	ServiceUUIDMicrobitAccelerometer = NewUUID([16]byte{0xe9, 0x5d, 0x07, 0x53, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// ServiceUUIDMicrobitEvent - micro:bit Event Service
	ServiceUUIDMicrobitEvent = NewUUID([16]byte{0xe9, 0x5d, 0x93, 0xaf, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// ServiceUUIDThingySound - Thingy Sound Service
	ServiceUUIDThingySound = NewUUID([16]byte{0xef, 0x68, 0x05, 0x00, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// ServiceUUIDImmediateAlert - Immediate Alert
	ServiceUUIDImmediateAlert = New16BitUUID(0x1802)

	// ServiceUUIDBroadcastAudioScan - Broadcast Audio Scan
	ServiceUUIDBroadcastAudioScan = New16BitUUID(0x184F)

	// ServiceUUIDInsulinDelivery - Insulin Delivery
	ServiceUUIDInsulinDelivery = New16BitUUID(0x183A)

	// ServiceUUIDVolumeControl - Volume Control
	ServiceUUIDVolumeControl = New16BitUUID(0x1844)

	// ServiceUUIDMicrobitMagnetometer - micro:bit Magnetometer Service
	ServiceUUIDMicrobitMagnetometer = NewUUID([16]byte{0xe9, 0x5d, 0xf2, 0xd8, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// ServiceUUIDMicrobitLED - micro:bit LED Service
	ServiceUUIDMicrobitLED = NewUUID([16]byte{0xe9, 0x5d, 0xd9, 0x1d, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// ServiceUUIDFileTransferByAdafruit - File Transfer Service by Adafruit
	ServiceUUIDFileTransferByAdafruit = New16BitUUID(0xFEBB)

	// ServiceUUIDCommonAudio - Common Audio
	ServiceUUIDCommonAudio = New16BitUUID(0x1853)

	// ServiceUUIDHearingAccess - Hearing Access
	ServiceUUIDHearingAccess = New16BitUUID(0x1854)

	// ServiceUUIDBodyComposition - Body Composition
	ServiceUUIDBodyComposition = New16BitUUID(0x181B)

	// ServiceUUIDPhysicalActivityMonitor - Physical Activity Monitor
	ServiceUUIDPhysicalActivityMonitor = New16BitUUID(0x183E)

	// ServiceUUIDFastPair - Fast Pair Service
	ServiceUUIDFastPair = New16BitUUID(0xFE2C)

	// ServiceUUIDAdafruitGyroscope - Adafruit Gyroscope Service
	ServiceUUIDAdafruitGyroscope = NewUUID([16]byte{0xad, 0xaf, 0x04, 0x00, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// ServiceUUIDAdafruitProximity - Adafruit Proximity Service
	ServiceUUIDAdafruitProximity = NewUUID([16]byte{0xad, 0xaf, 0x0e, 0x00, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// ServiceUUIDTelephoneBearer - Telephone Bearer
	ServiceUUIDTelephoneBearer = New16BitUUID(0x184B)

	// ServiceUUIDNordicLEDAndButton - Nordic LED and Button Service
	ServiceUUIDNordicLEDAndButton = NewUUID([16]byte{0x00, 0x00, 0x15, 0x23, 0x12, 0x12, 0xef, 0xde, 0x15, 0x23, 0x78, 0x5f, 0xea, 0xbc, 0xd1, 0x23})

	// ServiceUUIDInternetProtocolSupport - Internet Protocol Support Service
	ServiceUUIDInternetProtocolSupport = New16BitUUID(0x1820)

	// ServiceUUIDPublishedAudioCapabilities - Published Audio Capabilities
	ServiceUUIDPublishedAudioCapabilities = New16BitUUID(0x1850)

	// ServiceUUIDNordicUART - Nordic UART Service
	ServiceUUIDNordicUART = NewUUID([16]byte{0x6e, 0x40, 0x00, 0x01, 0xb5, 0xa3, 0xf3, 0x93, 0xe0, 0xa9, 0xe5, 0x0e, 0x24, 0xdc, 0xca, 0x9e})

	// ServiceUUIDExposureNotification - Exposure Notification Service
	ServiceUUIDExposureNotification = New16BitUUID(0xFD6F)

	// ServiceUUIDEddystone - Eddystone
	ServiceUUIDEddystone = New16BitUUID(0xFEAA)

	// ServiceUUIDNextDSTChange - Next DST Change Service
	ServiceUUIDNextDSTChange = New16BitUUID(0x1807)

	// ServiceUUIDRunningSpeedAndCadence - Running Speed and Cadence
	ServiceUUIDRunningSpeedAndCadence = New16BitUUID(0x1814)

	// ServiceUUIDConstantToneExtension - Constant Tone Extension
	ServiceUUIDConstantToneExtension = New16BitUUID(0x184A)

	// ServiceUUIDThingyWeatherStation - Thingy Weather Station Service
	ServiceUUIDThingyWeatherStation = NewUUID([16]byte{0xef, 0x68, 0x02, 0x00, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// ServiceUUIDHealthThermometer - Health Thermometer
	ServiceUUIDHealthThermometer = New16BitUUID(0x1809)

	// ServiceUUIDHumanInterfaceDevice - Human Interface Device
	ServiceUUIDHumanInterfaceDevice = New16BitUUID(0x1812)

	// ServiceUUIDCyclingPower - Cycling Power
	ServiceUUIDCyclingPower = New16BitUUID(0x1818)

	// ServiceUUIDReconnectionConfiguration - Reconnection Configuration
	ServiceUUIDReconnectionConfiguration = New16BitUUID(0x1829)

	// ServiceUUIDAdafruitQuaternion - Adafruit Quaternion Service
	ServiceUUIDAdafruitQuaternion = NewUUID([16]byte{0xad, 0xaf, 0x0d, 0x00, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// ServiceUUIDMeshProxy - Mesh Proxy Service
	ServiceUUIDMeshProxy = New16BitUUID(0x1828)

	// ServiceUUIDThingyMotion - Thingy Motion Service
	ServiceUUIDThingyMotion = NewUUID([16]byte{0xef, 0x68, 0x04, 0x00, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// ServiceUUIDIndoorPositioning - Indoor Positioning
	ServiceUUIDIndoorPositioning = New16BitUUID(0x1821)

	// ServiceUUIDAdafruitAddressable - Adafruit Addressable Service
	ServiceUUIDAdafruitAddressable = NewUUID([16]byte{0xad, 0xaf, 0x09, 0x00, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// ServiceUUIDBloodPressure - Blood Pressure
	ServiceUUIDBloodPressure = New16BitUUID(0x1810)

	// ServiceUUIDCurrentTime - Current Time Service
	ServiceUUIDCurrentTime = New16BitUUID(0x1805)

	// ServiceUUIDPhoneAlertStatus - Phone Alert Status Service
	ServiceUUIDPhoneAlertStatus = New16BitUUID(0x180E)

	// ServiceUUIDWeightScale - Weight Scale
	ServiceUUIDWeightScale = New16BitUUID(0x181D)

	// ServiceUUIDBinarySensor - Binary Sensor
	ServiceUUIDBinarySensor = New16BitUUID(0x183B)

	// ServiceUUIDDeviceTime - Device Time
	ServiceUUIDDeviceTime = New16BitUUID(0x1847)

	// ServiceUUIDBroadcastAudioAnnouncement - Broadcast Audio Announcement
	ServiceUUIDBroadcastAudioAnnouncement = New16BitUUID(0x1852)

	// ServiceUUIDMicrobitDFUControl - micro:bit DFU Control Service
	ServiceUUIDMicrobitDFUControl = NewUUID([16]byte{0xe9, 0x5d, 0x93, 0xb0, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// ServiceUUIDBondManagement - Bond Management Service
	ServiceUUIDBondManagement = New16BitUUID(0x181E)

	// ServiceUUIDLinkLoss - Link Loss
	ServiceUUIDLinkLoss = New16BitUUID(0x1803)

	// ServiceUUIDAdafruitAccelerometer - Adafruit Accelerometer Service
	ServiceUUIDAdafruitAccelerometer = NewUUID([16]byte{0xad, 0xaf, 0x02, 0x00, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// ServiceUUIDReferenceTimeUpdate - Reference Time Update Service
	ServiceUUIDReferenceTimeUpdate = New16BitUUID(0x1806)

	// ServiceUUIDTxPower - Tx Power
	ServiceUUIDTxPower = New16BitUUID(0x1804)

	// ServiceUUIDMicrobitTemperature - micro:bit Temperature Service
	ServiceUUIDMicrobitTemperature = NewUUID([16]byte{0xe9, 0x5d, 0x61, 0x00, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// ServiceUUIDCyclingSpeedAndCadence - Cycling Speed and Cadence
	ServiceUUIDCyclingSpeedAndCadence = New16BitUUID(0x1816)

	// ServiceUUIDDeviceInformation - Device Information
	ServiceUUIDDeviceInformation = New16BitUUID(0x180A)

	// ServiceUUIDTMAS - TMAS
	ServiceUUIDTMAS = New16BitUUID(0x1855)

	// ServiceUUIDMicrobitButton - micro:bit Button Service
	ServiceUUIDMicrobitButton = NewUUID([16]byte{0xe9, 0x5d, 0x98, 0x82, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// ServiceUUIDMicrobitIOPin - micro:bit IO Pin Service
	ServiceUUIDMicrobitIOPin = NewUUID([16]byte{0xe9, 0x5d, 0x12, 0x7b, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8})

	// ServiceUUIDAutomationIO - Automation IO
	ServiceUUIDAutomationIO = New16BitUUID(0x1815)

	// ServiceUUIDGlucose - Glucose
	ServiceUUIDGlucose = New16BitUUID(0x1808)

	// ServiceUUIDAppleMedia - Apple Media Service
	ServiceUUIDAppleMedia = NewUUID([16]byte{0x89, 0xd3, 0x50, 0x2b, 0x0f, 0x36, 0x43, 0x3a, 0x8e, 0xf4, 0xc5, 0x02, 0xad, 0x55, 0xf8, 0xdc})

	// ServiceUUIDEdgeImpulseRemoteManagement - Edge Impulse Remote Management Service
	ServiceUUIDEdgeImpulseRemoteManagement = NewUUID([16]byte{0xe2, 0xa0, 0x00, 0x01, 0xec, 0x31, 0x4e, 0xc3, 0xa9, 0x7a, 0x1c, 0x34, 0xd8, 0x7e, 0x98, 0x78})

	// ServiceUUIDHeartRate - Heart Rate
	ServiceUUIDHeartRate = New16BitUUID(0x180D)

	// ServiceUUIDPhilipsHueLightUpdate - Philips Hue Light Update Service
	ServiceUUIDPhilipsHueLightUpdate = NewUUID([16]byte{0xb8, 0x84, 0x3a, 0xdd, 0x00, 0x00, 0x4a, 0xa1, 0x87, 0x94, 0xc3, 0xf4, 0x62, 0x03, 0x0b, 0xda})

	// ServiceUUIDLegacyDFU - Legacy DFU Service
	ServiceUUIDLegacyDFU = NewUUID([16]byte{0x00, 0x00, 0x15, 0x30, 0x12, 0x12, 0xef, 0xde, 0x15, 0x23, 0x78, 0x5f, 0xea, 0xbc, 0xd1, 0x23})

	// ServiceUUIDLEGOWirelessProtocolV3Hub - LEGO® Wireless Protocol v3 Hub Service
	ServiceUUIDLEGOWirelessProtocolV3Hub = NewUUID([16]byte{0x00, 0x00, 0x16, 0x23, 0x12, 0x12, 0xef, 0xde, 0x16, 0x23, 0x78, 0x5f, 0xea, 0xbc, 0xd1, 0x23})

	// ServiceUUIDTexasInstrumentsOvertheAirDownloadOAD - Texas Instruments Over-the-Air Download (OAD) Service
	ServiceUUIDTexasInstrumentsOvertheAirDownloadOAD = NewUUID([16]byte{0xf0, 0x00, 0xff, 0xc0, 0x04, 0x51, 0x40, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})

	// ServiceUUIDHeliumHotspotCustom - Helium Hotspot Custom Service
	ServiceUUIDHeliumHotspotCustom = NewUUID([16]byte{0x0f, 0xda, 0x92, 0xb2, 0x44, 0xa2, 0x4a, 0xf2, 0x84, 0xf5, 0xfa, 0x68, 0x2b, 0xaa, 0x2b, 0x8d})

	// ServiceUUIDObjectTransfer - Object Transfer Service
	ServiceUUIDObjectTransfer = New16BitUUID(0x1825)

	// ServiceUUIDBasicAudioAnnouncement - Basic Audio Announcement
	ServiceUUIDBasicAudioAnnouncement = New16BitUUID(0x1851)

	// ServiceUUIDEmergencyConfiguration - Emergency Configuration
	ServiceUUIDEmergencyConfiguration = New16BitUUID(0x183C)

	// ServiceUUIDVolumeOffsetControl - Volume Offset Control
	ServiceUUIDVolumeOffsetControl = New16BitUUID(0x1845)

	// ServiceUUIDThingyConfiguration - Thingy Configuration Service
	ServiceUUIDThingyConfiguration = NewUUID([16]byte{0xef, 0x68, 0x01, 0x00, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42})

	// ServiceUUIDAdafruitLight - Adafruit Light Service
	ServiceUUIDAdafruitLight = NewUUID([16]byte{0xad, 0xaf, 0x03, 0x00, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// ServiceUUIDAdafruitBarometric - Adafruit Barometric Service
	ServiceUUIDAdafruitBarometric = NewUUID([16]byte{0xad, 0xaf, 0x08, 0x00, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// ServiceUUIDAdafruitTone - Adafruit Tone Service
	ServiceUUIDAdafruitTone = NewUUID([16]byte{0xad, 0xaf, 0x0c, 0x00, 0xc3, 0x32, 0x42, 0xa8, 0x93, 0xbd, 0x25, 0xe9, 0x05, 0x75, 0x6c, 0xb8})

	// ServiceUUIDBattery - Battery Service
	ServiceUUIDBattery = New16BitUUID(0x180F)

	// ServiceUUIDContinuousGlucoseMonitoring - Continuous Glucose Monitoring
	ServiceUUIDContinuousGlucoseMonitoring = New16BitUUID(0x181F)

	// ServiceUUIDAudioInputControl - Audio Input Control
	ServiceUUIDAudioInputControl = New16BitUUID(0x1843)

	// ServiceUUIDAppleNotificationCenter - Apple Notification Center Service
	ServiceUUIDAppleNotificationCenter = NewUUID([16]byte{0x79, 0x05, 0xf4, 0x31, 0xb5, 0xce, 0x4e, 0x99, 0xa4, 0x0f, 0x4b, 0x1e, 0x12, 0x2d, 0x00, 0xd0})

	// ServiceUUIDGenericAccess - Generic Access
	ServiceUUIDGenericAccess = New16BitUUID(0x1800)

	// ServiceUUIDFitnessMachine - Fitness Machine
	ServiceUUIDFitnessMachine = New16BitUUID(0x1826)

	// ServiceUUIDSecureDFU - Secure DFU Service
	ServiceUUIDSecureDFU = New16BitUUID(0xFE59)

	// ServiceUUIDHTTPProxy - HTTP Proxy
	ServiceUUIDHTTPProxy = New16BitUUID(0x1823)
)
View Source
var DefaultAdapter = &Adapter{
	id: defaultAdapter,
	connectHandler: func(device Device, connected bool) {
	},
}

DefaultAdapter is the default adapter on the system. On Linux, it is the first adapter available.

Make sure to call Enable() before using it to initialize the adapter.

Functions

This section is empty.

Types

type Adapter

type Adapter struct {
	// contains filtered or unexported fields
}

func (*Adapter) AddService

func (a *Adapter) AddService(s *Service) error

AddService creates a new service with the characteristics listed in the Service struct.

func (*Adapter) Address added in v0.4.0

func (a *Adapter) Address() (MACAddress, error)

func (*Adapter) Connect

func (a *Adapter) Connect(address Address, params ConnectionParams) (Device, error)

Connect starts a connection attempt to the given peripheral device address.

On Linux and Windows, the IsRandom part of the address is ignored.

func (*Adapter) DefaultAdvertisement

func (a *Adapter) DefaultAdvertisement() *Advertisement

DefaultAdvertisement returns the default advertisement instance but does not configure it.

func (*Adapter) Enable

func (a *Adapter) Enable() (err error)

Enable configures the BLE stack. It must be called before any Bluetooth-related calls (unless otherwise indicated).

func (*Adapter) Scan

func (a *Adapter) Scan(callback func(*Adapter, ScanResult)) error

Scan starts a BLE scan. It is stopped by a call to StopScan. A common pattern is to cancel the scan when a particular device has been found.

On Linux with BlueZ, incoming packets cannot be observed directly. Instead, existing devices are watched for property changes. This closely simulates the behavior as if the actual packets were observed, but it has flaws: it is possible some events are missed and perhaps even possible that some events are duplicated.

func (*Adapter) SetConnectHandler

func (a *Adapter) SetConnectHandler(c func(device Device, connected bool))

SetConnectHandler sets a handler function to be called whenever the adaptor connects or disconnects. You must call this before you call adaptor.Connect() for centrals or adaptor.Start() for peripherals in order for it to work.

func (*Adapter) StopScan

func (a *Adapter) StopScan() error

StopScan stops any in-progress scan. It can be called from within a Scan callback to stop the current scan. If no scan is in progress, an error will be returned.

type Address

type Address struct {
	MACAddress
}

Address contains a Bluetooth MAC address.

type Advertisement struct {
	// contains filtered or unexported fields
}

Advertisement encapsulates a single advertisement instance.

func (*Advertisement) Configure

func (a *Advertisement) Configure(options AdvertisementOptions) error

Configure this advertisement.

On Linux with BlueZ, it is not possible to set the advertisement interval.

func (*Advertisement) Start

func (a *Advertisement) Start() error

Start advertisement. May only be called after it has been configured.

func (*Advertisement) Stop added in v0.6.0

func (a *Advertisement) Stop() error

Stop advertisement. May only be called after it has been started.

type AdvertisementFields

type AdvertisementFields struct {
	// The LocalName part of the advertisement (either the complete local name
	// or the shortened local name).
	LocalName string

	// ServiceUUIDs are the services (16-bit or 128-bit) that are broadcast as
	// part of the advertisement packet, in data types such as "complete list of
	// 128-bit UUIDs".
	ServiceUUIDs []UUID

	// ManufacturerData is the manufacturer data of the advertisement.
	ManufacturerData []ManufacturerDataElement

	// ServiceData is the service data of the advertisement.
	ServiceData []ServiceDataElement
}

AdvertisementFields contains advertisement fields in structured form.

type AdvertisementOptions

type AdvertisementOptions struct {
	// The (complete) local name that will be advertised. Optional, omitted if
	// this is a zero-length string.
	LocalName string

	// ServiceUUIDs are the services (16-bit or 128-bit) that are broadcast as
	// part of the advertisement packet, in data types such as "complete list of
	// 128-bit UUIDs".
	ServiceUUIDs []UUID

	// Interval in BLE-specific units. Create an interval by using NewDuration.
	Interval Duration

	// ManufacturerData stores Advertising Data.
	ManufacturerData []ManufacturerDataElement

	// ServiceData stores Advertising Data.
	ServiceData []ServiceDataElement
}

AdvertisementOptions configures an advertisement instance. More options may be added over time.

type AdvertisementPayload

type AdvertisementPayload interface {
	// LocalName is the (complete or shortened) local name of the device.
	// Please note that many devices do not broadcast a local name, but may
	// broadcast other data (e.g. manufacturer data or service UUIDs) with which
	// they may be identified.
	LocalName() string

	// HasServiceUUID returns true whether the given UUID is present in the
	// advertisement payload as a Service Class UUID. It checks both 16-bit
	// UUIDs and 128-bit UUIDs.
	HasServiceUUID(UUID) bool

	// Bytes returns the raw advertisement packet, if available. It returns nil
	// if this data is not available.
	Bytes() []byte

	// ManufacturerData returns a slice with all the manufacturer data present in the
	// advertising. It may be empty.
	ManufacturerData() []ManufacturerDataElement

	// ServiceData returns a slice with all the service data present in the
	// advertising. It may be empty.
	ServiceData() []ServiceDataElement
}

AdvertisementPayload contains information obtained during a scan (see ScanResult). It is provided as an interface as there are two possible implementations: an implementation that works with raw data (usually on low-level BLE stacks) and an implementation that works with structured data.

type Characteristic

type Characteristic struct {
	// contains filtered or unexported fields
}

Characteristic is a single characteristic in a service. It has an UUID and a value.

func (*Characteristic) Write

func (c *Characteristic) Write(p []byte) (n int, err error)

Write replaces the characteristic value with a new value.

type CharacteristicConfig

type CharacteristicConfig struct {
	Handle *Characteristic
	UUID
	Value      []byte
	Flags      CharacteristicPermissions
	WriteEvent WriteEvent
}

CharacteristicConfig contains some parameters for the configuration of a single characteristic.

The Handle field may be nil. If it is set, it points to a characteristic handle that can be used to access the characteristic at a later time.

type CharacteristicPermissions

type CharacteristicPermissions uint8

CharacteristicPermissions lists a number of basic permissions/capabilities that clients have regarding this characteristic. For example, if you want to allow clients to read the value of this characteristic (a common scenario), set the Read permission.

const (
	CharacteristicBroadcastPermission CharacteristicPermissions = 1 << iota
	CharacteristicReadPermission
	CharacteristicWriteWithoutResponsePermission
	CharacteristicWritePermission
	CharacteristicNotifyPermission
	CharacteristicIndicatePermission
)

Characteristic permission bitfields.

func (CharacteristicPermissions) Broadcast

func (p CharacteristicPermissions) Broadcast() bool

Broadcast returns whether broadcasting of the value is permitted.

func (CharacteristicPermissions) Indicate added in v0.9.0

func (p CharacteristicPermissions) Indicate() bool

Indicate returns whether indications are permitted.

func (CharacteristicPermissions) Notify added in v0.9.0

func (p CharacteristicPermissions) Notify() bool

Notify returns whether notifications are permitted.

func (CharacteristicPermissions) Read

Read returns whether reading of the value is permitted.

func (CharacteristicPermissions) Write

func (p CharacteristicPermissions) Write() bool

Write returns whether writing of the value with Write Request is permitted.

func (CharacteristicPermissions) WriteWithoutResponse

func (p CharacteristicPermissions) WriteWithoutResponse() bool

WriteWithoutResponse returns whether writing of the value with Write Command is permitted.

type Connection

type Connection uint16

Connection is a numeric identifier that indicates a connection handle.

type ConnectionParams

type ConnectionParams struct {
	// The timeout for the connection attempt. Not used during the rest of the
	// connection. If no duration is specified, a default timeout will be used.
	ConnectionTimeout Duration

	// Minimum and maximum connection interval. The shorter the interval, the
	// faster data can travel between both devices but also the more power they
	// will draw. If no intervals are specified, a default connection interval
	// will be used.
	MinInterval Duration
	MaxInterval Duration

	// Connection Supervision Timeout. After this time has passed with no
	// communication, the connection is considered lost. If no timeout is
	// specified, the timeout will be unchanged.
	Timeout Duration
}

ConnectionParams are used when connecting to a peripherals or when changing the parameters of an active connection.

type Device

type Device struct {
	Address Address // the MAC address of the device
	// contains filtered or unexported fields
}

Device is a connection to a remote peripheral.

func (Device) Disconnect added in v0.2.0

func (d Device) Disconnect() error

Disconnect from the BLE device. This method is non-blocking and does not wait until the connection is fully gone.

func (Device) DiscoverServices

func (d Device) DiscoverServices(uuids []UUID) ([]DeviceService, error)

DiscoverServices starts a service discovery procedure. Pass a list of service UUIDs you are interested in to this function. Either a slice of all services is returned (of the same length as the requested UUIDs and in the same order), or if some services could not be discovered an error is returned.

Passing a nil slice of UUIDs will return a complete list of services.

On Linux with BlueZ, this just waits for the ServicesResolved signal (if services haven't been resolved yet) and uses this list of cached services.

func (Device) RequestConnectionParams added in v0.9.0

func (d Device) RequestConnectionParams(params ConnectionParams) error

RequestConnectionParams requests a different connection latency and timeout of the given device connection. Fields that are unset will be left alone. Whether or not the device will actually honor this, depends on the device and on the specific parameters.

On Linux, this call doesn't do anything because BlueZ doesn't support changing the connection latency.

type DeviceCharacteristic

type DeviceCharacteristic struct {
	// contains filtered or unexported fields
}

DeviceCharacteristic is a BLE characteristic on a connected peripheral device.

func (DeviceCharacteristic) EnableNotifications

func (c DeviceCharacteristic) EnableNotifications(callback func(buf []byte)) error

EnableNotifications enables notifications in the Client Characteristic Configuration Descriptor (CCCD). This means that most peripherals will send a notification with a new value every time the value of the characteristic changes.

Users may call EnableNotifications with a nil callback to disable notifications.

func (DeviceCharacteristic) GetMTU added in v0.7.0

func (c DeviceCharacteristic) GetMTU() (uint16, error)

GetMTU returns the MTU for the characteristic.

func (DeviceCharacteristic) Read added in v0.2.0

func (c DeviceCharacteristic) Read(data []byte) (int, error)

Read reads the current characteristic value.

func (DeviceCharacteristic) UUID

func (c DeviceCharacteristic) UUID() UUID

UUID returns the UUID for this DeviceCharacteristic.

func (DeviceCharacteristic) WriteWithoutResponse

func (c DeviceCharacteristic) WriteWithoutResponse(p []byte) (n int, err error)

WriteWithoutResponse replaces the characteristic value with a new value. The call will return before all data has been written. A limited number of such writes can be in flight at any given time. This call is also known as a "write command" (as opposed to a write request).

type DeviceService

type DeviceService struct {
	// contains filtered or unexported fields
}

DeviceService is a BLE service on a connected peripheral device.

func (DeviceService) DiscoverCharacteristics

func (s DeviceService) DiscoverCharacteristics(uuids []UUID) ([]DeviceCharacteristic, error)

DiscoverCharacteristics discovers characteristics in this service. Pass a list of characteristic UUIDs you are interested in to this function. Either a list of all requested services is returned, or if some services could not be discovered an error is returned. If there is no error, the characteristics slice has the same length as the UUID slice with characteristics in the same order in the slice as in the requested UUID list.

Passing a nil slice of UUIDs will return a complete list of characteristics.

func (DeviceService) UUID

func (s DeviceService) UUID() UUID

UUID returns the UUID for this DeviceService.

type Duration

type Duration uint16

Duration is the unit of time used in BLE, in 0.625µs units. This unit of time is used throughout the BLE stack.

func NewDuration

func NewDuration(interval time.Duration) Duration

NewDuration returns a new Duration, in units of 0.625µs. It is used both for advertisement intervals and for connection parameters.

type MAC

type MAC [6]byte

MAC represents a MAC address, in little endian format.

func ParseMAC

func ParseMAC(s string) (mac MAC, err error)

ParseMAC parses the given MAC address, which must be in 11:22:33:AA:BB:CC format. If it cannot be parsed, an error is returned.

func (MAC) String

func (mac MAC) String() string

String returns a human-readable version of this MAC address, such as 11:22:33:AA:BB:CC.

type MACAddress

type MACAddress struct {
	// MAC address of the Bluetooth device.
	MAC
	// contains filtered or unexported fields
}

MACAddress contains a Bluetooth address which is a MAC address.

func (MACAddress) IsRandom

func (mac MACAddress) IsRandom() bool

IsRandom if the address is randomly created.

func (*MACAddress) Set

func (mac *MACAddress) Set(val string)

Set the address

func (*MACAddress) SetRandom

func (mac *MACAddress) SetRandom(val bool)

SetRandom if is a random address.

type ManufacturerDataElement added in v0.9.0

type ManufacturerDataElement struct {
	// The company ID, which must be one of the assigned company IDs.
	// The full list is in here:
	// https://www.bluetooth.com/specifications/assigned-numbers/
	// The list can also be viewed here:
	// https://bitbucket.org/bluetooth-SIG/public/src/main/assigned_numbers/company_identifiers/company_identifiers.yaml
	// The value 0xffff can also be used for testing.
	CompanyID uint16

	// The value, which can be any value but can't be very large.
	Data []byte
}

Manufacturer data that's part of an advertisement packet.

type ScanResult

type ScanResult struct {
	// Bluetooth address of the scanned device.
	Address Address

	// Signal strength of the  advertisement packet.
	RSSI int16

	// The data obtained from the advertisement data, which may contain many
	// different properties.
	// Warning: this data may only stay valid until the next event arrives. If
	// you need any of the fields to stay alive until after the callback
	// returns, copy them.
	AdvertisementPayload
}

ScanResult contains information from when an advertisement packet was received. It is passed as a parameter to the callback of the Scan method.

type Service

type Service struct {
	UUID
	Characteristics []CharacteristicConfig
	// contains filtered or unexported fields
}

Service is a GATT service to be used in AddService.

type ServiceDataElement added in v0.9.0

type ServiceDataElement struct {
	// Service UUID.
	// The list can also be viewed here:
	// https://bitbucket.org/bluetooth-SIG/public/src/main/assigned_numbers/uuids/service_uuids.yaml
	UUID UUID
	// the data byte array
	Data []byte
}

ServiceDataElement strores a uuid/byte-array pair used as ServiceData advertisment elements

type UUID

type UUID [4]uint32

UUID is a single UUID as used in the Bluetooth stack. It is represented as a [4]uint32 instead of a [16]byte for efficiency.

func New16BitUUID

func New16BitUUID(shortUUID uint16) UUID

New16BitUUID returns a new 128-bit UUID based on a 16-bit UUID.

Note: only use registered UUIDs. See https://www.bluetooth.com/specifications/gatt/services/ for a list.

func New32BitUUID added in v0.9.0

func New32BitUUID(shortUUID uint32) UUID

New32BitUUID returns a new 128-bit UUID based on a 32-bit UUID.

Note: only use registered UUIDs. See https://www.bluetooth.com/specifications/gatt/services/ for a list.

func NewUUID

func NewUUID(uuid [16]byte) UUID

NewUUID returns a new UUID based on the 128-bit (or 16-byte) input.

func ParseUUID

func ParseUUID(s string) (uuid UUID, err error)

ParseUUID parses the given UUID, which must be in 00001234-0000-1000-8000-00805f9b34fb format. This means that it cannot (yet) parse 16-bit UUIDs unless they are serialized as a 128-bit UUID. If the UUID cannot be parsed, an error is returned. It will always successfully parse UUIDs generated by UUID.String().

func (UUID) Bytes

func (uuid UUID) Bytes() [16]byte

Bytes returns a 16-byte array containing the raw UUID.

func (UUID) Get16Bit

func (uuid UUID) Get16Bit() uint16

Get16Bit returns the 16-bit version of this UUID. This is only valid if it actually is a 16-bit UUID, see Is16Bit.

func (UUID) Get32Bit added in v0.9.0

func (uuid UUID) Get32Bit() uint32

Get32Bit returns the 32-bit version of this UUID. This is only valid if it actually is a 32-bit UUID, see Is32Bit.

func (UUID) Is16Bit

func (uuid UUID) Is16Bit() bool

Is16Bit returns whether this UUID is a 16-bit BLE UUID.

func (UUID) Is32Bit

func (uuid UUID) Is32Bit() bool

Is32Bit returns whether this UUID is a 32-bit or 16-bit BLE UUID.

func (UUID) Replace16BitComponent

func (uuid UUID) Replace16BitComponent(component uint16) UUID

Replace16BitComponent returns a new UUID where bits 16..32 have been replaced with the bits given in the argument. These bits are the same bits that vary in the 16-bit compressed UUID form.

This is especially useful for the Nordic SoftDevice, because it is able to store custom UUIDs more efficiently when only these bits vary between them.

func (UUID) String

func (uuid UUID) String() string

String returns a human-readable version of this UUID, such as 00001234-0000-1000-8000-00805f9b34fb.

type WriteEvent added in v0.10.0

type WriteEvent = func(client Connection, offset int, value []byte)

Directories

Path Synopsis
examples
circuitplay
This example is intended to be used with the Adafruit Circuitplay Bluefruit board.
This example is intended to be used with the Adafruit Circuitplay Bluefruit board.
connparams
Test for setting connection parameters.
Test for setting connection parameters.
discover
This example scans and then connects to a specific Bluetooth peripheral and then displays all of the services and characteristics.
This example scans and then connects to a specific Bluetooth peripheral and then displays all of the services and characteristics.
heartrate-monitor
This example scans and then connects to a specific Bluetooth peripheral that can provide the Heart Rate Service (HRS).
This example scans and then connects to a specific Bluetooth peripheral that can provide the Heart Rate Service (HRS).
stop-advertisement
This example advertises for 5 minutes after - boot - disconnect and then stops advertising.
This example advertises for 5 minutes after - boot - disconnect and then stops advertising.
Package rawterm provides some sort of raw terminal interface, both on hosted systems and baremetal.
Package rawterm provides some sort of raw terminal interface, both on hosted systems and baremetal.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL