gen: generate standard service and characteristic UUIDs from Nordic Semiconductor bluetooth numbers database

Signed-off-by: deadprogram <ron@hybridgroup.com>
release
deadprogram 3 years ago committed by Ron Evans
parent b4b125480a
commit 549cb4a3f7

@ -1,4 +1,4 @@
Copyright (c) 2019 Ayke van Laethem. All rights reserved.
Copyright (c) 2019-2020 TinyGo Authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
@ -25,3 +25,7 @@ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
TinyGo Bluetooth includes data files from the Nordic Semiconductor Bluetooth
Numbers Database (https://github.com/NordicSemiconductor/bluetooth-numbers-database).
Copyright (c) 2019 - 2020, Nordic Semiconductor ASA. All rights reserved.

@ -33,6 +33,7 @@ smoketest-linux:
# Test on Linux.
GOOS=linux go build -o /tmp/go-build-discard ./examples/advertisement
GOOS=linux go build -o /tmp/go-build-discard ./examples/heartrate
GOOS=linux go build -o /tmp/go-build-discard ./examples/heartrate-monitor
GOOS=linux go build -o /tmp/go-build-discard ./examples/nusserver
GOOS=linux go build -o /tmp/go-build-discard ./examples/scanner
GOOS=linux go build -o /tmp/go-build-discard ./examples/discover
@ -46,3 +47,9 @@ smoketest-macos:
GOOS=darwin CGO_ENABLED=1 go build -o /tmp/go-build-discard ./examples/scanner
GOOS=darwin CGO_ENABLED=1 go build -o /tmp/go-build-discard ./examples/discover
GOOS=darwin CGO_ENABLED=1 go build -o /tmp/go-build-discard ./examples/nusclient
GOOS=darwin CGO_ENABLED=1 go build -o /tmp/go-build-discard ./examples/heartrate-monitor
gen-uuids:
# generate the standard service and characteristic UUIDs
go run ./tools/gen-service-uuids/main.go
go run ./tools/gen-characteristic-uuids/main.go

@ -0,0 +1,975 @@
// 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
//
package bluetooth
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 - Navigation
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)
)

@ -0,0 +1,351 @@
[
{ "name": "Aerobic Heart Rate Lower Limit", "identifier": "org.bluetooth.characteristic.aerobic_heart_rate_lower_limit", "uuid": "2A7E" , "source": "gss"},
{ "name": "Aerobic Heart Rate Upper Limit", "identifier": "org.bluetooth.characteristic.aerobic_heart_rate_upper_limit", "uuid": "2A84" , "source": "gss"},
{ "name": "Aerobic Threshold", "identifier": "org.bluetooth.characteristic.aerobic_threshold", "uuid": "2A7F" , "source": "gss"},
{ "name": "Age", "identifier": "org.bluetooth.characteristic.age", "uuid": "2A80" , "source": "gss"},
{ "name": "Aggregate", "identifier": "org.bluetooth.characteristic.aggregate", "uuid": "2A5A" , "source": "gss"},
{ "name": "Alert Category ID", "identifier": "org.bluetooth.characteristic.alert_category_id", "uuid": "2A43" , "source": "gss"},
{ "name": "Alert Category ID Bit Mask", "identifier": "org.bluetooth.characteristic.alert_category_id_bit_mask", "uuid": "2A42" , "source": "gss"},
{ "name": "Alert Level", "identifier": "org.bluetooth.characteristic.alert_level", "uuid": "2A06" , "source": "gss"},
{ "name": "Alert Notification Control Point", "identifier": "org.bluetooth.characteristic.alert_notification_control_point", "uuid": "2A44" , "source": "gss"},
{ "name": "Alert Status", "identifier": "org.bluetooth.characteristic.alert_status", "uuid": "2A3F" , "source": "gss"},
{ "name": "Altitude", "identifier": "org.bluetooth.characteristic.altitude", "uuid": "2AB3" , "source": "gss"},
{ "name": "Anaerobic Heart Rate Lower Limit", "identifier": "org.bluetooth.characteristic.anaerobic_heart_rate_lower_limit", "uuid": "2A81" , "source": "gss"},
{ "name": "Anaerobic Heart Rate Upper Limit", "identifier": "org.bluetooth.characteristic.anaerobic_heart_rate_upper_limit", "uuid": "2A82" , "source": "gss"},
{ "name": "Anaerobic Threshold", "identifier": "org.bluetooth.characteristic.anaerobic_threshold", "uuid": "2A83" , "source": "gss"},
{ "name": "Analog", "identifier": "org.bluetooth.characteristic.analog", "uuid": "2A58" , "source": "gss"},
{ "name": "Analog Output", "identifier": "org.bluetooth.characteristic.analog_output", "uuid": "2A59" , "source": "gss"},
{ "name": "Apparent Wind Direction", "identifier": "org.bluetooth.characteristic.apparent_wind_direction", "uuid": "2A73" , "source": "gss"},
{ "name": "Apparent Wind Speed", "identifier": "org.bluetooth.characteristic.apparent_wind_speed", "uuid": "2A72" , "source": "gss"},
{ "name": "Appearance", "identifier": "org.bluetooth.characteristic.gap.appearance", "uuid": "2A01" , "source": "gss"},
{ "name": "Barometric Pressure Trend", "identifier": "org.bluetooth.characteristic.barometric_pressure_trend", "uuid": "2AA3" , "source": "gss"},
{ "name": "Battery Level", "identifier": "org.bluetooth.characteristic.battery_level", "uuid": "2A19" , "source": "gss"},
{ "name": "Battery Level State", "identifier": "org.bluetooth.characteristic.battery_level_state", "uuid": "2A1B" , "source": "gss"},
{ "name": "Battery Power State", "identifier": "org.bluetooth.characteristic.battery_power_state", "uuid": "2A1A" , "source": "gss"},
{ "name": "Blood Pressure Feature", "identifier": "org.bluetooth.characteristic.blood_pressure_feature", "uuid": "2A49" , "source": "gss"},
{ "name": "Blood Pressure Measurement", "identifier": "org.bluetooth.characteristic.blood_pressure_measurement", "uuid": "2A35" , "source": "gss"},
{ "name": "Body Composition Feature", "identifier": "org.bluetooth.characteristic.body_composition_feature", "uuid": "2A9B" , "source": "gss"},
{ "name": "Body Composition Measurement", "identifier": "org.bluetooth.characteristic.body_composition_measurement", "uuid": "2A9C" , "source": "gss"},
{ "name": "Body Sensor Location", "identifier": "org.bluetooth.characteristic.body_sensor_location", "uuid": "2A38" , "source": "gss"},
{ "name": "Bond Management Control Point", "identifier": "org.bluetooth.characteristic.bond_management_control_point", "uuid": "2AA4" , "source": "gss"},
{ "name": "Bond Management Features", "identifier": "org.bluetooth.characteristic.bond_management_feature", "uuid": "2AA5" , "source": "gss"},
{ "name": "Boot Keyboard Input Report", "identifier": "org.bluetooth.haracteristic.boot_keyboard_input_report", "uuid": "2A22" , "source": "gss" },
{ "name": "Boot Keyboard Output Report","identifier": "org.bluetooth.characteristic.boot_keyboard_output_report", "uuid": "2A32" , "source": "gss" },
{ "name": "Boot Mouse Input Report", "identifier": "org.bluetooh.characteristic.boot_mouse_input_report", "uuid": "2A33" , "source": "gss" },
{ "name": "Central Address Resolution", "identifier": "org.bluetooth.characteristic.gap.central_address_resolution", "uuid": "2AA6" , "source": "gss" },
{ "name": "CGM Feature", "identifier": "org.bluetooth.characteristic.cgm_feature", "uuid": "2AA8" , "source": "gss" },
{ "name": "CGM Measurement","identifier": "org.bluetooth.characteristic.cgm_measurement", "uuid": "2AA7" , "source": "gss" },
{ "name": "CGM Session Run Time", "identifier": "org.bluetooth.characteristic.cgm_session_run_time", "uuid": "2AAB" , "source": "gss" },
{ "name": "CGM Session Start Time", "identifier": "org.bluetooth.characteristic.cgm_session_start_time", "uuid": "2AAA" , "source": "gss" },
{ "name": "CGM Specific Ops Control Point", "identifier": "org.bluetooth.characteristic.cgm_specific_ops_control_point", "uuid": "2AAC" , "source": "gss" },
{ "name": "CGM Status", "identifier": "org.bluetooth.characteristic.cgm_status", "uuid": "2AA9" , "source": "gss" },
{ "name": "Cross Trainer Data", "identifier": "org.bluetooth.characteristic.cross_trainer_data", "uuid": "2ACE" , "source": "gss" },
{ "name": "CSC Feature", "identifier": "org.bluetooth.characteristic.csc_feature", "uuid": "2A5C" , "source": "gss" },
{ "name": "CSC Measurement","identifier": "org.bluetooth.characteristic.csc_measurement", "uuid": "2A5B" , "source": "gss" },
{ "name": "Current Time","identifier": "org.bluetooth.characteristic.current_time", "uuid": "2A2B" , "source": "gss" },
{ "name": "Cycling Power Control Point","identifier": "org.bluetooth.characteristic.cycling_power_control_point", "uuid": "2A66" , "source": "gss" },
{ "name": "Cycling Power Feature", "identifier": "org.bluetooth.characteristic.cycling_power_feature", "uuid": "2A65" , "source": "gss" },
{ "name": "Cycling Power Measurement", "identifier": "org.bluetooth.characteristic.cycling_power_measurement", "uuid": "2A63" , "source": "gss" },
{ "name": "Cycling Power Vector", "identifier": "org.blueooth.characteristic.cycling_power_vector", "uuid": "2A64" , "source": "gss" },
{ "name": "Database Change Increment", "identifier": "org.bluetooth.characteristic.database_change_increment", "uuid": "2A99" , "source": "gss" },
{ "name": "Date of Birth","identifier": "orgg.bluetooth.characteristic.date_of_birth", "uuid": "2A85" , "source": "gss" },
{ "name": "Date of Threshold Assessment", "identifier": "org.bluetooth.characteristic.date_of_threshold_assessment", "uuid": "2A86" , "source": "gss" },
{ "name": "Date Time", "identifier": "org.bluetooth.characteristic.date_time", "uuid": "2A08" , "source": "gss" },
{ "name": "Date UTC", "identifier": "org.bluetooth.characteristic.date_utc", "uuid": "2AED" , "source": "gss" },
{ "name": "Day Date Time", "identifier": "org.bluetooth.characteristic.day_date_time", "uuid": "2A0A" , "source": "gss" },
{ "name": "Day of Week", "identifier": "org.bluetooth.characteristic.day_of_week", "uuid": "2A09" , "source": "gss" },
{ "name": "Descriptor Value Changed", "identifier": "org.bluetooth.characteristic.descriptor_value_changed", "uuid": "2A7D" , "source": "gss" },
{ "name": "Device Name", "identifier": "org.bluetooth.characteristic.gap.device_name", "uuid": "2A00" , "source": "gss" },
{ "name": "Dew Point", "identifier": "org.bluetooth.characteristic.dew_point", "uuid": "2A7B" , "source": "gss" },
{ "name": "Digital", "identifier": "org.bluetooth.characteristic.digital", "uuid": "2A56" , "source": "gss" },
{ "name": "Digital Output", "identifier": "org.bluetooth.characteristic.digital_output", "uuid": "2A57" , "source": "gss" },
{ "name": "DST Offset", "identifier": "org.bluetooth.characteristic.dst_offset", "uuid": "2A0D" , "source": "gss" },
{ "name": "Elevation", "identifier": "org.bluetooth.characteristic.elevation", "uuid": "2A6C" , "source": "gss" },
{ "name": "Email Address", "identifier": "org.bluetooth.characteristic.email_address", "uuid": "2A87" , "source": "gss" },
{ "name": "Exact Time 100", "identifier": "org.bluetooth.characteristic.exact_time_100", "uuid": "2A0B" , "source": "gss" },
{ "name": "Exact Time 256", "identifier": "org.bluetooth.characteristic.exact_time_256", "uuid": "2A0C" , "source": "gss" },
{ "name": "Fat Burn Heart Rate Lower Limit", "identifier": "org.bluetooth.characteristic.fat_burn_heart_rate_lower_limit", "uuid": "2A88", "source": "gss" },
{ "name": "Fat Burn Heart Rate Upper Limit", "identifier": "org.bluetooth.characteristic.fat_burn_heart_rate_upper_limit", "uuid": "2A89", "source": "gss" },
{ "name": "Firmware Revision String", "identifier": "org.bluetooth.characteristic.firmware_revision_string", "uuid": "2A26", "source": "gss" },
{ "name": "First Name", "identifier": "org.bluetooth.characteristic.first_name", "uuid": "2A8A", "source": "gss" },
{ "name": "Fitness Machine Control Point", "identifier": "org.bluetooth.characteristic.fitness_machine_control_point", "uuid": "2AD9", "source": "gss" },
{ "name": "Fitness Machine Feature", "identifier": "org.bluetooth.characteristic.fitness_machine_feature", "uuid": "2ACC", "source": "gss" },
{ "name": "Fitness Machine Status", "identifier": "org.bluetooth.characteristic.fitness_machine_status", "uuid": "2ADA", "source": "gss" },
{ "name": "Five Zone Heart Rate Limits", "identifier": "org.bluetooth.characteristic.five_zone_heart_rate_limits", "uuid": "2A8B", "source": "gss" },
{ "name": "Floor Number", "identifier": "org.bluetooth.characteristic.floor_number", "uuid": "2AB2", "source": "gss" },
{ "name": "Gender", "identifier": "org.bluetooth.characteristic.gender", "uuid": "2A8C", "source": "gss" },
{ "name": "Glucose Feature", "identifier": "org.bluetooth.characteristic.glucose_feature", "uuid": "2A51", "source": "gss" },
{ "name": "Glucose Measurement", "identifier": "org.bluetooth.characteristic.glucose_measurement", "uuid": "2A18", "source": "gss" },
{ "name": "Glucose Measurement Context", "identifier": "org.bluetooth.characteristic.glucose_measurement_context", "uuid": "2A34", "source": "gss" },
{ "name": "Gust Factor", "identifier": "org.bluetooth.characteristic.gust_factor", "uuid": "2A74", "source": "gss" },
{ "name": "Hardware Revision String", "identifier": "org.bluetooth.characteristic.hardware_revision_string", "uuid": "2A27", "source": "gss" },
{ "name": "Heart Rate Control Point", "identifier": "org.bluetooth.characteristic.heart_rate_control_point", "uuid": "2A39", "source": "gss" },
{ "name": "Heart Rate Max", "identifier": "org.bluetooth.characteristic.heart_rate_max", "uuid": "2A8D", "source": "gss" },
{ "name": "Heart Rate Measurement", "identifier": "org.bluetooth.characteristic.heart_rate_measurement", "uuid": "2A37", "source": "gss" },
{ "name": "Heat Index", "identifier": "org.bluetooth.characteristic.heat_index", "uuid": "2A7A", "source": "gss" },
{ "name": "Height", "identifier": "org.bluetooth.characteristic.height", "uuid": "2A8E", "source": "gss" },
{ "name": "HID Control Point", "identifier": "org.bluetooth.characteristic.hid_control_point", "uuid": "2A4C", "source": "gss" },
{ "name": "HID Information", "identifier": "org.bluetooth.characteristic.hid_information", "uuid": "2A4A", "source": "gss" },
{ "name": "Hip Circumference", "identifier": "org.bluetooth.characteristic.hip_circumference", "uuid": "2A8F", "source": "gss" },
{ "name": "HTTP Control Point", "identifier": "org.bluetooth.characteristic.http_control_point", "uuid": "2ABA", "source": "gss" },
{ "name": "HTTP Entity Body", "identifier": "org.bluetooth.characteristic.http_entity_body", "uuid": "2AB9", "source": "gss" },
{ "name": "HTTP Headers", "identifier": "org.bluetooth.characteristic.http_headers", "uuid": "2AB7", "source": "gss" },
{ "name": "HTTP Status Code", "identifier": "org.bluetooth.characteristic.http_status_code", "uuid": "2AB8", "source": "gss" },
{ "name": "HTTPS Security", "identifier": "org.bluetooth.characteristic.https_security", "uuid": "2ABB", "source": "gss" },
{ "name": "Humidity", "identifier": "org.bluetooth.characteristic.humidity", "uuid": "2A6F", "source": "gss" },
{ "name": "IDD Annunciation Status", "identifier": "org.bluetooth.characteristic.idd_annunciation_status", "uuid": "2B22", "source": "gss" },
{ "name": "IDD Command Control Point", "identifier": "org.bluetooth.characteristic.idd_command_control_point", "uuid": "2B25", "source": "gss" },
{ "name": "IDD Command Data", "identifier": "org.bluetooth.characteristic.idd_command_data", "uuid": "2B26", "source": "gss" },
{ "name": "IDD Features", "identifier": "org.bluetooth.characteristic.idd_features", "uuid": "2B23", "source": "gss" },
{ "name": "IDD History Data", "identifier": "org.bluetooth.characteristic.idd_history_data", "uuid": "2B28", "source": "gss" },
{ "name": "IDD Record Access Control Point", "identifier": "org.bluetooth.characteristic.idd_record_access_control_point", "uuid": "2B27", "source": "gss" },
{ "name": "IDD Status", "identifier": "org.bluetooth.characteristic.idd_status", "uuid": "2B21", "source": "gss" },
{ "name": "IDD Status Changed", "identifier": "org.bluetooth.characteristic.idd_status_changed", "uuid": "2B20", "source": "gss" },
{ "name": "IDD Status Reader Control Point", "identifier": "org.bluetooth.characteristic.idd_status_reader_control_point", "uuid": "2B24", "source": "gss" },
{ "name": "IEEE 11073-20601 Regulatory Certification Data List", "identifier": "org.bluetooth.characteristic.ieee_11073-20601_regulatoryertification_data_list", "uuid": "2A2A", "source": "gss" },
{ "name": "Indoor Bike Data", "identifier": "org.bluetooth.characteristic.indoor_bike_data", "uuid": "2AD2", "source": "gss" },
{ "name": "Indoor Positioning Configuration", "identifier": "org.bluetooth.characteristic.indoor_positioning_configuration", "uuid": "2AAD", "source": "gss" },
{ "name": "Intermediate Cuff Pressure", "identifier": "org.bluetooth.characteristic.intermediate_cuff_pressure", "uuid": "2A36", "source": "gss" },
{ "name": "Intermediate Temperature", "identifier": "org.bluetooth.characteristic.intermediate_temperature", "uuid": "2A1E", "source": "gss" },
{ "name": "Irradiance", "identifier": "org.bluetooth.characteristic.irradiance", "uuid": "2A77", "source": "gss" },
{ "name": "Language", "identifier": "org.bluetooth.characteristic.language", "uuid": "2AA2", "source": "gss" },
{ "name": "Last Name", "identifier": "org.bluetooth.characteristic.last_name", "uuid": "2A90", "source": "gss" },
{ "name": "Latitude", "identifier": "org.bluetooth.characteristic.latitude", "uuid": "2AAE", "source": "gss" },
{ "name": "LN Control Point", "identifier": "org.bluetooth.characteristic.ln_control_point", "uuid": "2A6B", "source": "gss" },
{ "name": "LN Feature", "identifier": "org.bluetooth.characteristic.ln_feature", "uuid": "2A6A", "source": "gss" },
{ "name": "Local East Coordinate", "identifier": "org.bluetooth.characteristic.local_east_coordinate", "uuid": "2AB1", "source": "gss" },
{ "name": "Local North Coordinate", "identifier": "org.bluetooth.characteristic.local_north_coordinate", "uuid": "2AB0", "source": "gss" },
{ "name": "Local Time Information", "identifier": "org.bluetooth.characteristic.local_time_information", "uuid": "2A0F", "source": "gss" },
{ "name": "Location and Speed Characteristic", "identifier": "org.bluetooth.characteristic.location_and_speed", "uuid": "2A67", "source": "gss" },
{ "name": "Location Name", "identifier": "org.bluetooth.characteristic.location_name", "uuid": "2AB5", "source": "gss" },
{ "name": "Longitude", "identifier": "org.bluetooth.characteristic.Longitude", "uuid": "2AAF", "source": "gss" },
{ "name": "Magnetic Declination", "identifier": "org.bluetooth.characteristic.magnetic_declination", "uuid": "2A2C", "source": "gss" },
{ "name": "Magnetic Flux Density - 2D", "identifier": "org.bluetooth.characteristic.Magnetic_flux_density_2D", "uuid": "2AA0", "source": "gss" },
{ "name": "Magnetic Flux Density - 3D", "identifier": "org.bluetooth.characteristic.Magnetic_flux_density_3D", "uuid": "2AA1", "source": "gss" },
{ "name": "Manufacturer Name String", "identifier": "org.bluetooth.characteristic.manufacturer_name_string", "uuid": "2A29", "source": "gss" },
{ "name": "Maximum Recommended Heart Rate", "identifier": "org.bluetooth.characteristic.maximum_recommended_heart_rate", "uuid": "2A91", "source": "gss" },
{ "name": "Measurement Interval", "identifier": "org.bluetooth.characteristic.measurement_interval", "uuid": "2A21", "source": "gss" },
{ "name": "Model Number String", "identifier": "org.bluetooth.characteristic.model_number_string", "uuid": "2A24", "source": "gss" },
{ "name": "Navigation", "identifier": "org.bluetooth.characteristic.navigation", "uuid": "2A68", "source": "gss" },
{ "name": "Network Availability", "identifier": "org.bluetooth.characteristic.network_availability", "uuid": "2A3E", "source": "gss" },
{ "name": "New Aler", "identifier": "org.bluetooth.characteristic.new_alert", "uuid": "2A46", "source": "gss" },
{ "name": "Object Action Control Point", "identifier": "org.bluetooth.characteristic.object_action_control_point", "uuid": "2AC5", "source": "gss" },
{ "name": "Object Changed", "identifier": "org.bluetooth.characteristic.object_changed", "uuid": "2AC8", "source": "gss" },
{ "name": "Object First-Created", "identifier": "org.bluetooth.characteristic.object_first_created", "uuid": "2AC1", "source": "gss" },
{ "name": "Object ID", "identifier": "org.bluetooth.characteristic.object_id", "uuid": "2AC3", "source": "gss" },
{ "name": "Object Last-Modified", "identifier": "org.bluetooth.characteristic.object_last_modified", "uuid": "2AC2", "source": "gss" },
{ "name": "Object List Control Point", "identifier": "org.bluetooth.characteristic.object_list_control_point", "uuid": "2AC6", "source": "gss" },
{ "name": "Object List Filter", "identifier": "org.bluetooth.characteristic.object_list_filter", "uuid": "2AC7", "source": "gss" },
{ "name": "Object Name", "identifier": "org.bluetooth.characteristic.object_name", "uuid": "2ABE", "source": "gss" },
{ "name": "Object Properties", "identifier": "org.bluetooth.characteristic.object_properties", "uuid": "2AC4", "source": "gss" },
{ "name": "Object Size", "identifier": "org.bluetooth.characteristic.object_size", "uuid": "2AC0", "source": "gss" },
{ "name": "Object Type", "identifier": "org.bluetooth.characteristic.object_type", "uuid": "2ABF", "source": "gss" },
{ "name": "OTS Feature", "identifier": "org.bluetooth.characteristic.ots_feature", "uuid": "2ABD", "source": "gss" },
{ "name": "Peripheral Preferred Connection Parameters", "identifier": "org.bluetooth.characteristic.gap.peripheral_preferred_connectn_parameters", "uuid": "2A04", "source": "gss" },
{ "name": "Peripheral Privacy Flag", "identifier": "org.bluetooth.characteristic.gap.peripheral_privacy_flag", "uuid": "2A02", "source": "gss" },
{ "name": "PLX Continuous Measurement Characteristic", "identifier": "org.bluetooth.characteristic.plx_continuous_measurement", "uuid": "2A5F", "source": "gss" },
{ "name": "PLX Features", "identifier": "org.bluetooth.characteristic.plx_features", "uuid": "2A60", "source": "gss" },
{ "name": "PLX Spot-Check Measurement", "identifier": "org.bluetooth.characteristic.plx_spot_check_measurement", "uuid": "2A5E", "source": "gss" },
{ "name": "PnP ID", "identifier": "org.bluetooth.characteristic.pnp_id", "uuid": "2A50", "source": "gss" },
{ "name": "Pollen Concentration", "identifier": "org.bluetooth.characteristic.pollen_concentration", "uuid": "2A75", "source": "gss" },
{ "name": "Position 2D", "identifier": "org.bluetooth.characteristic.position_2d", "uuid": "2A2F", "source": "gss" },
{ "name": "Position 3D", "identifier": "org.bluetooth.characteristic.position_3d", "uuid": "2A30", "source": "gss" },
{ "name": "Position Quality", "identifier": "org.bluetooth.characteristic.position_quality", "uuid": "2A69", "source": "gss" },
{ "name": "Pressure", "identifier": "org.bluetooth.characteristic.pressure", "uuid": "2A6D", "source": "gss" },
{ "name": "Protocol Mode", "identifier": "org.bluetooth.characteristic.protocol_mode", "uuid": "2A4E", "source": "gss" },
{ "name": "Pulse Oximetry Control Point", "identifier": "org.bluetooth.characteristic.pulse_oximetry_control_point", "uuid": "2A62", "source": "gss" },
{ "name": "Rainfall", "identifier": "org.bluetooth.characteristic.rainfall", "uuid": "2A78", "source": "gss" },
{ "name": "RC Feature", "identifier": "org.bluetooth.characteristic.rc_feature", "uuid": "2B1D", "source": "gss" },
{ "name": "RC Settings", "identifier": "org.bluetooth.characteristic.rc_settings", "uuid": "2B1E", "source": "gss" },
{ "name": "Reconnection Address", "identifier": "org.bluetooth.characteristic.gap.reconnection_address", "uuid": "2A03", "source": "gss" },
{ "name": "Reconnection Configuration Control Point", "identifier": "org.bluetooth.characteristic.reconnection_configurationontrol_point", "uuid": "2B1F", "source": "gss" },
{ "name": "Record Access Control Point", "identifier": "org.bluetooth.characteristic.record_access_control_point", "uuid": "2A52", "source": "gss" },
{ "name": "Reference Time Information", "identifier": "org.bluetooth.characteristic.reference_time_information", "uuid": "2A14", "source": "gss" },
{ "name": "Removable", "identifier": "org.bluetooth.characteristic.removable", "uuid": "2A3A", "source": "gss" },
{ "name": "Report", "identifier": "org.bluetooth.characteristic.report", "uuid": "2A4D", "source": "gss" },
{ "name": "Report Map", "identifier": "org.bluetooth.characteristic.report_map", "uuid": "2A4B", "source": "gss" },
{ "name": "Resolvable Private Address Only", "identifier": "org.bluetooth.characteristic.resolvable_private_address_only", "uuid": "2AC9", "source": "gss" },
{ "name": "Resting Heart Rate", "identifier": "org.bluetooth.characteristic.resting_heart_rate", "uuid": "2A92", "source": "gss" },
{ "name": "Ringer Control point", "identifier": "org.bluetooth.characteristic.ringer_control_point", "uuid": "2A40", "source": "gss" },
{ "name": "Ringer Setting", "identifier": "org.bluetooth.characteristic.ringer_setting", "uuid": "2A41", "source": "gss" },
{ "name": "Rower Data", "identifier": "org.bluetooth.characteristic.rower_data", "uuid": "2AD1", "source": "gss" },
{ "name": "RSC Feature", "identifier": "org.bluetooth.characteristic.rsc_feature", "uuid": "2A54", "source": "gss" },
{ "name": "RSC Measurement", "identifier": "org.bluetooth.characteristic.rsc_measurement", "uuid": "2A53", "source": "gss" },
{ "name": "SC Control Point", "identifier": "org.bluetooth.characteristic.sc_control_point", "uuid": "2A55", "source": "gss" },
{ "name": "Scan Interval Window", "identifier": "org.bluetooth.characteristic.scan_interval_window", "uuid": "2A4F", "source": "gss" },
{ "name": "Scan Refresh", "identifier": "org.bluetooth.characteristic.scan_refresh", "uuid": "2A31", "source": "gss" },
{ "name": "Scientific Temperature Celsius", "identifier": "org.bluetooth.characteristic.scientific_temperature_celsius", "uuid": "2A3C", "source": "gss" },
{ "name": "Secondary Time Zone", "identifier": "org.bluetooth.characteristic.secondary_time_zone", "uuid": "2A10", "source": "gss" },
{ "name": "Sensor Location", "identifier": "org.bluetooth.characteristic.sensor_location", "uuid": "2A5D", "source": "gss" },
{ "name": "Serial Number String", "identifier": "org.bluetooth.characteristic.serial_number_string", "uuid": "2A25", "source": "gss" },
{ "name": "Service Changed", "identifier": "org.bluetooth.characteristic.gatt.service_changed", "uuid": "2A05", "source": "gss" },
{ "name": "Service Required", "identifier": "org.bluetooth.characteristic.service_required", "uuid": "2A3B", "source": "gss" },
{ "name": "Software Revision String", "identifier": "org.bluetooth.characteristic.software_revision_string", "uuid": "2A28", "source": "gss" },
{ "name": "Sport Type for Aerobic and Anaerobic Thresholds", "identifier": "org.bluetooth.characteristic.sport_type_for_aerobic_and_anaeroc_thresholds", "uuid": "2A93", "source": "gss" },
{ "name": "Stair Climber Data", "identifier": "org.bluetooth.characteristic.stair_climber_data", "uuid": "2AD0", "source": "gss" },
{ "name": "Step Climber Data", "identifier": "org.bluetooth.characteristic.step_climber_data", "uuid": "2ACF", "source": "gss" },
{ "name": "String", "identifier": "org.bluetooth.characteristic.string", "uuid": "2A3D", "source": "gss" },
{ "name": "Supported Heart Rate Range", "identifier": "org.bluetooth.characteristic.supported_heart_rate_range", "uuid": "2AD7", "source": "gss" },
{ "name": "Supported Inclination Range", "identifier": "org.bluetooth.characteristic.supported_inclination_range", "uuid": "2AD5", "source": "gss" },
{ "name": "Supported New Alert Category", "identifier": "org.bluetooth.characteristic.supported_new_alert_category", "uuid": "2A47", "source": "gss" },
{ "name": "Supported Power Range", "identifier": "org.bluetooth.characteristic.supported_power_range", "uuid": "2AD8", "source": "gss" },
{ "name": "Supported Resistance Level Range", "identifier": "org.bluetooth.characteristic.supported_resistance_level_range", "uuid": "2AD6", "source": "gss" },
{ "name": "Supported Speed Range", "identifier": "org.bluetooth.characteristic.supported_speed_range", "uuid": "2AD4", "source": "gss" },
{ "name": "Supported Unread Alert Category", "identifier": "org.bluetooth.characteristic.supported_unread_alert_category", "uuid": "2A48", "source": "gss" },
{ "name": "System ID", "identifier": "org.bluetooth.characteristic.system_id", "uuid": "2A23", "source": "gss" },
{ "name": "TDS Control Point", "identifier": "org.bluetooth.characteristic.tds_control_point", "uuid": "2ABC", "source": "gss" },
{ "name": "Temperature", "identifier": "org.bluetooth.characteristic.temperature", "uuid": "2A6E", "source": "gss" },
{ "name": "Temperature Celsius", "identifier": "org.bluetooth.characteristic.temperature_celsius", "uuid": "2A1F", "source": "gss" },
{ "name": "Temperature Fahrenheit", "identifier": "org.bluetooth.characteristic.temperature_fahrenheit", "uuid": "2A20", "source": "gss" },
{ "name": "Temperature Measurement", "identifier": "org.bluetooth.characteristic.temperature_measurement", "uuid": "2A1C", "source": "gss" },
{ "name": "Temperature Type", "identifier": "org.bluetooth.characteristic.temperature_type", "uuid": "2A1D", "source": "gss" },
{ "name": "Three Zone Heart Rate Limits", "identifier": "org.bluetooth.characteristic.three_zone_heart_rate_limits", "uuid": "2A94", "source": "gss" },
{ "name": "Time Accuracy", "identifier": "org.bluetooth.characteristic.time_accuracy", "uuid": "2A12", "source": "gss" },
{ "name": "Time Broadcast", "identifier": "org.bluetooth.characteristic.time_broadcast", "uuid": "2A15", "source": "gss" },
{ "name": "Time Source", "identifier": "org.bluetooth.characteristic.time_source", "uuid": "2A13", "source": "gss" },
{ "name": "Time Update Control Point", "identifier": "org.bluetooth.characteristic.time_update_control_point", "uuid": "2A16", "source": "gss" },
{ "name": "Time Update State", "identifier": "org.bluetooth.characteristic.time_update_state", "uuid": "2A17", "source": "gss" },
{ "name": "Time with DST", "identifier": "org.bluetooth.characteristic.time_with_dst", "uuid": "2A11", "source": "gss" },
{ "name": "Time Zone", "identifier": "org.bluetooth.characteristic.time_zone", "uuid": "2A0E", "source": "gss" },
{ "name": "Training Status", "identifier": "org.bluetooth.characteristic.training_status", "uuid": "2AD3", "source": "gss" },
{ "name": "Treadmill Data", "identifier": "org.bluetooth.characteristic.treadmill_data", "uuid": "2ACD", "source": "gss" },
{ "name": "True Wind Direction", "identifier": "org.bluetooth.characteristic.true_wind_direction", "uuid": "2A71", "source": "gss" },
{ "name": "True Wind Speed", "identifier": "org.bluetooth.characteristic.true_wind_speed", "uuid": "2A70", "source": "gss" },
{ "name": "Two Zone Heart Rate Limit", "identifier": "org.bluetooth.characteristic.two_zone_heart_rate_limit", "uuid": "2A95", "source": "gss" },
{ "name": "Tx Power Level", "identifier": "org.bluetooth.characteristic.tx_power_level", "uuid": "2A07", "source": "gss" },
{ "name": "Uncertainty", "identifier": "org.bluetooth.characteristic.uncertainty", "uuid": "2AB4", "source": "gss" },
{ "name": "Unread Alert Status", "identifier": "org.bluetooth.characteristic.unread_alert_status", "uuid": "2A45", "source": "gss" },
{ "name": "URI", "identifier": "org.bluetooth.characteristic.uri", "uuid": "2AB6", "source": "gss" },
{ "name": "User Control Point", "identifier": "org.bluetooth.characteristic.user_control_point", "uuid": "2A9F", "source": "gss" },
{ "name": "User Index", "identifier": "org.bluetooth.characteristic.user_index", "uuid": "2A9A", "source": "gss" },
{ "name": "UV Index", "identifier": "org.bluetooth.characteristic.uv_index", "uuid": "2A76", "source": "gss" },
{ "name": "VO2 Max", "identifier": "org.bluetooth.characteristic.vo2_max", "uuid": "2A96", "source": "gss" },
{ "name": "Waist Circumference", "identifier": "org.bluetooth.characteristic.waist_circumference", "uuid": "2A97", "source": "gss" },
{ "name": "Weight", "identifier": "org.bluetooth.characteristic.weight", "uuid": "2A98", "source": "gss" },
{ "name": "Weight Measurement", "identifier": "org.bluetooth.characteristic.weight_measurement", "uuid": "2A9D", "source": "gss" },
{ "name": "Weight Scale Feature", "identifier": "org.bluetooth.characteristic.weight_scale_feature", "uuid": "2A9E", "source": "gss" },
{ "name": "Wind Chill", "identifier": "org.bluetooth.characteristic.wind_chill", "uuid": "2A79", "source": "gss" },
{ "name": "Blinky Button State", "identifier": "com.nordicsemi.characteristic.blinky.button_state", "uuid": "00001524-1212-EFDE-1523-785FEABCD123" , "source": "nordic"},
{ "name": "Blinky LED State", "identifier": "com.nordicsemi.characteristic.blinky.led_state", "uuid": "00001525-1212-EFDE-1523-785FEABCD123" , "source": "nordic"},
{ "name": "Legacy DFU Control Point", "identifier": "com.nordicsemi.characteristic.dfu.legacy.control_point", "uuid": "00001531-1212-EFDE-1523-785FEABCD123" , "source": "nordic"},
{ "name": "Legacy DFU Packet", "identifier": "com.nordicsemi.characteristic.dfu.legacy.packet", "uuid": "00001532-1212-EFDE-1523-785FEABCD123" , "source": "nordic"},
{ "name": "Legacy DFU Version", "identifier": "com.nordicsemi.characteristic.dfu.legacy.version", "uuid": "00001534-1212-EFDE-1523-785FEABCD123" , "source": "nordic"},
{ "name": "DFU Control Point", "identifier": "com.nordicsemi.characteristic.dfu.secure.control_point", "uuid": "8EC90001-F315-4F60-9FB8-838830DAEA50", "source": "nordic" },
{ "name": "DFU Packet", "identifier": "com.nordicsemi.characteristic.dfu.secure.packet", "uuid": "8EC90002-F315-4F60-9FB8-838830DAEA50", "source": "nordic" },
{ "name": "Buttonless DFU Without Bonds", "identifier": "com.nordicsemi.characteristic.dfu.buttonless_experimental_without_bonds", "uuid": "8EC90003-F315-4F60-9FB8-838830DAEA50" , "source": "nordic"},
{ "name": "Buttonless DFU With Bonds", "identifier": "com.nordicsemi.characteristic.dfu.buttonless_experimental_with_bonds", "uuid": "8EC90004-F315-4F60-9FB8-838830DAEA50" , "source": "nordic"},
{ "name": "Experimental Buttonless DFU", "identifier": "com.nordicsemi.characteristic.dfu.buttonless_experimental", "uuid": "8E400001-F315-4F60-9FB8-838830DAEA50" , "source": "nordic"},
{ "name": "SMP Characteristic", "identifier": "io.runtime.mcumgr.ble.smp", "uuid": "DA2E7828-FBCE-4E01-AE9E-261174997C48" , "source": "apache"},
{ "name": "Thingy Device Name", "identifier": "com.nordicsemi.characteristic.thingy.device_name", "uuid": "EF680101-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Advertising Parameters", "identifier": "com.nordicsemi.characteristic.thingy.advertising_param", "uuid": "EF680102-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Connection Parameters", "identifier": "com.nordicsemi.characteristic.thingy.connection_param", "uuid": "EF680104-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Eddystone URL", "identifier": "com.nordicsemi.characteristic.thingy.eddystone_url", "uuid": "EF680105-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Cloud Token", "identifier": "com.nordicsemi.characteristic.thingy.cloud_token", "uuid": "EF680106-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy FW Version", "identifier": "com.nordicsemi.characteristic.thingy.fw_version", "uuid": "EF680107-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy MTU Request", "identifier": "com.nordicsemi.characteristic.thingy.mtu_request", "uuid": "EF680108-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Temperature", "identifier": "com.nordicsemi.characteristic.thingy.temperature", "uuid": "EF680201-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Pressure", "identifier": "com.nordicsemi.characteristic.thingy.pressure", "uuid": "EF680202-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Humidity", "identifier": "com.nordicsemi.characteristic.thingy.humidity", "uuid": "EF680203-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Air Quality", "identifier": "com.nordicsemi.characteristic.thingy.gas", "uuid": "EF680204-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Color", "identifier": "com.nordicsemi.characteristic.thingy.color", "uuid": "EF680205-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Configuration", "identifier": "com.nordicsemi.characteristic.thingy.configuration", "uuid": "EF680206-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy LED State", "identifier": "com.nordicsemi.characteristic.thingy.led", "uuid": "EF680301-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Button State", "identifier": "com.nordicsemi.characteristic.thingy.button", "uuid": "EF680302-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy EXT Pin", "identifier": "com.nordicsemi.characteristic.thingy.ext_pin", "uuid": "EF680303-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Motion Config", "identifier": "com.nordicsemi.characteristic.thingy.motion_config", "uuid": "EF680401-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Tap", "identifier": "com.nordicsemi.characteristic.thingy.tap", "uuid": "EF680402-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Orientation", "identifier": "com.nordicsemi.characteristic.thingy.orientation", "uuid": "EF680403-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Quaternion", "identifier": "com.nordicsemi.characteristic.thingy.quaternion", "uuid": "EF680404-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Pedometer", "identifier": "com.nordicsemi.characteristic.thingy.pedometer", "uuid": "EF680405-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Raw Data", "identifier": "com.nordicsemi.characteristic.thingy.raw_data", "uuid": "EF680406-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Euler", "identifier": "com.nordicsemi.characteristic.thingy.euler", "uuid": "EF680407-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Rotation Matrix", "identifier": "com.nordicsemi.characteristic.thingy.rotation_matrix", "uuid": "EF680408-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Heading", "identifier": "com.nordicsemi.characteristic.thingy.heading", "uuid": "EF680409-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Gravity Vector", "identifier": "com.nordicsemi.characteristic.thingy.gravity_vector", "uuid": "EF68040A-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Sound Config", "identifier": "com.nordicsemi.characteristic.thingy.sound_config", "uuid": "EF680501-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Speaker Data", "identifier": "com.nordicsemi.characteristic.thingy.speaker_data", "uuid": "EF680502-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Speaker Status", "identifier": "com.nordicsemi.characteristic.thingy.speaker_status", "uuid": "EF680503-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Microphone", "identifier": "com.nordicsemi.characteristic.thingy.microphone", "uuid": "EF680504-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "UART TX Characteristic", "identifier": "com.nordicsemi.characteristic.uart_tx", "uuid": "6E400003-B5A3-F393-E0A9-E50E24DCCA9E" , "source": "nordic"},
{ "name": "UART RX Characteristic", "identifier": "com.nordicsemi.characteristic.uart_rx", "uuid": "6E400002-B5A3-F393-E0A9-E50E24DCCA9E" , "source": "nordic"},
{ "name": "Eddystone Capabilities", "identifier": "com.google.characteristic.eddystone.capabilities", "uuid": "A3C87501-8ED3-4BDF-8A39-A01BEBEDE295" , "source": "google"},
{ "name": "Eddystone Active Slot", "identifier": "com.google.characteristic.eddystone.active_slot", "uuid": "A3C87502-8ED3-4BDF-8A39-A01BEBEDE295" , "source": "google"},
{ "name": "Eddystone Advertising Interval", "identifier": "com.google.characteristic.eddystone.advertising_interval", "uuid": "A3C87503-8ED3-4BDF-8A39-A01BEBEDE295" , "source": "google"},
{ "name": "Eddystone Radio Tx Power", "identifier": "com.google.characteristic.eddystone.radio_tx_power", "uuid": "A3C87504-8ED3-4BDF-8A39-A01BEBEDE295" , "source": "google"},
{ "name": "Eddystone (Advanced) Advertised Tx Power", "identifier": "com.google.characteristic.eddystone.advertised_tx_power", "uuid": "A3C87505-8ED3-4BDF-8A39-A01BEBEDE295" , "source": "google"},
{ "name": "Eddystone Lock State", "identifier": "com.google.characteristic.eddystone.lock_state", "uuid": "A3C87506-8ED3-4BDF-8A39-A01BEBEDE295" , "source": "google"},
{ "name": "Eddystone Unlock", "identifier": "com.google.characteristic.eddystone.unlock", "uuid": "A3C87507-8ED3-4BDF-8A39-A01BEBEDE295" , "source": "google"},
{ "name": "Eddystone Public ECDH Key", "identifier": "com.google.characteristic.eddystone.key.public_ecdh", "uuid": "A3C87508-8ED3-4BDF-8A39-A01BEBEDE295" , "source": "google"},
{ "name": "Eddystone EID Identity Key", "identifier": "com.google.characteristic.eddystone.key.eid_identity", "uuid": "A3C87509-8ED3-4BDF-8A39-A01BEBEDE295" , "source": "google"},
{ "name": "Eddystone ADV Slot Data", "identifier": "com.google.characteristic.eddystone.adv_slot_data", "uuid": "A3C8750A-8ED3-4BDF-8A39-A01BEBEDE295" , "source": "google"},
{ "name": "Eddystone Avanced Factory Reset", "identifier": "com.google.characteristic.eddystone.advanced_factory_reset", "uuid": "A3C8750B-8ED3-4BDF-8A39-A01BEBEDE295" , "source": "google"},
{ "name": "Eddystone (Advanced) Remain Connectable", "identifier": "com.google.characteristic.eddystone.remain_connectable", "uuid": "A3C8750C-8ED3-4BDF-8A39-A01BEBEDE295" , "source": "google"},
{ "name": "Fast Pair Model ID", "identifier": "com.google.service.fast_pair.model_id", "uuid": "FE2C1233-8366-4814-8EB0-01DE32100BEA" , "source": "google"},
{ "name": "Fast Pair Key-based Pairing", "identifier": "com.google.service.fast_pair.key_based_pairing", "uuid": "FE2C1234-8366-4814-8EB0-01DE32100BEA" , "source": "google"},
{ "name": "Fast Pair Passkey", "identifier": "com.google.service.fast_pair.passkey", "uuid": "FE2C1235-8366-4814-8EB0-01DE32100BEA" , "source": "google"},
{ "name": "Fast Pair Account Key", "identifier": "com.google.service.fast_pair.account_key", "uuid": "FE2C1236-8366-4814-8EB0-01DE32100BEA" , "source": "google"},
{ "name": "Fast Pair Data", "identifier": "com.google.service.fast_pair.data", "uuid": "FE2C1237-8366-4814-8EB0-01DE32100BEA" , "source": "google"},
{ "name": "Deprecated Fast Pair Model ID", "identifier": "com.google.service.deprecated.fast_pair.model_id", "uuid": "1233" , "source": "google"},
{ "name": "Deprecated Fast Pair Key-based Pairing", "identifier": "com.google.service.deprecated.fast_pair.key_based_pairing", "uuid": "1234" , "source": "google"},
{ "name": "Deprecated Fast Pair Passkey", "identifier": "com.google.service.deprecated.fast_pair.passkey", "uuid": "1235" , "source": "google"},
{ "name": "Deprecated Fast Pair Account Key", "identifier": "com.google.service.deprecated.fast_pair.account_key", "uuid": "1236" , "source": "google"},
{ "name": "Deprecated Fast Pair Data", "identifier": "com.google.service.deprecated.fast_pair.data", "uuid": "1237" , "source": "google"},
{ "name": "Apple Notification Source", "identifier": "com.apple.characteristic.notification_source", "uuid": "9FBF120D-6301-42D9-8C58-25E699A21DBD" , "source": "apple"},
{ "name": "Apple Control Point", "identifier": "com.apple.characteristic.control_point", "uuid": "69D1D8F3-45E1-49A8-9821-9BBDFDAAD9D9" , "source": "apple"},
{ "name": "Apple Data Source", "identifier": "com.apple.characteristic.data_source", "uuid": "22EAC6E9-24D6-4BB5-BE44-B36ACE7C7BFB" , "source": "apple"},
{ "name": "Apple Remote Command", "identifier": "com.apple.characteristic.media.remote_command", "uuid": "9B3C81D8-57B1-4A8A-B8DF-0E56F7CA51C2" , "source": "apple"},
{ "name": "Apple Entity Update", "identifier": "com.apple.characteristic.media.entity_update", "uuid": "2F7CABCE-808D-411F-9A0C-BB92BA96C102" , "source": "apple"},
{ "name": "Apple Entity Attribute", "identifier": "com.apple.characteristic.media.entity_attribute", "uuid": "C6B2F38C-23AB-46D8-A6AB-A3A870BBD5D7" , "source": "apple"},
{ "name": "micro:bit Accelerometer Data", "identifier": "org.microbit.characteristic.accelerometer_data", "uuid": "E95DCA4B-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Accelerometer Period", "identifier": "org.microbit.characteristic.accelerometer_period", "uuid": "E95DFB24-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Magnetometer Data", "identifier": "org.microbit.characteristic.magnetometer_data", "uuid": "E95DFB11-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Magnetometer Period", "identifier": "org.microbit.characteristic.magnetometer_period", "uuid": "E95D386C-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Magnetometer Bearing", "identifier": "org.microbit.characteristic.magnetometer_bearing", "uuid": "E95D9715-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Button A State", "identifier": "org.microbit.characteristic.button.a_state", "uuid": "E95DDA90-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Button B State", "identifier": "org.microbit.characteristic.button.b_state", "uuid": "E95DDA91-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Pin Data", "identifier": "org.microbit.characteristic.pin.data", "uuid": "E95D8D00-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Pin AD Configuration", "identifier": "org.microbit.characteristic.pin.ad_configuration", "uuid": "E95D5899-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Pin I/O Configuration", "identifier": "org.microbit.characteristic.pin.io_configuration", "uuid": "E95DB9FE-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit PWM Control", "identifier": "org.microbit.characteristic.pwm_control", "uuid": "E95DD822-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit LED Matrix State", "identifier": "org.microbit.characteristic.led.matrix_state", "uuid": "E95D7B77-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit LED Text", "identifier": "org.microbit.characteristic.led.text", "uuid": "E95D93EE-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Scrolling Delay", "identifier": "org.microbit.characteristic.scrolling_delay", "uuid": "E95D0D2D-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Requirements", "identifier": "org.microbit.characteristic.requirements", "uuid": "E95DB84C-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Event", "identifier": "org.microbit.characteristic.event", "uuid": "E95D9775-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Client Requirements", "identifier": "org.microbit.characteristic.client.requirements", "uuid": "E95D23C4-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Client Event", "identifier": "org.microbit.characteristic.client.event", "uuid": "E95D5404-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit DFU Control", "identifier": "org.microbit.characteristic.dfu.control", "uuid": "E95D93B1-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Temperature", "identifier": "org.microbit.characteristic.temperature", "uuid": "E95D9250-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Temperature Period", "identifier": "org.microbit.characteristic.temperature_period", "uuid": "E95D1B25-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "Mesh Provisioning Data In", "identifier": "org.bluetooth.characteristic.mesh_provisioning_data_in", "uuid": "2ADB" , "source": "gss"},
{ "name": "Mesh Provisioning Data Out", "identifier": "org.bluetooth.characteristic.mesh_provisioning_data_out", "uuid": "2ADC" , "source": "gss"},
{ "name": "Mesh Proxy Data In", "identifier": "org.bluetooth.characteristic.mesh_proxy_data_in", "uuid": "2ADD" , "source": "gss"},
{ "name": "Mesh Proxy Data Out", "identifier": "org.bluetooth.characteristic.mesh_proxy_data_out", "uuid": "2ADE" , "source": "gss"}
]

@ -0,0 +1,77 @@
[
{ "name": "Generic Access", "identifier": "org.bluetooth.service.generic_access", "uuid": "1800" , "source": "gss"},
{ "name": "Alert Notification Service", "identifier": "org.bluetooth.service.alert_notification", "uuid": "1811" , "source": "gss"},
{ "name": "Automation IO", "identifier": "org.bluetooth.service.automation_io" , "uuid": "1815" , "source": "gss"},
{ "name": "Battery Service", "identifier": "org.bluetooth.service.battery_service" , "uuid": "180F" , "source": "gss"},
{ "name": "Blood Pressure", "identifier": "org.bluetooth.service.blood_pressure" , "uuid": "1810" , "source": "gss"},
{ "name": "Body Composition", "identifier": "org.bluetooth.service.body_composition" , "uuid": "181B" , "source": "gss"},
{ "name": "Bond Management Service", "identifier": "org.bluetooth.service.bond_management" , "uuid": "181E" , "source": "gss"},
{ "name": "Continuous Glucose Monitoring", "identifier": "org.bluetooth.service.continuous_glucose_monitoring" , "uuid": "181F" , "source": "gss"},
{ "name": "Current Time Service" , "identifier": "org.bluetooth.service.current_time" , "uuid": "1805" , "source": "gss"},
{ "name": "Cycling Power" , "identifier": "org.bluetooth.service.cycling_power" , "uuid": "1818" , "source": "gss"},
{ "name": "Cycling Speed and Cadence", "identifier": "org.bluetooth.service.cycling_speed_and_cadence" , "uuid": "1816" , "source": "gss"},
{ "name": "Device Information", "identifier": "org.bluetooth.service.device_information" , "uuid": "180A" , "source": "gss"},
{ "name": "Environmental Sensing", "identifier": "org.bluetooth.service.environmental_sensing" , "uuid": "181A" , "source": "gss"},
{ "name": "Fitness Machine", "identifier": "org.bluetooth.service.fitness_machine" , "uuid": "1826" , "source": "gss"},
{ "name": "Generic Attribute", "identifier": "org.bluetooth.service.generic_attribute" , "uuid": "1801" , "source": "gss"},
{ "name": "Glucose", "identifier": "org.bluetooth.service.glucose" , "uuid": "1808" , "source": "gss"},
{ "name": "Health Thermometer", "identifier": "org.bluetooth.service.health_thermometer" , "uuid": "1809" , "source": "gss"},
{ "name": "Heart Rate", "identifier": "org.bluetooth.service.heart_rate" , "uuid": "180D" , "source": "gss"},
{ "name": "HTTP Proxy", "identifier": "org.bluetooth.service.http_proxy" , "uuid": "1823" , "source": "gss"},
{ "name": "Human Interface Device", "identifier": "org.bluetooth.service.human_interface_device" , "uuid": "1812" , "source": "gss"},
{ "name": "Immediate Alert", "identifier": "org.bluetooth.service.immediate_alert" , "uuid": "1802" , "source": "gss"},
{ "name": "Indoor Positioning", "identifier": "org.bluetooth.service.indoor_positioning" , "uuid": "1821" , "source": "gss"},
{ "name": "Insulin Delivery", "identifier": "org.bluetooth.service.insulin_delivery" , "uuid": "183A" , "source": "gss"},
{ "name": "Internet Protocol Support Service", "identifier": "org.bluetooth.service.internet_protocol_support" , "uuid": "1820" , "source": "gss"},
{ "name": "Link Loss", "identifier": "org.bluetooth.service.link_loss" , "uuid": "1803" , "source": "gss"},
{ "name": "Location and Navigation","identifier": "org.bluetooth.service.location_and_navigation" , "uuid": "1819" , "source": "gss"},
{ "name": "Mesh Provisioning Service", "identifier": "org.bluetooth.service.mesh_provisioning" , "uuid": "1827" , "source": "gss"},
{ "name": "Mesh Proxy Service", "identifier": " org.bluetooth.service.mesh_proxy" , "uuid": "1828" , "source": "gss"},
{ "name": "Next DST Change Service", "identifier": "org.bluetooth.service.next_dst_change" , "uuid": "1807" , "source": "gss"},
{ "name": "Object Transfer Service", "identifier": "org.bluetooth.service.object_transfer" , "uuid": "1825" , "source": "gss"},
{ "name": "Phone Alert Status Service", "identifier": "org.bluetooth.service.phone_alert_status" , "uuid": "180E" , "source": "gss"},
{ "name": "Pulse Oximeter Service", "identifier": "org.bluetooth.service.pulse_oximeter" , "uuid": "1822" , "source": "gss"},
{ "name": "Reconnection Configuration", "identifier": "org.bluetooth.service.reconnection_configuration" , "uuid": "1829" , "source": "gss"},
{ "name": "Reference Time Update Service", "identifier": "org.bluetooth.service.reference_time_update" , "uuid": "1806" , "source": "gss"},
{ "name": "Running Speed and Cadence", "identifier": "org.bluetooth.service.running_speed_and_cadence" , "uuid": "1814" , "source": "gss"},
{ "name": "Scan Parameters", "identifier": "org.bluetooth.service.scan_parameters" , "uuid": "1813" , "source": "gss"},
{ "name": "Transport Discovery", "identifier": "org.bluetooth.service.transport_discovery" , "uuid": "1824" , "source": "gss"},
{ "name": "Tx Power", "identifier": "org.bluetooth.service.tx_power" , "uuid": "1804" , "source": "gss"},
{ "name": "User Data", "identifier": "org.bluetooth.service.user_data" , "uuid": "181C" , "source": "gss"},
{ "name": "Weight Scale", "identifier": "org.bluetooth.service.weight_scale", "uuid": "181D" , "source": "gss"},
{ "name": "Firmware Revision", "identifier": "org.bluetooth.service.firmware_revision", "uuid": "2A26" , "source": "gss"},
{ "name": "Apple Notification Center Service", "identifier": "com.apple.service.notification_center", "uuid": "7905F431-B5CE-4E99-A40F-4B1E122D00D0" , "source": "apple"},
{ "name": "Apple Media Service", "identifier": "com.apple.service.media", "uuid": "89D3502B-0F36-433A-8EF4-C502AD55F8DC" , "source": "apple"},
{ "name": "micro:bit Accelerometer Service", "identifier": "org.microbit.service.accelerometer", "uuid": "E95D0753-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Magnetometer Service", "identifier": "org.microbit.service.magnetometer", "uuid": "E95DF2D8-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Button Service", "identifier": "org.microbit.service.button", "uuid": "E95D9882-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit IO Pin Service", "identifier": "org.microbit.service.io_pin", "uuid": "E95D127B-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit LED Service", "identifier": "org.microbit.service.led", "uuid": "E95DD91D-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Event Service", "identifier": "org.microbit.service.event", "uuid": "E95D93AF-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit DFU Control Service", "identifier": "org.microbit.service.dfu_control", "uuid": "E95D93B0-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "micro:bit Temperature Service", "identifier": "org.microbit.service.temperature", "uuid": "E95D6100-251D-470A-A062-FA1922DFA9A8" , "source": "microbit"},
{ "name": "Thingy Configuration Service", "identifier": "com.nordicsemi.service.thingy_configuration", "uuid": "EF680100-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Weather Station Service", "identifier": "com.nordicsemi.service.thingy_weather_station", "uuid": "EF680200-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy UI Service", "identifier": "com.nordicsemi.service.thingy_ui", "uuid": "EF680300-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Motion Service", "identifier": "com.nordicsemi.service.thingy_motion", "uuid": "EF680400-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Thingy Sound Service", "identifier": "com.nordicsemi.service.thingy_sound", "uuid": "EF680500-9B35-4933-9B10-52FFA9740042" , "source": "nordic"},
{ "name": "Nordic LED and Button Service", "identifier": "com.nordicsemi.service.led_and_button", "uuid": "00001523-1212-EFDE-1523-785FEABCD123" , "source": "nordic"},
{ "name": "Nordic UART Service", "identifier": "com.nordicsemi.service.uart", "uuid": "6E400001-B5A3-F393-E0A9-E50E24DCCA9E" , "source": "nordic"},
{ "name": "Eddystone", "identifier": "com.google.service.eddystone", "uuid": "FEAA" , "source": "google"},
{ "name": "Eddystone Configuration Service", "identifier": "com.google.service.eddystone.configuration", "uuid": "A3C87500-8ED3-4BDF-8A39-A01BEBEDE295" , "source": "google"},
{ "name": "Fast Pair Service", "identifier": "com.google.service.fast_pair", "uuid": "FE2C" , "source": "google"},
{ "name": "Legacy DFU Service", "identifier": "com.nordicsemi.service.dfu.legacy", "uuid": "00001530-1212-EFDE-1523-785FEABCD123" , "source": "nordic"},
{ "name": "Secure DFU Service", "identifier": "com.nordicsemi.service.dfu.secure", "uuid": "FE59" , "source": "nordic"},
{ "name": "Experimental Buttonless DFU Service", "identifier": "com.nordicsemi.service.dfu.buttonless_experimental", "uuid": "8E400001-F315-4F60-9FB8-838830DAEA50" , "source": "nordic"},
{ "name": "Exposure Notification Service", "identifier": "com.apple.service.contacttracing", "uuid": "FD6F" , "source": "apple"},
{ "name": "SMP Service", "identifier": "io.runtime.mcumgr.ble.smp", "uuid": "8D53DC1D-1DB7-4CD3-868B-8A527460AA84" , "source": "apache"}
]

@ -0,0 +1,207 @@
// 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
//
package bluetooth
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 - Location and Navigation
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,})
)

@ -0,0 +1,96 @@
// +build ignore
package main
import (
"encoding/hex"
"encoding/json"
"fmt"
"io/ioutil"
"os"
"strings"
"text/template"
"time"
"tinygo.org/x/bluetooth"
)
type Characteristic struct {
Name string `json:"name"`
Identifier string `json:"identifier"`
UUID string `json:"uuid"`
Source string `json:"source"`
}
func (c Characteristic) VarName() string {
str := strings.ReplaceAll(c.Name, "Characteristic", "")
str = strings.ReplaceAll(str, ":", "")
str = strings.ReplaceAll(str, "-", "")
str = strings.ReplaceAll(str, "(", "")
str = strings.ReplaceAll(str, ")", "")
str = strings.ReplaceAll(str, "/", "")
str = strings.Title(str)
return strings.ReplaceAll(str, " ", "")
}
func (c Characteristic) UUIDFunc() string {
if len(c.UUID) == 4 {
return "New16BitUUID(0x" + c.UUID + ")"
}
uuid, err := bluetooth.ParseUUID(strings.ToLower(c.UUID))
if err != nil {
panic(err)
}
b := uuid.Bytes()
bs := hex.EncodeToString(b[:])
bss := ""
for i := 0; i < len(bs); i += 2 {
bss = "0x" + bs[i:i+2] + "," + bss
}
return "NewUUID([16]byte{" + bss + "})"
}
func main() {
jsonFile, err := os.Open("data/characteristic_uuids.json")
if err != nil {
fmt.Println(err)
}
defer jsonFile.Close()
data, _ := ioutil.ReadAll(jsonFile)
var characteristics []Characteristic
json.Unmarshal(data, &characteristics)
f, err := os.Create("characteristic_uuids.go")
if err != nil {
fmt.Println(err)
return
}
defer f.Close()
packageTemplate := template.Must(template.New("").Parse(tmpl))
packageTemplate.Execute(f, struct {
Timestamp time.Time
Characteristics []Characteristic
}{
Timestamp: time.Now(),
Characteristics: characteristics,
})
}
var tmpl = `// Code generated by bin/gen-characteristic-uuids; DO NOT EDIT.
// This file was generated on {{.Timestamp}} using the list of standard characteristics UUIDs from
// https://github.com/NordicSemiconductor/bluetooth-numbers-database/blob/master/v1/characteristics_uuids.json
//
package bluetooth
var (
{{ range .Characteristics }}
// CharacteristicUUID{{.VarName}} - {{.Name}}
CharacteristicUUID{{.VarName}} = {{.UUIDFunc}}
{{ end }}
)
`

@ -0,0 +1,93 @@
// +build ignore
package main
import (
"encoding/hex"
"encoding/json"
"fmt"
"io/ioutil"
"os"
"strings"
"text/template"
"time"
"tinygo.org/x/bluetooth"
)
type Service struct {
Name string `json:"name"`
Identifier string `json:"identifier"`
UUID string `json:"uuid"`
Source string `json:"source"`
}
func (s Service) VarName() string {
str := strings.ReplaceAll(s.Name, "Service", "")
str = strings.ReplaceAll(str, ":", "")
str = strings.ReplaceAll(str, "-", "")
str = strings.Title(str)
return strings.ReplaceAll(str, " ", "")
}
func (s Service) UUIDFunc() string {
if len(s.UUID) == 4 {
return "New16BitUUID(0x" + s.UUID + ")"
}
uuid, err := bluetooth.ParseUUID(strings.ToLower(s.UUID))
if err != nil {
panic(err)
}
b := uuid.Bytes()
bs := hex.EncodeToString(b[:])
bss := ""
for i := 0; i < len(bs); i += 2 {
bss = "0x" + bs[i:i+2] + "," + bss
}
return "NewUUID([16]byte{" + bss + "})"
}
func main() {
jsonFile, err := os.Open("data/service_uuids.json")
if err != nil {
fmt.Println(err)
}
defer jsonFile.Close()
data, _ := ioutil.ReadAll(jsonFile)
var services []Service
json.Unmarshal(data, &services)
f, err := os.Create("service_uuids.go")
if err != nil {
fmt.Println(err)
return
}
defer f.Close()
packageTemplate := template.Must(template.New("").Parse(tmpl))
packageTemplate.Execute(f, struct {
Timestamp time.Time
Services []Service
}{
Timestamp: time.Now(),
Services: services,
})
}
var tmpl = `// Code generated by bin/gen-service-uuids; DO NOT EDIT.
// This file was generated on {{.Timestamp}} using the list of standard service UUIDs from
// https://github.com/NordicSemiconductor/bluetooth-numbers-database/blob/master/v1/service_uuids.json
//
package bluetooth
var (
{{ range .Services }}
// ServiceUUID{{.VarName}} - {{.Name}}
ServiceUUID{{.VarName}} = {{.UUIDFunc}}
{{ end }}
)
`
Loading…
Cancel
Save