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 2021-02-01 14:19:13.563222488 +0100 CET m=+0.007308013 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 2021-02-01 14:19:12.31511038 +0100 CET m=+0.005731522 using the list of standard service UUIDs from https://github.com/NordicSemiconductor/bluetooth-numbers-database/blob/master/v1/service_uuids.json
Index ¶
- Constants
- Variables
- type Adapter
- func (a *Adapter) AddService(s *Service) error
- func (a *Adapter) Address() (MACAddress, error)
- func (a *Adapter) Connect(address Addresser, params ConnectionParams) (*Device, error)
- func (a *Adapter) DefaultAdvertisement() *Advertisement
- func (a *Adapter) Enable() (err error)
- func (a *Adapter) Scan(callback func(*Adapter, ScanResult)) error
- func (a *Adapter) SetConnectHandler(c func(device Addresser, connected bool))
- func (a *Adapter) StopScan() error
- type Address
- type Addresser
- type Advertisement
- type AdvertisementFields
- type AdvertisementOptions
- type AdvertisementPayload
- type Characteristic
- type CharacteristicConfig
- type CharacteristicPermissions
- type Connection
- type ConnectionParams
- type Device
- type DeviceCharacteristic
- type DeviceService
- type Duration
- type MAC
- type MACAddress
- type ScanResult
- type Service
- type UUID
Constants ¶
const Version = "0.4.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 ¶
var ( // CharacteristicUUIDAerobicHeartRateLowerLimit - Aerobic Heart Rate Lower Limit CharacteristicUUIDAerobicHeartRateLowerLimit = New16BitUUID(0x2A7E) // CharacteristicUUIDAerobicHeartRateUpperLimit - Aerobic Heart Rate Upper Limit CharacteristicUUIDAerobicHeartRateUpperLimit = New16BitUUID(0x2A84) // CharacteristicUUIDAerobicThreshold - Aerobic Threshold CharacteristicUUIDAerobicThreshold = New16BitUUID(0x2A7F) // CharacteristicUUIDAge - Age CharacteristicUUIDAge = New16BitUUID(0x2A80) // CharacteristicUUIDAggregate - Aggregate CharacteristicUUIDAggregate = New16BitUUID(0x2A5A) // CharacteristicUUIDAlertCategoryID - Alert Category ID CharacteristicUUIDAlertCategoryID = New16BitUUID(0x2A43) // CharacteristicUUIDAlertCategoryIDBitMask - Alert Category ID Bit Mask CharacteristicUUIDAlertCategoryIDBitMask = New16BitUUID(0x2A42) // CharacteristicUUIDAlertLevel - Alert Level CharacteristicUUIDAlertLevel = New16BitUUID(0x2A06) // CharacteristicUUIDAlertNotificationControlPoint - Alert Notification Control Point CharacteristicUUIDAlertNotificationControlPoint = New16BitUUID(0x2A44) // CharacteristicUUIDAlertStatus - Alert Status CharacteristicUUIDAlertStatus = New16BitUUID(0x2A3F) // CharacteristicUUIDAltitude - Altitude CharacteristicUUIDAltitude = New16BitUUID(0x2AB3) // CharacteristicUUIDAnaerobicHeartRateLowerLimit - Anaerobic Heart Rate Lower Limit CharacteristicUUIDAnaerobicHeartRateLowerLimit = New16BitUUID(0x2A81) // CharacteristicUUIDAnaerobicHeartRateUpperLimit - Anaerobic Heart Rate Upper Limit CharacteristicUUIDAnaerobicHeartRateUpperLimit = New16BitUUID(0x2A82) // CharacteristicUUIDAnaerobicThreshold - Anaerobic Threshold CharacteristicUUIDAnaerobicThreshold = New16BitUUID(0x2A83) // CharacteristicUUIDAnalog - Analog CharacteristicUUIDAnalog = New16BitUUID(0x2A58) // CharacteristicUUIDAnalogOutput - Analog Output CharacteristicUUIDAnalogOutput = New16BitUUID(0x2A59) // CharacteristicUUIDApparentWindDirection - Apparent Wind Direction CharacteristicUUIDApparentWindDirection = New16BitUUID(0x2A73) // CharacteristicUUIDApparentWindSpeed - Apparent Wind Speed CharacteristicUUIDApparentWindSpeed = New16BitUUID(0x2A72) // CharacteristicUUIDAppearance - Appearance CharacteristicUUIDAppearance = New16BitUUID(0x2A01) // CharacteristicUUIDBarometricPressureTrend - Barometric Pressure Trend CharacteristicUUIDBarometricPressureTrend = New16BitUUID(0x2AA3) // CharacteristicUUIDBatteryLevel - Battery Level CharacteristicUUIDBatteryLevel = New16BitUUID(0x2A19) // CharacteristicUUIDBatteryLevelState - Battery Level State CharacteristicUUIDBatteryLevelState = New16BitUUID(0x2A1B) // CharacteristicUUIDBatteryPowerState - Battery Power State CharacteristicUUIDBatteryPowerState = New16BitUUID(0x2A1A) // CharacteristicUUIDBloodPressureFeature - Blood Pressure Feature CharacteristicUUIDBloodPressureFeature = New16BitUUID(0x2A49) // CharacteristicUUIDBloodPressureMeasurement - Blood Pressure Measurement CharacteristicUUIDBloodPressureMeasurement = New16BitUUID(0x2A35) // CharacteristicUUIDBodyCompositionFeature - Body Composition Feature CharacteristicUUIDBodyCompositionFeature = New16BitUUID(0x2A9B) // CharacteristicUUIDBodyCompositionMeasurement - Body Composition Measurement CharacteristicUUIDBodyCompositionMeasurement = New16BitUUID(0x2A9C) // CharacteristicUUIDBodySensorLocation - Body Sensor Location CharacteristicUUIDBodySensorLocation = New16BitUUID(0x2A38) // CharacteristicUUIDBondManagementControlPoint - Bond Management Control Point CharacteristicUUIDBondManagementControlPoint = New16BitUUID(0x2AA4) // CharacteristicUUIDBondManagementFeatures - Bond Management Features CharacteristicUUIDBondManagementFeatures = New16BitUUID(0x2AA5) // CharacteristicUUIDBootKeyboardInputReport - Boot Keyboard Input Report CharacteristicUUIDBootKeyboardInputReport = New16BitUUID(0x2A22) // CharacteristicUUIDBootKeyboardOutputReport - Boot Keyboard Output Report CharacteristicUUIDBootKeyboardOutputReport = New16BitUUID(0x2A32) // CharacteristicUUIDBootMouseInputReport - Boot Mouse Input Report CharacteristicUUIDBootMouseInputReport = New16BitUUID(0x2A33) // CharacteristicUUIDCentralAddressResolution - Central Address Resolution CharacteristicUUIDCentralAddressResolution = New16BitUUID(0x2AA6) // CharacteristicUUIDCGMFeature - CGM Feature CharacteristicUUIDCGMFeature = New16BitUUID(0x2AA8) // CharacteristicUUIDCGMMeasurement - CGM Measurement CharacteristicUUIDCGMMeasurement = New16BitUUID(0x2AA7) // CharacteristicUUIDCGMSessionRunTime - CGM Session Run Time CharacteristicUUIDCGMSessionRunTime = New16BitUUID(0x2AAB) // CharacteristicUUIDCGMSessionStartTime - CGM Session Start Time CharacteristicUUIDCGMSessionStartTime = New16BitUUID(0x2AAA) // CharacteristicUUIDCGMSpecificOpsControlPoint - CGM Specific Ops Control Point CharacteristicUUIDCGMSpecificOpsControlPoint = New16BitUUID(0x2AAC) // CharacteristicUUIDCGMStatus - CGM Status CharacteristicUUIDCGMStatus = New16BitUUID(0x2AA9) // CharacteristicUUIDCrossTrainerData - Cross Trainer Data CharacteristicUUIDCrossTrainerData = New16BitUUID(0x2ACE) // CharacteristicUUIDCSCFeature - CSC Feature CharacteristicUUIDCSCFeature = New16BitUUID(0x2A5C) // CharacteristicUUIDCSCMeasurement - CSC Measurement CharacteristicUUIDCSCMeasurement = New16BitUUID(0x2A5B) // CharacteristicUUIDCurrentTime - Current Time CharacteristicUUIDCurrentTime = New16BitUUID(0x2A2B) // CharacteristicUUIDCyclingPowerControlPoint - Cycling Power Control Point CharacteristicUUIDCyclingPowerControlPoint = New16BitUUID(0x2A66) // CharacteristicUUIDCyclingPowerFeature - Cycling Power Feature CharacteristicUUIDCyclingPowerFeature = New16BitUUID(0x2A65) // CharacteristicUUIDCyclingPowerMeasurement - Cycling Power Measurement CharacteristicUUIDCyclingPowerMeasurement = New16BitUUID(0x2A63) // CharacteristicUUIDCyclingPowerVector - Cycling Power Vector CharacteristicUUIDCyclingPowerVector = New16BitUUID(0x2A64) // CharacteristicUUIDDatabaseChangeIncrement - Database Change Increment CharacteristicUUIDDatabaseChangeIncrement = New16BitUUID(0x2A99) // CharacteristicUUIDDateOfBirth - Date of Birth CharacteristicUUIDDateOfBirth = New16BitUUID(0x2A85) // CharacteristicUUIDDateOfThresholdAssessment - Date of Threshold Assessment CharacteristicUUIDDateOfThresholdAssessment = New16BitUUID(0x2A86) // CharacteristicUUIDDateTime - Date Time CharacteristicUUIDDateTime = New16BitUUID(0x2A08) // CharacteristicUUIDDateUTC - Date UTC CharacteristicUUIDDateUTC = New16BitUUID(0x2AED) // CharacteristicUUIDDayDateTime - Day Date Time CharacteristicUUIDDayDateTime = New16BitUUID(0x2A0A) // CharacteristicUUIDDayOfWeek - Day of Week CharacteristicUUIDDayOfWeek = New16BitUUID(0x2A09) // CharacteristicUUIDDescriptorValueChanged - Descriptor Value Changed CharacteristicUUIDDescriptorValueChanged = New16BitUUID(0x2A7D) // CharacteristicUUIDDeviceName - Device Name CharacteristicUUIDDeviceName = New16BitUUID(0x2A00) // CharacteristicUUIDDewPoint - Dew Point CharacteristicUUIDDewPoint = New16BitUUID(0x2A7B) // CharacteristicUUIDDigital - Digital CharacteristicUUIDDigital = New16BitUUID(0x2A56) // CharacteristicUUIDDigitalOutput - Digital Output CharacteristicUUIDDigitalOutput = New16BitUUID(0x2A57) // CharacteristicUUIDDSTOffset - DST Offset CharacteristicUUIDDSTOffset = New16BitUUID(0x2A0D) // CharacteristicUUIDElevation - Elevation CharacteristicUUIDElevation = New16BitUUID(0x2A6C) // CharacteristicUUIDEmailAddress - Email Address CharacteristicUUIDEmailAddress = New16BitUUID(0x2A87) // CharacteristicUUIDExactTime100 - Exact Time 100 CharacteristicUUIDExactTime100 = New16BitUUID(0x2A0B) // CharacteristicUUIDExactTime256 - Exact Time 256 CharacteristicUUIDExactTime256 = New16BitUUID(0x2A0C) // CharacteristicUUIDFatBurnHeartRateLowerLimit - Fat Burn Heart Rate Lower Limit CharacteristicUUIDFatBurnHeartRateLowerLimit = New16BitUUID(0x2A88) // CharacteristicUUIDFatBurnHeartRateUpperLimit - Fat Burn Heart Rate Upper Limit CharacteristicUUIDFatBurnHeartRateUpperLimit = New16BitUUID(0x2A89) // CharacteristicUUIDFirmwareRevisionString - Firmware Revision String CharacteristicUUIDFirmwareRevisionString = New16BitUUID(0x2A26) // CharacteristicUUIDFirstName - First Name CharacteristicUUIDFirstName = New16BitUUID(0x2A8A) // CharacteristicUUIDFitnessMachineControlPoint - Fitness Machine Control Point CharacteristicUUIDFitnessMachineControlPoint = New16BitUUID(0x2AD9) // CharacteristicUUIDFitnessMachineFeature - Fitness Machine Feature CharacteristicUUIDFitnessMachineFeature = New16BitUUID(0x2ACC) // CharacteristicUUIDFitnessMachineStatus - Fitness Machine Status CharacteristicUUIDFitnessMachineStatus = New16BitUUID(0x2ADA) // CharacteristicUUIDFiveZoneHeartRateLimits - Five Zone Heart Rate Limits CharacteristicUUIDFiveZoneHeartRateLimits = New16BitUUID(0x2A8B) // CharacteristicUUIDFloorNumber - Floor Number CharacteristicUUIDFloorNumber = New16BitUUID(0x2AB2) // CharacteristicUUIDGender - Gender CharacteristicUUIDGender = New16BitUUID(0x2A8C) // CharacteristicUUIDGlucoseFeature - Glucose Feature CharacteristicUUIDGlucoseFeature = New16BitUUID(0x2A51) // CharacteristicUUIDGlucoseMeasurement - Glucose Measurement CharacteristicUUIDGlucoseMeasurement = New16BitUUID(0x2A18) // CharacteristicUUIDGlucoseMeasurementContext - Glucose Measurement Context CharacteristicUUIDGlucoseMeasurementContext = New16BitUUID(0x2A34) // CharacteristicUUIDGustFactor - Gust Factor CharacteristicUUIDGustFactor = New16BitUUID(0x2A74) // CharacteristicUUIDHardwareRevisionString - Hardware Revision String CharacteristicUUIDHardwareRevisionString = New16BitUUID(0x2A27) // CharacteristicUUIDHeartRateControlPoint - Heart Rate Control Point CharacteristicUUIDHeartRateControlPoint = New16BitUUID(0x2A39) // CharacteristicUUIDHeartRateMax - Heart Rate Max CharacteristicUUIDHeartRateMax = New16BitUUID(0x2A8D) // CharacteristicUUIDHeartRateMeasurement - Heart Rate Measurement CharacteristicUUIDHeartRateMeasurement = New16BitUUID(0x2A37) // CharacteristicUUIDHeatIndex - Heat Index CharacteristicUUIDHeatIndex = New16BitUUID(0x2A7A) // CharacteristicUUIDHeight - Height CharacteristicUUIDHeight = New16BitUUID(0x2A8E) // CharacteristicUUIDHIDControlPoint - HID Control Point CharacteristicUUIDHIDControlPoint = New16BitUUID(0x2A4C) // CharacteristicUUIDHIDInformation - HID Information CharacteristicUUIDHIDInformation = New16BitUUID(0x2A4A) // CharacteristicUUIDHipCircumference - Hip Circumference CharacteristicUUIDHipCircumference = New16BitUUID(0x2A8F) // CharacteristicUUIDHTTPControlPoint - HTTP Control Point CharacteristicUUIDHTTPControlPoint = New16BitUUID(0x2ABA) // CharacteristicUUIDHTTPEntityBody - HTTP Entity Body CharacteristicUUIDHTTPEntityBody = New16BitUUID(0x2AB9) // CharacteristicUUIDHTTPHeaders - HTTP Headers CharacteristicUUIDHTTPHeaders = New16BitUUID(0x2AB7) // CharacteristicUUIDHTTPStatusCode - HTTP Status Code CharacteristicUUIDHTTPStatusCode = New16BitUUID(0x2AB8) // CharacteristicUUIDHTTPSSecurity - HTTPS Security CharacteristicUUIDHTTPSSecurity = New16BitUUID(0x2ABB) // CharacteristicUUIDHumidity - Humidity CharacteristicUUIDHumidity = New16BitUUID(0x2A6F) // CharacteristicUUIDIDDAnnunciationStatus - IDD Annunciation Status CharacteristicUUIDIDDAnnunciationStatus = New16BitUUID(0x2B22) // CharacteristicUUIDIDDCommandControlPoint - IDD Command Control Point CharacteristicUUIDIDDCommandControlPoint = New16BitUUID(0x2B25) // CharacteristicUUIDIDDCommandData - IDD Command Data CharacteristicUUIDIDDCommandData = New16BitUUID(0x2B26) // CharacteristicUUIDIDDFeatures - IDD Features CharacteristicUUIDIDDFeatures = New16BitUUID(0x2B23) // CharacteristicUUIDIDDHistoryData - IDD History Data CharacteristicUUIDIDDHistoryData = New16BitUUID(0x2B28) // CharacteristicUUIDIDDRecordAccessControlPoint - IDD Record Access Control Point CharacteristicUUIDIDDRecordAccessControlPoint = New16BitUUID(0x2B27) // CharacteristicUUIDIDDStatus - IDD Status CharacteristicUUIDIDDStatus = New16BitUUID(0x2B21) // CharacteristicUUIDIDDStatusChanged - IDD Status Changed CharacteristicUUIDIDDStatusChanged = New16BitUUID(0x2B20) // CharacteristicUUIDIDDStatusReaderControlPoint - IDD Status Reader Control Point CharacteristicUUIDIDDStatusReaderControlPoint = New16BitUUID(0x2B24) // CharacteristicUUIDIEEE1107320601RegulatoryCertificationDataList - IEEE 11073-20601 Regulatory Certification Data List CharacteristicUUIDIEEE1107320601RegulatoryCertificationDataList = New16BitUUID(0x2A2A) // CharacteristicUUIDIndoorBikeData - Indoor Bike Data CharacteristicUUIDIndoorBikeData = New16BitUUID(0x2AD2) // CharacteristicUUIDIndoorPositioningConfiguration - Indoor Positioning Configuration CharacteristicUUIDIndoorPositioningConfiguration = New16BitUUID(0x2AAD) // CharacteristicUUIDIntermediateCuffPressure - Intermediate Cuff Pressure CharacteristicUUIDIntermediateCuffPressure = New16BitUUID(0x2A36) // CharacteristicUUIDIntermediateTemperature - Intermediate Temperature CharacteristicUUIDIntermediateTemperature = New16BitUUID(0x2A1E) // CharacteristicUUIDIrradiance - Irradiance CharacteristicUUIDIrradiance = New16BitUUID(0x2A77) // CharacteristicUUIDLanguage - Language CharacteristicUUIDLanguage = New16BitUUID(0x2AA2) // CharacteristicUUIDLastName - Last Name CharacteristicUUIDLastName = New16BitUUID(0x2A90) // CharacteristicUUIDLatitude - Latitude CharacteristicUUIDLatitude = New16BitUUID(0x2AAE) // CharacteristicUUIDLNControlPoint - LN Control Point CharacteristicUUIDLNControlPoint = New16BitUUID(0x2A6B) // CharacteristicUUIDLNFeature - LN Feature CharacteristicUUIDLNFeature = New16BitUUID(0x2A6A) // CharacteristicUUIDLocalEastCoordinate - Local East Coordinate CharacteristicUUIDLocalEastCoordinate = New16BitUUID(0x2AB1) // CharacteristicUUIDLocalNorthCoordinate - Local North Coordinate CharacteristicUUIDLocalNorthCoordinate = New16BitUUID(0x2AB0) // CharacteristicUUIDLocalTimeInformation - Local Time Information CharacteristicUUIDLocalTimeInformation = New16BitUUID(0x2A0F) // CharacteristicUUIDLocationAndSpeed - Location and Speed Characteristic CharacteristicUUIDLocationAndSpeed = New16BitUUID(0x2A67) // CharacteristicUUIDLocationName - Location Name CharacteristicUUIDLocationName = New16BitUUID(0x2AB5) // CharacteristicUUIDLongitude - Longitude CharacteristicUUIDLongitude = New16BitUUID(0x2AAF) // CharacteristicUUIDMagneticDeclination - Magnetic Declination CharacteristicUUIDMagneticDeclination = New16BitUUID(0x2A2C) // CharacteristicUUIDMagneticFluxDensity2D - Magnetic Flux Density - 2D CharacteristicUUIDMagneticFluxDensity2D = New16BitUUID(0x2AA0) // CharacteristicUUIDMagneticFluxDensity3D - Magnetic Flux Density - 3D CharacteristicUUIDMagneticFluxDensity3D = New16BitUUID(0x2AA1) // CharacteristicUUIDManufacturerNameString - Manufacturer Name String CharacteristicUUIDManufacturerNameString = New16BitUUID(0x2A29) // CharacteristicUUIDMaximumRecommendedHeartRate - Maximum Recommended Heart Rate CharacteristicUUIDMaximumRecommendedHeartRate = New16BitUUID(0x2A91) // CharacteristicUUIDMeasurementInterval - Measurement Interval CharacteristicUUIDMeasurementInterval = New16BitUUID(0x2A21) // CharacteristicUUIDModelNumberString - Model Number String CharacteristicUUIDModelNumberString = New16BitUUID(0x2A24) CharacteristicUUIDNavigation = New16BitUUID(0x2A68) // CharacteristicUUIDNetworkAvailability - Network Availability CharacteristicUUIDNetworkAvailability = New16BitUUID(0x2A3E) // CharacteristicUUIDNewAler - New Aler CharacteristicUUIDNewAler = New16BitUUID(0x2A46) // CharacteristicUUIDObjectActionControlPoint - Object Action Control Point CharacteristicUUIDObjectActionControlPoint = New16BitUUID(0x2AC5) // CharacteristicUUIDObjectChanged - Object Changed CharacteristicUUIDObjectChanged = New16BitUUID(0x2AC8) // CharacteristicUUIDObjectFirstCreated - Object First-Created CharacteristicUUIDObjectFirstCreated = New16BitUUID(0x2AC1) // CharacteristicUUIDObjectID - Object ID CharacteristicUUIDObjectID = New16BitUUID(0x2AC3) // CharacteristicUUIDObjectLastModified - Object Last-Modified CharacteristicUUIDObjectLastModified = New16BitUUID(0x2AC2) // CharacteristicUUIDObjectListControlPoint - Object List Control Point CharacteristicUUIDObjectListControlPoint = New16BitUUID(0x2AC6) // CharacteristicUUIDObjectListFilter - Object List Filter CharacteristicUUIDObjectListFilter = New16BitUUID(0x2AC7) // CharacteristicUUIDObjectName - Object Name CharacteristicUUIDObjectName = New16BitUUID(0x2ABE) // CharacteristicUUIDObjectProperties - Object Properties CharacteristicUUIDObjectProperties = New16BitUUID(0x2AC4) // CharacteristicUUIDObjectSize - Object Size CharacteristicUUIDObjectSize = New16BitUUID(0x2AC0) // CharacteristicUUIDObjectType - Object Type CharacteristicUUIDObjectType = New16BitUUID(0x2ABF) // CharacteristicUUIDOTSFeature - OTS Feature CharacteristicUUIDOTSFeature = New16BitUUID(0x2ABD) // CharacteristicUUIDPeripheralPreferredConnectionParameters - Peripheral Preferred Connection Parameters CharacteristicUUIDPeripheralPreferredConnectionParameters = New16BitUUID(0x2A04) // CharacteristicUUIDPeripheralPrivacyFlag - Peripheral Privacy Flag CharacteristicUUIDPeripheralPrivacyFlag = New16BitUUID(0x2A02) // CharacteristicUUIDPLXContinuousMeasurement - PLX Continuous Measurement Characteristic CharacteristicUUIDPLXContinuousMeasurement = New16BitUUID(0x2A5F) // CharacteristicUUIDPLXFeatures - PLX Features CharacteristicUUIDPLXFeatures = New16BitUUID(0x2A60) // CharacteristicUUIDPLXSpotCheckMeasurement - PLX Spot-Check Measurement CharacteristicUUIDPLXSpotCheckMeasurement = New16BitUUID(0x2A5E) // CharacteristicUUIDPnPID - PnP ID CharacteristicUUIDPnPID = New16BitUUID(0x2A50) // CharacteristicUUIDPollenConcentration - Pollen Concentration CharacteristicUUIDPollenConcentration = New16BitUUID(0x2A75) // CharacteristicUUIDPosition2D - Position 2D CharacteristicUUIDPosition2D = New16BitUUID(0x2A2F) // CharacteristicUUIDPosition3D - Position 3D CharacteristicUUIDPosition3D = New16BitUUID(0x2A30) // CharacteristicUUIDPositionQuality - Position Quality CharacteristicUUIDPositionQuality = New16BitUUID(0x2A69) // CharacteristicUUIDPressure - Pressure CharacteristicUUIDPressure = New16BitUUID(0x2A6D) // CharacteristicUUIDProtocolMode - Protocol Mode CharacteristicUUIDProtocolMode = New16BitUUID(0x2A4E) // CharacteristicUUIDPulseOximetryControlPoint - Pulse Oximetry Control Point CharacteristicUUIDPulseOximetryControlPoint = New16BitUUID(0x2A62) // CharacteristicUUIDRainfall - Rainfall CharacteristicUUIDRainfall = New16BitUUID(0x2A78) // CharacteristicUUIDRCFeature - RC Feature CharacteristicUUIDRCFeature = New16BitUUID(0x2B1D) // CharacteristicUUIDRCSettings - RC Settings CharacteristicUUIDRCSettings = New16BitUUID(0x2B1E) // CharacteristicUUIDReconnectionAddress - Reconnection Address CharacteristicUUIDReconnectionAddress = New16BitUUID(0x2A03) // CharacteristicUUIDReconnectionConfigurationControlPoint - Reconnection Configuration Control Point CharacteristicUUIDReconnectionConfigurationControlPoint = New16BitUUID(0x2B1F) // CharacteristicUUIDRecordAccessControlPoint - Record Access Control Point CharacteristicUUIDRecordAccessControlPoint = New16BitUUID(0x2A52) // CharacteristicUUIDReferenceTimeInformation - Reference Time Information CharacteristicUUIDReferenceTimeInformation = New16BitUUID(0x2A14) // CharacteristicUUIDRemovable - Removable CharacteristicUUIDRemovable = New16BitUUID(0x2A3A) // CharacteristicUUIDReport - Report CharacteristicUUIDReport = New16BitUUID(0x2A4D) // CharacteristicUUIDReportMap - Report Map CharacteristicUUIDReportMap = New16BitUUID(0x2A4B) // CharacteristicUUIDResolvablePrivateAddressOnly - Resolvable Private Address Only CharacteristicUUIDResolvablePrivateAddressOnly = New16BitUUID(0x2AC9) // CharacteristicUUIDRestingHeartRate - Resting Heart Rate CharacteristicUUIDRestingHeartRate = New16BitUUID(0x2A92) // CharacteristicUUIDRingerControlPoint - Ringer Control point CharacteristicUUIDRingerControlPoint = New16BitUUID(0x2A40) // CharacteristicUUIDRingerSetting - Ringer Setting CharacteristicUUIDRingerSetting = New16BitUUID(0x2A41) // CharacteristicUUIDRowerData - Rower Data CharacteristicUUIDRowerData = New16BitUUID(0x2AD1) // CharacteristicUUIDRSCFeature - RSC Feature CharacteristicUUIDRSCFeature = New16BitUUID(0x2A54) // CharacteristicUUIDRSCMeasurement - RSC Measurement CharacteristicUUIDRSCMeasurement = New16BitUUID(0x2A53) // CharacteristicUUIDSCControlPoint - SC Control Point CharacteristicUUIDSCControlPoint = New16BitUUID(0x2A55) // CharacteristicUUIDScanIntervalWindow - Scan Interval Window CharacteristicUUIDScanIntervalWindow = New16BitUUID(0x2A4F) // CharacteristicUUIDScanRefresh - Scan Refresh CharacteristicUUIDScanRefresh = New16BitUUID(0x2A31) // CharacteristicUUIDScientificTemperatureCelsius - Scientific Temperature Celsius CharacteristicUUIDScientificTemperatureCelsius = New16BitUUID(0x2A3C) // CharacteristicUUIDSecondaryTimeZone - Secondary Time Zone CharacteristicUUIDSecondaryTimeZone = New16BitUUID(0x2A10) // CharacteristicUUIDSensorLocation - Sensor Location CharacteristicUUIDSensorLocation = New16BitUUID(0x2A5D) // CharacteristicUUIDSerialNumberString - Serial Number String CharacteristicUUIDSerialNumberString = New16BitUUID(0x2A25) // CharacteristicUUIDServiceChanged - Service Changed CharacteristicUUIDServiceChanged = New16BitUUID(0x2A05) // CharacteristicUUIDServiceRequired - Service Required CharacteristicUUIDServiceRequired = New16BitUUID(0x2A3B) // CharacteristicUUIDSoftwareRevisionString - Software Revision String CharacteristicUUIDSoftwareRevisionString = New16BitUUID(0x2A28) // CharacteristicUUIDSportTypeForAerobicAndAnaerobicThresholds - Sport Type for Aerobic and Anaerobic Thresholds CharacteristicUUIDSportTypeForAerobicAndAnaerobicThresholds = New16BitUUID(0x2A93) // CharacteristicUUIDStairClimberData - Stair Climber Data CharacteristicUUIDStairClimberData = New16BitUUID(0x2AD0) // CharacteristicUUIDStepClimberData - Step Climber Data CharacteristicUUIDStepClimberData = New16BitUUID(0x2ACF) // CharacteristicUUIDString - String CharacteristicUUIDString = New16BitUUID(0x2A3D) // CharacteristicUUIDSupportedHeartRateRange - Supported Heart Rate Range CharacteristicUUIDSupportedHeartRateRange = New16BitUUID(0x2AD7) // CharacteristicUUIDSupportedInclinationRange - Supported Inclination Range CharacteristicUUIDSupportedInclinationRange = New16BitUUID(0x2AD5) // CharacteristicUUIDSupportedNewAlertCategory - Supported New Alert Category CharacteristicUUIDSupportedNewAlertCategory = New16BitUUID(0x2A47) // CharacteristicUUIDSupportedPowerRange - Supported Power Range CharacteristicUUIDSupportedPowerRange = New16BitUUID(0x2AD8) // CharacteristicUUIDSupportedResistanceLevelRange - Supported Resistance Level Range CharacteristicUUIDSupportedResistanceLevelRange = New16BitUUID(0x2AD6) // CharacteristicUUIDSupportedSpeedRange - Supported Speed Range CharacteristicUUIDSupportedSpeedRange = New16BitUUID(0x2AD4) // CharacteristicUUIDSupportedUnreadAlertCategory - Supported Unread Alert Category CharacteristicUUIDSupportedUnreadAlertCategory = New16BitUUID(0x2A48) // CharacteristicUUIDSystemID - System ID CharacteristicUUIDSystemID = New16BitUUID(0x2A23) // CharacteristicUUIDTDSControlPoint - TDS Control Point CharacteristicUUIDTDSControlPoint = New16BitUUID(0x2ABC) // CharacteristicUUIDTemperature - Temperature CharacteristicUUIDTemperature = New16BitUUID(0x2A6E) // CharacteristicUUIDTemperatureCelsius - Temperature Celsius CharacteristicUUIDTemperatureCelsius = New16BitUUID(0x2A1F) // CharacteristicUUIDTemperatureFahrenheit - Temperature Fahrenheit CharacteristicUUIDTemperatureFahrenheit = New16BitUUID(0x2A20) // CharacteristicUUIDTemperatureMeasurement - Temperature Measurement CharacteristicUUIDTemperatureMeasurement = New16BitUUID(0x2A1C) // CharacteristicUUIDTemperatureType - Temperature Type CharacteristicUUIDTemperatureType = New16BitUUID(0x2A1D) // CharacteristicUUIDThreeZoneHeartRateLimits - Three Zone Heart Rate Limits CharacteristicUUIDThreeZoneHeartRateLimits = New16BitUUID(0x2A94) // CharacteristicUUIDTimeAccuracy - Time Accuracy CharacteristicUUIDTimeAccuracy = New16BitUUID(0x2A12) // CharacteristicUUIDTimeBroadcast - Time Broadcast CharacteristicUUIDTimeBroadcast = New16BitUUID(0x2A15) // CharacteristicUUIDTimeSource - Time Source CharacteristicUUIDTimeSource = New16BitUUID(0x2A13) // CharacteristicUUIDTimeUpdateControlPoint - Time Update Control Point CharacteristicUUIDTimeUpdateControlPoint = New16BitUUID(0x2A16) // CharacteristicUUIDTimeUpdateState - Time Update State CharacteristicUUIDTimeUpdateState = New16BitUUID(0x2A17) // CharacteristicUUIDTimeWithDST - Time with DST CharacteristicUUIDTimeWithDST = New16BitUUID(0x2A11) // CharacteristicUUIDTimeZone - Time Zone CharacteristicUUIDTimeZone = New16BitUUID(0x2A0E) // CharacteristicUUIDTrainingStatus - Training Status CharacteristicUUIDTrainingStatus = New16BitUUID(0x2AD3) // CharacteristicUUIDTreadmillData - Treadmill Data CharacteristicUUIDTreadmillData = New16BitUUID(0x2ACD) // CharacteristicUUIDTrueWindDirection - True Wind Direction CharacteristicUUIDTrueWindDirection = New16BitUUID(0x2A71) // CharacteristicUUIDTrueWindSpeed - True Wind Speed CharacteristicUUIDTrueWindSpeed = New16BitUUID(0x2A70) // CharacteristicUUIDTwoZoneHeartRateLimit - Two Zone Heart Rate Limit CharacteristicUUIDTwoZoneHeartRateLimit = New16BitUUID(0x2A95) // CharacteristicUUIDTxPowerLevel - Tx Power Level CharacteristicUUIDTxPowerLevel = New16BitUUID(0x2A07) // CharacteristicUUIDUncertainty - Uncertainty CharacteristicUUIDUncertainty = New16BitUUID(0x2AB4) // CharacteristicUUIDUnreadAlertStatus - Unread Alert Status CharacteristicUUIDUnreadAlertStatus = New16BitUUID(0x2A45) // CharacteristicUUIDURI - URI CharacteristicUUIDURI = New16BitUUID(0x2AB6) // CharacteristicUUIDUserControlPoint - User Control Point CharacteristicUUIDUserControlPoint = New16BitUUID(0x2A9F) // CharacteristicUUIDUserIndex - User Index CharacteristicUUIDUserIndex = New16BitUUID(0x2A9A) // CharacteristicUUIDUVIndex - UV Index CharacteristicUUIDUVIndex = New16BitUUID(0x2A76) // CharacteristicUUIDVO2Max - VO2 Max CharacteristicUUIDVO2Max = New16BitUUID(0x2A96) // CharacteristicUUIDWaistCircumference - Waist Circumference CharacteristicUUIDWaistCircumference = New16BitUUID(0x2A97) // CharacteristicUUIDWeight - Weight CharacteristicUUIDWeight = New16BitUUID(0x2A98) // CharacteristicUUIDWeightMeasurement - Weight Measurement CharacteristicUUIDWeightMeasurement = New16BitUUID(0x2A9D) // CharacteristicUUIDWeightScaleFeature - Weight Scale Feature CharacteristicUUIDWeightScaleFeature = New16BitUUID(0x2A9E) // CharacteristicUUIDWindChill - Wind Chill CharacteristicUUIDWindChill = New16BitUUID(0x2A79) // CharacteristicUUIDBlinkyButtonState - Blinky Button State CharacteristicUUIDBlinkyButtonState = NewUUID([16]byte{0x00, 0x00, 0x15, 0x24, 0x12, 0x12, 0xef, 0xde, 0x15, 0x23, 0x78, 0x5f, 0xea, 0xbc, 0xd1, 0x23}) // CharacteristicUUIDBlinkyLEDState - Blinky LED State CharacteristicUUIDBlinkyLEDState = NewUUID([16]byte{0x00, 0x00, 0x15, 0x25, 0x12, 0x12, 0xef, 0xde, 0x15, 0x23, 0x78, 0x5f, 0xea, 0xbc, 0xd1, 0x23}) // 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}) // CharacteristicUUIDLegacyDFUPacket - Legacy DFU Packet CharacteristicUUIDLegacyDFUPacket = NewUUID([16]byte{0x00, 0x00, 0x15, 0x32, 0x12, 0x12, 0xef, 0xde, 0x15, 0x23, 0x78, 0x5f, 0xea, 0xbc, 0xd1, 0x23}) // CharacteristicUUIDLegacyDFUVersion - Legacy DFU Version CharacteristicUUIDLegacyDFUVersion = NewUUID([16]byte{0x00, 0x00, 0x15, 0x34, 0x12, 0x12, 0xef, 0xde, 0x15, 0x23, 0x78, 0x5f, 0xea, 0xbc, 0xd1, 0x23}) // CharacteristicUUIDDFUControlPoint - DFU Control Point CharacteristicUUIDDFUControlPoint = NewUUID([16]byte{0x8e, 0xc9, 0x00, 0x01, 0xf3, 0x15, 0x4f, 0x60, 0x9f, 0xb8, 0x83, 0x88, 0x30, 0xda, 0xea, 0x50}) // CharacteristicUUIDDFUPacket - DFU Packet CharacteristicUUIDDFUPacket = NewUUID([16]byte{0x8e, 0xc9, 0x00, 0x02, 0xf3, 0x15, 0x4f, 0x60, 0x9f, 0xb8, 0x83, 0x88, 0x30, 0xda, 0xea, 0x50}) // 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}) // 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}) // CharacteristicUUIDExperimentalButtonlessDFU - Experimental Buttonless DFU CharacteristicUUIDExperimentalButtonlessDFU = NewUUID([16]byte{0x8e, 0x40, 0x00, 0x01, 0xf3, 0x15, 0x4f, 0x60, 0x9f, 0xb8, 0x83, 0x88, 0x30, 0xda, 0xea, 0x50}) // CharacteristicUUIDSMP - SMP Characteristic CharacteristicUUIDSMP = NewUUID([16]byte{0xda, 0x2e, 0x78, 0x28, 0xfb, 0xce, 0x4e, 0x01, 0xae, 0x9e, 0x26, 0x11, 0x74, 0x99, 0x7c, 0x48}) // CharacteristicUUIDThingyDeviceName - Thingy Device Name CharacteristicUUIDThingyDeviceName = NewUUID([16]byte{0xef, 0x68, 0x01, 0x01, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyAdvertisingParameters - Thingy Advertising Parameters CharacteristicUUIDThingyAdvertisingParameters = NewUUID([16]byte{0xef, 0x68, 0x01, 0x02, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyConnectionParameters - Thingy Connection Parameters CharacteristicUUIDThingyConnectionParameters = NewUUID([16]byte{0xef, 0x68, 0x01, 0x04, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyEddystoneURL - Thingy Eddystone URL CharacteristicUUIDThingyEddystoneURL = NewUUID([16]byte{0xef, 0x68, 0x01, 0x05, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyCloudToken - Thingy Cloud Token CharacteristicUUIDThingyCloudToken = NewUUID([16]byte{0xef, 0x68, 0x01, 0x06, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyFWVersion - Thingy FW Version CharacteristicUUIDThingyFWVersion = NewUUID([16]byte{0xef, 0x68, 0x01, 0x07, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyMTURequest - Thingy MTU Request CharacteristicUUIDThingyMTURequest = NewUUID([16]byte{0xef, 0x68, 0x01, 0x08, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyTemperature - Thingy Temperature CharacteristicUUIDThingyTemperature = NewUUID([16]byte{0xef, 0x68, 0x02, 0x01, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyPressure - Thingy Pressure CharacteristicUUIDThingyPressure = NewUUID([16]byte{0xef, 0x68, 0x02, 0x02, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyHumidity - Thingy Humidity CharacteristicUUIDThingyHumidity = NewUUID([16]byte{0xef, 0x68, 0x02, 0x03, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyAirQuality - Thingy Air Quality CharacteristicUUIDThingyAirQuality = NewUUID([16]byte{0xef, 0x68, 0x02, 0x04, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyColor - Thingy Color CharacteristicUUIDThingyColor = NewUUID([16]byte{0xef, 0x68, 0x02, 0x05, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyConfiguration - Thingy Configuration CharacteristicUUIDThingyConfiguration = NewUUID([16]byte{0xef, 0x68, 0x02, 0x06, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyLEDState - Thingy LED State CharacteristicUUIDThingyLEDState = NewUUID([16]byte{0xef, 0x68, 0x03, 0x01, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyButtonState - Thingy Button State CharacteristicUUIDThingyButtonState = NewUUID([16]byte{0xef, 0x68, 0x03, 0x02, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyEXTPin - Thingy EXT Pin CharacteristicUUIDThingyEXTPin = NewUUID([16]byte{0xef, 0x68, 0x03, 0x03, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyMotionConfig - Thingy Motion Config CharacteristicUUIDThingyMotionConfig = NewUUID([16]byte{0xef, 0x68, 0x04, 0x01, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyTap - Thingy Tap CharacteristicUUIDThingyTap = NewUUID([16]byte{0xef, 0x68, 0x04, 0x02, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyOrientation - Thingy Orientation CharacteristicUUIDThingyOrientation = NewUUID([16]byte{0xef, 0x68, 0x04, 0x03, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyQuaternion - Thingy Quaternion CharacteristicUUIDThingyQuaternion = NewUUID([16]byte{0xef, 0x68, 0x04, 0x04, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyPedometer - Thingy Pedometer CharacteristicUUIDThingyPedometer = NewUUID([16]byte{0xef, 0x68, 0x04, 0x05, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyRawData - Thingy Raw Data CharacteristicUUIDThingyRawData = NewUUID([16]byte{0xef, 0x68, 0x04, 0x06, 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}) // CharacteristicUUIDThingyRotationMatrix - Thingy Rotation Matrix CharacteristicUUIDThingyRotationMatrix = NewUUID([16]byte{0xef, 0x68, 0x04, 0x08, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyHeading - Thingy Heading CharacteristicUUIDThingyHeading = NewUUID([16]byte{0xef, 0x68, 0x04, 0x09, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingyGravityVector - Thingy Gravity Vector CharacteristicUUIDThingyGravityVector = NewUUID([16]byte{0xef, 0x68, 0x04, 0x0a, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // CharacteristicUUIDThingySoundConfig - Thingy Sound Config CharacteristicUUIDThingySoundConfig = NewUUID([16]byte{0xef, 0x68, 0x05, 0x01, 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}) // CharacteristicUUIDThingySpeakerStatus - Thingy Speaker Status CharacteristicUUIDThingySpeakerStatus = NewUUID([16]byte{0xef, 0x68, 0x05, 0x03, 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}) // CharacteristicUUIDUARTTX - UART TX Characteristic CharacteristicUUIDUARTTX = NewUUID([16]byte{0x6e, 0x40, 0x00, 0x03, 0xb5, 0xa3, 0xf3, 0x93, 0xe0, 0xa9, 0xe5, 0x0e, 0x24, 0xdc, 0xca, 0x9e}) // CharacteristicUUIDUARTRX - UART RX Characteristic CharacteristicUUIDUARTRX = NewUUID([16]byte{0x6e, 0x40, 0x00, 0x02, 0xb5, 0xa3, 0xf3, 0x93, 0xe0, 0xa9, 0xe5, 0x0e, 0x24, 0xdc, 0xca, 0x9e}) // CharacteristicUUIDEddystoneCapabilities - Eddystone Capabilities CharacteristicUUIDEddystoneCapabilities = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x01, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95}) // CharacteristicUUIDEddystoneActiveSlot - Eddystone Active Slot CharacteristicUUIDEddystoneActiveSlot = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x02, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95}) // 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}) // 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}) // CharacteristicUUIDEddystoneLockState - Eddystone Lock State CharacteristicUUIDEddystoneLockState = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x06, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95}) // CharacteristicUUIDEddystoneUnlock - Eddystone Unlock CharacteristicUUIDEddystoneUnlock = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x07, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95}) // CharacteristicUUIDEddystonePublicECDHKey - Eddystone Public ECDH Key CharacteristicUUIDEddystonePublicECDHKey = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x08, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95}) // CharacteristicUUIDEddystoneEIDIdentityKey - Eddystone EID Identity Key CharacteristicUUIDEddystoneEIDIdentityKey = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x09, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95}) // 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}) // CharacteristicUUIDEddystoneAvancedFactoryReset - Eddystone Avanced Factory Reset CharacteristicUUIDEddystoneAvancedFactoryReset = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x0b, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95}) // 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}) // 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}) // 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}) // CharacteristicUUIDFastPairPasskey - Fast Pair Passkey CharacteristicUUIDFastPairPasskey = NewUUID([16]byte{0xfe, 0x2c, 0x12, 0x35, 0x83, 0x66, 0x48, 0x14, 0x8e, 0xb0, 0x01, 0xde, 0x32, 0x10, 0x0b, 0xea}) // 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}) // CharacteristicUUIDFastPairData - Fast Pair Data CharacteristicUUIDFastPairData = NewUUID([16]byte{0xfe, 0x2c, 0x12, 0x37, 0x83, 0x66, 0x48, 0x14, 0x8e, 0xb0, 0x01, 0xde, 0x32, 0x10, 0x0b, 0xea}) // CharacteristicUUIDDeprecatedFastPairModelID - Deprecated Fast Pair Model ID CharacteristicUUIDDeprecatedFastPairModelID = New16BitUUID(0x1233) // CharacteristicUUIDDeprecatedFastPairKeybasedPairing - Deprecated Fast Pair Key-based Pairing CharacteristicUUIDDeprecatedFastPairKeybasedPairing = New16BitUUID(0x1234) // CharacteristicUUIDDeprecatedFastPairPasskey - Deprecated Fast Pair Passkey CharacteristicUUIDDeprecatedFastPairPasskey = New16BitUUID(0x1235) // CharacteristicUUIDDeprecatedFastPairAccountKey - Deprecated Fast Pair Account Key CharacteristicUUIDDeprecatedFastPairAccountKey = New16BitUUID(0x1236) // CharacteristicUUIDDeprecatedFastPairData - Deprecated Fast Pair Data CharacteristicUUIDDeprecatedFastPairData = New16BitUUID(0x1237) // CharacteristicUUIDAppleNotificationSource - Apple Notification Source CharacteristicUUIDAppleNotificationSource = NewUUID([16]byte{0x9f, 0xbf, 0x12, 0x0d, 0x63, 0x01, 0x42, 0xd9, 0x8c, 0x58, 0x25, 0xe6, 0x99, 0xa2, 0x1d, 0xbd}) // CharacteristicUUIDAppleControlPoint - Apple Control Point CharacteristicUUIDAppleControlPoint = NewUUID([16]byte{0x69, 0xd1, 0xd8, 0xf3, 0x45, 0xe1, 0x49, 0xa8, 0x98, 0x21, 0x9b, 0xbd, 0xfd, 0xaa, 0xd9, 0xd9}) // CharacteristicUUIDAppleDataSource - Apple Data Source CharacteristicUUIDAppleDataSource = NewUUID([16]byte{0x22, 0xea, 0xc6, 0xe9, 0x24, 0xd6, 0x4b, 0xb5, 0xbe, 0x44, 0xb3, 0x6a, 0xce, 0x7c, 0x7b, 0xfb}) // CharacteristicUUIDAppleRemoteCommand - Apple Remote Command CharacteristicUUIDAppleRemoteCommand = NewUUID([16]byte{0x9b, 0x3c, 0x81, 0xd8, 0x57, 0xb1, 0x4a, 0x8a, 0xb8, 0xdf, 0x0e, 0x56, 0xf7, 0xca, 0x51, 0xc2}) // CharacteristicUUIDAppleEntityUpdate - Apple Entity Update CharacteristicUUIDAppleEntityUpdate = NewUUID([16]byte{0x2f, 0x7c, 0xab, 0xce, 0x80, 0x8d, 0x41, 0x1f, 0x9a, 0x0c, 0xbb, 0x92, 0xba, 0x96, 0xc1, 0x02}) // CharacteristicUUIDAppleEntityAttribute - Apple Entity Attribute CharacteristicUUIDAppleEntityAttribute = NewUUID([16]byte{0xc6, 0xb2, 0xf3, 0x8c, 0x23, 0xab, 0x46, 0xd8, 0xa6, 0xab, 0xa3, 0xa8, 0x70, 0xbb, 0xd5, 0xd7}) // 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}) // 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}) // 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}) // 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}) // 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}) // 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}) // 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}) // 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}) // 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}) // 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}) // 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}) // 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}) // 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}) // 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}) // CharacteristicUUIDMicrobitRequirements - micro:bit Requirements CharacteristicUUIDMicrobitRequirements = NewUUID([16]byte{0xe9, 0x5d, 0xb8, 0x4c, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8}) // CharacteristicUUIDMicrobitEvent - micro:bit Event CharacteristicUUIDMicrobitEvent = NewUUID([16]byte{0xe9, 0x5d, 0x97, 0x75, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8}) // 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}) // 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}) // 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}) // CharacteristicUUIDMicrobitTemperature - micro:bit Temperature CharacteristicUUIDMicrobitTemperature = NewUUID([16]byte{0xe9, 0x5d, 0x92, 0x50, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8}) // 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}) // CharacteristicUUIDMeshProvisioningDataIn - Mesh Provisioning Data In CharacteristicUUIDMeshProvisioningDataIn = New16BitUUID(0x2ADB) // CharacteristicUUIDMeshProvisioningDataOut - Mesh Provisioning Data Out CharacteristicUUIDMeshProvisioningDataOut = New16BitUUID(0x2ADC) // CharacteristicUUIDMeshProxyDataIn - Mesh Proxy Data In CharacteristicUUIDMeshProxyDataIn = New16BitUUID(0x2ADD) // CharacteristicUUIDMeshProxyDataOut - Mesh Proxy Data Out CharacteristicUUIDMeshProxyDataOut = New16BitUUID(0x2ADE) )
var ( // ServiceUUIDGenericAccess - Generic Access ServiceUUIDGenericAccess = New16BitUUID(0x1800) // ServiceUUIDAlertNotification - Alert Notification Service ServiceUUIDAlertNotification = New16BitUUID(0x1811) // ServiceUUIDAutomationIO - Automation IO ServiceUUIDAutomationIO = New16BitUUID(0x1815) // ServiceUUIDBattery - Battery Service ServiceUUIDBattery = New16BitUUID(0x180F) // ServiceUUIDBloodPressure - Blood Pressure ServiceUUIDBloodPressure = New16BitUUID(0x1810) // ServiceUUIDBodyComposition - Body Composition ServiceUUIDBodyComposition = New16BitUUID(0x181B) // ServiceUUIDBondManagement - Bond Management Service ServiceUUIDBondManagement = New16BitUUID(0x181E) // ServiceUUIDContinuousGlucoseMonitoring - Continuous Glucose Monitoring ServiceUUIDContinuousGlucoseMonitoring = New16BitUUID(0x181F) // ServiceUUIDCurrentTime - Current Time Service ServiceUUIDCurrentTime = New16BitUUID(0x1805) // ServiceUUIDCyclingPower - Cycling Power ServiceUUIDCyclingPower = New16BitUUID(0x1818) // ServiceUUIDCyclingSpeedAndCadence - Cycling Speed and Cadence ServiceUUIDCyclingSpeedAndCadence = New16BitUUID(0x1816) // ServiceUUIDDeviceInformation - Device Information ServiceUUIDDeviceInformation = New16BitUUID(0x180A) // ServiceUUIDEnvironmentalSensing - Environmental Sensing ServiceUUIDEnvironmentalSensing = New16BitUUID(0x181A) // ServiceUUIDFitnessMachine - Fitness Machine ServiceUUIDFitnessMachine = New16BitUUID(0x1826) // ServiceUUIDGenericAttribute - Generic Attribute ServiceUUIDGenericAttribute = New16BitUUID(0x1801) // ServiceUUIDGlucose - Glucose ServiceUUIDGlucose = New16BitUUID(0x1808) // ServiceUUIDHealthThermometer - Health Thermometer ServiceUUIDHealthThermometer = New16BitUUID(0x1809) // ServiceUUIDHeartRate - Heart Rate ServiceUUIDHeartRate = New16BitUUID(0x180D) // ServiceUUIDHTTPProxy - HTTP Proxy ServiceUUIDHTTPProxy = New16BitUUID(0x1823) // ServiceUUIDHumanInterfaceDevice - Human Interface Device ServiceUUIDHumanInterfaceDevice = New16BitUUID(0x1812) // ServiceUUIDImmediateAlert - Immediate Alert ServiceUUIDImmediateAlert = New16BitUUID(0x1802) // ServiceUUIDIndoorPositioning - Indoor Positioning ServiceUUIDIndoorPositioning = New16BitUUID(0x1821) // ServiceUUIDInsulinDelivery - Insulin Delivery ServiceUUIDInsulinDelivery = New16BitUUID(0x183A) // ServiceUUIDInternetProtocolSupport - Internet Protocol Support Service ServiceUUIDInternetProtocolSupport = New16BitUUID(0x1820) // ServiceUUIDLinkLoss - Link Loss ServiceUUIDLinkLoss = New16BitUUID(0x1803) ServiceUUIDLocationAndNavigation = New16BitUUID(0x1819) // ServiceUUIDMeshProvisioning - Mesh Provisioning Service ServiceUUIDMeshProvisioning = New16BitUUID(0x1827) // ServiceUUIDMeshProxy - Mesh Proxy Service ServiceUUIDMeshProxy = New16BitUUID(0x1828) // ServiceUUIDNextDSTChange - Next DST Change Service ServiceUUIDNextDSTChange = New16BitUUID(0x1807) // ServiceUUIDObjectTransfer - Object Transfer Service ServiceUUIDObjectTransfer = New16BitUUID(0x1825) // ServiceUUIDPhoneAlertStatus - Phone Alert Status Service ServiceUUIDPhoneAlertStatus = New16BitUUID(0x180E) // ServiceUUIDPulseOximeter - Pulse Oximeter Service ServiceUUIDPulseOximeter = New16BitUUID(0x1822) // ServiceUUIDReconnectionConfiguration - Reconnection Configuration ServiceUUIDReconnectionConfiguration = New16BitUUID(0x1829) // ServiceUUIDReferenceTimeUpdate - Reference Time Update Service ServiceUUIDReferenceTimeUpdate = New16BitUUID(0x1806) // ServiceUUIDRunningSpeedAndCadence - Running Speed and Cadence ServiceUUIDRunningSpeedAndCadence = New16BitUUID(0x1814) // ServiceUUIDScanParameters - Scan Parameters ServiceUUIDScanParameters = New16BitUUID(0x1813) // ServiceUUIDTransportDiscovery - Transport Discovery ServiceUUIDTransportDiscovery = New16BitUUID(0x1824) // ServiceUUIDTxPower - Tx Power ServiceUUIDTxPower = New16BitUUID(0x1804) // ServiceUUIDUserData - User Data ServiceUUIDUserData = New16BitUUID(0x181C) // ServiceUUIDWeightScale - Weight Scale ServiceUUIDWeightScale = New16BitUUID(0x181D) // ServiceUUIDFirmwareRevision - Firmware Revision ServiceUUIDFirmwareRevision = New16BitUUID(0x2A26) // 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}) // ServiceUUIDAppleMedia - Apple Media Service ServiceUUIDAppleMedia = NewUUID([16]byte{0x89, 0xd3, 0x50, 0x2b, 0x0f, 0x36, 0x43, 0x3a, 0x8e, 0xf4, 0xc5, 0x02, 0xad, 0x55, 0xf8, 0xdc}) // 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}) // 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}) // ServiceUUIDMicrobitButton - micro:bit Button Service ServiceUUIDMicrobitButton = NewUUID([16]byte{0xe9, 0x5d, 0x98, 0x82, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8}) // ServiceUUIDMicrobitIOPin - micro:bit IO Pin Service ServiceUUIDMicrobitIOPin = NewUUID([16]byte{0xe9, 0x5d, 0x12, 0x7b, 0x25, 0x1d, 0x47, 0x0a, 0xa0, 0x62, 0xfa, 0x19, 0x22, 0xdf, 0xa9, 0xa8}) // 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}) // 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}) // 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}) // 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}) // ServiceUUIDThingyConfiguration - Thingy Configuration Service ServiceUUIDThingyConfiguration = NewUUID([16]byte{0xef, 0x68, 0x01, 0x00, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // 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}) // ServiceUUIDThingyUI - Thingy UI Service ServiceUUIDThingyUI = NewUUID([16]byte{0xef, 0x68, 0x03, 0x00, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // ServiceUUIDThingyMotion - Thingy Motion Service ServiceUUIDThingyMotion = NewUUID([16]byte{0xef, 0x68, 0x04, 0x00, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // ServiceUUIDThingySound - Thingy Sound Service ServiceUUIDThingySound = NewUUID([16]byte{0xef, 0x68, 0x05, 0x00, 0x9b, 0x35, 0x49, 0x33, 0x9b, 0x10, 0x52, 0xff, 0xa9, 0x74, 0x00, 0x42}) // 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}) // ServiceUUIDNordicUART - Nordic UART Service ServiceUUIDNordicUART = NewUUID([16]byte{0x6e, 0x40, 0x00, 0x01, 0xb5, 0xa3, 0xf3, 0x93, 0xe0, 0xa9, 0xe5, 0x0e, 0x24, 0xdc, 0xca, 0x9e}) // ServiceUUIDEddystone - Eddystone ServiceUUIDEddystone = New16BitUUID(0xFEAA) // ServiceUUIDEddystoneConfiguration - Eddystone Configuration Service ServiceUUIDEddystoneConfiguration = NewUUID([16]byte{0xa3, 0xc8, 0x75, 0x00, 0x8e, 0xd3, 0x4b, 0xdf, 0x8a, 0x39, 0xa0, 0x1b, 0xeb, 0xed, 0xe2, 0x95}) // ServiceUUIDFastPair - Fast Pair Service ServiceUUIDFastPair = New16BitUUID(0xFE2C) // ServiceUUIDLegacyDFU - Legacy DFU Service ServiceUUIDLegacyDFU = NewUUID([16]byte{0x00, 0x00, 0x15, 0x30, 0x12, 0x12, 0xef, 0xde, 0x15, 0x23, 0x78, 0x5f, 0xea, 0xbc, 0xd1, 0x23}) // ServiceUUIDSecureDFU - Secure DFU Service ServiceUUIDSecureDFU = New16BitUUID(0xFE59) // 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}) // ServiceUUIDExposureNotification - Exposure Notification Service ServiceUUIDExposureNotification = New16BitUUID(0xFD6F) // ServiceUUIDSMP - SMP Service ServiceUUIDSMP = NewUUID([16]byte{0x8d, 0x53, 0xdc, 0x1d, 0x1d, 0xb7, 0x4c, 0xd3, 0x86, 0x8b, 0x8a, 0x52, 0x74, 0x60, 0xaa, 0x84}) )
var DefaultAdapter = &Adapter{ connectHandler: func(device Addresser, connected bool) { return }, }
DefaultAdapter is the default adapter on the system. On Linux, it is the first adapter available.
Make sure to call Enable() before using it to initialize the adapter.
Functions ¶
This section is empty.
Types ¶
type Adapter ¶
type Adapter struct {
// contains filtered or unexported fields
}
func (*Adapter) AddService ¶
AddService creates a new service with the characteristics listed in the Service struct.
func (*Adapter) Address ¶
func (a *Adapter) Address() (MACAddress, error)
func (*Adapter) Connect ¶
func (a *Adapter) Connect(address Addresser, 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 ¶
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 ¶
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.
type Addresser ¶
type Addresser interface { // String of the address String() string // Set the address Set(val string) // Is this address a random address? // Bluetooth addresses are roughly split in two kinds: public // (IEEE-assigned) addresses and random (not IEEE assigned) addresses. // "Random" here doesn't mean it is exactly random but at least it looks // random. Sometimes, it contains a hash. // For more information: // https://www.novelbits.io/bluetooth-address-privacy-ble/ // Set the address SetRandom(bool) IsRandom() bool }
Addresser contains a Bluetooth address, which is a MAC address plus some extra information.
type Advertisement ¶
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.
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 map[uint16]interface{} }
AdvertisementFields contains advertisement fields in structured form.
type AdvertisementOptions ¶
type AdvertisementOptions struct { // The (complete) local name that will be advertised. Optional, omitted if // this is a zero-length string. LocalName string // ServiceUUIDs are the services (16-bit or 128-bit) that are broadcast as // part of the advertisement packet, in data types such as "complete list of // 128-bit UUIDs". ServiceUUIDs []UUID // Interval in BLE-specific units. Create an interval by using NewDuration. Interval Duration }
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 the manufacturer data, if available. // It returns nil if this data is not available. ManufacturerData(key uint16) []byte }
AdvertisementPayload contains information obtained during a scan (see ScanResult). It is provided as an interface as there are two possible implementations: an implementation that works with raw data (usually on low-level BLE stacks) and an implementation that works with structured data.
type Characteristic ¶
type Characteristic struct {
// contains filtered or unexported fields
}
Characteristic is a single characteristic in a service. It has an UUID and a value.
type CharacteristicConfig ¶
type CharacteristicConfig struct { Handle *Characteristic UUID Value []byte Flags CharacteristicPermissions WriteEvent func(client Connection, offset int, value []byte) }
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) Read ¶
func (p CharacteristicPermissions) Read() bool
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 }
ConnectionParams are used when connecting to a peripherals.
type Device ¶
type Device struct {
// contains filtered or unexported fields
}
Device is a connection to a remote peripheral.
func (*Device) Disconnect ¶
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.
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.
func (*DeviceCharacteristic) Read ¶
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 ¶
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.
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) SetRandom ¶
func (mac MACAddress) SetRandom(val bool)
SetRandom if is a random address.
type ScanResult ¶
type ScanResult struct { // Bluetooth address of the scanned device. Address Addresser // RSSI the last time a packet from this device has been received. 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 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 ¶
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 ParseUUID ¶
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) Get16Bit ¶
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) Replace16BitComponent ¶
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.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
examples
|
|
circuitplay
This example is intended to be used with the Adafruit Circuitplay Bluefruit board.
|
This example is intended to be used with the Adafruit Circuitplay Bluefruit board. |
discover
This example scans and then connects to a specific Bluetooth peripheral and then displays all of the services and characteristics.
|
This example scans and then connects to a specific Bluetooth peripheral and then displays all of the services and characteristics. |
heartrate-monitor
This example scans and then connects to a specific Bluetooth peripheral that can provide the Heart Rate Service (HRS).
|
This example scans and then connects to a specific Bluetooth peripheral that can provide the Heart Rate Service (HRS). |
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. |
Package winbt provides a thin layer over the WinRT Bluetooth interfaces.
|
Package winbt provides a thin layer over the WinRT Bluetooth interfaces. |