bluetooth

package module
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Jan 30, 2025 License: BSD-3-Clause Imports: 9 Imported by: 286

README

Go Bluetooth

Go Bluetooth

PkgGoDev Linux macOS Windows

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.

By using TinyGo, it can also be used running "bare metal" on microcontrollers produced by Nordic Semiconductor, or boards that have a Bluetooth co-processor that uses the Bluetooth Host Controller Interface (HCI).

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.

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
Seeed Studio XIAO nRF52840

The Seeed Studio Xiao nRF52840 uses the UF2 bootloader with pre-loaded SoftDevice firmware, so it is very easy to use with TinyGo.

You can flash your TinyGo program like this:

tinygo flash -target=xiao-ble ./examples/heartrate
Other boards with UF2 bootloader

There are other boards with TinyGo support that 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 2024-12-02 16:31:40.948964025 +0100 CET m=+0.002683855 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 2024-12-02 16:31:40.481182635 +0100 CET m=+0.000711066 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 (
	// Public address
	GAPAddressTypePublic = 0x00
	// Random Static address
	GAPAddressTypeRandomStatic = 0x01
	// Private Resolvable address
	GAPAddressTypeRandomPrivateResolvable = 0x02
	// Private Non-Resolvable address
	GAPAddressTypeRandomPrivateNonResolvable = 0x03
)
View Source
const Version = "0.11.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 (

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

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

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

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

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

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

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

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

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

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

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

	// CharacteristicUUIDThingyMicrophone - Thingy Microphone
	CharacteristicUUIDThingyMicrophone = NewUUID([16]byte{0xef, 0x68, 0x05, 0x04, 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})

	// 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})

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

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

	// CharacteristicUUIDBatteryCriticalStatus - Battery Critical Status
	CharacteristicUUIDBatteryCriticalStatus = New16BitUUID(0x2BE9)

	// CharacteristicUUIDObservationScheduleChanged - Observation Schedule Changed
	CharacteristicUUIDObservationScheduleChanged = New16BitUUID(0x2BF1)

	// 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})

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

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

	// 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})

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

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

	// 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})

	// CharacteristicUUIDSensorHubBattery - Sensor Hub Battery
	CharacteristicUUIDSensorHubBattery = NewUUID([16]byte{0xfa, 0x3c, 0xf0, 0x70, 0xd0, 0xc7, 0x46, 0x68, 0x96, 0xc4, 0x86, 0x12, 0x5c, 0x8a, 0xc5, 0xdf})

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

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

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

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

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

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

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

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

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

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

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

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

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

	// CharacteristicUUIDBatteryHealthStatus - Battery Health Status
	CharacteristicUUIDBatteryHealthStatus = New16BitUUID(0x2BEA)

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

	// 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})

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

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

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

	// CharacteristicUUIDNoise - Noise
	CharacteristicUUIDNoise = New16BitUUID(0x2BE4)

	// CharacteristicUUIDVOCConcentration - VOC Concentration
	CharacteristicUUIDVOCConcentration = New16BitUUID(0x2BE7)

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

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

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

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

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

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

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

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

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

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

	// CharacteristicUUIDStatus - Status Characteristic
	CharacteristicUUIDStatus = NewUUID([16]byte{0x57, 0xa7, 0x00, 0x01, 0x93, 0x50, 0x11, 0xed, 0xa1, 0xeb, 0x02, 0x42, 0xac, 0x12, 0x00, 0x02})

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

	// 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})

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

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

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

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

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

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

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

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

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

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

	// CharacteristicUUIDSensorHubRedColor - Sensor Hub Red Color
	CharacteristicUUIDSensorHubRedColor = NewUUID([16]byte{0x82, 0x75, 0x4b, 0xbb, 0x6e, 0xd3, 0x4d, 0x69, 0xa0, 0xe1, 0xf1, 0x9f, 0x6b, 0x65, 0x4e, 0xc2})

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

	// 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})

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

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

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

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

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

	// 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})

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

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

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

	// 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})

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

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

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

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

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

	// CharacteristicUUIDLightOutput - Light Output
	CharacteristicUUIDLightOutput = New16BitUUID(0x2BE2)

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

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

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

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

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

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

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

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

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

	// CharacteristicUUIDESLLEDInformation - ESL LED Information
	CharacteristicUUIDESLLEDInformation = New16BitUUID(0x2BFD)

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

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

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

	// 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})

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

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

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

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

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

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

	// 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})

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

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

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

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

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

	// CharacteristicUUIDWiFiProvisioningDataOut - Wi-Fi Provisioning Data Out
	CharacteristicUUIDWiFiProvisioningDataOut = NewUUID([16]byte{0x14, 0x38, 0x78, 0x03, 0x13, 0x0c, 0x49, 0xe7, 0xb8, 0x77, 0x28, 0x81, 0xc8, 0x9c, 0xb2, 0x58})

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

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

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

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

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

	// CharacteristicUUIDHealthSensorFeatures - Health Sensor Features
	CharacteristicUUIDHealthSensorFeatures = New16BitUUID(0x2BF3)

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

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

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

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

	// CharacteristicUUIDUGGFeatures - UGG Features
	CharacteristicUUIDUGGFeatures = New16BitUUID(0x2C01)

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

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

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

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

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

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

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

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

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

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

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

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

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

	// 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})

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	// 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})

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

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

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

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

	// 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})

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

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

	// 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})

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

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

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

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

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

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

	// 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})

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

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

	// CharacteristicUUIDESLSensorInformation - ESL Sensor Information
	CharacteristicUUIDESLSensorInformation = New16BitUUID(0x2BFC)

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

	// 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})

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

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

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

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

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

	// 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})

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

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

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

	// CharacteristicUUIDBatteryInformation - Battery Information
	CharacteristicUUIDBatteryInformation = New16BitUUID(0x2BEC)

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

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

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

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

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

	// CharacteristicUUIDBatteryLevelStatus - Battery Level Status
	CharacteristicUUIDBatteryLevelStatus = New16BitUUID(0x2BED)

	// CharacteristicUUIDAPSyncKeyMaterial - AP Sync Key Material
	CharacteristicUUIDAPSyncKeyMaterial = New16BitUUID(0x2BF7)

	// CharacteristicUUIDBGRFeatures - BGR Features
	CharacteristicUUIDBGRFeatures = New16BitUUID(0x2C04)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	// CharacteristicUUIDESLControlPoint - ESL Control Point
	CharacteristicUUIDESLControlPoint = New16BitUUID(0x2BFE)

	// 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})

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

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

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

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

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

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

	// CharacteristicUUIDHighVoltage - High Voltage
	CharacteristicUUIDHighVoltage = New16BitUUID(0x2BE0)

	// CharacteristicUUIDCurrentElapsedTime - Current Elapsed Time
	CharacteristicUUIDCurrentElapsedTime = New16BitUUID(0x2BF2)

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

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

	// CharacteristicUUIDSensorHubTemperature - Sensor Hub Temperature
	CharacteristicUUIDSensorHubTemperature = NewUUID([16]byte{0x50, 0x6a, 0x55, 0xc4, 0xb5, 0xe7, 0x46, 0xfa, 0x83, 0x26, 0x8a, 0xca, 0xeb, 0x11, 0x89, 0xeb})

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

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

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

	// CharacteristicUUIDWiFiProvisioningControlPoint - Wi-Fi Provisioning Control Point
	CharacteristicUUIDWiFiProvisioningControlPoint = NewUUID([16]byte{0x14, 0x38, 0x78, 0x02, 0x13, 0x0c, 0x49, 0xe7, 0xb8, 0x77, 0x28, 0x81, 0xc8, 0x9c, 0xb2, 0x58})

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

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

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

	// CharacteristicUUIDESLResponseKeyMaterial - ESL Response Key Material
	CharacteristicUUIDESLResponseKeyMaterial = New16BitUUID(0x2BF8)

	// CharacteristicUUIDLEGATTSecurityLevels - LE GATT Security Levels
	CharacteristicUUIDLEGATTSecurityLevels = New16BitUUID(0x2BF5)

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

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

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

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

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

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

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

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

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

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

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

	// 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})

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

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

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

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

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

	// CharacteristicUUIDSensorHubBlueColor - Sensor Hub Blue Color
	CharacteristicUUIDSensorHubBlueColor = NewUUID([16]byte{0xf5, 0xd2, 0xea, 0xb5, 0x41, 0xe8, 0x4f, 0x7c, 0xae, 0xf7, 0xc9, 0xff, 0xf4, 0xc5, 0x44, 0xc0})

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

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

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

	// 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})

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

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

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

	// CharacteristicUUIDBatteryHealthInformation - Battery Health Information
	CharacteristicUUIDBatteryHealthInformation = New16BitUUID(0x2BEB)

	// CharacteristicUUIDThingyPedometer - Thingy Pedometer
	CharacteristicUUIDThingyPedometer = NewUUID([16]byte{0xef, 0x68, 0x04, 0x05, 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})

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

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

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

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

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

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

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

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

	// 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})

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

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

	// 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})

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

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

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

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

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

	// CharacteristicUUIDTimeSecond32 - Time Second 32
	CharacteristicUUIDTimeSecond32 = New16BitUUID(0x2BE6)

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

	// 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})

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

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

	// 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})

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

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

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

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

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

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

	// CharacteristicUUIDGMAPRole - GMAP Role
	CharacteristicUUIDGMAPRole = New16BitUUID(0x2C00)

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

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

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

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

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

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

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

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

	// CharacteristicUUIDFixedString64 - Fixed String 64
	CharacteristicUUIDFixedString64 = New16BitUUID(0x2BDE)

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

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

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

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

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

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

	// CharacteristicUUIDHighTemperature - High Temperature
	CharacteristicUUIDHighTemperature = New16BitUUID(0x2BDF)

	// CharacteristicUUIDSensorHubPressure - Sensor Hub Pressure
	CharacteristicUUIDSensorHubPressure = NewUUID([16]byte{0x51, 0x83, 0x8a, 0xff, 0x2d, 0x9a, 0xb3, 0x2a, 0xb3, 0x2a, 0x81, 0x87, 0xe4, 0x16, 0x64, 0xba})

	// CharacteristicUUIDWiFiProvisioningServiceVersion - Wi-Fi Provisioning Service Version
	CharacteristicUUIDWiFiProvisioningServiceVersion = NewUUID([16]byte{0x14, 0x38, 0x78, 0x01, 0x13, 0x0c, 0x49, 0xe7, 0xb8, 0x77, 0x28, 0x81, 0xc8, 0x9c, 0xb2, 0x58})

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

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

	// 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})

	// 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})

	// 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})

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	// 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})

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

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

	// 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})

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

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

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

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

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

	// 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})

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

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

	// CharacteristicUUIDThingyConfiguration - Thingy Configuration
	CharacteristicUUIDThingyConfiguration = NewUUID([16]byte{0xef, 0x68, 0x02, 0x06, 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})

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

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

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

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

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

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

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

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

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

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

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

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

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

	// CharacteristicUUIDBGSFeatures - BGS Features
	CharacteristicUUIDBGSFeatures = New16BitUUID(0x2C03)

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

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

	// 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})

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

	// 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})

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

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

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

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

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

	// CharacteristicUUIDUDIForMedicalDevices - UDI for Medical Devices
	CharacteristicUUIDUDIForMedicalDevices = New16BitUUID(0x2BFF)

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

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

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

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

	// 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})

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

	// 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})

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

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

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

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

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

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

	// CharacteristicUUIDThingyRotationMatrix - Thingy Rotation Matrix
	CharacteristicUUIDThingyRotationMatrix = NewUUID([16]byte{0xef, 0x68, 0x04, 0x08, 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)

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

	// 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})

	// 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})

	// 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})

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

	// 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})

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

	// 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})

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

	// CharacteristicUUIDLightDistribution - Light Distribution
	CharacteristicUUIDLightDistribution = New16BitUUID(0x2BE1)

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

	// 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})

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

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

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

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

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

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

	// CharacteristicUUIDGHSControlPoint - GHS Control Point
	CharacteristicUUIDGHSControlPoint = New16BitUUID(0x2BF4)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	// 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})

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

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

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

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

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

	// 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})

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

	// CharacteristicUUIDLightSourceType - Light Source Type
	CharacteristicUUIDLightSourceType = New16BitUUID(0x2BE3)

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

	// 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)

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

	// 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})

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

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

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

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

	// 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})

	// 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})

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

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

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

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

	// CharacteristicUUIDESLImageInformation - ESL Image Information
	CharacteristicUUIDESLImageInformation = New16BitUUID(0x2BFB)

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

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

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

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

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

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

	// CharacteristicUUIDBatteryTimeStatus - Battery Time Status
	CharacteristicUUIDBatteryTimeStatus = New16BitUUID(0x2BEE)

	// CharacteristicUUIDESLDisplayInformation - ESL Display Information
	CharacteristicUUIDESLDisplayInformation = New16BitUUID(0x2BFA)

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

	// 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})

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

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

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

	// CharacteristicUUIDVoltageFrequency - Voltage Frequency
	CharacteristicUUIDVoltageFrequency = New16BitUUID(0x2BE8)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	// 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})

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	// CharacteristicUUIDESLAddress - ESL Address
	CharacteristicUUIDESLAddress = New16BitUUID(0x2BF6)

	// CharacteristicUUIDThingyButtonState - Thingy Button State
	CharacteristicUUIDThingyButtonState = NewUUID([16]byte{0xef, 0x68, 0x03, 0x02, 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})

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

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

	// 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})

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

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

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

	// CharacteristicUUIDEstimatedServiceDate - Estimated Service Date
	CharacteristicUUIDEstimatedServiceDate = New16BitUUID(0x2BEF)

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

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

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

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

	// CharacteristicUUIDESLCurrentAbsoluteTime - ESL Current Absolute Time
	CharacteristicUUIDESLCurrentAbsoluteTime = New16BitUUID(0x2BF9)

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

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

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

	// 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})

	// 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})

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

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

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

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

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

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

	// CharacteristicUUIDPercentage8Steps - Percentage 8 Steps
	CharacteristicUUIDPercentage8Steps = New16BitUUID(0x2C05)

	// 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})

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

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

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

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

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

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

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

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

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

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

	// 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})

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

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

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

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

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

	// 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})

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

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

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

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

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

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

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

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

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

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

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

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

	// CharacteristicUUIDSensorHubGreenColor - Sensor Hub Green Color
	CharacteristicUUIDSensorHubGreenColor = NewUUID([16]byte{0xdb, 0x7f, 0x9f, 0x36, 0x92, 0xce, 0x45, 0x09, 0xa2, 0xef, 0xaf, 0x72, 0xba, 0x38, 0xfb, 0x48})

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

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

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

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

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

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

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

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

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

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

	// 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})

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

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

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

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

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

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

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

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

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

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

	// 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})

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

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

	// CharacteristicUUIDBatteryEnergyStatus - Battery Energy Status
	CharacteristicUUIDBatteryEnergyStatus = New16BitUUID(0x2BF0)

	// 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})

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

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

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

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

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

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

	// CharacteristicUUIDSensorHubHumidity - Sensor Hub Humidity
	CharacteristicUUIDSensorHubHumidity = NewUUID([16]byte{0x75, 0x3e, 0x30, 0x50, 0xdf, 0x06, 0x4b, 0x53, 0xb0, 0x90, 0x5e, 0x1d, 0x81, 0x0c, 0x43, 0x83})

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

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

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

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

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

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

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

	// 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})

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

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

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

	// CharacteristicUUIDRelativeRuntimeInACorrelatedColorTemperatureRange - Relative Runtime in a Correlated Color Temperature Range
	CharacteristicUUIDRelativeRuntimeInACorrelatedColorTemperatureRange = New16BitUUID(0x2BE5)

	// 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})

	// 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})

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

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

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

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

	// CharacteristicUUIDUGTFeatures - UGT Features
	CharacteristicUUIDUGTFeatures = New16BitUUID(0x2C02)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	// CharacteristicUUIDStoredHealthObservations - Stored Health Observations
	CharacteristicUUIDStoredHealthObservations = New16BitUUID(0x2BDD)

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

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

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

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

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

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

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

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

	// 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})

	// ServiceUUIDMeshProxySolicitation - Mesh Proxy Solicitation
	ServiceUUIDMeshProxySolicitation = New16BitUUID(0x1859)

	// ServiceUUIDNordicSensorHub - Nordic Sensor Hub Service
	ServiceUUIDNordicSensorHub = NewUUID([16]byte{0xa5, 0xb4, 0x63, 0x52, 0x9d, 0x13, 0x47, 0x9f, 0x9f, 0xcb, 0x3d, 0xcd, 0xf0, 0xa1, 0x3f, 0x4d})

	// ServiceUUIDBattery - Battery Service
	ServiceUUIDBattery = New16BitUUID(0x180F)

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

	// ServiceUUIDTelephonyAndMediaAudio - Telephony and Media Audio
	ServiceUUIDTelephonyAndMediaAudio = New16BitUUID(0x1855)

	// 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})

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

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

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

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

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

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

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

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

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

	// ServiceUUIDNordicStatusMessage - Nordic Status Message Service
	ServiceUUIDNordicStatusMessage = NewUUID([16]byte{0x57, 0xa7, 0x00, 0x00, 0x93, 0x50, 0x11, 0xed, 0xa1, 0xeb, 0x02, 0x42, 0xac, 0x12, 0x00, 0x02})

	// 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})

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

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

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

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

	// ServiceUUIDNordicWiFiProvisioning - Nordic Wi-Fi Provisioning Service
	ServiceUUIDNordicWiFiProvisioning = NewUUID([16]byte{0x14, 0x38, 0x78, 0x00, 0x13, 0x0c, 0x49, 0xe7, 0xb8, 0x77, 0x28, 0x81, 0xc8, 0x9c, 0xb2, 0x58})

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

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

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

	// ServiceUUIDAdafruitAccelerometer - Adafruit Accelerometer Service
	ServiceUUIDAdafruitAccelerometer = NewUUID([16]byte{0xad, 0xaf, 0x02, 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})

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

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

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

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

	// 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})

	// 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})

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

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

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

	// ServiceUUIDAudioInputControl - Audio Input Control
	ServiceUUIDAudioInputControl = New16BitUUID(0x1843)

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

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

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

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

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

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

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

	// ServiceUUIDPublicBroadcastAnnouncement - Public Broadcast Announcement
	ServiceUUIDPublicBroadcastAnnouncement = New16BitUUID(0x1856)

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

	// 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})

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

	// 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})

	// 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})

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

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

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

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

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

	// 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})

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

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

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

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

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

	// ServiceUUIDFitnessMachine - Fitness Machine
	ServiceUUIDFitnessMachine = New16BitUUID(0x1826)

	// ServiceUUIDBleconAdvertising - Blecon Advertising Service
	ServiceUUIDBleconAdvertising = New16BitUUID(0xFD0D)

	// 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})

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

	// ServiceUUIDContinuousGlucoseMonitoring - Continuous Glucose Monitoring
	ServiceUUIDContinuousGlucoseMonitoring = New16BitUUID(0x181F)

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

	// 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})

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

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

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

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

	// ServiceUUIDEmergencyConfiguration - Emergency Configuration
	ServiceUUIDEmergencyConfiguration = New16BitUUID(0x183C)

	// 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})

	// 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})

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

	// ServiceUUIDGamingAudio - Gaming Audio
	ServiceUUIDGamingAudio = New16BitUUID(0x1858)

	// ServiceUUIDAdafruitHumidity - Adafruit Humidity Service
	ServiceUUIDAdafruitHumidity = NewUUID([16]byte{0xad, 0xaf, 0x07, 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})

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

	// ServiceUUIDObjectTransfer - Object Transfer Service
	ServiceUUIDObjectTransfer = New16BitUUID(0x1825)

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

	// ServiceUUIDElectronicShelfLabel - Electronic Shelf Label
	ServiceUUIDElectronicShelfLabel = New16BitUUID(0x1857)

	// 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})

	// ServiceUUIDBasicAudioAnnouncement - Basic Audio Announcement
	ServiceUUIDBasicAudioAnnouncement = New16BitUUID(0x1851)

	// 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})

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

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

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

	// 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})

	// ServiceUUIDSecureDFU - Secure DFU Service
	ServiceUUIDSecureDFU = New16BitUUID(0xFE59)

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

	// ServiceUUIDHTTPProxy - HTTP Proxy
	ServiceUUIDHTTPProxy = New16BitUUID(0x1823)

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

	// 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})

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

	// 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})

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

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

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

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

	// ServiceUUIDVolumeOffsetControl - Volume Offset Control
	ServiceUUIDVolumeOffsetControl = New16BitUUID(0x1845)

	// 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})

	// 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})

	// ServiceUUIDGenericAccess - Generic Access
	ServiceUUIDGenericAccess = New16BitUUID(0x1800)

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

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

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

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

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

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

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

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

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 NewAdapter added in v0.11.0

func NewAdapter(id string) *Adapter

NewAdapter creates a new Adapter with the given ID.

Make sure to call Enable() before using it to initialize the adapter.

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) SetRandomAddress added in v0.11.0

func (a *Adapter) SetRandomAddress(mac MAC) error

SetRandomAddress sets the random address to be used for advertising.

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 {
	AdvertisementType AdvertisingType

	// 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 AdvertisingType added in v0.11.0

type AdvertisingType int
const (
	// AdvertisingTypeInd - connectable undirected.
	AdvertisingTypeInd AdvertisingType = iota

	// AdvertisingTypeDirectInd - connectable directed.
	AdvertisingTypeDirectInd

	// AdvertisingTypeScanInd - scannable undirected.
	AdvertisingTypeScanInd

	// AdvertisingTypeNonConnInd - non-connectable undirected.
	AdvertisingTypeNonConnInd
)

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
battery
example that demonstrates how to create a BLE peripheral device with the Battery Service.
example that demonstrates how to create a BLE peripheral device with the Battery Service.
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.
device-information
example that demonstrates how to create a BLE peripheral device with the Device Information Service.
example that demonstrates how to create a BLE peripheral device with the Device Information Service.
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
this example implements a BLE heart rate sensor.
this example implements a BLE heart rate sensor.
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