# @rickosborne/bluetools

TypeScript/ES/JS for working with Bluetooth devices via node.

This library _does not_ attempt to do all the low-level [Web Bluetooth API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API) stuff.
Instead, it contains a bunch of types, classes, and functions auto-generated from the Bluetooth Characteristic and Descriptor reference XML.

Basically, it attempts to help with that annoying step of "okay, I got my nodejs/browser talking to the device, now how do I read the data?" part.

> ⚠️⚠️⚠️ ***This library does not attempt to cover the various edge cases of the real world or the Web Bluetooth spec.*** ⚠️⚠️⚠️

Indeed, I probably got a bunch of stuff wrong, as the source XML files for the data specs have almost zero examples.
I've tested it on a few of my own devices (heart rate monitors, mostly), but I don't claim that all the fiddly stuff will actually work.
Use at your own risk.  YMMV.  All that.

As most of the code in this library is auto-generated, it all follows the same pattern:

- An interface for the fields parsed from the Characteristic / Descriptor.
- A class which implements that interface, and also holds static constants like the UUID and Name.
- A parser function which can read a `DataView` and generate instances of the class.

I have not converted _all_ the Characteristics or Descriptors.
If you have access to one of the XML sources you'd like to see added, file a GitHub issue.
You can also try generating them on your own using the `scripts/from-xml.ts` and `scripts/gatt-assigned.ts` scripts.
The former does most of the code generation, while the latter just adds to the UUID records.

> ⚠️⚠️⚠️ The code here is based off the circa 2017 XML specs, ***not*** the circa 2020 YAML specs.  The code may be out of date.  ⚠️⚠️⚠️

The YAML specs don't have nearly as much detail, and would be much harder to convert.
You can see them here:

https://bitbucket.org/bluetooth-SIG/public/src/main/gss/

Sadly, the XML versions have been removed.
Though, if you were industrious, you could find them.
## Usage

Install via your favorite package manager.

Each package supports CommonJS `require`, ESM `import`, and TypeScript usage.

You also have a choice: barrel imports or direct imports.

Barrel imports mean you're going to require/import everything from the same package-level namespace:

```typescript
// CommonJS
const { isPlainObject, isListOf } = require("@rickosborne/guard");
// ESM / TypeScript
import { isPlainObject, isListOf } from "@rickosborne/guard";
```

Implications:

- Nice and simple.
- Your build system needs to do tree-shaking well ... or you'll end up adding the entire package even if you only import two functions.

The other option is to use direct imports:

```typescript
// CommonJS
const { isPlainObject } = require("@rickosborne/guard/is-object");
const { isListOf } = require("@rickosborne/guard/is-list-of");
// ESM / TypeScript
import { isPlainObject } from "@rickosborne/guard/is-object.js";
import { isListOf } from "@rickosborne/guard/is-list-of.js";
```

Implications:

- You (probably) don't have to worry about tree-shaking as your build (likely) ends up with only the functions you need.

If you're using a modern build system, there aren't any strong reasons to prefer one way over the other.
It's really just down to your personal preference.

### A quick note about file extensions

Do you need to use file extensions?
And if so, which extensions?

Honestly ... this is a dumpster fire question.
It really comes down to your own setup and configuration.

Within each package itself:

- The CommonJS files all have `.cjs` extensions.
- The ESM files all have `.mjs` extensions.
- Node subpath exports have been set up to send `.js` imports to the `.cjs` (via `require`) or `.mjs` (via `import`) files, depending on your setup.

So, in theory, the only extension which _won't_ work would be `.ts` because the source isn't included.

If you run into a problem with a particular configuration, file a GitHub issue with:

- Your `tsconfig.json`'s `module`, `moduleResolution`, and `target` settings.
- Your `package.json`'s `type` and `imports` settings.
- An example of another package which imports correctly for you.

## License

This package is licensed as [CC-BY-NC-SA-4.0] unless otherwise noted.
That is, Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International.

[CC-BY-NC-SA-4.0]: https://creativecommons.org/licenses/by-nc-sa/4.0/


***

## API

### Classes

#### AerobicHeartRateLowerLimitImpl

<a id="api-aerobicheartratelowerlimitimpl"></a>

```typescript
 class AerobicHeartRateLowerLimitImpl implements AerobicHeartRateLowerLimit 
```

#### AerobicHeartRateUpperLimitImpl

<a id="api-aerobicheartrateupperlimitimpl"></a>

```typescript
 class AerobicHeartRateUpperLimitImpl implements AerobicHeartRateUpperLimit 
```

#### AerobicThresholdImpl

<a id="api-aerobicthresholdimpl"></a>

```typescript
 class AerobicThresholdImpl implements AerobicThreshold 
```

Aerobic Threshold and Anaerobic Threshold together with the Sport Type for Aerobic and Anaerobic Thresholds describe the metabolic thresholds of the user. The Sport Type for Aerobic and Anaerobic Thresholds identifies how the measurement was performed.



#### AgeImpl

<a id="api-ageimpl"></a>

```typescript
 class AgeImpl implements Age 
```

#### AggregateImpl

<a id="api-aggregateimpl"></a>

```typescript
 class AggregateImpl implements Aggregate 
```

The fields in the above table, reading from top to bottom, are shown in the order of LSO to MSO, where LSO = Least Significant Octet and MSO = Most Significant Octet.



#### AlertCategoryIdBitMaskImpl

<a id="api-alertcategoryidbitmaskimpl"></a>

```typescript
 class AlertCategoryIdBitMaskImpl implements AlertCategoryIdBitMask 
```

#### AlertCategoryIdImpl

<a id="api-alertcategoryidimpl"></a>

```typescript
 class AlertCategoryIdImpl implements AlertCategoryId 
```

#### AlertLevelImpl

<a id="api-alertlevelimpl"></a>

```typescript
 class AlertLevelImpl implements AlertLevel 
```

#### AlertNotificationControlPointImpl

<a id="api-alertnotificationcontrolpointimpl"></a>

```typescript
 class AlertNotificationControlPointImpl implements AlertNotificationControlPoint 
```

#### AlertStatusImpl

<a id="api-alertstatusimpl"></a>

```typescript
 class AlertStatusImpl implements AlertStatus 
```

#### AltitudeImpl

<a id="api-altitudeimpl"></a>

```typescript
 class AltitudeImpl implements Altitude 
```

#### AnaerobicHeartRateLowerLimitImpl

<a id="api-anaerobicheartratelowerlimitimpl"></a>

```typescript
 class AnaerobicHeartRateLowerLimitImpl implements AnaerobicHeartRateLowerLimit 
```

#### AnaerobicHeartRateUpperLimitImpl

<a id="api-anaerobicheartrateupperlimitimpl"></a>

```typescript
 class AnaerobicHeartRateUpperLimitImpl implements AnaerobicHeartRateUpperLimit 
```

#### AnaerobicThresholdImpl

<a id="api-anaerobicthresholdimpl"></a>

```typescript
 class AnaerobicThresholdImpl implements AnaerobicThreshold 
```

Aerobic Threshold and Anaerobic Threshold together with the Sport Type for Aerobic and Anaerobic Thresholds describe the metabolic thresholds of the user. The Sport Type for Aerobic and Anaerobic Thresholds identifies how the measurement was performed.



#### AnalogImpl

<a id="api-analogimpl"></a>

```typescript
 class AnalogImpl implements Analog 
```

The Octet Order in the above table is in the order of LSO to MSO, where LSO = Least Significant Octet and MSO = Most Significant Octet.



#### ApparentWindDirectionImpl

<a id="api-apparentwinddirectionimpl"></a>

```typescript
 class ApparentWindDirectionImpl implements ApparentWindDirection 
```

#### ApparentWindSpeedImpl

<a id="api-apparentwindspeedimpl"></a>

```typescript
 class ApparentWindSpeedImpl implements ApparentWindSpeed 
```

#### BarometricPressureTrendImpl

<a id="api-barometricpressuretrendimpl"></a>

```typescript
 class BarometricPressureTrendImpl implements BarometricPressureTrend 
```

#### BatteryLevelImpl

<a id="api-batterylevelimpl"></a>

```typescript
 class BatteryLevelImpl implements BatteryLevel 
```

#### BloodPressureFeatureImpl

<a id="api-bloodpressurefeatureimpl"></a>

```typescript
 class BloodPressureFeatureImpl implements BloodPressureFeature 
```

#### BloodPressureMeasurementImpl

<a id="api-bloodpressuremeasurementimpl"></a>

```typescript
 class BloodPressureMeasurementImpl implements BloodPressureMeasurement 
```

#### BodyCompositionFeatureImpl

<a id="api-bodycompositionfeatureimpl"></a>

```typescript
 class BodyCompositionFeatureImpl implements BodyCompositionFeature 
```

#### BodyCompositionMeasurementImpl

<a id="api-bodycompositionmeasurementimpl"></a>

```typescript
 class BodyCompositionMeasurementImpl implements BodyCompositionMeasurement 
```

The fields in the above table are in the order of LSO to MSO. Where LSO = Least Significant Octet and MSO = Most Significant Octet.



#### BodySensorLocationImpl

<a id="api-bodysensorlocationimpl"></a>

```typescript
 class BodySensorLocationImpl implements BodySensorLocation 
```

#### BootKeyboardInputReportImpl

<a id="api-bootkeyboardinputreportimpl"></a>

```typescript
 class BootKeyboardInputReportImpl implements BootKeyboardInputReport 
```

#### BootKeyboardOutputReportImpl

<a id="api-bootkeyboardoutputreportimpl"></a>

```typescript
 class BootKeyboardOutputReportImpl implements BootKeyboardOutputReport 
```

#### BootMouseInputReportImpl

<a id="api-bootmouseinputreportimpl"></a>

```typescript
 class BootMouseInputReportImpl implements BootMouseInputReport 
```

#### CgmFeatureImpl

<a id="api-cgmfeatureimpl"></a>

```typescript
 class CgmFeatureImpl implements CgmFeature 
```

1. The fields in the above table are in the order of LSO to MSO. Where LSO = Least Significant Octet and MSO = Most Significant Octet 2. The CGM Type and CGM Sample Location Fields are each a nibble (4bit), where the least significant nibble contains the Type and the most significant nibble contains the Sample Location. These two nibbles are packed as one single octet, the Least Significant Nibble means the four bits numbered 0, 1, 2 and 3 of the octet and the Most Significant Nibble means the four bits numbered 4, 5, 6 and 7 of that octet



#### CrossTrainerDataImpl

<a id="api-crosstrainerdataimpl"></a>

```typescript
 class CrossTrainerDataImpl implements CrossTrainerData 
```

#### CscFeatureImpl

<a id="api-cscfeatureimpl"></a>

```typescript
 class CscFeatureImpl implements CscFeature 
```

#### CscMeasurementImpl

<a id="api-cscmeasurementimpl"></a>

```typescript
 class CscMeasurementImpl implements CscMeasurement 
```

#### CurrentTimeImpl

<a id="api-currenttimeimpl"></a>

```typescript
 class CurrentTimeImpl implements CurrentTime 
```

#### CyclingPowerFeatureImpl

<a id="api-cyclingpowerfeatureimpl"></a>

```typescript
 class CyclingPowerFeatureImpl implements CyclingPowerFeature 
```

#### CyclingPowerMeasurementImpl

<a id="api-cyclingpowermeasurementimpl"></a>

```typescript
 class CyclingPowerMeasurementImpl implements CyclingPowerMeasurement 
```

The fields in the above table, reading from top to bottom, are shown in the order of LSO to MSO, where LSO = Least Significant Octet and MSO = Most Significant Octet. The Least Significant Octet represents the eight bits numbered 0 to 7.



#### CyclingPowerVectorImpl

<a id="api-cyclingpowervectorimpl"></a>

```typescript
 class CyclingPowerVectorImpl implements CyclingPowerVector 
```

The fields in the above table, reading from top to bottom, are shown in the order of LSO to MSO, where LSO = Least Significant Octet and MSO = Most Significant Octet. The Least Significant Octet represents the eight bits numbered 0 to 7.



#### DatabaseChangeIncrementImpl

<a id="api-databasechangeincrementimpl"></a>

```typescript
 class DatabaseChangeIncrementImpl implements DatabaseChangeIncrement 
```

#### DataViewReader

<a id="api-dataviewreader"></a>

```typescript
 class DataViewReader 
```

#### DateOfBirthImpl

<a id="api-dateofbirthimpl"></a>

```typescript
 class DateOfBirthImpl implements DateOfBirth 
```

The fields in the above table are in the order of LSO to MSO. Where LSO = Least Significant Octet and MSO = Most Significant Octet.



#### DateOfThresholdAssessmentImpl

<a id="api-dateofthresholdassessmentimpl"></a>

```typescript
 class DateOfThresholdAssessmentImpl implements DateOfThresholdAssessment 
```

The fields in the above table are in the order of LSO to MSO. Where LSO = Least Significant Octet and MSO = Most Significant Octet.



#### DateTimeImpl

<a id="api-datetimeimpl"></a>

```typescript
 class DateTimeImpl implements DateTime 
```

#### DayDateTimeImpl

<a id="api-daydatetimeimpl"></a>

```typescript
 class DayDateTimeImpl implements DayDateTime 
```

#### DayOfWeekImpl

<a id="api-dayofweekimpl"></a>

```typescript
 class DayOfWeekImpl implements DayOfWeek 
```

#### DewPointImpl

<a id="api-dewpointimpl"></a>

```typescript
 class DewPointImpl implements DewPoint 
```

#### DigitalImpl

<a id="api-digitalimpl"></a>

```typescript
 class DigitalImpl implements Digital 
```

The Octet Order in the above table is in the order of LSO to MSO, where LSO = Least Significant Octet and MSO = Most Significant Octet.



#### DstOffsetImpl

<a id="api-dstoffsetimpl"></a>

```typescript
 class DstOffsetImpl implements DstOffset 
```

#### ElevationImpl

<a id="api-elevationimpl"></a>

```typescript
 class ElevationImpl implements Elevation 
```

#### EmailAddressImpl

<a id="api-emailaddressimpl"></a>

```typescript
 class EmailAddressImpl implements EmailAddress 
```

The length of the utf8s-based UDS Characteristic is variable and may exceed the default ATT_MTU defined in the Core Specification.



#### ExactTime256Impl

<a id="api-exacttime256impl"></a>

```typescript
 class ExactTime256Impl implements ExactTime256 
```

#### FatBurnHeartRateLowerLimitImpl

<a id="api-fatburnheartratelowerlimitimpl"></a>

```typescript
 class FatBurnHeartRateLowerLimitImpl implements FatBurnHeartRateLowerLimit 
```

#### FatBurnHeartRateUpperLimitImpl

<a id="api-fatburnheartrateupperlimitimpl"></a>

```typescript
 class FatBurnHeartRateUpperLimitImpl implements FatBurnHeartRateUpperLimit 
```

#### FirmwareRevisionStringImpl

<a id="api-firmwarerevisionstringimpl"></a>

```typescript
 class FirmwareRevisionStringImpl implements FirmwareRevisionString 
```

#### FirstNameImpl

<a id="api-firstnameimpl"></a>

```typescript
 class FirstNameImpl implements FirstName 
```

The length of the utf8s-based UDS Characteristics is variable and may exceed the default ATT_MTU defined in the Core Specification.



#### FiveZoneHeartRateLimitsImpl

<a id="api-fivezoneheartratelimitsimpl"></a>

```typescript
 class FiveZoneHeartRateLimitsImpl implements FiveZoneHeartRateLimits 
```

The fields in the above table are in the order of LSO to MSO. Where LSO = Least Significant Octet and MSO = Most Significant Octet.



#### FloorNumberImpl

<a id="api-floornumberimpl"></a>

```typescript
 class FloorNumberImpl implements FloorNumber 
```

#### GapAppearanceImpl

<a id="api-gapappearanceimpl"></a>

```typescript
 class GapAppearanceImpl implements GapAppearance 
```

#### GapDeviceNameImpl

<a id="api-gapdevicenameimpl"></a>

```typescript
 class GapDeviceNameImpl implements GapDeviceName 
```

#### GapPeripheralPreferredConnectionParametersImpl

<a id="api-gapperipheralpreferredconnectionparametersimpl"></a>

```typescript
 class GapPeripheralPreferredConnectionParametersImpl implements GapPeripheralPreferredConnectionParameters 
```

#### GapPeripheralPrivacyFlagImpl

<a id="api-gapperipheralprivacyflagimpl"></a>

```typescript
 class GapPeripheralPrivacyFlagImpl implements GapPeripheralPrivacyFlag 
```

#### GapReconnectionAddressImpl

<a id="api-gapreconnectionaddressimpl"></a>

```typescript
 class GapReconnectionAddressImpl implements GapReconnectionAddress 
```

#### GattCharacteristicAggregateFormatImpl

<a id="api-gattcharacteristicaggregateformatimpl"></a>

```typescript
 class GattCharacteristicAggregateFormatImpl implements GattCharacteristicAggregateFormat 
```

#### GattCharacteristicExtendedPropertiesImpl

<a id="api-gattcharacteristicextendedpropertiesimpl"></a>

```typescript
 class GattCharacteristicExtendedPropertiesImpl implements GattCharacteristicExtendedProperties 
```

#### GattCharacteristicPresentationFormatImpl

<a id="api-gattcharacteristicpresentationformatimpl"></a>

```typescript
 class GattCharacteristicPresentationFormatImpl implements GattCharacteristicPresentationFormat 
```

#### GattCharacteristicUserDescriptionImpl

<a id="api-gattcharacteristicuserdescriptionimpl"></a>

```typescript
 class GattCharacteristicUserDescriptionImpl implements GattCharacteristicUserDescription 
```

#### GattClientCharacteristicConfigurationImpl

<a id="api-gattclientcharacteristicconfigurationimpl"></a>

```typescript
 class GattClientCharacteristicConfigurationImpl implements GattClientCharacteristicConfiguration 
```

#### GattServerCharacteristicConfigurationImpl

<a id="api-gattservercharacteristicconfigurationimpl"></a>

```typescript
 class GattServerCharacteristicConfigurationImpl implements GattServerCharacteristicConfiguration 
```

#### GattServiceChangedImpl

<a id="api-gattservicechangedimpl"></a>

```typescript
 class GattServiceChangedImpl implements GattServiceChanged 
```

#### GenderImpl

<a id="api-genderimpl"></a>

```typescript
 class GenderImpl implements Gender 
```

#### GlucoseFeatureImpl

<a id="api-glucosefeatureimpl"></a>

```typescript
 class GlucoseFeatureImpl implements GlucoseFeature 
```

#### GlucoseMeasurementContextImpl

<a id="api-glucosemeasurementcontextimpl"></a>

```typescript
 class GlucoseMeasurementContextImpl implements GlucoseMeasurementContext 
```

Where fields with the format ?nibble? have been defined in the above table, the fields are shown in the order of Least Significant Nibble first, when reading the table from top to bottom. Where the characteristic definition contains two adjacent nibbles and the service specification has defined that that pair of nibbles comprise a single octet, the Least Significant Nibble means the four bits numbered 0, 1, 2 and 3 of the octet and the Most Significant Nibble means the four bits numbered 4, 5, 6 and 7 of that octet.



#### GlucoseMeasurementImpl

<a id="api-glucosemeasurementimpl"></a>

```typescript
 class GlucoseMeasurementImpl implements GlucoseMeasurement 
```

Where fields with the format ?nibble? have been defined in the above table, the fields are shown in the order of Least Significant Nibble first, when reading the table from top to bottom. Where the characteristic definition contains two adjacent nibbles and the service specification has defined that that pair of nibbles comprise a single octet, the Least Significant Nibble means the four bits numbered 0, 1, 2 and 3 of the octet and the Most Significant Nibble means the four bits numbered 4, 5, 6 and 7 of that octet.



#### GustFactorImpl

<a id="api-gustfactorimpl"></a>

```typescript
 class GustFactorImpl implements GustFactor 
```

#### HardwareRevisionStringImpl

<a id="api-hardwarerevisionstringimpl"></a>

```typescript
 class HardwareRevisionStringImpl implements HardwareRevisionString 
```

#### HeartRateControlPointImpl

<a id="api-heartratecontrolpointimpl"></a>

```typescript
 class HeartRateControlPointImpl implements HeartRateControlPoint 
```

#### HeartRateMaxImpl

<a id="api-heartratemaximpl"></a>

```typescript
 class HeartRateMaxImpl implements HeartRateMax 
```

#### HeartRateMeasurementImpl

<a id="api-heartratemeasurementimpl"></a>

```typescript
 class HeartRateMeasurementImpl implements HeartRateMeasurement 
```

The fields in the above table are in the order of LSO to MSO. Where LSO = Least Significant Octet and MSO = Most Significant Octet.



#### HeatIndexImpl

<a id="api-heatindeximpl"></a>

```typescript
 class HeatIndexImpl implements HeatIndex 
```

#### HeightImpl

<a id="api-heightimpl"></a>

```typescript
 class HeightImpl implements Height 
```

#### HidControlPointImpl

<a id="api-hidcontrolpointimpl"></a>

```typescript
 class HidControlPointImpl implements HidControlPoint 
```

#### HidInformationImpl

<a id="api-hidinformationimpl"></a>

```typescript
 class HidInformationImpl implements HidInformation 
```

#### HipCircumferenceImpl

<a id="api-hipcircumferenceimpl"></a>

```typescript
 class HipCircumferenceImpl implements HipCircumference 
```

#### HttpControlPointImpl

<a id="api-httpcontrolpointimpl"></a>

```typescript
 class HttpControlPointImpl implements HttpControlPoint 
```

#### HttpEntityBodyImpl

<a id="api-httpentitybodyimpl"></a>

```typescript
 class HttpEntityBodyImpl implements HttpEntityBody 
```

#### HttpHeadersImpl

<a id="api-httpheadersimpl"></a>

```typescript
 class HttpHeadersImpl implements HttpHeaders 
```

#### HttpsSecurityImpl

<a id="api-httpssecurityimpl"></a>

```typescript
 class HttpsSecurityImpl implements HttpsSecurity 
```

#### HttpStatusCodeImpl

<a id="api-httpstatuscodeimpl"></a>

```typescript
 class HttpStatusCodeImpl implements HttpStatusCode 
```

#### HumidityImpl

<a id="api-humidityimpl"></a>

```typescript
 class HumidityImpl implements Humidity 
```

#### IndoorBikeDataImpl

<a id="api-indoorbikedataimpl"></a>

```typescript
 class IndoorBikeDataImpl implements IndoorBikeData 
```

#### IndoorPositioningConfigurationImpl

<a id="api-indoorpositioningconfigurationimpl"></a>

```typescript
 class IndoorPositioningConfigurationImpl implements IndoorPositioningConfiguration 
```

#### IntermediateCuffPressureImpl

<a id="api-intermediatecuffpressureimpl"></a>

```typescript
 class IntermediateCuffPressureImpl implements IntermediateCuffPressure 
```

#### IntermediateTemperatureImpl

<a id="api-intermediatetemperatureimpl"></a>

```typescript
 class IntermediateTemperatureImpl implements IntermediateTemperature 
```

#### IrradianceImpl

<a id="api-irradianceimpl"></a>

```typescript
 class IrradianceImpl implements Irradiance 
```

#### LanguageImpl

<a id="api-languageimpl"></a>

```typescript
 class LanguageImpl implements Language 
```

#### LastNameImpl

<a id="api-lastnameimpl"></a>

```typescript
 class LastNameImpl implements LastName 
```

The length of the utf8s-based UDS Characteristic is variable and may exceed the default ATT_MTU defined in the Core Specification.



#### LatitudeImpl

<a id="api-latitudeimpl"></a>

```typescript
 class LatitudeImpl implements Latitude 
```

#### LnFeatureImpl

<a id="api-lnfeatureimpl"></a>

```typescript
 class LnFeatureImpl implements LnFeature 
```

#### LocalEastCoordinateImpl

<a id="api-localeastcoordinateimpl"></a>

```typescript
 class LocalEastCoordinateImpl implements LocalEastCoordinate 
```

#### LocalNorthCoordinateImpl

<a id="api-localnorthcoordinateimpl"></a>

```typescript
 class LocalNorthCoordinateImpl implements LocalNorthCoordinate 
```

#### LocalTimeInformationImpl

<a id="api-localtimeinformationimpl"></a>

```typescript
 class LocalTimeInformationImpl implements LocalTimeInformation 
```

#### LocationAndSpeedImpl

<a id="api-locationandspeedimpl"></a>

```typescript
 class LocationAndSpeedImpl implements LocationAndSpeed 
```

#### LocationNameImpl

<a id="api-locationnameimpl"></a>

```typescript
 class LocationNameImpl implements LocationName 
```

#### LongitudeImpl

<a id="api-longitudeimpl"></a>

```typescript
 class LongitudeImpl implements Longitude 
```

#### MagneticDeclinationImpl

<a id="api-magneticdeclinationimpl"></a>

```typescript
 class MagneticDeclinationImpl implements MagneticDeclination 
```

#### MagneticFluxDensity2DImpl

<a id="api-magneticfluxdensity2dimpl"></a>

```typescript
 class MagneticFluxDensity2DImpl implements MagneticFluxDensity2D 
```

The fields in the above table are in the order of LSO to MSO. Where LSO = Least Significant Octet and MSO = Most Significant Octet



#### MagneticFluxDensity3DImpl

<a id="api-magneticfluxdensity3dimpl"></a>

```typescript
 class MagneticFluxDensity3DImpl implements MagneticFluxDensity3D 
```

The fields in the above table are in the order of LSO to MSO. Where LSO = Least Significant Octet and MSO = Most Significant Octet



#### ManufacturerNameStringImpl

<a id="api-manufacturernamestringimpl"></a>

```typescript
 class ManufacturerNameStringImpl implements ManufacturerNameString 
```

#### MaximumRecommendedHeartRateImpl

<a id="api-maximumrecommendedheartrateimpl"></a>

```typescript
 class MaximumRecommendedHeartRateImpl implements MaximumRecommendedHeartRate 
```

#### MeasurementIntervalImpl

<a id="api-measurementintervalimpl"></a>

```typescript
 class MeasurementIntervalImpl implements MeasurementInterval 
```

#### ModelNumberStringImpl

<a id="api-modelnumberstringimpl"></a>

```typescript
 class ModelNumberStringImpl implements ModelNumberString 
```

#### NavigationImpl

<a id="api-navigationimpl"></a>

```typescript
 class NavigationImpl implements Navigation 
```

#### NewAlertImpl

<a id="api-newalertimpl"></a>

```typescript
 class NewAlertImpl implements NewAlert 
```

The usage of this text is up to the implementation, but the recommended text for the category is defined as following for best user experience: Category: Simple Alert - The title of the alert Category: Email - Sender name Category: News - Title of the news feed Category: Call - Caller name or caller ID Category: Missed call - Caller name or caller ID Category: SMS - Sender name or caller ID Category: Voice mail - Sender name or caller ID Category: Schedule - Title of the schedule Category Hig:h Prioritized Aler - Title of the alert Category: Instant Messaging - Sender name



#### NumberOfDigitalsImpl

<a id="api-numberofdigitalsimpl"></a>

```typescript
 class NumberOfDigitalsImpl implements NumberOfDigitals 
```

#### ObjectFirstCreatedImpl

<a id="api-objectfirstcreatedimpl"></a>

```typescript
 class ObjectFirstCreatedImpl implements ObjectFirstCreated 
```

The fields in the above table, reading from top to bottom, are shown in the order of LSO to MSO, where LSO = Least Significant Octet and MSO = Most Significant Octet. Data Type: Same format as the Date Time characteristic



#### ObjectIdImpl

<a id="api-objectidimpl"></a>

```typescript
 class ObjectIdImpl implements ObjectId 
```

The fields in the above table, reading from top to bottom, are shown in the order of LSO to MSO, where LSO = Least Significant Octet and MSO = Most Significant Octet.



#### ObjectLastModifiedImpl

<a id="api-objectlastmodifiedimpl"></a>

```typescript
 class ObjectLastModifiedImpl implements ObjectLastModified 
```

The fields in the above table, reading from top to bottom, are shown in the order of LSO to MSO, where LSO = Least Significant Octet and MSO = Most Significant Octet. Data Type: Same format as the Date Time characteristic



#### ObjectNameImpl

<a id="api-objectnameimpl"></a>

```typescript
 class ObjectNameImpl implements ObjectName 
```

Characters which require more than one octet when encoded in UTF-8 are transmitted with the leading byte first, followed by the continuation bytes ordered in accordance with UTF-8 encoding. In UTF-8, the leading byte is identified by possessing two or more high-order 1?s followed by a 0 while continuation bytes all have '10' in the high-order position. Strings which consist of more than one character are transmitted in the following order: the character which appears furthest to the left when the string is presented in its written form shall be sent first, followed by the remaining characters in order.



#### ObjectSizeImpl

<a id="api-objectsizeimpl"></a>

```typescript
 class ObjectSizeImpl implements ObjectSize 
```

The fields in the above table, reading from top to bottom, are shown in the order of LSO to MSO, where LSO = Least Significant Octet and MSO = Most Significant Octet.



#### PlxContinuousMeasurementImpl

<a id="api-plxcontinuousmeasurementimpl"></a>

```typescript
 class PlxContinuousMeasurementImpl implements PlxContinuousMeasurement 
```

The fields in the above table, reading from top to bottom, are shown in the order of LSO to MSO, where LSO = Least Significant Octet and MSO = Most Significant Octet.



#### PlxFeaturesImpl

<a id="api-plxfeaturesimpl"></a>

```typescript
 class PlxFeaturesImpl implements PlxFeatures 
```

The fields in the above table, reading from top to bottom, are shown in the order of LSO to MSO, where LSO = Least Significant Octet and MSO = Most Significant Octet.



#### PlxSpotCheckMeasurementImpl

<a id="api-plxspotcheckmeasurementimpl"></a>

```typescript
 class PlxSpotCheckMeasurementImpl implements PlxSpotCheckMeasurement 
```

#### PnpIdImpl

<a id="api-pnpidimpl"></a>

```typescript
 class PnpIdImpl implements PnpId 
```

#### PollenConcentrationImpl

<a id="api-pollenconcentrationimpl"></a>

```typescript
 class PollenConcentrationImpl implements PollenConcentration 
```

#### PositionQualityImpl

<a id="api-positionqualityimpl"></a>

```typescript
 class PositionQualityImpl implements PositionQuality 
```

#### PressureImpl

<a id="api-pressureimpl"></a>

```typescript
 class PressureImpl implements Pressure 
```

#### ProtocolModeImpl

<a id="api-protocolmodeimpl"></a>

```typescript
 class ProtocolModeImpl implements ProtocolMode 
```

#### RainfallImpl

<a id="api-rainfallimpl"></a>

```typescript
 class RainfallImpl implements Rainfall 
```

#### ReferenceTimeInformationImpl

<a id="api-referencetimeinformationimpl"></a>

```typescript
 class ReferenceTimeInformationImpl implements ReferenceTimeInformation 
```

#### ReportImpl

<a id="api-reportimpl"></a>

```typescript
 class ReportImpl implements Report 
```

#### ReportMapImpl

<a id="api-reportmapimpl"></a>

```typescript
 class ReportMapImpl implements ReportMap 
```

#### ReportReferenceImpl

<a id="api-reportreferenceimpl"></a>

```typescript
 class ReportReferenceImpl implements ReportReference 
```

#### ResolvablePrivateAddressOnlyImpl

<a id="api-resolvableprivateaddressonlyimpl"></a>

```typescript
 class ResolvablePrivateAddressOnlyImpl implements ResolvablePrivateAddressOnly 
```

#### RestingHeartRateImpl

<a id="api-restingheartrateimpl"></a>

```typescript
 class RestingHeartRateImpl implements RestingHeartRate 
```

#### RingerControlPointImpl

<a id="api-ringercontrolpointimpl"></a>

```typescript
 class RingerControlPointImpl implements RingerControlPoint 
```

#### RingerSettingImpl

<a id="api-ringersettingimpl"></a>

```typescript
 class RingerSettingImpl implements RingerSetting 
```

#### RowerDataImpl

<a id="api-rowerdataimpl"></a>

```typescript
 class RowerDataImpl implements RowerData 
```

#### RscFeatureImpl

<a id="api-rscfeatureimpl"></a>

```typescript
 class RscFeatureImpl implements RscFeature 
```

#### RscMeasurementImpl

<a id="api-rscmeasurementimpl"></a>

```typescript
 class RscMeasurementImpl implements RscMeasurement 
```

#### ScanIntervalWindowImpl

<a id="api-scanintervalwindowimpl"></a>

```typescript
 class ScanIntervalWindowImpl implements ScanIntervalWindow 
```

#### ScanRefreshImpl

<a id="api-scanrefreshimpl"></a>

```typescript
 class ScanRefreshImpl implements ScanRefresh 
```

#### SensorLocationImpl

<a id="api-sensorlocationimpl"></a>

```typescript
 class SensorLocationImpl implements SensorLocation 
```

#### SerialNumberStringImpl

<a id="api-serialnumberstringimpl"></a>

```typescript
 class SerialNumberStringImpl implements SerialNumberString 
```

#### SoftwareRevisionStringImpl

<a id="api-softwarerevisionstringimpl"></a>

```typescript
 class SoftwareRevisionStringImpl implements SoftwareRevisionString 
```

#### SportTypeForAerobicAndAnaerobicThresholdsImpl

<a id="api-sporttypeforaerobicandanaerobicthresholdsimpl"></a>

```typescript
 class SportTypeForAerobicAndAnaerobicThresholdsImpl implements SportTypeForAerobicAndAnaerobicThresholds 
```

Aerobic Threshold and Anaerobic Threshold together with the Sport Type for Aerobic and Anaerobic Thresholds describe the metabolic thresholds of the user. The Sport Type for Aerobic and Anaerobic Thresholds identifies how the measurement was performed.



#### StairClimberDataImpl

<a id="api-stairclimberdataimpl"></a>

```typescript
 class StairClimberDataImpl implements StairClimberData 
```

#### StepClimberDataImpl

<a id="api-stepclimberdataimpl"></a>

```typescript
 class StepClimberDataImpl implements StepClimberData 
```

#### SupportedHeartRateRangeImpl

<a id="api-supportedheartraterangeimpl"></a>

```typescript
 class SupportedHeartRateRangeImpl implements SupportedHeartRateRange 
```

#### SupportedInclinationRangeImpl

<a id="api-supportedinclinationrangeimpl"></a>

```typescript
 class SupportedInclinationRangeImpl implements SupportedInclinationRange 
```

#### SupportedNewAlertCategoryImpl

<a id="api-supportednewalertcategoryimpl"></a>

```typescript
 class SupportedNewAlertCategoryImpl implements SupportedNewAlertCategory 
```

#### SupportedPowerRangeImpl

<a id="api-supportedpowerrangeimpl"></a>

```typescript
 class SupportedPowerRangeImpl implements SupportedPowerRange 
```

#### SupportedResistanceLevelRangeImpl

<a id="api-supportedresistancelevelrangeimpl"></a>

```typescript
 class SupportedResistanceLevelRangeImpl implements SupportedResistanceLevelRange 
```

#### SupportedSpeedRangeImpl

<a id="api-supportedspeedrangeimpl"></a>

```typescript
 class SupportedSpeedRangeImpl implements SupportedSpeedRange 
```

#### SupportedUnreadAlertCategoryImpl

<a id="api-supportedunreadalertcategoryimpl"></a>

```typescript
 class SupportedUnreadAlertCategoryImpl implements SupportedUnreadAlertCategory 
```

#### SystemIdImpl

<a id="api-systemidimpl"></a>

```typescript
 class SystemIdImpl implements SystemId 
```

#### TemperatureImpl

<a id="api-temperatureimpl"></a>

```typescript
 class TemperatureImpl implements Temperature 
```

#### TemperatureMeasurementImpl

<a id="api-temperaturemeasurementimpl"></a>

```typescript
 class TemperatureMeasurementImpl implements TemperatureMeasurement 
```

#### TemperatureTypeImpl

<a id="api-temperaturetypeimpl"></a>

```typescript
 class TemperatureTypeImpl implements TemperatureType 
```

#### ThreeZoneHeartRateLimitsImpl

<a id="api-threezoneheartratelimitsimpl"></a>

```typescript
 class ThreeZoneHeartRateLimitsImpl implements ThreeZoneHeartRateLimits 
```

The fields in the above table are in the order of LSO to MSO. Where LSO = Least Significant Octet and MSO = Most Significant Octet.



#### TimeAccuracyImpl

<a id="api-timeaccuracyimpl"></a>

```typescript
 class TimeAccuracyImpl implements TimeAccuracy 
```

#### TimeSourceImpl

<a id="api-timesourceimpl"></a>

```typescript
 class TimeSourceImpl implements TimeSource 
```

#### TimeTriggerSettingImpl

<a id="api-timetriggersettingimpl"></a>

```typescript
 class TimeTriggerSettingImpl implements TimeTriggerSetting 
```

#### TimeUpdateControlPointImpl

<a id="api-timeupdatecontrolpointimpl"></a>

```typescript
 class TimeUpdateControlPointImpl implements TimeUpdateControlPoint 
```

#### TimeUpdateStateImpl

<a id="api-timeupdatestateimpl"></a>

```typescript
 class TimeUpdateStateImpl implements TimeUpdateState 
```

#### TimeWithDstImpl

<a id="api-timewithdstimpl"></a>

```typescript
 class TimeWithDstImpl implements TimeWithDst 
```

#### TimeZoneImpl

<a id="api-timezoneimpl"></a>

```typescript
 class TimeZoneImpl implements TimeZone 
```

#### TreadmillDataImpl

<a id="api-treadmilldataimpl"></a>

```typescript
 class TreadmillDataImpl implements TreadmillData 
```

#### TrueWindDirectionImpl

<a id="api-truewinddirectionimpl"></a>

```typescript
 class TrueWindDirectionImpl implements TrueWindDirection 
```

#### TrueWindSpeedImpl

<a id="api-truewindspeedimpl"></a>

```typescript
 class TrueWindSpeedImpl implements TrueWindSpeed 
```

#### TwoZoneHeartRateLimitImpl

<a id="api-twozoneheartratelimitimpl"></a>

```typescript
 class TwoZoneHeartRateLimitImpl implements TwoZoneHeartRateLimit 
```

#### TxPowerLevelImpl

<a id="api-txpowerlevelimpl"></a>

```typescript
 class TxPowerLevelImpl implements TxPowerLevel 
```

#### UncertaintyImpl

<a id="api-uncertaintyimpl"></a>

```typescript
 class UncertaintyImpl implements Uncertainty 
```

#### UnreadAlertStatusImpl

<a id="api-unreadalertstatusimpl"></a>

```typescript
 class UnreadAlertStatusImpl implements UnreadAlertStatus 
```

#### UriImpl

<a id="api-uriimpl"></a>

```typescript
 class UriImpl implements Uri 
```

#### UserIndexImpl

<a id="api-userindeximpl"></a>

```typescript
 class UserIndexImpl implements UserIndex 
```

#### UvIndexImpl

<a id="api-uvindeximpl"></a>

```typescript
 class UvIndexImpl implements UvIndex 
```

#### ValueTriggerSettingImpl

<a id="api-valuetriggersettingimpl"></a>

```typescript
 class ValueTriggerSettingImpl implements ValueTriggerSetting 
```

#### Vo2MaxImpl

<a id="api-vo2maximpl"></a>

```typescript
 class Vo2MaxImpl implements Vo2Max 
```

#### WaistCircumferenceImpl

<a id="api-waistcircumferenceimpl"></a>

```typescript
 class WaistCircumferenceImpl implements WaistCircumference 
```

#### WeightImpl

<a id="api-weightimpl"></a>

```typescript
 class WeightImpl implements Weight 
```

#### WeightMeasurementImpl

<a id="api-weightmeasurementimpl"></a>

```typescript
 class WeightMeasurementImpl implements WeightMeasurement 
```

The fields in the above table are in the order of LSO to MSO. Where LSO = Least Significant Octet and MSO = Most Significant Octet.



#### WeightScaleFeatureImpl

<a id="api-weightscalefeatureimpl"></a>

```typescript
 class WeightScaleFeatureImpl implements WeightScaleFeature 
```

#### WindChillImpl

<a id="api-windchillimpl"></a>

```typescript
 class WindChillImpl implements WindChill 
```

### Functions

#### aerobicHeartRateLowerLimitFromDataView

<a id="api-aerobicheartratelowerlimitfromdataview"></a>

```typescript
 function aerobicHeartRateLowerLimitFromDataView(dataView: DataView | DataViewReader, indexStart?: number): AerobicHeartRateLowerLimit;
```

Parse from a DataView into [AerobicHeartRateLowerLimit](#api-aerobicheartratelowerlimit).


#### aerobicHeartRateUpperLimitFromDataView

<a id="api-aerobicheartrateupperlimitfromdataview"></a>

```typescript
 function aerobicHeartRateUpperLimitFromDataView(dataView: DataView | DataViewReader, indexStart?: number): AerobicHeartRateUpperLimit;
```

Parse from a DataView into [AerobicHeartRateUpperLimit](#api-aerobicheartrateupperlimit).


#### aerobicThresholdFromDataView

<a id="api-aerobicthresholdfromdataview"></a>

```typescript
 function aerobicThresholdFromDataView(dataView: DataView | DataViewReader, indexStart?: number): AerobicThreshold;
```

Parse from a DataView into [AerobicThreshold](#api-aerobicthreshold).


#### ageFromDataView

<a id="api-agefromdataview"></a>

```typescript
 function ageFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Age;
```

Parse from a DataView into [Age](#api-age).


#### aggregateFromDataView

<a id="api-aggregatefromdataview"></a>

```typescript
 function aggregateFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Aggregate;
```

Parse from a DataView into [Aggregate](#api-aggregate).


#### alertCategoryIdBitMaskFromDataView

<a id="api-alertcategoryidbitmaskfromdataview"></a>

```typescript
 function alertCategoryIdBitMaskFromDataView(dataView: DataView | DataViewReader, indexStart?: number): AlertCategoryIdBitMask;
```

Parse from a DataView into [AlertCategoryIdBitMask](#api-alertcategoryidbitmask).


#### alertCategoryIdFromDataView

<a id="api-alertcategoryidfromdataview"></a>

```typescript
 function alertCategoryIdFromDataView(dataView: DataView | DataViewReader, indexStart?: number): AlertCategoryId;
```

Parse from a DataView into [AlertCategoryId](#api-alertcategoryid).


#### alertLevelFromDataView

<a id="api-alertlevelfromdataview"></a>

```typescript
 function alertLevelFromDataView(dataView: DataView | DataViewReader, indexStart?: number): AlertLevel;
```

Parse from a DataView into [AlertLevel](#api-alertlevel).


#### alertNotificationControlPointFromDataView

<a id="api-alertnotificationcontrolpointfromdataview"></a>

```typescript
 function alertNotificationControlPointFromDataView(dataView: DataView | DataViewReader, indexStart?: number): AlertNotificationControlPoint;
```

Parse from a DataView into [AlertNotificationControlPoint](#api-alertnotificationcontrolpoint).


#### alertStatusFromDataView

<a id="api-alertstatusfromdataview"></a>

```typescript
 function alertStatusFromDataView(dataView: DataView | DataViewReader, indexStart?: number): AlertStatus;
```

Parse from a DataView into [AlertStatus](#api-alertstatus).


#### altitudeFromDataView

<a id="api-altitudefromdataview"></a>

```typescript
 function altitudeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Altitude;
```

Parse from a DataView into [Altitude](#api-altitude).


#### anaerobicHeartRateLowerLimitFromDataView

<a id="api-anaerobicheartratelowerlimitfromdataview"></a>

```typescript
 function anaerobicHeartRateLowerLimitFromDataView(dataView: DataView | DataViewReader, indexStart?: number): AnaerobicHeartRateLowerLimit;
```

Parse from a DataView into [AnaerobicHeartRateLowerLimit](#api-anaerobicheartratelowerlimit).


#### anaerobicHeartRateUpperLimitFromDataView

<a id="api-anaerobicheartrateupperlimitfromdataview"></a>

```typescript
 function anaerobicHeartRateUpperLimitFromDataView(dataView: DataView | DataViewReader, indexStart?: number): AnaerobicHeartRateUpperLimit;
```

Parse from a DataView into [AnaerobicHeartRateUpperLimit](#api-anaerobicheartrateupperlimit).


#### anaerobicThresholdFromDataView

<a id="api-anaerobicthresholdfromdataview"></a>

```typescript
 function anaerobicThresholdFromDataView(dataView: DataView | DataViewReader, indexStart?: number): AnaerobicThreshold;
```

Parse from a DataView into [AnaerobicThreshold](#api-anaerobicthreshold).


#### analogFromDataView

<a id="api-analogfromdataview"></a>

```typescript
 function analogFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Analog;
```

Parse from a DataView into [Analog](#api-analog).


#### apparentWindDirectionFromDataView

<a id="api-apparentwinddirectionfromdataview"></a>

```typescript
 function apparentWindDirectionFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ApparentWindDirection;
```

Parse from a DataView into [ApparentWindDirection](#api-apparentwinddirection).


#### apparentWindSpeedFromDataView

<a id="api-apparentwindspeedfromdataview"></a>

```typescript
 function apparentWindSpeedFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ApparentWindSpeed;
```

Parse from a DataView into [ApparentWindSpeed](#api-apparentwindspeed).


#### barometricPressureTrendFromDataView

<a id="api-barometricpressuretrendfromdataview"></a>

```typescript
 function barometricPressureTrendFromDataView(dataView: DataView | DataViewReader, indexStart?: number): BarometricPressureTrend;
```

Parse from a DataView into [BarometricPressureTrend](#api-barometricpressuretrend).


#### batteryLevelFromDataView

<a id="api-batterylevelfromdataview"></a>

```typescript
 function batteryLevelFromDataView(dataView: DataView | DataViewReader, indexStart?: number): BatteryLevel;
```

Parse from a DataView into [BatteryLevel](#api-batterylevel).


#### bloodPressureFeatureFromDataView

<a id="api-bloodpressurefeaturefromdataview"></a>

```typescript
 function bloodPressureFeatureFromDataView(dataView: DataView | DataViewReader, indexStart?: number): BloodPressureFeature;
```

Parse from a DataView into [BloodPressureFeature](#api-bloodpressurefeature).


#### bloodPressureMeasurementFromDataView

<a id="api-bloodpressuremeasurementfromdataview"></a>

```typescript
 function bloodPressureMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): BloodPressureMeasurement;
```

Parse from a DataView into [BloodPressureMeasurement](#api-bloodpressuremeasurement).


#### bodyCompositionFeatureFromDataView

<a id="api-bodycompositionfeaturefromdataview"></a>

```typescript
 function bodyCompositionFeatureFromDataView(dataView: DataView | DataViewReader, indexStart?: number): BodyCompositionFeature;
```

Parse from a DataView into [BodyCompositionFeature](#api-bodycompositionfeature).


#### bodyCompositionMeasurementFromDataView

<a id="api-bodycompositionmeasurementfromdataview"></a>

```typescript
 function bodyCompositionMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): BodyCompositionMeasurement;
```

Parse from a DataView into [BodyCompositionMeasurement](#api-bodycompositionmeasurement).


#### bodySensorLocationFromDataView

<a id="api-bodysensorlocationfromdataview"></a>

```typescript
 function bodySensorLocationFromDataView(dataView: DataView | DataViewReader, indexStart?: number): BodySensorLocation;
```

Parse from a DataView into [BodySensorLocation](#api-bodysensorlocation).


#### bootKeyboardInputReportFromDataView

<a id="api-bootkeyboardinputreportfromdataview"></a>

```typescript
 function bootKeyboardInputReportFromDataView(dataView: DataView | DataViewReader, indexStart?: number): BootKeyboardInputReport;
```

Parse from a DataView into [BootKeyboardInputReport](#api-bootkeyboardinputreport).


#### bootKeyboardOutputReportFromDataView

<a id="api-bootkeyboardoutputreportfromdataview"></a>

```typescript
 function bootKeyboardOutputReportFromDataView(dataView: DataView | DataViewReader, indexStart?: number): BootKeyboardOutputReport;
```

Parse from a DataView into [BootKeyboardOutputReport](#api-bootkeyboardoutputreport).


#### bootMouseInputReportFromDataView

<a id="api-bootmouseinputreportfromdataview"></a>

```typescript
 function bootMouseInputReportFromDataView(dataView: DataView | DataViewReader, indexStart?: number): BootMouseInputReport;
```

Parse from a DataView into [BootMouseInputReport](#api-bootmouseinputreport).


#### btValueReaderFor

<a id="api-btvaluereaderfor"></a>

```typescript
btValueReaderFor: (idOrName: string | number) => BtReaderClass | undefined
```

#### cgmFeatureFromDataView

<a id="api-cgmfeaturefromdataview"></a>

```typescript
 function cgmFeatureFromDataView(dataView: DataView | DataViewReader, indexStart?: number): CgmFeature;
```

Parse from a DataView into [CgmFeature](#api-cgmfeature).


#### crossTrainerDataFromDataView

<a id="api-crosstrainerdatafromdataview"></a>

```typescript
 function crossTrainerDataFromDataView(dataView: DataView | DataViewReader, indexStart?: number): CrossTrainerData;
```

Parse from a DataView into [CrossTrainerData](#api-crosstrainerdata).


#### cscFeatureFromDataView

<a id="api-cscfeaturefromdataview"></a>

```typescript
 function cscFeatureFromDataView(dataView: DataView | DataViewReader, indexStart?: number): CscFeature;
```

Parse from a DataView into [CscFeature](#api-cscfeature).


#### cscMeasurementFromDataView

<a id="api-cscmeasurementfromdataview"></a>

```typescript
 function cscMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): CscMeasurement;
```

Parse from a DataView into [CscMeasurement](#api-cscmeasurement).


#### currentTimeFromDataView

<a id="api-currenttimefromdataview"></a>

```typescript
 function currentTimeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): CurrentTime;
```

Parse from a DataView into [CurrentTime](#api-currenttime).


#### cyclingPowerFeatureFromDataView

<a id="api-cyclingpowerfeaturefromdataview"></a>

```typescript
 function cyclingPowerFeatureFromDataView(dataView: DataView | DataViewReader, indexStart?: number): CyclingPowerFeature;
```

Parse from a DataView into [CyclingPowerFeature](#api-cyclingpowerfeature).


#### cyclingPowerMeasurementFromDataView

<a id="api-cyclingpowermeasurementfromdataview"></a>

```typescript
 function cyclingPowerMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): CyclingPowerMeasurement;
```

Parse from a DataView into [CyclingPowerMeasurement](#api-cyclingpowermeasurement).


#### cyclingPowerVectorFromDataView

<a id="api-cyclingpowervectorfromdataview"></a>

```typescript
 function cyclingPowerVectorFromDataView(dataView: DataView | DataViewReader, indexStart?: number): CyclingPowerVector;
```

Parse from a DataView into [CyclingPowerVector](#api-cyclingpowervector).


#### databaseChangeIncrementFromDataView

<a id="api-databasechangeincrementfromdataview"></a>

```typescript
 function databaseChangeIncrementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): DatabaseChangeIncrement;
```

Parse from a DataView into [DatabaseChangeIncrement](#api-databasechangeincrement).


#### dataViewFromHex

<a id="api-dataviewfromhex"></a>

```typescript
dataViewFromHex: (hex: string) => DataView
```

Build a DataView from a hex-encoded string. This is a polyfill for `Uint8Array.fromHex()`.


#### dataViewReader

<a id="api-dataviewreader"></a>

```typescript
dataViewReader: (dataView: DataView | DataViewReader, indexStart?: number) => DataViewReader
```

#### dateOfBirthFromDataView

<a id="api-dateofbirthfromdataview"></a>

```typescript
 function dateOfBirthFromDataView(dataView: DataView | DataViewReader, indexStart?: number): DateOfBirth;
```

Parse from a DataView into [DateOfBirth](#api-dateofbirth).


#### dateOfThresholdAssessmentFromDataView

<a id="api-dateofthresholdassessmentfromdataview"></a>

```typescript
 function dateOfThresholdAssessmentFromDataView(dataView: DataView | DataViewReader, indexStart?: number): DateOfThresholdAssessment;
```

Parse from a DataView into [DateOfThresholdAssessment](#api-dateofthresholdassessment).


#### dateTimeFromDataView

<a id="api-datetimefromdataview"></a>

```typescript
 function dateTimeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): DateTime;
```

Parse from a DataView into [DateTime](#api-datetime).


#### dayDateTimeFromDataView

<a id="api-daydatetimefromdataview"></a>

```typescript
 function dayDateTimeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): DayDateTime;
```

Parse from a DataView into [DayDateTime](#api-daydatetime).


#### dayOfWeekFromDataView

<a id="api-dayofweekfromdataview"></a>

```typescript
 function dayOfWeekFromDataView(dataView: DataView | DataViewReader, indexStart?: number): DayOfWeek;
```

Parse from a DataView into [DayOfWeek](#api-dayofweek).


#### dewPointFromDataView

<a id="api-dewpointfromdataview"></a>

```typescript
 function dewPointFromDataView(dataView: DataView | DataViewReader, indexStart?: number): DewPoint;
```

Parse from a DataView into [DewPoint](#api-dewpoint).


#### digitalFromDataView

<a id="api-digitalfromdataview"></a>

```typescript
 function digitalFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Digital;
```

Parse from a DataView into [Digital](#api-digital).


#### dstOffsetFromDataView

<a id="api-dstoffsetfromdataview"></a>

```typescript
 function dstOffsetFromDataView(dataView: DataView | DataViewReader, indexStart?: number): DstOffset;
```

Parse from a DataView into [DstOffset](#api-dstoffset).


#### elevationFromDataView

<a id="api-elevationfromdataview"></a>

```typescript
 function elevationFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Elevation;
```

Parse from a DataView into [Elevation](#api-elevation).


#### emailAddressFromDataView

<a id="api-emailaddressfromdataview"></a>

```typescript
 function emailAddressFromDataView(dataView: DataView | DataViewReader, indexStart?: number): EmailAddress;
```

Parse from a DataView into [EmailAddress](#api-emailaddress).


#### exactTime256FromDataView

<a id="api-exacttime256fromdataview"></a>

```typescript
 function exactTime256FromDataView(dataView: DataView | DataViewReader, indexStart?: number): ExactTime256;
```

Parse from a DataView into [ExactTime256](#api-exacttime256).


#### fatBurnHeartRateLowerLimitFromDataView

<a id="api-fatburnheartratelowerlimitfromdataview"></a>

```typescript
 function fatBurnHeartRateLowerLimitFromDataView(dataView: DataView | DataViewReader, indexStart?: number): FatBurnHeartRateLowerLimit;
```

Parse from a DataView into [FatBurnHeartRateLowerLimit](#api-fatburnheartratelowerlimit).


#### fatBurnHeartRateUpperLimitFromDataView

<a id="api-fatburnheartrateupperlimitfromdataview"></a>

```typescript
 function fatBurnHeartRateUpperLimitFromDataView(dataView: DataView | DataViewReader, indexStart?: number): FatBurnHeartRateUpperLimit;
```

Parse from a DataView into [FatBurnHeartRateUpperLimit](#api-fatburnheartrateupperlimit).


#### firmwareRevisionStringFromDataView

<a id="api-firmwarerevisionstringfromdataview"></a>

```typescript
 function firmwareRevisionStringFromDataView(dataView: DataView | DataViewReader, indexStart?: number): FirmwareRevisionString;
```

Parse from a DataView into [FirmwareRevisionString](#api-firmwarerevisionstring).


#### firstNameFromDataView

<a id="api-firstnamefromdataview"></a>

```typescript
 function firstNameFromDataView(dataView: DataView | DataViewReader, indexStart?: number): FirstName;
```

Parse from a DataView into [FirstName](#api-firstname).


#### fiveZoneHeartRateLimitsFromDataView

<a id="api-fivezoneheartratelimitsfromdataview"></a>

```typescript
 function fiveZoneHeartRateLimitsFromDataView(dataView: DataView | DataViewReader, indexStart?: number): FiveZoneHeartRateLimits;
```

Parse from a DataView into [FiveZoneHeartRateLimits](#api-fivezoneheartratelimits).


#### floorNumberFromDataView

<a id="api-floornumberfromdataview"></a>

```typescript
 function floorNumberFromDataView(dataView: DataView | DataViewReader, indexStart?: number): FloorNumber;
```

Parse from a DataView into [FloorNumber](#api-floornumber).


#### gapAppearanceFromDataView

<a id="api-gapappearancefromdataview"></a>

```typescript
 function gapAppearanceFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GapAppearance;
```

Parse from a DataView into [GapAppearance](#api-gapappearance).


#### gapDeviceNameFromDataView

<a id="api-gapdevicenamefromdataview"></a>

```typescript
 function gapDeviceNameFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GapDeviceName;
```

Parse from a DataView into [GapDeviceName](#api-gapdevicename).


#### gapPeripheralPreferredConnectionParametersFromDataView

<a id="api-gapperipheralpreferredconnectionparametersfromdataview"></a>

```typescript
 function gapPeripheralPreferredConnectionParametersFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GapPeripheralPreferredConnectionParameters;
```

Parse from a DataView into [GapPeripheralPreferredConnectionParameters](#api-gapperipheralpreferredconnectionparameters).


#### gapPeripheralPrivacyFlagFromDataView

<a id="api-gapperipheralprivacyflagfromdataview"></a>

```typescript
 function gapPeripheralPrivacyFlagFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GapPeripheralPrivacyFlag;
```

Parse from a DataView into [GapPeripheralPrivacyFlag](#api-gapperipheralprivacyflag).


#### gapReconnectionAddressFromDataView

<a id="api-gapreconnectionaddressfromdataview"></a>

```typescript
 function gapReconnectionAddressFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GapReconnectionAddress;
```

Parse from a DataView into [GapReconnectionAddress](#api-gapreconnectionaddress).


#### gattCharacteristicAggregateFormatFromDataView

<a id="api-gattcharacteristicaggregateformatfromdataview"></a>

```typescript
 function gattCharacteristicAggregateFormatFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GattCharacteristicAggregateFormat;
```

Parse from a DataView into [GattCharacteristicAggregateFormat](#api-gattcharacteristicaggregateformat).


#### gattCharacteristicExtendedPropertiesFromDataView

<a id="api-gattcharacteristicextendedpropertiesfromdataview"></a>

```typescript
 function gattCharacteristicExtendedPropertiesFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GattCharacteristicExtendedProperties;
```

Parse from a DataView into [GattCharacteristicExtendedProperties](#api-gattcharacteristicextendedproperties).


#### gattCharacteristicName

<a id="api-gattcharacteristicname"></a>

```typescript
gattCharacteristicName: (idOrName: string | number | null | undefined) => "string" | "boolean" | "current_time" | "device_time" | "acceleration" | "acs_control_point" | "acs_data_in" | "acs_data_out_indicate" | "acs_data_out_notify" | "acs_status" | "active_preset_index" | "activity_goal" | "advertising_constant_tone_extension_interval" | "advertising_constant_tone_extension_minimum_length" | "advertising_constant_tone_extension_minimum_transmit_count" | "advertising_constant_tone_extension_phy" | "advertising_constant_tone_extension_transmit_duration" | "aerobic_heart_rate_lower_limit" | "aerobic_heart_rate_upper_limit" | "aerobic_threshold" | "age" | "aggregate" | "alert_category_id" | "alert_category_id_bit_mask" | "alert_level" | "alert_notification_control_point" | "alert_status" | "altitude" | "ammonia_concentration" | "anaerobic_heart_rate_lower_limit" | "anaerobic_heart_rate_upper_limit" | "anaerobic_threshold" | "analog" | "analog_output" | "ap_sync_key_material" | "apparent_energy_32" | "apparent_power" | "apparent_wind_direction" | "apparent_wind_speed" | "ase_control_point" | "audio_input_control_point" | "audio_input_description" | "audio_input_state" | "audio_input_status" | "audio_input_type" | "audio_location" | "audio_output_description" | "available_audio_contexts" | "average_current" | "average_voltage" | "barometric_pressure_trend" | "battery_critical_status" | "battery_energy_status" | "battery_health_information" | "battery_health_status" | "battery_information" | "battery_level" | "battery_level_state" | "battery_level_status" | "battery_power_state" | "battery_time_status" | "bearer_list_current_calls" | "bearer_provider_name" | "bearer_signal_strength" | "bearer_signal_strength_reporting_interval" | "bearer_technology" | "bearer_uci" | "bearer_uri_schemes_supported_list" | "bgr_features" | "bgs_features" | "blood_pressure_feature" | "blood_pressure_measurement" | "blood_pressure_record" | "bluetooth_sig_data" | "body_composition_feature" | "body_composition_measurement" | "body_sensor_location" | "bond_management_control_point" | "bond_management_feature" | "boot_keyboard_input_report" | "boot_keyboard_output_report" | "boot_mouse_input_report" | "br_edr_handover_data" | "broadcast_audio_scan_control_point" | "broadcast_receive_state" | "bss_control_point" | "bss_response" | "call_control_point" | "call_control_point_optional_opcodes" | "call_friendly_name" | "call_state" | "caloric_intake" | "carbon_monoxide_concentration" | "cardiorespiratory_activity_instantaneous_data" | "cardiorespiratory_activity_summary_data" | "cgm_feature" | "cgm_measurement" | "cgm_session_run_time" | "cgm_session_start_time" | "cgm_specific_ops_control_point" | "cgm_status" | "chromatic_distance_from_planckian" | "chromaticity_coordinate" | "chromaticity_coordinates" | "chromaticity_in_cct_and_duv_values" | "chromaticity_tolerance" | "cie_13_3_1995_color_rendering_index" | "client_supported_features" | "co2_concentration" | "coefficient" | "constant_tone_extension_enable" | "content_control_id" | "correlated_color_temperature" | "cosine_of_the_angle" | "count_16" | "count_24" | "country_code" | "cross_trainer_data" | "csc_feature" | "csc_measurement" | "current_elapsed_time" | "current_group_object_id" | "current_track_object_id" | "current_track_segments_object_id" | "cycling_power_control_point" | "cycling_power_feature" | "cycling_power_measurement" | "cycling_power_vector" | "database_change_increment" | "database_hash" | "date_of_birth" | "date_of_threshold_assessment" | "date_time" | "date_utc" | "day_date_time" | "day_of_week" | "descriptor_value_changed" | "device_time_control_point" | "device_time_feature" | "device_time_parameters" | "device_wearing_position" | "dew_point" | "digital" | "digital_output" | "dst_offset" | "electric_current" | "electric_current_range" | "electric_current_specification" | "electric_current_statistics" | "elevation" | "email_address" | "emergency_id" | "emergency_text" | "encrypted_data_key_material" | "energy" | "energy_32" | "energy_in_a_period_of_day" | "enhanced_blood_pressure_measurement" | "enhanced_intermediate_cuff_pressure" | "esl_address" | "esl_control_point" | "esl_current_absolute_time" | "esl_display_information" | "esl_image_information" | "esl_led_information" | "esl_response_key_material" | "esl_sensor_information" | "estimated_service_date" | "event_statistics" | "exact_time_100" | "exact_time_256" | "fat_burn_heart_rate_lower_limit" | "fat_burn_heart_rate_upper_limit" | "firmware_revision_string" | "first_name" | "first_use_date" | "fitness_machine_control_point" | "fitness_machine_feature" | "fitness_machine_status" | "five_zone_heart_rate_limits" | "fixed_string_16" | "fixed_string_24" | "fixed_string_36" | "fixed_string_64" | "fixed_string_8" | "floor_number" | "force" | "four_zone_heart_rate_limits" | "gain_settings_attribute" | "gap.appearance" | "gap.central_address_resolution" | "gap.device_name" | "gap.peripheral_preferred_connection_parameters" | "gap.peripheral_privacy_flag" | "gap.reconnection_address" | "gatt.service_changed" | "gender" | "general_activity_instantaneous_data" | "general_activity_summary_data" | "generic_level" | "ghs_control_point" | "global_trade_item_number" | "glucose_feature" | "glucose_measurement" | "glucose_measurement_context" | "gmap_role" | "gust_factor" | "handedness" | "hardware_revision_string" | "health_sensor_features" | "hearing_aid_features" | "hearing_aid_preset_control_point" | "heart_rate_control_point" | "heart_rate_max" | "heart_rate_measurement" | "heat_index" | "height" | "hid_control_point" | "hid_information" | "high_intensity_exercise_threshold" | "high_resolution_height" | "high_temperature" | "high_voltage" | "hip_circumference" | "http_control_point" | "http_entity_body" | "http_headers" | "http_status_code" | "https_security" | "humidity" | "idd_annunciation_status" | "idd_command_control_point" | "idd_command_data" | "idd_features" | "idd_history_data" | "idd_record_access_control_point" | "idd_status" | "idd_status_changed" | "idd_status_reader_control_point" | "ieee_11073-20601_regulatory_certification_data_list" | "illuminance" | "imd_control" | "imd_historical_data" | "imd_status" | "imds_descriptor_value_changed" | "incoming_call" | "incoming_call_target_bearer_uri" | "indoor_bike_data" | "indoor_positioning_configuration" | "intermediate_cuff_pressure" | "intermediate_temperature" | "irradiance" | "language" | "last_name" | "latitude" | "le_gatt_security_levels" | "life_cycle_data" | "light_distribution" | "light_output" | "light_source_type" | "linear_position" | "live_health_observations" | "ln_control_point" | "ln_feature" | "local_east_coordinate" | "local_north_coordinate" | "local_time_information" | "location_and_speed" | "location_name" | "lock_characteristic" | "longitude" | "luminous_efficacy" | "luminous_energy" | "luminous_exposure" | "luminous_flux" | "luminous_flux_range" | "luminous_intensity" | "magnetic_declination" | "magnetic_flux_density_2d" | "magnetic_flux_density_3d" | "manufacturer_name_string" | "mass_flow" | "maximum_recommended_heart_rate" | "measurement_interval" | "media_control_point" | "media_control_point_opcodes_supported" | "media_player_icon_object_id" | "media_player_icon_url" | "media_player_name" | "media_state" | "medical_devices" | "mesh_provisioning_data_in" | "mesh_provisioning_data_out" | "mesh_proxy_data_in" | "mesh_proxy_data_out" | "methane_concentration" | "middle_name" | "model_number_string" | "mute" | "navigation" | "network_availability" | "new_alert" | "next_track_object_id" | "nitrogen_dioxide_concentration" | "noise" | "non-methane_volatile_organic_compounds_concentration" | "object_action_control_point" | "object_changed" | "object_first_created" | "object_id" | "object_last_modified" | "object_list_control_point" | "object_list_filter" | "object_name" | "object_properties" | "object_size" | "object_type" | "observation_schedule_changed" | "on-demand_ranging_data" | "ots_feature" | "ozone_concentration" | "parent_group_object_id" | "particulate_matter_pm1_concentration" | "particulate_matter_pm10_concentration" | "particulate_matter_pm2_5_concentration" | "perceived_lightness" | "percentage_8" | "percentage_8_steps" | "physical_activity_current_session" | "physical_activity_monitor_control_point" | "physical_activity_monitor_features" | "physical_activity_session_descriptor" | "playback_speed" | "playing_order" | "playing_orders_supported" | "plx_continuous_measurement" | "plx_features" | "plx_spot_check_measurement" | "pnp_id" | "pollen_concentration" | "position_2d" | "position_3d" | "position_quality" | "power" | "power_specification" | "preferred_units" | "pressure" | "protocol_mode" | "pulse_oximetry_control_point" | "rainfall" | "ranging_data_ready" | "rank_characteristic" | "ras_control_point" | "ras_features" | "rc_feature" | "rc_settings" | "real-time_ranging_data" | "reconnection_configuration_control_point" | "record_access_control_point" | "reference_time_information" | "registered_user" | "relative_runtime_in_a_correlated_color_temperature_range" | "relative_runtime_in_a_current_range" | "relative_runtime_in_a_generic_level_range" | "relative_value_in_a_period_of_day" | "relative_value_in_a_temperature_range" | "relative_value_in_a_voltage_range" | "relative_value_in_an_illuminance_range" | "removable" | "report" | "report_map" | "resolvable_private_address_only" | "resting_heart_rate" | "ringer_control_point" | "ringer_setting" | "rotational_speed" | "rower_data" | "rsc_feature" | "rsc_measurement" | "sc_control_point" | "scan_interval_window" | "scan_refresh" | "scientific_temperature_celsius" | "search_control_point" | "search_results_object_id" | "secondary_time_zone" | "sedentary_interval_notification" | "seeking_speed" | "sensor_location" | "serial_number_string" | "server_supported_features" | "service_cycle_data" | "service_required" | "set_identity_resolving_key" | "sink_ase" | "sink_audio_locations" | "sink_pac" | "size_characteristic" | "sleep_activity_instantaneous_data" | "sleep_activity_summary_data" | "software_revision_string" | "source_ase" | "source_audio_locations" | "source_pac" | "sport_type_for_aerobic_and_anaerobic_thresholds" | "stair_climber_data" | "status_flags" | "step_climber_data" | "step_counter_activity_summary_data" | "stored_health_observations" | "stride_length" | "sulfur_dioxide_concentration" | "sulfur_hexafluoride_concentration" | "supported_audio_contexts" | "supported_heart_rate_range" | "supported_inclination_range" | "supported_new_alert_category" | "supported_power_range" | "supported_resistance_level_range" | "supported_speed_range" | "supported_unread_alert_category" | "system_id" | "tds_control_point" | "temperature" | "temperature_8" | "temperature_8_in_a_period_of_day" | "temperature_8_statistics" | "temperature_celsius" | "temperature_fahrenheit" | "temperature_measurement" | "temperature_range" | "temperature_statistics" | "temperature_type" | "termination_reason" | "three_zone_heart_rate_limits" | "time_accuracy" | "time_broadcast" | "time_change_log_data" | "time_decihour_8" | "time_exponential_8" | "time_hour_24" | "time_millisecond_24" | "time_second_16" | "time_second_32" | "time_second_8" | "time_source" | "time_update_control_point" | "time_update_state" | "time_with_dst" | "time_zone" | "tmap_role" | "torque" | "track_changed" | "track_duration" | "track_position" | "track_title" | "training_status" | "treadmill_data" | "true_wind_direction" | "true_wind_speed" | "two_zone_heart_rate_limits" | "tx_power_level" | "ugg_features" | "ugt_features" | "uncertainty" | "unread_alert_status" | "uri" | "user_control_point" | "user_index" | "uv_index" | "vo2_max" | "voc_concentration" | "voltage" | "voltage_frequency" | "voltage_specification" | "voltage_statistics" | "volume_control_point" | "volume_flags" | "volume_flow" | "volume_offset_control_point" | "volume_offset_state" | "volume_state" | "waist_circumference" | "weight" | "weight_measurement" | "weight_scale_feature" | "wind_chill" | "work_cycle_data" | "length" | undefined
```

#### gattCharacteristicPresentationFormatFromDataView

<a id="api-gattcharacteristicpresentationformatfromdataview"></a>

```typescript
 function gattCharacteristicPresentationFormatFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GattCharacteristicPresentationFormat;
```

Parse from a DataView into [GattCharacteristicPresentationFormat](#api-gattcharacteristicpresentationformat).


#### gattCharacteristicUserDescriptionFromDataView

<a id="api-gattcharacteristicuserdescriptionfromdataview"></a>

```typescript
 function gattCharacteristicUserDescriptionFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GattCharacteristicUserDescription;
```

Parse from a DataView into [GattCharacteristicUserDescription](#api-gattcharacteristicuserdescription).


#### gattClientCharacteristicConfigurationFromDataView

<a id="api-gattclientcharacteristicconfigurationfromdataview"></a>

```typescript
 function gattClientCharacteristicConfigurationFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GattClientCharacteristicConfiguration;
```

Parse from a DataView into [GattClientCharacteristicConfiguration](#api-gattclientcharacteristicconfiguration).


#### gattDescriptorName

<a id="api-gattdescriptorname"></a>

```typescript
gattDescriptorName: (idOrName: string | number | null | undefined) => "complete_br_edr_transport_block_data" | "es_configuration" | "es_measurement" | "es_trigger_setting" | "external_report_reference" | "gatt.characteristic_aggregate_format" | "gatt.characteristic_extended_properties" | "gatt.characteristic_presentation_format" | "gatt.characteristic_user_description" | "gatt.client_characteristic_configuration" | "gatt.server_characteristic_configuration" | "manufacturer_limits" | "measurement_description" | "number_of_digitals" | "observation_schedule" | "process_tolerances" | "report_reference" | "time_trigger_setting" | "valid_range" | "valid_range_accuracy" | "value_trigger_setting" | undefined
```

#### gattServerCharacteristicConfigurationFromDataView

<a id="api-gattservercharacteristicconfigurationfromdataview"></a>

```typescript
 function gattServerCharacteristicConfigurationFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GattServerCharacteristicConfiguration;
```

Parse from a DataView into [GattServerCharacteristicConfiguration](#api-gattservercharacteristicconfiguration).


#### gattServiceChangedFromDataView

<a id="api-gattservicechangedfromdataview"></a>

```typescript
 function gattServiceChangedFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GattServiceChanged;
```

Parse from a DataView into [GattServiceChanged](#api-gattservicechanged).


#### gattServiceName

<a id="api-gattservicename"></a>

```typescript
gattServiceName: (idOrName: string | number | null | undefined) => "alert_notification" | "audio_input_control" | "audio_stream_control" | "authorization_control" | "automation_io" | "basic_audio_announcement" | "battery_service" | "binary_sensor" | "blood_pressure" | "body_composition" | "bond_management" | "broadcast_audio_announcement" | "broadcast_audio_scan" | "common_audio" | "constant_tone_extension" | "continuous_glucose_monitoring" | "coordinated_set_identification" | "current_time" | "cycling_power" | "cycling_speed_and_cadence" | "device_information" | "device_time" | "elapsed_time" | "electronic_shelf_label" | "emergency_configuration" | "environmental_sensing" | "fitness_machine" | "gaming_audio" | "gap" | "gatt" | "generic_health_sensor" | "generic_media_control" | "generic_telephone_bearer" | "glucose" | "health_thermometer" | "hearing_access" | "heart_rate" | "http_proxy" | "human_interface_device" | "immediate_alert" | "indoor_positioning" | "industrial_measurement_device" | "insulin_delivery" | "internet_protocol_support" | "link_loss" | "location_and_navigation" | "media_control" | "mesh_provisioning" | "mesh_proxy" | "mesh_proxy_solicitation" | "microphone_control" | "next_dst_change" | "object_transfer" | "phone_alert_status" | "physical_activity_monitor" | "public_broadcast_announcement" | "published_audio_capabilities" | "pulse_oximeter" | "reconnection_configuration" | "reference_time_update" | "running_speed_and_cadence" | "scan_parameters" | "telephone_bearer" | "telephony_and_media_audio" | "transport_discovery" | "tx_power" | "user_data" | "volume_control" | "volume_offset" | "weight_scale" | undefined
```

#### gattUuidFromValue

<a id="api-gattuuidfromvalue"></a>

```typescript
gattUuidFromValue: (num: number) => string
```

Convert the given value to hex and wrap it in a full UUID format.


#### genderFromDataView

<a id="api-genderfromdataview"></a>

```typescript
 function genderFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Gender;
```

Parse from a DataView into [Gender](#api-gender).


#### glucoseFeatureFromDataView

<a id="api-glucosefeaturefromdataview"></a>

```typescript
 function glucoseFeatureFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GlucoseFeature;
```

Parse from a DataView into [GlucoseFeature](#api-glucosefeature).


#### glucoseMeasurementContextFromDataView

<a id="api-glucosemeasurementcontextfromdataview"></a>

```typescript
 function glucoseMeasurementContextFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GlucoseMeasurementContext;
```

Parse from a DataView into [GlucoseMeasurementContext](#api-glucosemeasurementcontext).


#### glucoseMeasurementFromDataView

<a id="api-glucosemeasurementfromdataview"></a>

```typescript
 function glucoseMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GlucoseMeasurement;
```

Parse from a DataView into [GlucoseMeasurement](#api-glucosemeasurement).


#### gustFactorFromDataView

<a id="api-gustfactorfromdataview"></a>

```typescript
 function gustFactorFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GustFactor;
```

Parse from a DataView into [GustFactor](#api-gustfactor).


#### hardwareRevisionStringFromDataView

<a id="api-hardwarerevisionstringfromdataview"></a>

```typescript
 function hardwareRevisionStringFromDataView(dataView: DataView | DataViewReader, indexStart?: number): HardwareRevisionString;
```

Parse from a DataView into [HardwareRevisionString](#api-hardwarerevisionstring).


#### heartRateControlPointFromDataView

<a id="api-heartratecontrolpointfromdataview"></a>

```typescript
 function heartRateControlPointFromDataView(dataView: DataView | DataViewReader, indexStart?: number): HeartRateControlPoint;
```

Parse from a DataView into [HeartRateControlPoint](#api-heartratecontrolpoint).


#### heartRateMaxFromDataView

<a id="api-heartratemaxfromdataview"></a>

```typescript
 function heartRateMaxFromDataView(dataView: DataView | DataViewReader, indexStart?: number): HeartRateMax;
```

Parse from a DataView into [HeartRateMax](#api-heartratemax).


#### heartRateMeasurementFromDataView

<a id="api-heartratemeasurementfromdataview"></a>

```typescript
 function heartRateMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): HeartRateMeasurement;
```

Parse from a DataView into [HeartRateMeasurement](#api-heartratemeasurement).


#### heatIndexFromDataView

<a id="api-heatindexfromdataview"></a>

```typescript
 function heatIndexFromDataView(dataView: DataView | DataViewReader, indexStart?: number): HeatIndex;
```

Parse from a DataView into [HeatIndex](#api-heatindex).


#### heightFromDataView

<a id="api-heightfromdataview"></a>

```typescript
 function heightFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Height;
```

Parse from a DataView into [Height](#api-height).


#### hexFromDataView

<a id="api-hexfromdataview"></a>

```typescript
hexFromDataView: (dataView: DataView | DataViewReader) => string
```

Hex-encode the binary data in a DataView.


#### hidControlPointFromDataView

<a id="api-hidcontrolpointfromdataview"></a>

```typescript
 function hidControlPointFromDataView(dataView: DataView | DataViewReader, indexStart?: number): HidControlPoint;
```

Parse from a DataView into [HidControlPoint](#api-hidcontrolpoint).


#### hidInformationFromDataView

<a id="api-hidinformationfromdataview"></a>

```typescript
 function hidInformationFromDataView(dataView: DataView | DataViewReader, indexStart?: number): HidInformation;
```

Parse from a DataView into [HidInformation](#api-hidinformation).


#### hipCircumferenceFromDataView

<a id="api-hipcircumferencefromdataview"></a>

```typescript
 function hipCircumferenceFromDataView(dataView: DataView | DataViewReader, indexStart?: number): HipCircumference;
```

Parse from a DataView into [HipCircumference](#api-hipcircumference).


#### httpControlPointFromDataView

<a id="api-httpcontrolpointfromdataview"></a>

```typescript
 function httpControlPointFromDataView(dataView: DataView | DataViewReader, indexStart?: number): HttpControlPoint;
```

Parse from a DataView into [HttpControlPoint](#api-httpcontrolpoint).


#### httpEntityBodyFromDataView

<a id="api-httpentitybodyfromdataview"></a>

```typescript
 function httpEntityBodyFromDataView(dataView: DataView | DataViewReader, indexStart?: number): HttpEntityBody;
```

Parse from a DataView into [HttpEntityBody](#api-httpentitybody).


#### httpHeadersFromDataView

<a id="api-httpheadersfromdataview"></a>

```typescript
 function httpHeadersFromDataView(dataView: DataView | DataViewReader, indexStart?: number): HttpHeaders;
```

Parse from a DataView into [HttpHeaders](#api-httpheaders).


#### httpsSecurityFromDataView

<a id="api-httpssecurityfromdataview"></a>

```typescript
 function httpsSecurityFromDataView(dataView: DataView | DataViewReader, indexStart?: number): HttpsSecurity;
```

Parse from a DataView into [HttpsSecurity](#api-httpssecurity).


#### httpStatusCodeFromDataView

<a id="api-httpstatuscodefromdataview"></a>

```typescript
 function httpStatusCodeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): HttpStatusCode;
```

Parse from a DataView into [HttpStatusCode](#api-httpstatuscode).


#### humidityFromDataView

<a id="api-humidityfromdataview"></a>

```typescript
 function humidityFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Humidity;
```

Parse from a DataView into [Humidity](#api-humidity).


#### indoorBikeDataFromDataView

<a id="api-indoorbikedatafromdataview"></a>

```typescript
 function indoorBikeDataFromDataView(dataView: DataView | DataViewReader, indexStart?: number): IndoorBikeData;
```

Parse from a DataView into [IndoorBikeData](#api-indoorbikedata).


#### indoorPositioningConfigurationFromDataView

<a id="api-indoorpositioningconfigurationfromdataview"></a>

```typescript
 function indoorPositioningConfigurationFromDataView(dataView: DataView | DataViewReader, indexStart?: number): IndoorPositioningConfiguration;
```

Parse from a DataView into [IndoorPositioningConfiguration](#api-indoorpositioningconfiguration).


#### intermediateCuffPressureFromDataView

<a id="api-intermediatecuffpressurefromdataview"></a>

```typescript
 function intermediateCuffPressureFromDataView(dataView: DataView | DataViewReader, indexStart?: number): IntermediateCuffPressure;
```

Parse from a DataView into [IntermediateCuffPressure](#api-intermediatecuffpressure).


#### intermediateTemperatureFromDataView

<a id="api-intermediatetemperaturefromdataview"></a>

```typescript
 function intermediateTemperatureFromDataView(dataView: DataView | DataViewReader, indexStart?: number): IntermediateTemperature;
```

Parse from a DataView into [IntermediateTemperature](#api-intermediatetemperature).


#### irradianceFromDataView

<a id="api-irradiancefromdataview"></a>

```typescript
 function irradianceFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Irradiance;
```

Parse from a DataView into [Irradiance](#api-irradiance).


#### isGattCharacteristicName

<a id="api-isgattcharacteristicname"></a>

```typescript
isGattCharacteristicName: (value: unknown) => value is "string" | "boolean" | "current_time" | "device_time" | "acceleration" | "acs_control_point" | "acs_data_in" | "acs_data_out_indicate" | "acs_data_out_notify" | "acs_status" | "active_preset_index" | "activity_goal" | "advertising_constant_tone_extension_interval" | "advertising_constant_tone_extension_minimum_length" | "advertising_constant_tone_extension_minimum_transmit_count" | "advertising_constant_tone_extension_phy" | "advertising_constant_tone_extension_transmit_duration" | "aerobic_heart_rate_lower_limit" | "aerobic_heart_rate_upper_limit" | "aerobic_threshold" | "age" | "aggregate" | "alert_category_id" | "alert_category_id_bit_mask" | "alert_level" | "alert_notification_control_point" | "alert_status" | "altitude" | "ammonia_concentration" | "anaerobic_heart_rate_lower_limit" | "anaerobic_heart_rate_upper_limit" | "anaerobic_threshold" | "analog" | "analog_output" | "ap_sync_key_material" | "apparent_energy_32" | "apparent_power" | "apparent_wind_direction" | "apparent_wind_speed" | "ase_control_point" | "audio_input_control_point" | "audio_input_description" | "audio_input_state" | "audio_input_status" | "audio_input_type" | "audio_location" | "audio_output_description" | "available_audio_contexts" | "average_current" | "average_voltage" | "barometric_pressure_trend" | "battery_critical_status" | "battery_energy_status" | "battery_health_information" | "battery_health_status" | "battery_information" | "battery_level" | "battery_level_state" | "battery_level_status" | "battery_power_state" | "battery_time_status" | "bearer_list_current_calls" | "bearer_provider_name" | "bearer_signal_strength" | "bearer_signal_strength_reporting_interval" | "bearer_technology" | "bearer_uci" | "bearer_uri_schemes_supported_list" | "bgr_features" | "bgs_features" | "blood_pressure_feature" | "blood_pressure_measurement" | "blood_pressure_record" | "bluetooth_sig_data" | "body_composition_feature" | "body_composition_measurement" | "body_sensor_location" | "bond_management_control_point" | "bond_management_feature" | "boot_keyboard_input_report" | "boot_keyboard_output_report" | "boot_mouse_input_report" | "br_edr_handover_data" | "broadcast_audio_scan_control_point" | "broadcast_receive_state" | "bss_control_point" | "bss_response" | "call_control_point" | "call_control_point_optional_opcodes" | "call_friendly_name" | "call_state" | "caloric_intake" | "carbon_monoxide_concentration" | "cardiorespiratory_activity_instantaneous_data" | "cardiorespiratory_activity_summary_data" | "cgm_feature" | "cgm_measurement" | "cgm_session_run_time" | "cgm_session_start_time" | "cgm_specific_ops_control_point" | "cgm_status" | "chromatic_distance_from_planckian" | "chromaticity_coordinate" | "chromaticity_coordinates" | "chromaticity_in_cct_and_duv_values" | "chromaticity_tolerance" | "cie_13_3_1995_color_rendering_index" | "client_supported_features" | "co2_concentration" | "coefficient" | "constant_tone_extension_enable" | "content_control_id" | "correlated_color_temperature" | "cosine_of_the_angle" | "count_16" | "count_24" | "country_code" | "cross_trainer_data" | "csc_feature" | "csc_measurement" | "current_elapsed_time" | "current_group_object_id" | "current_track_object_id" | "current_track_segments_object_id" | "cycling_power_control_point" | "cycling_power_feature" | "cycling_power_measurement" | "cycling_power_vector" | "database_change_increment" | "database_hash" | "date_of_birth" | "date_of_threshold_assessment" | "date_time" | "date_utc" | "day_date_time" | "day_of_week" | "descriptor_value_changed" | "device_time_control_point" | "device_time_feature" | "device_time_parameters" | "device_wearing_position" | "dew_point" | "digital" | "digital_output" | "dst_offset" | "electric_current" | "electric_current_range" | "electric_current_specification" | "electric_current_statistics" | "elevation" | "email_address" | "emergency_id" | "emergency_text" | "encrypted_data_key_material" | "energy" | "energy_32" | "energy_in_a_period_of_day" | "enhanced_blood_pressure_measurement" | "enhanced_intermediate_cuff_pressure" | "esl_address" | "esl_control_point" | "esl_current_absolute_time" | "esl_display_information" | "esl_image_information" | "esl_led_information" | "esl_response_key_material" | "esl_sensor_information" | "estimated_service_date" | "event_statistics" | "exact_time_100" | "exact_time_256" | "fat_burn_heart_rate_lower_limit" | "fat_burn_heart_rate_upper_limit" | "firmware_revision_string" | "first_name" | "first_use_date" | "fitness_machine_control_point" | "fitness_machine_feature" | "fitness_machine_status" | "five_zone_heart_rate_limits" | "fixed_string_16" | "fixed_string_24" | "fixed_string_36" | "fixed_string_64" | "fixed_string_8" | "floor_number" | "force" | "four_zone_heart_rate_limits" | "gain_settings_attribute" | "gap.appearance" | "gap.central_address_resolution" | "gap.device_name" | "gap.peripheral_preferred_connection_parameters" | "gap.peripheral_privacy_flag" | "gap.reconnection_address" | "gatt.service_changed" | "gender" | "general_activity_instantaneous_data" | "general_activity_summary_data" | "generic_level" | "ghs_control_point" | "global_trade_item_number" | "glucose_feature" | "glucose_measurement" | "glucose_measurement_context" | "gmap_role" | "gust_factor" | "handedness" | "hardware_revision_string" | "health_sensor_features" | "hearing_aid_features" | "hearing_aid_preset_control_point" | "heart_rate_control_point" | "heart_rate_max" | "heart_rate_measurement" | "heat_index" | "height" | "hid_control_point" | "hid_information" | "high_intensity_exercise_threshold" | "high_resolution_height" | "high_temperature" | "high_voltage" | "hip_circumference" | "http_control_point" | "http_entity_body" | "http_headers" | "http_status_code" | "https_security" | "humidity" | "idd_annunciation_status" | "idd_command_control_point" | "idd_command_data" | "idd_features" | "idd_history_data" | "idd_record_access_control_point" | "idd_status" | "idd_status_changed" | "idd_status_reader_control_point" | "ieee_11073-20601_regulatory_certification_data_list" | "illuminance" | "imd_control" | "imd_historical_data" | "imd_status" | "imds_descriptor_value_changed" | "incoming_call" | "incoming_call_target_bearer_uri" | "indoor_bike_data" | "indoor_positioning_configuration" | "intermediate_cuff_pressure" | "intermediate_temperature" | "irradiance" | "language" | "last_name" | "latitude" | "le_gatt_security_levels" | "life_cycle_data" | "light_distribution" | "light_output" | "light_source_type" | "linear_position" | "live_health_observations" | "ln_control_point" | "ln_feature" | "local_east_coordinate" | "local_north_coordinate" | "local_time_information" | "location_and_speed" | "location_name" | "lock_characteristic" | "longitude" | "luminous_efficacy" | "luminous_energy" | "luminous_exposure" | "luminous_flux" | "luminous_flux_range" | "luminous_intensity" | "magnetic_declination" | "magnetic_flux_density_2d" | "magnetic_flux_density_3d" | "manufacturer_name_string" | "mass_flow" | "maximum_recommended_heart_rate" | "measurement_interval" | "media_control_point" | "media_control_point_opcodes_supported" | "media_player_icon_object_id" | "media_player_icon_url" | "media_player_name" | "media_state" | "medical_devices" | "mesh_provisioning_data_in" | "mesh_provisioning_data_out" | "mesh_proxy_data_in" | "mesh_proxy_data_out" | "methane_concentration" | "middle_name" | "model_number_string" | "mute" | "navigation" | "network_availability" | "new_alert" | "next_track_object_id" | "nitrogen_dioxide_concentration" | "noise" | "non-methane_volatile_organic_compounds_concentration" | "object_action_control_point" | "object_changed" | "object_first_created" | "object_id" | "object_last_modified" | "object_list_control_point" | "object_list_filter" | "object_name" | "object_properties" | "object_size" | "object_type" | "observation_schedule_changed" | "on-demand_ranging_data" | "ots_feature" | "ozone_concentration" | "parent_group_object_id" | "particulate_matter_pm1_concentration" | "particulate_matter_pm10_concentration" | "particulate_matter_pm2_5_concentration" | "perceived_lightness" | "percentage_8" | "percentage_8_steps" | "physical_activity_current_session" | "physical_activity_monitor_control_point" | "physical_activity_monitor_features" | "physical_activity_session_descriptor" | "playback_speed" | "playing_order" | "playing_orders_supported" | "plx_continuous_measurement" | "plx_features" | "plx_spot_check_measurement" | "pnp_id" | "pollen_concentration" | "position_2d" | "position_3d" | "position_quality" | "power" | "power_specification" | "preferred_units" | "pressure" | "protocol_mode" | "pulse_oximetry_control_point" | "rainfall" | "ranging_data_ready" | "rank_characteristic" | "ras_control_point" | "ras_features" | "rc_feature" | "rc_settings" | "real-time_ranging_data" | "reconnection_configuration_control_point" | "record_access_control_point" | "reference_time_information" | "registered_user" | "relative_runtime_in_a_correlated_color_temperature_range" | "relative_runtime_in_a_current_range" | "relative_runtime_in_a_generic_level_range" | "relative_value_in_a_period_of_day" | "relative_value_in_a_temperature_range" | "relative_value_in_a_voltage_range" | "relative_value_in_an_illuminance_range" | "removable" | "report" | "report_map" | "resolvable_private_address_only" | "resting_heart_rate" | "ringer_control_point" | "ringer_setting" | "rotational_speed" | "rower_data" | "rsc_feature" | "rsc_measurement" | "sc_control_point" | "scan_interval_window" | "scan_refresh" | "scientific_temperature_celsius" | "search_control_point" | "search_results_object_id" | "secondary_time_zone" | "sedentary_interval_notification" | "seeking_speed" | "sensor_location" | "serial_number_string" | "server_supported_features" | "service_cycle_data" | "service_required" | "set_identity_resolving_key" | "sink_ase" | "sink_audio_locations" | "sink_pac" | "size_characteristic" | "sleep_activity_instantaneous_data" | "sleep_activity_summary_data" | "software_revision_string" | "source_ase" | "source_audio_locations" | "source_pac" | "sport_type_for_aerobic_and_anaerobic_thresholds" | "stair_climber_data" | "status_flags" | "step_climber_data" | "step_counter_activity_summary_data" | "stored_health_observations" | "stride_length" | "sulfur_dioxide_concentration" | "sulfur_hexafluoride_concentration" | "supported_audio_contexts" | "supported_heart_rate_range" | "supported_inclination_range" | "supported_new_alert_category" | "supported_power_range" | "supported_resistance_level_range" | "supported_speed_range" | "supported_unread_alert_category" | "system_id" | "tds_control_point" | "temperature" | "temperature_8" | "temperature_8_in_a_period_of_day" | "temperature_8_statistics" | "temperature_celsius" | "temperature_fahrenheit" | "temperature_measurement" | "temperature_range" | "temperature_statistics" | "temperature_type" | "termination_reason" | "three_zone_heart_rate_limits" | "time_accuracy" | "time_broadcast" | "time_change_log_data" | "time_decihour_8" | "time_exponential_8" | "time_hour_24" | "time_millisecond_24" | "time_second_16" | "time_second_32" | "time_second_8" | "time_source" | "time_update_control_point" | "time_update_state" | "time_with_dst" | "time_zone" | "tmap_role" | "torque" | "track_changed" | "track_duration" | "track_position" | "track_title" | "training_status" | "treadmill_data" | "true_wind_direction" | "true_wind_speed" | "two_zone_heart_rate_limits" | "tx_power_level" | "ugg_features" | "ugt_features" | "uncertainty" | "unread_alert_status" | "uri" | "user_control_point" | "user_index" | "uv_index" | "vo2_max" | "voc_concentration" | "voltage" | "voltage_frequency" | "voltage_specification" | "voltage_statistics" | "volume_control_point" | "volume_flags" | "volume_flow" | "volume_offset_control_point" | "volume_offset_state" | "volume_state" | "waist_circumference" | "weight" | "weight_measurement" | "weight_scale_feature" | "wind_chill" | "work_cycle_data" | "length"
```

#### isGattDescriptorName

<a id="api-isgattdescriptorname"></a>

```typescript
isGattDescriptorName: (value: unknown) => value is "complete_br_edr_transport_block_data" | "es_configuration" | "es_measurement" | "es_trigger_setting" | "external_report_reference" | "gatt.characteristic_aggregate_format" | "gatt.characteristic_extended_properties" | "gatt.characteristic_presentation_format" | "gatt.characteristic_user_description" | "gatt.client_characteristic_configuration" | "gatt.server_characteristic_configuration" | "manufacturer_limits" | "measurement_description" | "number_of_digitals" | "observation_schedule" | "process_tolerances" | "report_reference" | "time_trigger_setting" | "valid_range" | "valid_range_accuracy" | "value_trigger_setting"
```

#### isGattServiceName

<a id="api-isgattservicename"></a>

```typescript
isGattServiceName: (value: unknown) => value is "alert_notification" | "audio_input_control" | "audio_stream_control" | "authorization_control" | "automation_io" | "basic_audio_announcement" | "battery_service" | "binary_sensor" | "blood_pressure" | "body_composition" | "bond_management" | "broadcast_audio_announcement" | "broadcast_audio_scan" | "common_audio" | "constant_tone_extension" | "continuous_glucose_monitoring" | "coordinated_set_identification" | "current_time" | "cycling_power" | "cycling_speed_and_cadence" | "device_information" | "device_time" | "elapsed_time" | "electronic_shelf_label" | "emergency_configuration" | "environmental_sensing" | "fitness_machine" | "gaming_audio" | "gap" | "gatt" | "generic_health_sensor" | "generic_media_control" | "generic_telephone_bearer" | "glucose" | "health_thermometer" | "hearing_access" | "heart_rate" | "http_proxy" | "human_interface_device" | "immediate_alert" | "indoor_positioning" | "industrial_measurement_device" | "insulin_delivery" | "internet_protocol_support" | "link_loss" | "location_and_navigation" | "media_control" | "mesh_provisioning" | "mesh_proxy" | "mesh_proxy_solicitation" | "microphone_control" | "next_dst_change" | "object_transfer" | "phone_alert_status" | "physical_activity_monitor" | "public_broadcast_announcement" | "published_audio_capabilities" | "pulse_oximeter" | "reconnection_configuration" | "reference_time_update" | "running_speed_and_cadence" | "scan_parameters" | "telephone_bearer" | "telephony_and_media_audio" | "transport_discovery" | "tx_power" | "user_data" | "volume_control" | "volume_offset" | "weight_scale"
```

#### languageFromDataView

<a id="api-languagefromdataview"></a>

```typescript
 function languageFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Language;
```

Parse from a DataView into [Language](#api-language).


#### lastNameFromDataView

<a id="api-lastnamefromdataview"></a>

```typescript
 function lastNameFromDataView(dataView: DataView | DataViewReader, indexStart?: number): LastName;
```

Parse from a DataView into [LastName](#api-lastname).


#### latitudeFromDataView

<a id="api-latitudefromdataview"></a>

```typescript
 function latitudeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Latitude;
```

Parse from a DataView into [Latitude](#api-latitude).


#### lnFeatureFromDataView

<a id="api-lnfeaturefromdataview"></a>

```typescript
 function lnFeatureFromDataView(dataView: DataView | DataViewReader, indexStart?: number): LnFeature;
```

Parse from a DataView into [LnFeature](#api-lnfeature).


#### localEastCoordinateFromDataView

<a id="api-localeastcoordinatefromdataview"></a>

```typescript
 function localEastCoordinateFromDataView(dataView: DataView | DataViewReader, indexStart?: number): LocalEastCoordinate;
```

Parse from a DataView into [LocalEastCoordinate](#api-localeastcoordinate).


#### localNorthCoordinateFromDataView

<a id="api-localnorthcoordinatefromdataview"></a>

```typescript
 function localNorthCoordinateFromDataView(dataView: DataView | DataViewReader, indexStart?: number): LocalNorthCoordinate;
```

Parse from a DataView into [LocalNorthCoordinate](#api-localnorthcoordinate).


#### localTimeInformationFromDataView

<a id="api-localtimeinformationfromdataview"></a>

```typescript
 function localTimeInformationFromDataView(dataView: DataView | DataViewReader, indexStart?: number): LocalTimeInformation;
```

Parse from a DataView into [LocalTimeInformation](#api-localtimeinformation).


#### locationAndSpeedFromDataView

<a id="api-locationandspeedfromdataview"></a>

```typescript
 function locationAndSpeedFromDataView(dataView: DataView | DataViewReader, indexStart?: number): LocationAndSpeed;
```

Parse from a DataView into [LocationAndSpeed](#api-locationandspeed).


#### locationNameFromDataView

<a id="api-locationnamefromdataview"></a>

```typescript
 function locationNameFromDataView(dataView: DataView | DataViewReader, indexStart?: number): LocationName;
```

Parse from a DataView into [LocationName](#api-locationname).


#### longitudeFromDataView

<a id="api-longitudefromdataview"></a>

```typescript
 function longitudeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Longitude;
```

Parse from a DataView into [Longitude](#api-longitude).


#### magneticDeclinationFromDataView

<a id="api-magneticdeclinationfromdataview"></a>

```typescript
 function magneticDeclinationFromDataView(dataView: DataView | DataViewReader, indexStart?: number): MagneticDeclination;
```

Parse from a DataView into [MagneticDeclination](#api-magneticdeclination).


#### magneticFluxDensity2DFromDataView

<a id="api-magneticfluxdensity2dfromdataview"></a>

```typescript
 function magneticFluxDensity2DFromDataView(dataView: DataView | DataViewReader, indexStart?: number): MagneticFluxDensity2D;
```

Parse from a DataView into [MagneticFluxDensity2D](#api-magneticfluxdensity2d).


#### magneticFluxDensity3DFromDataView

<a id="api-magneticfluxdensity3dfromdataview"></a>

```typescript
 function magneticFluxDensity3DFromDataView(dataView: DataView | DataViewReader, indexStart?: number): MagneticFluxDensity3D;
```

Parse from a DataView into [MagneticFluxDensity3D](#api-magneticfluxdensity3d).


#### manufacturerNameStringFromDataView

<a id="api-manufacturernamestringfromdataview"></a>

```typescript
 function manufacturerNameStringFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ManufacturerNameString;
```

Parse from a DataView into [ManufacturerNameString](#api-manufacturernamestring).


#### maximumRecommendedHeartRateFromDataView

<a id="api-maximumrecommendedheartratefromdataview"></a>

```typescript
 function maximumRecommendedHeartRateFromDataView(dataView: DataView | DataViewReader, indexStart?: number): MaximumRecommendedHeartRate;
```

Parse from a DataView into [MaximumRecommendedHeartRate](#api-maximumrecommendedheartrate).


#### measurementIntervalFromDataView

<a id="api-measurementintervalfromdataview"></a>

```typescript
 function measurementIntervalFromDataView(dataView: DataView | DataViewReader, indexStart?: number): MeasurementInterval;
```

Parse from a DataView into [MeasurementInterval](#api-measurementinterval).


#### modelNumberStringFromDataView

<a id="api-modelnumberstringfromdataview"></a>

```typescript
 function modelNumberStringFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ModelNumberString;
```

Parse from a DataView into [ModelNumberString](#api-modelnumberstring).


#### navigationFromDataView

<a id="api-navigationfromdataview"></a>

```typescript
 function navigationFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Navigation;
```

Parse from a DataView into [Navigation](#api-navigation).


#### newAlertFromDataView

<a id="api-newalertfromdataview"></a>

```typescript
 function newAlertFromDataView(dataView: DataView | DataViewReader, indexStart?: number): NewAlert;
```

Parse from a DataView into [NewAlert](#api-newalert).


#### numberOfDigitalsFromDataView

<a id="api-numberofdigitalsfromdataview"></a>

```typescript
 function numberOfDigitalsFromDataView(dataView: DataView | DataViewReader, indexStart?: number): NumberOfDigitals;
```

Parse from a DataView into [NumberOfDigitals](#api-numberofdigitals).


#### objectFirstCreatedFromDataView

<a id="api-objectfirstcreatedfromdataview"></a>

```typescript
 function objectFirstCreatedFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ObjectFirstCreated;
```

Parse from a DataView into [ObjectFirstCreated](#api-objectfirstcreated).


#### objectIdFromDataView

<a id="api-objectidfromdataview"></a>

```typescript
 function objectIdFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ObjectId;
```

Parse from a DataView into [ObjectId](#api-objectid).


#### objectLastModifiedFromDataView

<a id="api-objectlastmodifiedfromdataview"></a>

```typescript
 function objectLastModifiedFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ObjectLastModified;
```

Parse from a DataView into [ObjectLastModified](#api-objectlastmodified).


#### objectNameFromDataView

<a id="api-objectnamefromdataview"></a>

```typescript
 function objectNameFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ObjectName;
```

Parse from a DataView into [ObjectName](#api-objectname).


#### objectSizeFromDataView

<a id="api-objectsizefromdataview"></a>

```typescript
 function objectSizeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ObjectSize;
```

Parse from a DataView into [ObjectSize](#api-objectsize).


#### parseHeartRate

<a id="api-parseheartrate"></a>

```typescript
parseHeartRate: (viewOrHex: DataView | string) => HeartRateMeasurement
```

#### plxContinuousMeasurementFromDataView

<a id="api-plxcontinuousmeasurementfromdataview"></a>

```typescript
 function plxContinuousMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): PlxContinuousMeasurement;
```

Parse from a DataView into [PlxContinuousMeasurement](#api-plxcontinuousmeasurement).


#### plxFeaturesFromDataView

<a id="api-plxfeaturesfromdataview"></a>

```typescript
 function plxFeaturesFromDataView(dataView: DataView | DataViewReader, indexStart?: number): PlxFeatures;
```

Parse from a DataView into [PlxFeatures](#api-plxfeatures).


#### plxSpotCheckMeasurementFromDataView

<a id="api-plxspotcheckmeasurementfromdataview"></a>

```typescript
 function plxSpotCheckMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): PlxSpotCheckMeasurement;
```

Parse from a DataView into [PlxSpotCheckMeasurement](#api-plxspotcheckmeasurement).


#### pnpIdFromDataView

<a id="api-pnpidfromdataview"></a>

```typescript
 function pnpIdFromDataView(dataView: DataView | DataViewReader, indexStart?: number): PnpId;
```

Parse from a DataView into [PnpId](#api-pnpid).


#### pollenConcentrationFromDataView

<a id="api-pollenconcentrationfromdataview"></a>

```typescript
 function pollenConcentrationFromDataView(dataView: DataView | DataViewReader, indexStart?: number): PollenConcentration;
```

Parse from a DataView into [PollenConcentration](#api-pollenconcentration).


#### positionQualityFromDataView

<a id="api-positionqualityfromdataview"></a>

```typescript
 function positionQualityFromDataView(dataView: DataView | DataViewReader, indexStart?: number): PositionQuality;
```

Parse from a DataView into [PositionQuality](#api-positionquality).


#### pressureFromDataView

<a id="api-pressurefromdataview"></a>

```typescript
 function pressureFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Pressure;
```

Parse from a DataView into [Pressure](#api-pressure).


#### protocolModeFromDataView

<a id="api-protocolmodefromdataview"></a>

```typescript
 function protocolModeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ProtocolMode;
```

Parse from a DataView into [ProtocolMode](#api-protocolmode).


#### rainfallFromDataView

<a id="api-rainfallfromdataview"></a>

```typescript
 function rainfallFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Rainfall;
```

Parse from a DataView into [Rainfall](#api-rainfall).


#### referenceTimeInformationFromDataView

<a id="api-referencetimeinformationfromdataview"></a>

```typescript
 function referenceTimeInformationFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ReferenceTimeInformation;
```

Parse from a DataView into [ReferenceTimeInformation](#api-referencetimeinformation).


#### reportFromDataView

<a id="api-reportfromdataview"></a>

```typescript
 function reportFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Report;
```

Parse from a DataView into [Report](#api-report).


#### reportMapFromDataView

<a id="api-reportmapfromdataview"></a>

```typescript
 function reportMapFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ReportMap;
```

Parse from a DataView into [ReportMap](#api-reportmap).


#### reportReferenceFromDataView

<a id="api-reportreferencefromdataview"></a>

```typescript
 function reportReferenceFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ReportReference;
```

Parse from a DataView into [ReportReference](#api-reportreference).


#### resolvablePrivateAddressOnlyFromDataView

<a id="api-resolvableprivateaddressonlyfromdataview"></a>

```typescript
 function resolvablePrivateAddressOnlyFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ResolvablePrivateAddressOnly;
```

Parse from a DataView into [ResolvablePrivateAddressOnly](#api-resolvableprivateaddressonly).


#### restingHeartRateFromDataView

<a id="api-restingheartratefromdataview"></a>

```typescript
 function restingHeartRateFromDataView(dataView: DataView | DataViewReader, indexStart?: number): RestingHeartRate;
```

Parse from a DataView into [RestingHeartRate](#api-restingheartrate).


#### ringerControlPointFromDataView

<a id="api-ringercontrolpointfromdataview"></a>

```typescript
 function ringerControlPointFromDataView(dataView: DataView | DataViewReader, indexStart?: number): RingerControlPoint;
```

Parse from a DataView into [RingerControlPoint](#api-ringercontrolpoint).


#### ringerSettingFromDataView

<a id="api-ringersettingfromdataview"></a>

```typescript
 function ringerSettingFromDataView(dataView: DataView | DataViewReader, indexStart?: number): RingerSetting;
```

Parse from a DataView into [RingerSetting](#api-ringersetting).


#### rowerDataFromDataView

<a id="api-rowerdatafromdataview"></a>

```typescript
 function rowerDataFromDataView(dataView: DataView | DataViewReader, indexStart?: number): RowerData;
```

Parse from a DataView into [RowerData](#api-rowerdata).


#### rscFeatureFromDataView

<a id="api-rscfeaturefromdataview"></a>

```typescript
 function rscFeatureFromDataView(dataView: DataView | DataViewReader, indexStart?: number): RscFeature;
```

Parse from a DataView into [RscFeature](#api-rscfeature).


#### rscMeasurementFromDataView

<a id="api-rscmeasurementfromdataview"></a>

```typescript
 function rscMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): RscMeasurement;
```

Parse from a DataView into [RscMeasurement](#api-rscmeasurement).


#### scanIntervalWindowFromDataView

<a id="api-scanintervalwindowfromdataview"></a>

```typescript
 function scanIntervalWindowFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ScanIntervalWindow;
```

Parse from a DataView into [ScanIntervalWindow](#api-scanintervalwindow).


#### scanRefreshFromDataView

<a id="api-scanrefreshfromdataview"></a>

```typescript
 function scanRefreshFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ScanRefresh;
```

Parse from a DataView into [ScanRefresh](#api-scanrefresh).


#### sensorLocationFromDataView

<a id="api-sensorlocationfromdataview"></a>

```typescript
 function sensorLocationFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SensorLocation;
```

Parse from a DataView into [SensorLocation](#api-sensorlocation).


#### serialNumberStringFromDataView

<a id="api-serialnumberstringfromdataview"></a>

```typescript
 function serialNumberStringFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SerialNumberString;
```

Parse from a DataView into [SerialNumberString](#api-serialnumberstring).


#### softwareRevisionStringFromDataView

<a id="api-softwarerevisionstringfromdataview"></a>

```typescript
 function softwareRevisionStringFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SoftwareRevisionString;
```

Parse from a DataView into [SoftwareRevisionString](#api-softwarerevisionstring).


#### sportTypeForAerobicAndAnaerobicThresholdsFromDataView

<a id="api-sporttypeforaerobicandanaerobicthresholdsfromdataview"></a>

```typescript
 function sportTypeForAerobicAndAnaerobicThresholdsFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SportTypeForAerobicAndAnaerobicThresholds;
```

Parse from a DataView into [SportTypeForAerobicAndAnaerobicThresholds](#api-sporttypeforaerobicandanaerobicthresholds).


#### stairClimberDataFromDataView

<a id="api-stairclimberdatafromdataview"></a>

```typescript
 function stairClimberDataFromDataView(dataView: DataView | DataViewReader, indexStart?: number): StairClimberData;
```

Parse from a DataView into [StairClimberData](#api-stairclimberdata).


#### stepClimberDataFromDataView

<a id="api-stepclimberdatafromdataview"></a>

```typescript
 function stepClimberDataFromDataView(dataView: DataView | DataViewReader, indexStart?: number): StepClimberData;
```

Parse from a DataView into [StepClimberData](#api-stepclimberdata).


#### supportedHeartRateRangeFromDataView

<a id="api-supportedheartraterangefromdataview"></a>

```typescript
 function supportedHeartRateRangeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SupportedHeartRateRange;
```

Parse from a DataView into [SupportedHeartRateRange](#api-supportedheartraterange).


#### supportedInclinationRangeFromDataView

<a id="api-supportedinclinationrangefromdataview"></a>

```typescript
 function supportedInclinationRangeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SupportedInclinationRange;
```

Parse from a DataView into [SupportedInclinationRange](#api-supportedinclinationrange).


#### supportedNewAlertCategoryFromDataView

<a id="api-supportednewalertcategoryfromdataview"></a>

```typescript
 function supportedNewAlertCategoryFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SupportedNewAlertCategory;
```

Parse from a DataView into [SupportedNewAlertCategory](#api-supportednewalertcategory).


#### supportedPowerRangeFromDataView

<a id="api-supportedpowerrangefromdataview"></a>

```typescript
 function supportedPowerRangeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SupportedPowerRange;
```

Parse from a DataView into [SupportedPowerRange](#api-supportedpowerrange).


#### supportedResistanceLevelRangeFromDataView

<a id="api-supportedresistancelevelrangefromdataview"></a>

```typescript
 function supportedResistanceLevelRangeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SupportedResistanceLevelRange;
```

Parse from a DataView into [SupportedResistanceLevelRange](#api-supportedresistancelevelrange).


#### supportedSpeedRangeFromDataView

<a id="api-supportedspeedrangefromdataview"></a>

```typescript
 function supportedSpeedRangeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SupportedSpeedRange;
```

Parse from a DataView into [SupportedSpeedRange](#api-supportedspeedrange).


#### supportedUnreadAlertCategoryFromDataView

<a id="api-supportedunreadalertcategoryfromdataview"></a>

```typescript
 function supportedUnreadAlertCategoryFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SupportedUnreadAlertCategory;
```

Parse from a DataView into [SupportedUnreadAlertCategory](#api-supportedunreadalertcategory).


#### systemIdFromDataView

<a id="api-systemidfromdataview"></a>

```typescript
 function systemIdFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SystemId;
```

Parse from a DataView into [SystemId](#api-systemid).


#### temperatureFromDataView

<a id="api-temperaturefromdataview"></a>

```typescript
 function temperatureFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Temperature;
```

Parse from a DataView into [Temperature](#api-temperature).


#### temperatureMeasurementFromDataView

<a id="api-temperaturemeasurementfromdataview"></a>

```typescript
 function temperatureMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TemperatureMeasurement;
```

Parse from a DataView into [TemperatureMeasurement](#api-temperaturemeasurement).


#### temperatureTypeFromDataView

<a id="api-temperaturetypefromdataview"></a>

```typescript
 function temperatureTypeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TemperatureType;
```

Parse from a DataView into [TemperatureType](#api-temperaturetype).


#### threeZoneHeartRateLimitsFromDataView

<a id="api-threezoneheartratelimitsfromdataview"></a>

```typescript
 function threeZoneHeartRateLimitsFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ThreeZoneHeartRateLimits;
```

Parse from a DataView into [ThreeZoneHeartRateLimits](#api-threezoneheartratelimits).


#### timeAccuracyFromDataView

<a id="api-timeaccuracyfromdataview"></a>

```typescript
 function timeAccuracyFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TimeAccuracy;
```

Parse from a DataView into [TimeAccuracy](#api-timeaccuracy).


#### timeSourceFromDataView

<a id="api-timesourcefromdataview"></a>

```typescript
 function timeSourceFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TimeSource;
```

Parse from a DataView into [TimeSource](#api-timesource).


#### timeTriggerSettingFromDataView

<a id="api-timetriggersettingfromdataview"></a>

```typescript
 function timeTriggerSettingFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TimeTriggerSetting;
```

Parse from a DataView into [TimeTriggerSetting](#api-timetriggersetting).


#### timeUpdateControlPointFromDataView

<a id="api-timeupdatecontrolpointfromdataview"></a>

```typescript
 function timeUpdateControlPointFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TimeUpdateControlPoint;
```

Parse from a DataView into [TimeUpdateControlPoint](#api-timeupdatecontrolpoint).


#### timeUpdateStateFromDataView

<a id="api-timeupdatestatefromdataview"></a>

```typescript
 function timeUpdateStateFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TimeUpdateState;
```

Parse from a DataView into [TimeUpdateState](#api-timeupdatestate).


#### timeWithDstFromDataView

<a id="api-timewithdstfromdataview"></a>

```typescript
 function timeWithDstFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TimeWithDst;
```

Parse from a DataView into [TimeWithDst](#api-timewithdst).


#### timeZoneFromDataView

<a id="api-timezonefromdataview"></a>

```typescript
 function timeZoneFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TimeZone;
```

Parse from a DataView into [TimeZone](#api-timezone).


#### treadmillDataFromDataView

<a id="api-treadmilldatafromdataview"></a>

```typescript
 function treadmillDataFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TreadmillData;
```

Parse from a DataView into [TreadmillData](#api-treadmilldata).


#### trueWindDirectionFromDataView

<a id="api-truewinddirectionfromdataview"></a>

```typescript
 function trueWindDirectionFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TrueWindDirection;
```

Parse from a DataView into [TrueWindDirection](#api-truewinddirection).


#### trueWindSpeedFromDataView

<a id="api-truewindspeedfromdataview"></a>

```typescript
 function trueWindSpeedFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TrueWindSpeed;
```

Parse from a DataView into [TrueWindSpeed](#api-truewindspeed).


#### twoZoneHeartRateLimitFromDataView

<a id="api-twozoneheartratelimitfromdataview"></a>

```typescript
 function twoZoneHeartRateLimitFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TwoZoneHeartRateLimit;
```

Parse from a DataView into [TwoZoneHeartRateLimit](#api-twozoneheartratelimit).


#### txPowerLevelFromDataView

<a id="api-txpowerlevelfromdataview"></a>

```typescript
 function txPowerLevelFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TxPowerLevel;
```

Parse from a DataView into [TxPowerLevel](#api-txpowerlevel).


#### uncertaintyFromDataView

<a id="api-uncertaintyfromdataview"></a>

```typescript
 function uncertaintyFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Uncertainty;
```

Parse from a DataView into [Uncertainty](#api-uncertainty).


#### unreadAlertStatusFromDataView

<a id="api-unreadalertstatusfromdataview"></a>

```typescript
 function unreadAlertStatusFromDataView(dataView: DataView | DataViewReader, indexStart?: number): UnreadAlertStatus;
```

Parse from a DataView into [UnreadAlertStatus](#api-unreadalertstatus).


#### uriFromDataView

<a id="api-urifromdataview"></a>

```typescript
 function uriFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Uri;
```

Parse from a DataView into [Uri](#api-uri).


#### userIndexFromDataView

<a id="api-userindexfromdataview"></a>

```typescript
 function userIndexFromDataView(dataView: DataView | DataViewReader, indexStart?: number): UserIndex;
```

Parse from a DataView into [UserIndex](#api-userindex).


#### uvIndexFromDataView

<a id="api-uvindexfromdataview"></a>

```typescript
 function uvIndexFromDataView(dataView: DataView | DataViewReader, indexStart?: number): UvIndex;
```

Parse from a DataView into [UvIndex](#api-uvindex).


#### valueTriggerSettingFromDataView

<a id="api-valuetriggersettingfromdataview"></a>

```typescript
 function valueTriggerSettingFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ValueTriggerSetting;
```

Parse from a DataView into [ValueTriggerSetting](#api-valuetriggersetting).


#### vo2MaxFromDataView

<a id="api-vo2maxfromdataview"></a>

```typescript
 function vo2MaxFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Vo2Max;
```

Parse from a DataView into [Vo2Max](#api-vo2max).


#### waistCircumferenceFromDataView

<a id="api-waistcircumferencefromdataview"></a>

```typescript
 function waistCircumferenceFromDataView(dataView: DataView | DataViewReader, indexStart?: number): WaistCircumference;
```

Parse from a DataView into [WaistCircumference](#api-waistcircumference).


#### weightFromDataView

<a id="api-weightfromdataview"></a>

```typescript
 function weightFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Weight;
```

Parse from a DataView into [Weight](#api-weight).


#### weightMeasurementFromDataView

<a id="api-weightmeasurementfromdataview"></a>

```typescript
 function weightMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): WeightMeasurement;
```

Parse from a DataView into [WeightMeasurement](#api-weightmeasurement).


#### weightScaleFeatureFromDataView

<a id="api-weightscalefeaturefromdataview"></a>

```typescript
 function weightScaleFeatureFromDataView(dataView: DataView | DataViewReader, indexStart?: number): WeightScaleFeature;
```

Parse from a DataView into [WeightScaleFeature](#api-weightscalefeature).


#### windChillFromDataView

<a id="api-windchillfromdataview"></a>

```typescript
 function windChillFromDataView(dataView: DataView | DataViewReader, indexStart?: number): WindChill;
```

Parse from a DataView into [WindChill](#api-windchill).


### Interfaces

#### AerobicHeartRateLowerLimit

<a id="api-aerobicheartratelowerlimit"></a>

```typescript
export interface AerobicHeartRateLowerLimit 
```

<p>Lower limit of the heart rate where the user enhances his endurance while exercising</p>


#### AerobicHeartRateUpperLimit

<a id="api-aerobicheartrateupperlimit"></a>

```typescript
export interface AerobicHeartRateUpperLimit 
```

<p>Upper limit of the heart rate where the user enhances his endurance while exercising</p>


#### AerobicThreshold

<a id="api-aerobicthreshold"></a>

```typescript
export interface AerobicThreshold 
```

<p>First metabolic threshold.</p>


#### Age

<a id="api-age"></a>

```typescript
export interface Age 
```

<p>Age of the User.</p>


#### Aggregate

<a id="api-aggregate"></a>

```typescript
export interface Aggregate 
```

<p>The Aggregate Input is an aggregate of the Digital Input Characteristic value (if available) and ALL Analog Inputs available.</p>


#### AlertCategoryId

<a id="api-alertcategoryid"></a>

```typescript
export interface AlertCategoryId 
```

<p>Categories of alerts/messages.</p> <p>The value 0x01 is interpreted as ?Email?</p> <p>The value of the characteristic is an unsigned 8 bit integer that has a fixed point exponent of 0. The Alert Category ID characteristic defines the predefined categories of messages as an enumeration.</p>


#### AlertCategoryIdBitMask

<a id="api-alertcategoryidbitmask"></a>

```typescript
export interface AlertCategoryIdBitMask 
```

<p>Categories of alerts/messages.</p> <p>The value 0x03 is interpreted as ?Simple Alert and Email bits set?</p> <p>The value of the characteristic is a bit mask implemented as an array of unsigned 8 bit integers. The Alert Category ID Bit Mask characteristic defines one bit for each predefined category ID.</p>


#### AlertLevel

<a id="api-alertlevel"></a>

```typescript
export interface AlertLevel 
```

<p>The level of an alert a device is to sound. If this level is changed while the alert is being sounded, the new level should take effect.</p> <p>The value 0x01 is interpreted as ?Mild Alert?</p> <p>? Value 0, meaning ?No Alert?</p> <p>? Value 1, meaning ?Mild Alert?</p> <p>? Value 2, meaning ?High Alert?</p>


#### AlertNotificationControlPoint

<a id="api-alertnotificationcontrolpoint"></a>

```typescript
export interface AlertNotificationControlPoint 
```

<p>Control point of the Alert Notification server. Client can write the command here to request the several functions toward the server.</p> <p>The data 0x02 0x01 interprets ?Disable New Incoming Notification for Email Category?.</p> <p>The 2nd octet value of the characteristic is an ?Alert Category ID? format. This octet shows the target category that the command ID applies for.</p>


#### AlertStatus

<a id="api-alertstatus"></a>

```typescript
export interface AlertStatus 
```

<p>Bit 0, meaning ?Ringer State?</p> <p>Bit 1, meaning ?Vibrator State?</p> <p>Bit 2, meaning "Display Alert Status"</p> <p>Bit 0, 0 meaning ?Ringer State? not active, 1 meaning ?Ringer State? active</p> <p>Bit 1, 0 meaning ?Vibrator State? not active, 1 meaning ?Vibrator State? active</p> <p>Bit 2, 0 meaning ?Display Alert State? not active, 1 meaning ?Display Alert State? active</p>


#### Altitude

<a id="api-altitude"></a>

```typescript
export interface Altitude 
```

<p>The Altitude characteristic describes the altitude of the device.</p>


#### AnaerobicHeartRateLowerLimit

<a id="api-anaerobicheartratelowerlimit"></a>

```typescript
export interface AnaerobicHeartRateLowerLimit 
```

<p>Lower limit of the heart rate where the user enhances his anaerobic tolerance while exercising.</p>


#### AnaerobicHeartRateUpperLimit

<a id="api-anaerobicheartrateupperlimit"></a>

```typescript
export interface AnaerobicHeartRateUpperLimit 
```

<p>Upper limit of the heart rate where the user enhances his anaerobic tolerance while exercising.</p>


#### AnaerobicThreshold

<a id="api-anaerobicthreshold"></a>

```typescript
export interface AnaerobicThreshold 
```

<p>Second metabolic threshold</p>


#### Analog

<a id="api-analog"></a>

```typescript
export interface Analog 
```

<p>The Analog characteristic is used to read or write the value of one of the IO Module?s analog signals.</p>


#### ApparentWindDirection

<a id="api-apparentwinddirection"></a>

```typescript
export interface ApparentWindDirection 
```

#### ApparentWindSpeed

<a id="api-apparentwindspeed"></a>

```typescript
export interface ApparentWindSpeed 
```

#### BarometricPressureTrend

<a id="api-barometricpressuretrend"></a>

```typescript
export interface BarometricPressureTrend 
```

#### BatteryLevel

<a id="api-batterylevel"></a>

```typescript
export interface BatteryLevel 
```

<p>The current charge level of a battery. 100% represents fully charged while 0% represents fully discharged.</p>


#### BloodPressureFeature

<a id="api-bloodpressurefeature"></a>

```typescript
export interface BloodPressureFeature 
```

<p>The Blood Pressure Feature characteristic is used to describe the supported features of the Blood Pressure Sensor.</p>


#### BloodPressureMeasurement

<a id="api-bloodpressuremeasurement"></a>

```typescript
export interface BloodPressureMeasurement 
```

<p>The Blood Pressure Measurement characteristic is a variable length structure containing a Flags field, a Blood Pressure Measurement Compound Value field, and contains additional fields such as Time Stamp, Pulse Rate and User ID as determined by the contents of the Flags field.</p>


#### BodyCompositionFeature

<a id="api-bodycompositionfeature"></a>

```typescript
export interface BodyCompositionFeature 
```

#### BodyCompositionMeasurement

<a id="api-bodycompositionmeasurement"></a>

```typescript
export interface BodyCompositionMeasurement 
```

#### BodySensorLocation

<a id="api-bodysensorlocation"></a>

```typescript
export interface BodySensorLocation 
```

#### BootKeyboardInputReport

<a id="api-bootkeyboardinputreport"></a>

```typescript
export interface BootKeyboardInputReport 
```

<p>The Boot Keyboard Input Report characteristic is used to transfer fixed format and length Input Report data between a HID Host operating in Boot Protocol Mode and a HID Service corresponding to a boot keyboard.</p>


#### BootKeyboardOutputReport

<a id="api-bootkeyboardoutputreport"></a>

```typescript
export interface BootKeyboardOutputReport 
```

<p>The Boot Keyboard Output Report characteristic is used to transfer fixed format and length Output Report data between a HID Host operating in Boot Protocol Mode and a HID Service corresponding to a boot keyboard.</p>


#### BootMouseInputReport

<a id="api-bootmouseinputreport"></a>

```typescript
export interface BootMouseInputReport 
```

<p>The Boot Mouse Input Report characteristic is used to transfer fixed format and length Input Report data between a HID Host operating in Boot Protocol Mode and a HID Service corresponding to a boot mouse.</p>


#### BtReaderClass

<a id="api-btreaderclass"></a>

```typescript
export interface BtReaderClass 
```

#### CgmFeature

<a id="api-cgmfeature"></a>

```typescript
export interface CgmFeature 
```

#### CrossTrainerData

<a id="api-crosstrainerdata"></a>

```typescript
export interface CrossTrainerData 
```

<p>The Cross Trainer Data characteristic is used to send training-related data to the Client from a cross trainer (Server).</p>


#### CscFeature

<a id="api-cscfeature"></a>

```typescript
export interface CscFeature 
```

<p>The CSC (Cycling Speed and Cadence) Feature characteristic is used to describe the supported features of the Server.</p>


#### CscMeasurement

<a id="api-cscmeasurement"></a>

```typescript
export interface CscMeasurement 
```

<p>The CSC Measurement characteristic (CSC refers to Cycling Speed and Cadence) is a variable length structure containing a Flags field and, based on the contents of the Flags field, may contain one or more additional fields as shown in the tables below.</p>


#### CurrentTime

<a id="api-currenttime"></a>

```typescript
export interface CurrentTime 
```

#### CyclingPowerFeature

<a id="api-cyclingpowerfeature"></a>

```typescript
export interface CyclingPowerFeature 
```

<p>The CP Feature characteristic is used to report a list of features supported by the device.</p>


#### CyclingPowerMeasurement

<a id="api-cyclingpowermeasurement"></a>

```typescript
export interface CyclingPowerMeasurement 
```

<p>The Cycling Power Measurement characteristic is a variable length structure containing a Flags field, an Instantaneous Power field and, based on the contents of the Flags field, may contain one or more additional fields as shown in the table below.</p>


#### CyclingPowerVector

<a id="api-cyclingpowervector"></a>

```typescript
export interface CyclingPowerVector 
```

<p>The Cycling Power Vector characteristic is a variable length structure containing a Flags fieldand based on the contents of the Flags field, may contain one or more additional fields as shown in the table below.</p>


#### DatabaseChangeIncrement

<a id="api-databasechangeincrement"></a>

```typescript
export interface DatabaseChangeIncrement 
```

#### DateOfBirth

<a id="api-dateofbirth"></a>

```typescript
export interface DateOfBirth 
```

#### DateOfThresholdAssessment

<a id="api-dateofthresholdassessment"></a>

```typescript
export interface DateOfThresholdAssessment 
```

#### DateTime

<a id="api-datetime"></a>

```typescript
export interface DateTime 
```

<p>The Date Time characteristic is used to represent time.</p> <p>The Date Time characteristic contains fields for year, month, day, hours, minutes and seconds. Calendar days in Date Time are represented using Gregorian calendar. Hours in Date Time are represented in the 24h system.</p>


#### DayDateTime

<a id="api-daydatetime"></a>

```typescript
export interface DayDateTime 
```

#### DayOfWeek

<a id="api-dayofweek"></a>

```typescript
export interface DayOfWeek 
```

#### DewPoint

<a id="api-dewpoint"></a>

```typescript
export interface DewPoint 
```

#### Digital

<a id="api-digital"></a>

```typescript
export interface Digital 
```

<p>The Digital characteristic is used to expose and change the state of an IO Module?s digital signals.</p>


#### DstOffset

<a id="api-dstoffset"></a>

```typescript
export interface DstOffset 
```

#### Elevation

<a id="api-elevation"></a>

```typescript
export interface Elevation 
```

#### EmailAddress

<a id="api-emailaddress"></a>

```typescript
export interface EmailAddress 
```

<p>Email address of the user. See Note below.</p>


#### ExactTime256

<a id="api-exacttime256"></a>

```typescript
export interface ExactTime256 
```

#### FatBurnHeartRateLowerLimit

<a id="api-fatburnheartratelowerlimit"></a>

```typescript
export interface FatBurnHeartRateLowerLimit 
```

<p>Lower limit of the heart rate where the user maximizes the fat burn while exersizing</p>


#### FatBurnHeartRateUpperLimit

<a id="api-fatburnheartrateupperlimit"></a>

```typescript
export interface FatBurnHeartRateUpperLimit 
```

<p>Upper limit of the heart rate where the user maximizes the fat burn while exersizing</p>


#### FirmwareRevisionString

<a id="api-firmwarerevisionstring"></a>

```typescript
export interface FirmwareRevisionString 
```

<p>The value of this characteristic is a UTF-8 string representing the firmware revision for the firmware within the device.</p>


#### FirstName

<a id="api-firstname"></a>

```typescript
export interface FirstName 
```

<p>First name of the user. See Note below.</p>


#### FiveZoneHeartRateLimits

<a id="api-fivezoneheartratelimits"></a>

```typescript
export interface FiveZoneHeartRateLimits 
```

<p>Data structure containing the limits between the heart rate zones for the 5-zone heart rate definition (Maximum, Hard, Moderate, Light and Very Light).</p>


#### FloorNumber

<a id="api-floornumber"></a>

```typescript
export interface FloorNumber 
```

<p>The Floor Number characteristic describes in which floor the device is installed.</p>


#### GapAppearance

<a id="api-gapappearance"></a>

```typescript
export interface GapAppearance 
```

<p>The external appearance of this device. The values are composed of a category (10-bits) and sub-categories (6-bits).</p>


#### GapDeviceName

<a id="api-gapdevicename"></a>

```typescript
export interface GapDeviceName 
```

#### GapPeripheralPreferredConnectionParameters

<a id="api-gapperipheralpreferredconnectionparameters"></a>

```typescript
export interface GapPeripheralPreferredConnectionParameters 
```

#### GapPeripheralPrivacyFlag

<a id="api-gapperipheralprivacyflag"></a>

```typescript
export interface GapPeripheralPrivacyFlag 
```

#### GapReconnectionAddress

<a id="api-gapreconnectionaddress"></a>

```typescript
export interface GapReconnectionAddress 
```

<p>The Information included in this page is informative. The normative descriptions are contained in the applicable specification.</p>


#### GattCharacteristicAggregateFormat

<a id="api-gattcharacteristicaggregateformat"></a>

```typescript
export interface GattCharacteristicAggregateFormat 
```

<p>The Characteristic Aggregate Format descriptor defines the format of an aggregated Characteristic Value.</p> <p>If 3 Characteristic Presentation Format declarations exist at Attribute Handles 0x40, 0x50 and 0x60, the Characteris Aggregate Format Value is 0x405060.</p> <p>Only one Characteristic Aggregate Format descriptor exists in a characteristic definition. This descriptor consists of a list of Attribute Handles pointing to Characteristic Presentation Format declarations. This descriptor is read only and does not require authentication or authorization. The list of Attribute Handles is the concatenation of multiple 16-bit Attribute Handle values into a single Attribute Value. If more than one Characteristic Presentation Format declarations exist, then there is one Characteristic Aggregate Format declaration. However, a Characteristic Aggregate Format descriptor can be present even if there aren't any Presentation Format descriptors in the characteristic definition. The order of the Attribute Handles in the list is significant.</p>


#### GattCharacteristicExtendedProperties

<a id="api-gattcharacteristicextendedproperties"></a>

```typescript
export interface GattCharacteristicExtendedProperties 
```

<p>The Characteristic Extended Properties descriptor defines additional Characteristic Properties.</p> <p>If the Characteristic Extended Properties bit of the Characteristic Properties is set, then this descriptor exists. The Characteristic Extended Properties descriptor is a bit field defining Reliable Write and Writeable Auxiliaries are enabled for the Characteristic. This descriptor is readable without authentication and authorization being required.</p>


#### GattCharacteristicPresentationFormat

<a id="api-gattcharacteristicpresentationformat"></a>

```typescript
export interface GattCharacteristicPresentationFormat 
```

<p>The Characteristic Presentation Format descriptor defines the format of the Characteristic Value.</p> <p>When encoding an IPv4 address, the uint32 Format type is used.</p> <p>When encoding an IPv6 address, the uint128 Format type is used.</p> <p>When encoding a Bluetooth address (BD_ADDR), the uint48 Format type is used.</p> <p>For a Characteristic Value of 23 and an Exponent of 2, the actual value is 2300</p> <p>For a Characteristi Value of 3892 and an Exponent of -3, the actual value is 3.892</p> <p>One or more Characteristic Presentation Format descriptors may be present. If multiple of these descriptors are present, then a Aggregate Formate descriptor is present. This descriptor is read only and does not require authentication or authorization to read. This descriptor is composed of five parts: format, exponent, unit, name space and description. The Format field determines how a single value contained in the Characteristic Value is formatted. The Exponent field is used with interger data types to determine how the Characteristic Value is furhter formatted. The actual value = Characteristic Value * 10^Exponent.</p>


#### GattCharacteristicUserDescription

<a id="api-gattcharacteristicuserdescription"></a>

```typescript
export interface GattCharacteristicUserDescription 
```

<p>The Characteristic User Description descriptor provides a textual user description for a characteristic value.</p> <p>If the Writable Auxiliary bit of the Characteristics Properties is set then this descriptor is written. Only one User Description descriptor exists in a characteristic definition.</p>


#### GattClientCharacteristicConfiguration

<a id="api-gattclientcharacteristicconfiguration"></a>

```typescript
export interface GattClientCharacteristicConfiguration 
```

<p>The Client Characteristic Configuration descriptor defines how the characteristic may be configured by a specific client.</p> <p>This descriptor shall be persistent across connections for bonded devices. The Client Characteristic Configuration descriptor is unique for each client. A client may read and write this descriptor to determine and set the configuration for that client. Authentication and authorization may be required by the server to write this descriptor. The default value for the Client Characteristic Configuration descriptor is 0x00. Upon connection of non-binded clients, this descriptor is set to the default value.</p>


#### GattNamedDetails

<a id="api-gattnameddetails"></a>

```typescript
export interface GattNamedDetails 
```

Consolidated metadata for an assigned Service, Characteristic, or Descriptor.


#### GattServerCharacteristicConfiguration

<a id="api-gattservercharacteristicconfiguration"></a>

```typescript
export interface GattServerCharacteristicConfiguration 
```

<p>The Server Characteristic Configuration descriptor defines how the characteristic descriptor is associated with may be configured for the server.</p> <p>Only one Server Characteristic Configuration descriptor exists in a characteristic definition. A client may write this configuration descriptor to control the configuration of the characteristic on the server for all clients. There is a single instantiation of this descriptor for all clients. Authentication and authorization may be required by the server to write this descriptor.</p>


#### GattServiceChanged

<a id="api-gattservicechanged"></a>

```typescript
export interface GattServiceChanged 
```

#### Gender

<a id="api-gender"></a>

```typescript
export interface Gender 
```

<p>Gender of the user. The value of the Gender characteristic are defined below: 0:male,1:female, 2:Unspecified,3-225: RFU</p>


#### GlucoseFeature

<a id="api-glucosefeature"></a>

```typescript
export interface GlucoseFeature 
```

<p>The Glucose Feature characteristic is used to describe the supported features of the Server. When read, the Glucose Feature characteristic returns a value that is used by a Client to determine the supported features of the Server.</p>


#### GlucoseMeasurement

<a id="api-glucosemeasurement"></a>

```typescript
export interface GlucoseMeasurement 
```

<p>The Glucose Measurement characteristic is a variable length structure containing a Flags field, a Sequence Number field, a Base Time field and, based upon the contents of the Flags field, may contain a Time Offset field, Glucose Concentration field, Type-Sample Location field and a Sensor Status Annunciation field.</p>


#### GlucoseMeasurementContext

<a id="api-glucosemeasurementcontext"></a>

```typescript
export interface GlucoseMeasurementContext 
```

<p>The Glucose Measurement Context characteristic is a variable length structure containing a Flags field, a Sequence Number field and, based upon the contents of the Flags field, may contain a Carbohydrate ID field, Carbohydrate field, Meal field, Tester-Health field, Exercise Duration field, Exercise Intensity field, Medication ID field, Medication field and a HbA1c field.</p>


#### GustFactor

<a id="api-gustfactor"></a>

```typescript
export interface GustFactor 
```

#### HardwareRevisionString

<a id="api-hardwarerevisionstring"></a>

```typescript
export interface HardwareRevisionString 
```

<p>The value of this characteristic is a UTF-8 string representing the hardware revision for the hardware within the device.</p>


#### HeartRateControlPoint

<a id="api-heartratecontrolpoint"></a>

```typescript
export interface HeartRateControlPoint 
```

#### HeartRateMax

<a id="api-heartratemax"></a>

```typescript
export interface HeartRateMax 
```

<p>Maximum heart rate a user can reach.</p>


#### HeartRateMeasurement

<a id="api-heartratemeasurement"></a>

```typescript
export interface HeartRateMeasurement 
```

#### HeatIndex

<a id="api-heatindex"></a>

```typescript
export interface HeatIndex 
```

#### Height

<a id="api-height"></a>

```typescript
export interface Height 
```

<p>Height of the User</p>


#### HidControlPoint

<a id="api-hidcontrolpoint"></a>

```typescript
export interface HidControlPoint 
```

<p>? Suspend ( Refer to Section 7.4.2, Bluetooth HID Profile Specification 1.0</p> <p>? Exit Suspend (Refer to Section 7.4.2, Bluetooth HID Profile Specification 1.0</p>


#### HidInformation

<a id="api-hidinformation"></a>

```typescript
export interface HidInformation 
```

<p>The HID Information Characteristic returns the HID attributes when read.</p> <p>The HID Information Characteristic contains the HID attributes. The value of this Characteristic is static and can be cached for the lifetime of the bond between the HID device and the HID host.</p>


#### HipCircumference

<a id="api-hipcircumference"></a>

```typescript
export interface HipCircumference 
```

<p>Used with the Waist Circumference value to calculate the Waist to Hip Ratio (WHR)</p>


#### HttpControlPoint

<a id="api-httpcontrolpoint"></a>

```typescript
export interface HttpControlPoint 
```

<p>The HTTP Control Point is used to initiate a request to send an HTTP request message from the device contgaining the HTTP Proxy Service, acting as an HTTP Client, and an HTTP Server.</p>


#### HttpEntityBody

<a id="api-httpentitybody"></a>

```typescript
export interface HttpEntityBody 
```

<p>The HTTP Entity Body Characteristic contains the contents of the message body after any Transfer Encoding has been applied.</p>


#### HttpHeaders

<a id="api-httpheaders"></a>

```typescript
export interface HttpHeaders 
```

<p>The HTTP Headers Characteristic is used to hold the headers that would be sent to the HTTP Request or the headers contained within an HTTP response message from the HTTP Server.</p>


#### HttpsSecurity

<a id="api-httpssecurity"></a>

```typescript
export interface HttpsSecurity 
```

<p>The HTTPS Security characteristic contains the known authenticity of the HTTPS Server certificate for the URI.</p>


#### HttpStatusCode

<a id="api-httpstatuscode"></a>

```typescript
export interface HttpStatusCode 
```

<p>The HTTP Status Code characteristic contains the Status-Code from the Status-Line of the first line of the HTTP Response Message, followed by one octet indicating the Data Status Bit Field indicating the status of the data received.</p>


#### Humidity

<a id="api-humidity"></a>

```typescript
export interface Humidity 
```

#### IndoorBikeData

<a id="api-indoorbikedata"></a>

```typescript
export interface IndoorBikeData 
```

<p>The Indoor Bike Data characteristic is used to send training-related data to the Client from an indoor bike (Server).</p>


#### IndoorPositioningConfiguration

<a id="api-indoorpositioningconfiguration"></a>

```typescript
export interface IndoorPositioningConfiguration 
```

<p>The Indoor Positioning Configuration describes the set of characteristic values included in the Indoor Positioning Service AD type.</p>


#### IntermediateCuffPressure

<a id="api-intermediatecuffpressure"></a>

```typescript
export interface IntermediateCuffPressure 
```

<p>This characteristic has the same format as the Blood Pressure Measurement characteristic. However, due to a different context, the Blood Pressure Measurement Compound Value field becomes the Intermediate Cuff Pressure Compound Value field, the Systolic sub-field becomes the Current Cuff Pressure sub-field and the Diastolic and MAP fields are unused.</p>


#### IntermediateTemperature

<a id="api-intermediatetemperature"></a>

```typescript
export interface IntermediateTemperature 
```

<p>The Intermediate Temperature characteristic has the same format as the Temperature Measurement characteristic. However, due to a different context, the Value field is referred to as the Intermediate Temperature Value field.</p>


#### Irradiance

<a id="api-irradiance"></a>

```typescript
export interface Irradiance 
```

#### Language

<a id="api-language"></a>

```typescript
export interface Language 
```

#### LastName

<a id="api-lastname"></a>

```typescript
export interface LastName 
```

<p>Last name of the user. See Note below.</p>


#### Latitude

<a id="api-latitude"></a>

```typescript
export interface Latitude 
```

<p>The Latitude characteristic describes the WGS84 North coordinate of the device.</p>


#### LnFeature

<a id="api-lnfeature"></a>

```typescript
export interface LnFeature 
```

<p>The LN Feature characteristic is used to report a list of features supported by the device.</p>


#### LocalEastCoordinate

<a id="api-localeastcoordinate"></a>

```typescript
export interface LocalEastCoordinate 
```

<p>The Local East characteristic describes the East coordinate of the device using local coordinate system.</p>


#### LocalNorthCoordinate

<a id="api-localnorthcoordinate"></a>

```typescript
export interface LocalNorthCoordinate 
```

<p>The Local North characteristic describes the North coordinate of the device using local coordinate system.</p>


#### LocalTimeInformation

<a id="api-localtimeinformation"></a>

```typescript
export interface LocalTimeInformation 
```

#### LocationAndSpeed

<a id="api-locationandspeed"></a>

```typescript
export interface LocationAndSpeed 
```

<p>The Location and Speed characteristic is a variable length structure containing a Flags field and, based on the contents of the Flags field, may contain a combination of data fields listed below. Note that it is possible for this characteristic to exceed the default LE MTU size.</p>


#### LocationName

<a id="api-locationname"></a>

```typescript
export interface LocationName 
```

<p>The Location Name characteristic describes the name of the location the device is installed in.</p>


#### Longitude

<a id="api-longitude"></a>

```typescript
export interface Longitude 
```

<p>The Longitude characteristic describes the WGS84 East coordinate of the device.</p>


#### MagneticDeclination

<a id="api-magneticdeclination"></a>

```typescript
export interface MagneticDeclination 
```

#### MagneticFluxDensity2D

<a id="api-magneticfluxdensity2d"></a>

```typescript
export interface MagneticFluxDensity2D 
```

#### MagneticFluxDensity3D

<a id="api-magneticfluxdensity3d"></a>

```typescript
export interface MagneticFluxDensity3D 
```

#### ManufacturerNameString

<a id="api-manufacturernamestring"></a>

```typescript
export interface ManufacturerNameString 
```

<p>The value of this characteristic is a UTF-8 string representing the name of the manufacturer of the device.</p>


#### MaximumRecommendedHeartRate

<a id="api-maximumrecommendedheartrate"></a>

```typescript
export interface MaximumRecommendedHeartRate 
```

<p>Maximum recommended heart rate is a threshold that may be set to limit exertion. The maximum recommended heart rate is smaller or equal to the maximal heart rate a user can reach.</p>


#### MeasurementInterval

<a id="api-measurementinterval"></a>

```typescript
export interface MeasurementInterval 
```

<p>The Measurement Interval characteristic defines the time between measurements.</p> <p>This characteristic is capable of representing values from 1 second to 65535 seconds which is equal to 18 hours, 12 minutes and 15 seconds.</p>


#### ModelNumberString

<a id="api-modelnumberstring"></a>

```typescript
export interface ModelNumberString 
```

<p>The value of this characteristic is a UTF-8 string representing the model number assigned by the device vendor.</p>


#### Navigation

<a id="api-navigation"></a>

```typescript
export interface Navigation 
```

<p>The Navigation characteristic is a variable length structure containing a Flags field, a Bearing field, a Heading field and, based on the contents of the Flags field, may contain a combination of data fields listed below.</p>


#### NewAlert

<a id="api-newalert"></a>

```typescript
export interface NewAlert 
```

<p>This characteristic defines the category of the alert and how many new alerts of that category have occurred in the server device. Brief text information may also be included for the last alert in the category.</p> <p>The value 0x01, 0x04, 0x52, 0x69, 0x63, 0x68, 0x61, 0x72, 0x64 are interpreted that the server has 4 new email messages and the last message was sent by ?Richard?.</p> <p>This characteristic consists of ?Category ID?, ?uint8?, and ?UTF-8 string? fields. The size of this characteristic is dynamic because of the variable length text (?UTF-8?) field. The minimum length of ?UTF-8 string? is 0 octets and maximum length of ?UTF-8 string? is 18 octets.</p>


#### NumberOfDigitals

<a id="api-numberofdigitals"></a>

```typescript
export interface NumberOfDigitals 
```

<p>The Characteristic Number of Digitals descriptor is used for defining the number of digitals in a characteristic.</p>


#### ObjectFirstCreated

<a id="api-objectfirstcreated"></a>

```typescript
export interface ObjectFirstCreated 
```

#### ObjectId

<a id="api-objectid"></a>

```typescript
export interface ObjectId 
```

#### ObjectLastModified

<a id="api-objectlastmodified"></a>

```typescript
export interface ObjectLastModified 
```

#### ObjectName

<a id="api-objectname"></a>

```typescript
export interface ObjectName 
```

#### ObjectSize

<a id="api-objectsize"></a>

```typescript
export interface ObjectSize 
```

#### PlxContinuousMeasurement

<a id="api-plxcontinuousmeasurement"></a>

```typescript
export interface PlxContinuousMeasurement 
```

<p>The PLX Continuous Measurement characteristic, if supported, is used to send periodic pulse oximetry measurements. This characteristic is a variable length structure containing the Flags field (to indicate presence of optional fields), the SpO2PR-Normal field, and depending on the contents of the Flags field, the SpO2PR-Fast field, the SpO2PR-Slow field, the Measurement Status field, the Device and Sensor Status field, and/or the Pulse Amplitude Index field.</p>


#### PlxFeatures

<a id="api-plxfeatures"></a>

```typescript
export interface PlxFeatures 
```

<p>The PLX Features characteristic is used to describe the supported features of the Server. Included in the characteristic is a PLX Features field, and, depending on the contents of the PLX Features field, the Measurement Status Support field, and the Device and Sensor Status Support field.</p>


#### PlxSpotCheckMeasurement

<a id="api-plxspotcheckmeasurement"></a>

```typescript
export interface PlxSpotCheckMeasurement 
```

<p>The PLX Spot-check Measurement characteristic, if supported, is used to send Spot-check measurements of SpO2 (Percent oxygen saturation of hemoglobin) and PR (pulse rate). This characteristic is a variable length structure containing the Flags field, the SpO2PR-Spot-Check field, and depending on the contents of the Flags field, the Timestamp field, the Measurement Status field, the Device and Sensor Status field, and/or the Pulse Amplitude Index field.</p>


#### PnpId

<a id="api-pnpid"></a>

```typescript
export interface PnpId 
```

<p>The PnP_ID characteristic returns its value when read using the GATT Characteristic Value Read procedure.</p> <p>The PnP_ID characteristic is a set of values that used to create a device ID value that is unique for this device. Included in the characteristic is a Vendor ID Source field, a Vendor ID field, a Product ID field and a Product Version field. These values are used to identify all devices of a given type/model/version using numbers.</p>


#### PollenConcentration

<a id="api-pollenconcentration"></a>

```typescript
export interface PollenConcentration 
```

#### PositionQuality

<a id="api-positionquality"></a>

```typescript
export interface PositionQuality 
```

<p>The Position Quality characteristic is a variable length structure containing a Flags field and at least one of the optional data fields listed below</p>


#### Pressure

<a id="api-pressure"></a>

```typescript
export interface Pressure 
```

#### ProtocolMode

<a id="api-protocolmode"></a>

```typescript
export interface ProtocolMode 
```

<p>The Protocol Mode characteristic is used to expose the current protocol mode of the HID Service with which it is associated, or to set the desired protocol mode of the HID Service.</p>


#### Rainfall

<a id="api-rainfall"></a>

```typescript
export interface Rainfall 
```

#### ReferenceTimeInformation

<a id="api-referencetimeinformation"></a>

```typescript
export interface ReferenceTimeInformation 
```

#### Report_2

<a id="api-report-2"></a>

```typescript
export interface Report 
```

<p>The Report characteristic is used to exchange data between a HID Device and a HID Host.</p> <p>The Report characteristic value contains Input Report, Output Report or Feature Report data to be transferred between the HID Device and HID Host.</p>


#### ReportMap

<a id="api-reportmap"></a>

```typescript
export interface ReportMap 
```

<p>Only a single instance of this characteristic exists as part of a HID Service.</p>


#### ReportReference

<a id="api-reportreference"></a>

```typescript
export interface ReportReference 
```

<p>Mapping information in the form of a Report ID and Report Type which maps the current parent characteristic to the Report ID(s) and Report Type (s) defined within the Report Map characteristic.</p>


#### ResolvablePrivateAddressOnly

<a id="api-resolvableprivateaddressonly"></a>

```typescript
export interface ResolvablePrivateAddressOnly 
```

<p>The Resolvable Private Address Only characteristic defines whether the device will only use Resolvable Private Addresses (RPAs) as local addresses.</p>


#### RestingHeartRate

<a id="api-restingheartrate"></a>

```typescript
export interface RestingHeartRate 
```

<p>Lowest Heart Rate a user can reach</p>


#### RingerControlPoint

<a id="api-ringercontrolpoint"></a>

```typescript
export interface RingerControlPoint 
```

<p>Value 1, meaning ?Silent Mode"</p> <p>Value 2, meaning ?Mute Once?</p> <p>Value 3, meaning ?Cancel Silent Mode?</p> <p>The value 0x01 shall be interpreted as ?Silent Mode?</p>


#### RingerSetting

<a id="api-ringersetting"></a>

```typescript
export interface RingerSetting 
```

<p>Value 0, meaning ?Ringer Silent"</p> <p>Value 1, meaning ?Ringer Normal?</p> <p>The value 0x01 shall be interpreted as ?Ringer Normal?</p>


#### RowerData

<a id="api-rowerdata"></a>

```typescript
export interface RowerData 
```

<p>The Rower Data characteristic is used to send training-related data to the Client from a rower (Server).</p>


#### RscFeature

<a id="api-rscfeature"></a>

```typescript
export interface RscFeature 
```

<p>The RSC (Running Speed and Cadence) Feature characteristic is used to describe the supported features of the Server.</p>


#### RscMeasurement

<a id="api-rscmeasurement"></a>

```typescript
export interface RscMeasurement 
```

<p>The RSC Measurement characteristic (RSC refers to Running Speed and Cadence) is a variable length structure containing a Flags field, an Instantaneous Speed field and an Instantaneous Cadence field and, based on the contents of the Flags field, may contain a Stride Length field and a Total Distance field.</p>


#### ScanIntervalWindow

<a id="api-scanintervalwindow"></a>

```typescript
export interface ScanIntervalWindow 
```

<p>The Scan Interval Window characteristic is used to store the scan parameters of the GATT Client. Included in this characteristic are the Scan Interval and Scan Window of the GATT Client device.</p> <p>The Scan Interval Window characteristic is used to store the scan parameters of the GATT Client. The GATT Server can use these values to optimize its own advertisement rate and to minimize the rate of its own advertisements while also minimizing the latency of reconnections.</p>


#### ScanRefresh

<a id="api-scanrefresh"></a>

```typescript
export interface ScanRefresh 
```

<p>The Scan Refresh characteristic is used to notify the Client that the Server requires the Scan Interval Window characteristic to be written with the latest values upon notification.</p>


#### SensorLocation

<a id="api-sensorlocation"></a>

```typescript
export interface SensorLocation 
```

<p>The Sensor Location characteristic is used to expose the location of the sensor.</p>


#### SerialNumberString

<a id="api-serialnumberstring"></a>

```typescript
export interface SerialNumberString 
```

<p>The value of this characteristic is a variable-length UTF-8 string representing the serial number for a particular instance of the device.</p>


#### SoftwareRevisionString

<a id="api-softwarerevisionstring"></a>

```typescript
export interface SoftwareRevisionString 
```

<p>The value of this characteristic is a UTF-8 string representing the software revision for the software within the device.</p>


#### SportTypeForAerobicAndAnaerobicThresholds

<a id="api-sporttypeforaerobicandanaerobicthresholds"></a>

```typescript
export interface SportTypeForAerobicAndAnaerobicThresholds 
```

<p>Sport type enumeration(See note below). The values of the Sport Type for Aerobic and Anaerobic Thresholds characteristic are defined below</p>


#### StairClimberData

<a id="api-stairclimberdata"></a>

```typescript
export interface StairClimberData 
```

<p>The Stair Climber Data characteristic is used to send training-related data to the Client from a stair climber (Server).</p>


#### StepClimberData

<a id="api-stepclimberdata"></a>

```typescript
export interface StepClimberData 
```

<p>The Step Climber Data characteristic is used to send training-related data to the Client from a step climber (Server).</p>


#### SupportedHeartRateRange

<a id="api-supportedheartraterange"></a>

```typescript
export interface SupportedHeartRateRange 
```

<p>The Supported Heart Rate Range characteristic is used to send the supported Heart Rate range as well as the minimum Heart Rate increment supported by the Server.</p>


#### SupportedInclinationRange

<a id="api-supportedinclinationrange"></a>

```typescript
export interface SupportedInclinationRange 
```

<p>The Supported Inclination Range characteristic is used to send the supported inclination range as well as the minimum inclination increment supported by the Server.</p>


#### SupportedNewAlertCategory

<a id="api-supportednewalertcategory"></a>

```typescript
export interface SupportedNewAlertCategory 
```

<p>Category that the server supports for new alert.</p> <p>The value 0x0a is interpreted that this server supports ?Call? and ?Email? categories.</p> <p>This characteristic uses the Alert Category ID Bit Mask Characteristic. If bit(s) is/are set, it means the server supports the corresponded categories for new incoming alert.</p>


#### SupportedPowerRange

<a id="api-supportedpowerrange"></a>

```typescript
export interface SupportedPowerRange 
```

<p>The Supported Power Range characteristic is used to send the supported power range as well as the minimum power increment supported by the Server.</p>


#### SupportedResistanceLevelRange

<a id="api-supportedresistancelevelrange"></a>

```typescript
export interface SupportedResistanceLevelRange 
```

<p>The Supported Resistance Level Range characteristic is used to send the supported resistance level range as well as the minimum resistance increment supported by the Server.</p>


#### SupportedSpeedRange

<a id="api-supportedspeedrange"></a>

```typescript
export interface SupportedSpeedRange 
```

<p>The Supported Speed Range characteristic is used to send the supported speed range as well as the minimum speed increment supported by the Server.</p>


#### SupportedUnreadAlertCategory

<a id="api-supportedunreadalertcategory"></a>

```typescript
export interface SupportedUnreadAlertCategory 
```

<p>Category that the server supports for unread alert.</p> <p>The value 0x03 is interpreted that this server supports ?Simple Alert? and ?Email? categories for unread alert.</p> <p>This characteristic uses the Alert Category ID Bit Mask Characteristic. If bit(s) is/are set, it means the server supports the corresponded categories for unread alert.</p>


#### SystemId

<a id="api-systemid"></a>

```typescript
export interface SystemId 
```

<p>The SYSTEM ID characteristic consists of a structure with two fields. The first field are the LSOs and the second field contains the MSOs. This is a 64-bit structure which consists of a 40-bit manufacturer-defined identifier concatenated with a 24 bit unique Organizationally Unique Identifier (OUI). The OUI is issued by the IEEE Registration Authority (http://standards.ieee.org/regauth/index.html) and is required to be used in accordance with IEEE Standard 802-2001.6 while the least significant 40 bits are manufacturer defined.</p> <p>If System ID generated based on a Bluetooth Device Address, it is required to be done as follows. System ID and the Bluetooth Device Address have a very similar structure: a Bluetooth Device Address is 48 bits in length and consists of a 24 bit Company Assigned Identifier (manufacturer defined identifier) concatenated with a 24 bit Company Identifier (OUI). In order to encapsulate a Bluetooth Device Address as System ID, the Company Identifier is concatenated with 0xFFFE followed by the Company Assigned Identifier of the Bluetooth Address. For more guidelines related to EUI-64, refer to http://standards.ieee.org/develop/regauth/tut/eui64.pdf.</p> <p>If the system ID is based of a Bluetooth Device Address with a Company Identifier (OUI) is 0x123456 and the Company Assigned Identifier is 0x9ABCDE, then the System Identifier is required to be 0x123456FFFE9ABCDE.</p>


#### Temperature

<a id="api-temperature"></a>

```typescript
export interface Temperature 
```

#### TemperatureMeasurement

<a id="api-temperaturemeasurement"></a>

```typescript
export interface TemperatureMeasurement 
```

<p>The Temperature Measurement characteristic is a variable length structure containing a Flags field, a Temperature Measurement Value field and, based upon the contents of the Flags field, optionally a Time Stamp field and/or a Temperature Type field.</p> <p>If the value of bit 1 of the Flags field is 0 and bit 2 is 0, the structure of the Temperature Measurement characteristic consists of two fields in this order; Flags and Temperature Measurement Value.</p> <p>If the value of bit 1 of the Flags field is 1 (Time Stamp) and bit 2 is 0, the structure of the Temperature Measurement characteristic consists of three fields in this order: Flags, Temperature Measurement Value and Time Stamp.</p> <p>If the value of bit 1 of the Flags field is 1 and bit 2 is 1 (Time Stamp and Temperature Type), the structure of the Temperature Measurement characteristic consists of four fields in this order: Flags, Temperature Measurement Value, Time Stamp and Temperature Type.</p> <p>If the value of bit 1 of the Flags field is 0 and bit 2 is 1 (Temperature Type), the structure of the Temperature Measurement characteristic consists of three fields in this order: Flags, Temperature Measurement Value and Temperature Type.</p> <p>The flags is the first field sent followed by the Temperature Measurement Value.</p> <p>The fields in the above table are in the order of LSO to MSO. Where LSO = Least Significant Octet and MSO = Most Significant Octet.</p>


#### TemperatureType

<a id="api-temperaturetype"></a>

```typescript
export interface TemperatureType 
```

<p>The Temperature Type characteristic is an enumeration that indicates where the temperature was measured.</p> <p>These Temperature Type values correspond to the Temperature Type descriptions used in ISO/IEEE 11073-10408-2008.</p>


#### ThreeZoneHeartRateLimits

<a id="api-threezoneheartratelimits"></a>

```typescript
export interface ThreeZoneHeartRateLimits 
```

<p>Data structure containing the limits between the heart rate zones for the 3-zone heart rate definition (Hard, Moderate and Light).</p>


#### TimeAccuracy

<a id="api-timeaccuracy"></a>

```typescript
export interface TimeAccuracy 
```

#### TimeSource

<a id="api-timesource"></a>

```typescript
export interface TimeSource 
```

#### TimeTriggerSetting

<a id="api-timetriggersetting"></a>

```typescript
export interface TimeTriggerSetting 
```

<p>The value of the descriptor has two parts. Part one is a condition field and occupies one octet, and part two is the comparison value (trigger point) that the characteristic value is checked against.</p>


#### TimeUpdateControlPoint

<a id="api-timeupdatecontrolpoint"></a>

```typescript
export interface TimeUpdateControlPoint 
```

#### TimeUpdateState

<a id="api-timeupdatestate"></a>

```typescript
export interface TimeUpdateState 
```

#### TimeWithDst

<a id="api-timewithdst"></a>

```typescript
export interface TimeWithDst 
```

#### TimeZone

<a id="api-timezone"></a>

```typescript
export interface TimeZone 
```

#### TreadmillData

<a id="api-treadmilldata"></a>

```typescript
export interface TreadmillData 
```

<p>The Treadmill Data characteristic is used to send training-related data to the Client from a treadmill (Server).</p>


#### TrueWindDirection

<a id="api-truewinddirection"></a>

```typescript
export interface TrueWindDirection 
```

#### TrueWindSpeed

<a id="api-truewindspeed"></a>

```typescript
export interface TrueWindSpeed 
```

#### TwoZoneHeartRateLimit

<a id="api-twozoneheartratelimit"></a>

```typescript
export interface TwoZoneHeartRateLimit 
```

<p>Heart rate limit between the heart rate zones for the 2-zone heart rate definition (Fitness and Fat Burn).</p>


#### TxPowerLevel

<a id="api-txpowerlevel"></a>

```typescript
export interface TxPowerLevel 
```

<p>The Transmit Power Level characteristic represents the current transmit power level in dBm, and the level ranges from -100 dBm to +20 dBm to a resolution of 1 dBm.</p> <p>The value 0x12 is interpreted as +18dBm</p> <p>The value 0xEE is interpreted as -18dBm</p> <p>The value of the characteristic is a signed 8 bit integer that has a fixed point exponent of 0.</p>


#### Uncertainty

<a id="api-uncertainty"></a>

```typescript
export interface Uncertainty 
```

<p>The Uncertainty characteristic describes the uncertainty of the location information the device exposes.</p>


#### UnreadAlertStatus

<a id="api-unreadalertstatus"></a>

```typescript
export interface UnreadAlertStatus 
```

<p>This characteristic shows how many numbers of unread alerts exist in the specific category in the device.</p> <p>The value 0x01, 0x04 are interpreted that the server has 4 unread messages in Email category.</p> <p>This characteristic consists of ?Category ID? and ?uint8? which shows the number of unread alerts/messages.</p>


#### Uri

<a id="api-uri"></a>

```typescript
export interface Uri 
```

<p>The Uniform Resource Identifier (URI) Characteristic is used to configure the URI for a subsequent request.</p>


#### UserIndex

<a id="api-userindex"></a>

```typescript
export interface UserIndex 
```

#### UvIndex

<a id="api-uvindex"></a>

```typescript
export interface UvIndex 
```

#### ValueTriggerSetting

<a id="api-valuetriggersetting"></a>

```typescript
export interface ValueTriggerSetting 
```

<p>The value of the descriptor has two parts. Part one is a condition field and occupies one octet, and part two is the comparison value (trigger point) that the characteristic value is checked against.</p>


#### Vo2Max

<a id="api-vo2max"></a>

```typescript
export interface Vo2Max 
```

<p>Maximal Oxygen uptake of a user</p>


#### WaistCircumference

<a id="api-waistcircumference"></a>

```typescript
export interface WaistCircumference 
```

<p>Used with the Hip Circumference value to calculate the Waist to Hip Ratio (WHR)</p>


#### Weight

<a id="api-weight"></a>

```typescript
export interface Weight 
```

<p>Weight of the User</p>


#### WeightMeasurement

<a id="api-weightmeasurement"></a>

```typescript
export interface WeightMeasurement 
```

#### WeightScaleFeature

<a id="api-weightscalefeature"></a>

```typescript
export interface WeightScaleFeature 
```

#### WindChill

<a id="api-windchill"></a>

```typescript
export interface WindChill 
```

### TypeAliases

#### GattCharacteristicName

<a id="api-gattcharacteristicname"></a>

```typescript
type GattCharacteristicName = keyof typeof GATT_CHARACTERISTIC_TABLE;
```

#### GattDescriptorName

<a id="api-gattdescriptorname"></a>

```typescript
type GattDescriptorName = keyof typeof GATT_DESCRIPTOR_TABLE;
```

#### GattIdsTable

<a id="api-gattidstable"></a>

```typescript
type GattIdsTable<T extends GattName> = Record<T, GattTableValues>;
```

#### GattName

<a id="api-gattname"></a>

```typescript
type GattName = GattServiceName | GattCharacteristicName | GattDescriptorName;
```

#### GattServiceName

<a id="api-gattservicename"></a>

```typescript
type GattServiceName = keyof typeof GATT_SERVICE_TABLE;
```

#### GattTableValues

<a id="api-gatttablevalues"></a>

```typescript
type GattTableValues = readonly [value: number, label: string | undefined];
```

### Variables

#### BT_READERS

<a id="api-bt-readers"></a>

```typescript
BT_READERS: Readonly<Map<number, BtReaderClass>>
```

#### gatt

<a id="api-gatt"></a>

```typescript
gatt: {
    characteristic: TableAccessor<GattCharacteristicName>;
    descriptor: TableAccessor<GattDescriptorName>;
    service: TableAccessor<GattServiceName>;
}
```

Helper for accessing the various assigned numbers/values and their metadata.


#### GATT_CHARACTERISTIC_TABLE

<a id="api-gatt-characteristic-table"></a>

```typescript
GATT_CHARACTERISTIC_TABLE: Readonly<{
    readonly acceleration: readonly [11270, "Acceleration"];
    readonly acs_control_point: readonly [11059, "ACS Control Point"];
    readonly acs_data_in: readonly [11056, "ACS Data In"];
    readonly acs_data_out_indicate: readonly [11058, "ACS Data Out Indicate"];
    readonly acs_data_out_notify: readonly [11057, "ACS Data Out Notify"];
    readonly acs_status: readonly [11055, "ACS Status"];
    readonly active_preset_index: readonly [11228, "Active Preset Index"];
    readonly activity_goal: readonly [11086, "Activity Goal"];
    readonly advertising_constant_tone_extension_interval: readonly [11185, "Advertising Constant Tone Extension Interval"];
    readonly advertising_constant_tone_extension_minimum_length: readonly [11182, "Advertising Constant Tone Extension Minimum Length"];
    readonly advertising_constant_tone_extension_minimum_transmit_count: readonly [11183, "Advertising Constant Tone Extension Minimum Transmit Count"];
    readonly advertising_constant_tone_extension_phy: readonly [11186, "Advertising Constant Tone Extension PHY"];
    readonly advertising_constant_tone_extension_transmit_duration: readonly [11184, "Advertising Constant Tone Extension Transmit Duration"];
    readonly aerobic_heart_rate_lower_limit: readonly [10878, "Aerobic Heart Rate Lower Limit"];
    readonly aerobic_heart_rate_upper_limit: readonly [10884, "Aerobic Heart Rate Upper Limit"];
    readonly aerobic_threshold: readonly [10879, "Aerobic Threshold"];
    readonly age: readonly [10880, "Age"];
    readonly aggregate: readonly [10842, "Aggregate"];
    readonly alert_category_id: readonly [10819, "Alert Category ID"];
    readonly alert_category_id_bit_mask: readonly [10818, "Alert Category ID Bit Mask"];
    readonly alert_level: readonly [10758, "Alert Level"];
    readonly alert_notification_control_point: readonly [10820, "Alert Notification Control Point"];
    readonly alert_status: readonly [10815, "Alert Status"];
    readonly altitude: readonly [10931, "Altitude"];
    readonly ammonia_concentration: readonly [11215, "Ammonia Concentration"];
    readonly anaerobic_heart_rate_lower_limit: readonly [10881, "Anaerobic Heart Rate Lower Limit"];
    readonly anaerobic_heart_rate_upper_limit: readonly [10882, "Anaerobic Heart Rate Upper Limit"];
    readonly anaerobic_threshold: readonly [10883, "Anaerobic Threshold"];
    readonly analog: readonly [10840, undefined];
    readonly analog_output: readonly [10841, undefined];
    readonly ap_sync_key_material: readonly [11255, "AP Sync Key Material"];
    readonly apparent_energy_32: readonly [11145, "Apparent Energy 32"];
    readonly apparent_power: readonly [11146, "Apparent Power"];
    readonly apparent_wind_direction: readonly [10867, "Apparent Wind Direction"];
    readonly apparent_wind_speed: readonly [10866, "Apparent Wind Speed"];
    readonly ase_control_point: readonly [11206, "ASE Control Point"];
    readonly audio_input_control_point: readonly [11131, "Audio Input Control Point"];
    readonly audio_input_description: readonly [11132, "Audio Input Description"];
    readonly audio_input_state: readonly [11127, "Audio Input State"];
    readonly audio_input_status: readonly [11130, "Audio Input Status"];
    readonly audio_input_type: readonly [11129, "Audio Input Type"];
    readonly audio_location: readonly [11137, "Audio Location"];
    readonly audio_output_description: readonly [11139, "Audio Output Description"];
    readonly available_audio_contexts: readonly [11213, "Available Audio Contexts"];
    readonly average_current: readonly [10976, "Average Current"];
    readonly average_voltage: readonly [10977, "Average Voltage"];
    readonly barometric_pressure_trend: readonly [10915, "Barometric Pressure Trend"];
    readonly battery_critical_status: readonly [11241, "Battery Critical Status"];
    readonly battery_energy_status: readonly [11248, "Battery Energy Status"];
    readonly battery_health_information: readonly [11243, "Battery Health Information"];
    readonly battery_health_status: readonly [11242, "Battery Health Status"];
    readonly battery_information: readonly [11244, "Battery Information"];
    readonly battery_level: readonly [10777, "Battery Level"];
    readonly battery_level_state: readonly [10779, undefined];
    readonly battery_level_status: readonly [11245, "Battery Level Status"];
    readonly battery_power_state: readonly [10778, undefined];
    readonly battery_time_status: readonly [11246, "Battery Time Status"];
    readonly bearer_list_current_calls: readonly [11193, "Bearer List Current Calls"];
    readonly bearer_provider_name: readonly [11187, "Bearer Provider Name"];
    readonly bearer_signal_strength: readonly [11191, "Bearer Signal Strength"];
    readonly bearer_signal_strength_reporting_interval: readonly [11192, "Bearer Signal Strength Reporting Interval"];
    readonly bearer_technology: readonly [11189, "Bearer Technology"];
    readonly bearer_uci: readonly [11188, "Bearer UCI"];
    readonly bearer_uri_schemes_supported_list: readonly [11190, "Bearer URI Schemes Supported List"];
    readonly bgr_features: readonly [11268, "BGR Features"];
    readonly bgs_features: readonly [11267, "BGS Features"];
    readonly blood_pressure_feature: readonly [10825, "Blood Pressure Feature"];
    readonly blood_pressure_measurement: readonly [10805, "Blood Pressure Measurement"];
    readonly blood_pressure_record: readonly [11062, "Blood Pressure Record"];
    readonly bluetooth_sig_data: readonly [11065, "Bluetooth SIG Data"];
    readonly body_composition_feature: readonly [10907, "Body Composition Feature"];
    readonly body_composition_measurement: readonly [10908, "Body Composition Measurement"];
    readonly body_sensor_location: readonly [10808, "Body Sensor Location"];
    readonly bond_management_control_point: readonly [10916, "Bond Management Control Point"];
    readonly bond_management_feature: readonly [10917, "Bond Management Feature"];
    readonly boolean: readonly [10978, "Boolean"];
    readonly boot_keyboard_input_report: readonly [10786, "Boot Keyboard Input Report"];
    readonly boot_keyboard_output_report: readonly [10802, "Boot Keyboard Output Report"];
    readonly boot_mouse_input_report: readonly [10803, "Boot Mouse Input Report"];
    readonly br_edr_handover_data: readonly [11064, "BR-EDR Handover Data"];
    readonly broadcast_audio_scan_control_point: readonly [11207, "Broadcast Audio Scan Control Point"];
    readonly broadcast_receive_state: readonly [11208, "Broadcast Receive State"];
    readonly bss_control_point: readonly [11051, "BSS Control Point"];
    readonly bss_response: readonly [11052, "BSS Response"];
    readonly call_control_point: readonly [11198, "Call Control Point"];
    readonly call_control_point_optional_opcodes: readonly [11199, "Call Control Point Optional Opcodes"];
    readonly call_friendly_name: readonly [11202, "Call Friendly Name"];
    readonly call_state: readonly [11197, "Call State"];
    readonly caloric_intake: readonly [11088, "Caloric Intake"];
    readonly carbon_monoxide_concentration: readonly [11216, "Carbon Monoxide Concentration"];
    readonly cardiorespiratory_activity_instantaneous_data: readonly [11070, "CardioRespiratory Activity Instantaneous Data"];
    readonly cardiorespiratory_activity_summary_data: readonly [11071, "CardioRespiratory Activity Summary Data"];
    readonly cgm_feature: readonly [10920, "CGM Feature"];
    readonly cgm_measurement: readonly [10919, "CGM Measurement"];
    readonly cgm_session_run_time: readonly [10923, "CGM Session Run Time"];
    readonly cgm_session_start_time: readonly [10922, "CGM Session Start Time"];
    readonly cgm_specific_ops_control_point: readonly [10924, "CGM Specific Ops Control Point"];
    readonly cgm_status: readonly [10921, "CGM Status"];
    readonly chromatic_distance_from_planckian: readonly [10979, "Chromatic Distance from Planckian"];
    readonly chromaticity_coordinate: readonly [11036, "Chromaticity Coordinate"];
    readonly chromaticity_coordinates: readonly [10980, "Chromaticity Coordinates"];
    readonly chromaticity_in_cct_and_duv_values: readonly [10981, "Chromaticity in CCT and Duv Values"];
    readonly chromaticity_tolerance: readonly [10982, "Chromaticity Tolerance"];
    readonly cie_13_3_1995_color_rendering_index: readonly [10983, "CIE 13.3-1995 Color Rendering Index"];
    readonly client_supported_features: readonly [11049, "Client Supported Features"];
    readonly co2_concentration: readonly [11148, "\"CO\\\\textsubscript{2} Concentration\""];
    readonly coefficient: readonly [10984, "Coefficient"];
    readonly constant_tone_extension_enable: readonly [11181, "Constant Tone Extension Enable"];
    readonly content_control_id: readonly [11194, "Content Control ID"];
    readonly correlated_color_temperature: readonly [10985, "Correlated Color Temperature"];
    readonly cosine_of_the_angle: readonly [11149, "Cosine of the Angle"];
    readonly count_16: readonly [10986, "Count 16"];
    readonly count_24: readonly [10987, "Count 24"];
    readonly country_code: readonly [10988, "Country Code"];
    readonly cross_trainer_data: readonly [10958, "Cross Trainer Data"];
    readonly csc_feature: readonly [10844, "CSC Feature"];
    readonly csc_measurement: readonly [10843, "CSC Measurement"];
    readonly current_elapsed_time: readonly [11250, "Current Elapsed Time"];
    readonly current_group_object_id: readonly [11168, "Current Group Object ID"];
    readonly current_time: readonly [10795, "Current Time"];
    readonly current_track_object_id: readonly [11165, "Current Track Object ID"];
    readonly current_track_segments_object_id: readonly [11164, "Current Track Segments Object ID"];
    readonly cycling_power_control_point: readonly [10854, "Cycling Power Control Point"];
    readonly cycling_power_feature: readonly [10853, "Cycling Power Feature"];
    readonly cycling_power_measurement: readonly [10851, "Cycling Power Measurement"];
    readonly cycling_power_vector: readonly [10852, "Cycling Power Vector"];
    readonly database_change_increment: readonly [10905, "Database Change Increment"];
    readonly database_hash: readonly [11050, "Database Hash"];
    readonly date_of_birth: readonly [10885, "Date of Birth"];
    readonly date_of_threshold_assessment: readonly [10886, "Date of Threshold Assessment"];
    readonly date_time: readonly [10760, "Date Time"];
    readonly date_utc: readonly [10989, "Date UTC"];
    readonly day_date_time: readonly [10762, "Day Date Time"];
    readonly day_of_week: readonly [10761, "Day of Week"];
    readonly descriptor_value_changed: readonly [10877, "Descriptor Value Changed"];
    readonly device_time: readonly [11152, "Device Time"];
    readonly device_time_control_point: readonly [11153, "Device Time Control Point"];
    readonly device_time_feature: readonly [11150, "Device Time Feature"];
    readonly device_time_parameters: readonly [11151, "Device Time Parameters"];
    readonly device_wearing_position: readonly [11083, "Device Wearing Position"];
    readonly dew_point: readonly [10875, "Dew Point"];
    readonly digital: readonly [10838, undefined];
    readonly digital_output: readonly [10839, undefined];
    readonly dst_offset: readonly [10765, "DST Offset"];
    readonly electric_current: readonly [10990, "Electric Current"];
    readonly electric_current_range: readonly [10991, "Electric Current Range"];
    readonly electric_current_specification: readonly [10992, "Electric Current Specification"];
    readonly electric_current_statistics: readonly [10993, "Electric Current Statistics"];
    readonly elevation: readonly [10860, "Elevation"];
    readonly email_address: readonly [10887, "Email Address"];
    readonly emergency_id: readonly [11053, "Emergency ID"];
    readonly emergency_text: readonly [11054, "Emergency Text"];
    readonly encrypted_data_key_material: readonly [11144, "Encrypted Data Key Material"];
    readonly energy: readonly [10994, "Energy"];
    readonly energy_32: readonly [11176, "Energy 32"];
    readonly energy_in_a_period_of_day: readonly [10995, "Energy in a Period of Day"];
    readonly enhanced_blood_pressure_measurement: readonly [11060, "Enhanced Blood Pressure Measurement"];
    readonly enhanced_intermediate_cuff_pressure: readonly [11061, "Enhanced Intermediate Cuff Pressure"];
    readonly esl_address: readonly [11254, "ESL Address"];
    readonly esl_control_point: readonly [11262, "ESL Control Point"];
    readonly esl_current_absolute_time: readonly [11257, "ESL Current Absolute Time"];
    readonly esl_display_information: readonly [11258, "ESL Display Information"];
    readonly esl_image_information: readonly [11259, "ESL Image Information"];
    readonly esl_led_information: readonly [11261, "ESL LED Information"];
    readonly esl_response_key_material: readonly [11256, "ESL Response Key Material"];
    readonly esl_sensor_information: readonly [11260, "ESL Sensor Information"];
    readonly estimated_service_date: readonly [11247, "Estimated Service Date"];
    readonly event_statistics: readonly [10996, "Event Statistics"];
    readonly exact_time_100: readonly [10763, undefined];
    readonly exact_time_256: readonly [10764, "Exact Time 256"];
    readonly fat_burn_heart_rate_lower_limit: readonly [10888, "Fat Burn Heart Rate Lower Limit"];
    readonly fat_burn_heart_rate_upper_limit: readonly [10889, "Fat Burn Heart Rate Upper Limit"];
    readonly firmware_revision_string: readonly [10790, "Firmware Revision String"];
    readonly first_name: readonly [10890, "First Name"];
    readonly first_use_date: readonly [11278, "First Use Date"];
    readonly fitness_machine_control_point: readonly [10969, "Fitness Machine Control Point"];
    readonly fitness_machine_feature: readonly [10956, "Fitness Machine Feature"];
    readonly fitness_machine_status: readonly [10970, "Fitness Machine Status"];
    readonly five_zone_heart_rate_limits: readonly [10891, "Five Zone Heart Rate Limits"];
    readonly fixed_string_16: readonly [10997, "Fixed String 16"];
    readonly fixed_string_24: readonly [10998, "Fixed String 24"];
    readonly fixed_string_36: readonly [10999, "Fixed String 36"];
    readonly fixed_string_64: readonly [11230, "Fixed String 64"];
    readonly fixed_string_8: readonly [11000, "Fixed String 8"];
    readonly floor_number: readonly [10930, "Floor Number"];
    readonly force: readonly [11271, "Force"];
    readonly four_zone_heart_rate_limits: readonly [11084, "Four Zone Heart Rate Limits"];
    readonly gain_settings_attribute: readonly [11128, "Gain Settings Attribute"];
    readonly "gap.appearance": readonly [10753, "Appearance"];
    readonly "gap.central_address_resolution": readonly [10918, "Central Address Resolution"];
    readonly "gap.device_name": readonly [10752, "Device Name"];
    readonly "gap.peripheral_preferred_connection_parameters": readonly [10756, "Peripheral Preferred Connection Parameters"];
    readonly "gap.peripheral_privacy_flag": readonly [10754, "Peripheral Privacy Flag"];
    readonly "gap.reconnection_address": readonly [10755, "Reconnection Address"];
    readonly "gatt.service_changed": readonly [10757, "Service Changed"];
    readonly gender: readonly [10892, "Gender"];
    readonly general_activity_instantaneous_data: readonly [11068, "General Activity Instantaneous Data"];
    readonly general_activity_summary_data: readonly [11069, "General Activity Summary Data"];
    readonly generic_level: readonly [11001, "Generic Level"];
    readonly ghs_control_point: readonly [11252, "GHS Control Point"];
    readonly global_trade_item_number: readonly [11002, "Global Trade Item Number"];
    readonly glucose_feature: readonly [10833, "Glucose Feature"];
    readonly glucose_measurement: readonly [10776, "Glucose Measurement"];
    readonly glucose_measurement_context: readonly [10804, "Glucose Measurement Context"];
    readonly gmap_role: readonly [11264, "GMAP Role"];
    readonly gust_factor: readonly [10868, "Gust Factor"];
    readonly handedness: readonly [11082, "Handedness"];
    readonly hardware_revision_string: readonly [10791, "Hardware Revision String"];
    readonly health_sensor_features: readonly [11251, "Health Sensor Features"];
    readonly hearing_aid_features: readonly [11226, "Hearing Aid Features"];
    readonly hearing_aid_preset_control_point: readonly [11227, "Hearing Aid Preset Control Point"];
    readonly heart_rate_control_point: readonly [10809, "Heart Rate Control Point"];
    readonly heart_rate_max: readonly [10893, "Heart Rate Max"];
    readonly heart_rate_measurement: readonly [10807, "Heart Rate Measurement"];
    readonly heat_index: readonly [10874, "Heat Index"];
    readonly height: readonly [10894, "Height"];
    readonly hid_control_point: readonly [10828, "HID Control Point"];
    readonly hid_information: readonly [10826, "HID Information"];
    readonly high_intensity_exercise_threshold: readonly [11085, "High Intensity Exercise Threshold"];
    readonly high_resolution_height: readonly [11079, "High Resolution Height"];
    readonly high_temperature: readonly [11231, "High Temperature"];
    readonly high_voltage: readonly [11232, "High Voltage"];
    readonly hip_circumference: readonly [10895, "Hip Circumference"];
    readonly http_control_point: readonly [10938, "HTTP Control Point"];
    readonly http_entity_body: readonly [10937, "HTTP Entity Body"];
    readonly http_headers: readonly [10935, "HTTP Headers"];
    readonly http_status_code: readonly [10936, "HTTP Status Code"];
    readonly https_security: readonly [10939, "HTTPS Security"];
    readonly humidity: readonly [10863, "Humidity"];
    readonly idd_annunciation_status: readonly [11042, "IDD Annunciation Status"];
    readonly idd_command_control_point: readonly [11045, "IDD Command Control Point"];
    readonly idd_command_data: readonly [11046, "IDD Command Data"];
    readonly idd_features: readonly [11043, "IDD Features"];
    readonly idd_history_data: readonly [11048, "IDD History Data"];
    readonly idd_record_access_control_point: readonly [11047, "IDD Record Access Control Point"];
    readonly idd_status: readonly [11041, "IDD Status"];
    readonly idd_status_changed: readonly [11040, "IDD Status Changed"];
    readonly idd_status_reader_control_point: readonly [11044, "IDD Status Reader Control Point"];
    readonly "ieee_11073-20601_regulatory_certification_data_list": readonly [10794, "IEEE 11073-20601 Regulatory Certification Data List"];
    readonly illuminance: readonly [11003, "Illuminance"];
    readonly imd_control: readonly [11282, "IMD Control"];
    readonly imd_historical_data: readonly [11283, "IMD Historical Data"];
    readonly imd_status: readonly [11276, "IMD Status"];
    readonly imds_descriptor_value_changed: readonly [11277, "IMDS Descriptor Value Changed"];
    readonly incoming_call: readonly [11201, "Incoming Call"];
    readonly incoming_call_target_bearer_uri: readonly [11196, "Incoming Call Target Bearer URI"];
    readonly indoor_bike_data: readonly [10962, "Indoor Bike Data"];
    readonly indoor_positioning_configuration: readonly [10925, "Indoor Positioning Configuration"];
    readonly intermediate_cuff_pressure: readonly [10806, "Intermediate Cuff Pressure"];
    readonly intermediate_temperature: readonly [10782, "Intermediate Temperature"];
    readonly irradiance: readonly [10871, "Irradiance"];
    readonly language: readonly [10914, "Language"];
    readonly last_name: readonly [10896, "Last Name"];
    readonly latitude: readonly [10926, "Latitude"];
    readonly le_gatt_security_levels: readonly [11253, "LE GATT Security Levels"];
    readonly length: readonly [11274, "Length"];
    readonly life_cycle_data: readonly [11279, "Life Cycle Data"];
    readonly light_distribution: readonly [11233, "Light Distribution"];
    readonly light_output: readonly [11234, "Light Output"];
    readonly light_source_type: readonly [11235, "Light Source Type"];
    readonly linear_position: readonly [11272, "Linear Position"];
    readonly live_health_observations: readonly [11147, "Live Health Observations"];
    readonly ln_control_point: readonly [10859, "LN Control Point"];
    readonly ln_feature: readonly [10858, "LN Feature"];
    readonly local_east_coordinate: readonly [10929, "Local East Coordinate"];
    readonly local_north_coordinate: readonly [10928, "Local North Coordinate"];
    readonly local_time_information: readonly [10767, "Local Time Information"];
    readonly location_and_speed: readonly [10855, "Location and Speed"];
    readonly location_name: readonly [10933, "Location Name"];
    readonly lock_characteristic: readonly [11142, "Set Member Lock"];
    readonly longitude: readonly [10927, "Longitude"];
    readonly luminous_efficacy: readonly [11004, "Luminous Efficacy"];
    readonly luminous_energy: readonly [11005, "Luminous Energy"];
    readonly luminous_exposure: readonly [11006, "Luminous Exposure"];
    readonly luminous_flux: readonly [11007, "Luminous Flux"];
    readonly luminous_flux_range: readonly [11008, "Luminous Flux Range"];
    readonly luminous_intensity: readonly [11009, "Luminous Intensity"];
    readonly magnetic_declination: readonly [10796, "Magnetic Declination"];
    readonly magnetic_flux_density_2d: readonly [10912, "Magnetic Flux Density - 2D"];
    readonly magnetic_flux_density_3d: readonly [10913, "Magnetic Flux Density - 3D"];
    readonly manufacturer_name_string: readonly [10793, "Manufacturer Name String"];
    readonly mass_flow: readonly [11010, "Mass Flow"];
    readonly maximum_recommended_heart_rate: readonly [10897, "Maximum Recommended Heart Rate"];
    readonly measurement_interval: readonly [10785, "Measurement Interval"];
    readonly media_control_point: readonly [11172, "Media Control Point"];
    readonly media_control_point_opcodes_supported: readonly [11173, "Media Control Point Opcodes Supported"];
    readonly media_player_icon_object_id: readonly [11156, "Media Player Icon Object ID"];
    readonly media_player_icon_url: readonly [11157, "Media Player Icon URL"];
    readonly media_player_name: readonly [11155, "Media Player Name"];
    readonly media_state: readonly [11171, "Media State"];
    readonly medical_devices: readonly [11263, "UDI for Medical Devices"];
    readonly mesh_provisioning_data_in: readonly [10971, "Mesh Provisioning Data In"];
    readonly mesh_provisioning_data_out: readonly [10972, "Mesh Provisioning Data Out"];
    readonly mesh_proxy_data_in: readonly [10973, "Mesh Proxy Data In"];
    readonly mesh_proxy_data_out: readonly [10974, "Mesh Proxy Data Out"];
    readonly methane_concentration: readonly [11217, "Methane Concentration"];
    readonly middle_name: readonly [11080, "Middle Name"];
    readonly model_number_string: readonly [10788, "Model Number String"];
    readonly mute: readonly [11203, "Mute"];
    readonly navigation: readonly [10856, "Navigation"];
    readonly network_availability: readonly [10814, undefined];
    readonly new_alert: readonly [10822, "New Alert"];
    readonly next_track_object_id: readonly [11166, "Next Track Object ID"];
    readonly nitrogen_dioxide_concentration: readonly [11218, "Nitrogen Dioxide Concentration"];
    readonly noise: readonly [11236, "Noise"];
    readonly "non-methane_volatile_organic_compounds_concentration": readonly [11219, "Non-Methane Volatile Organic Compounds Concentration"];
    readonly object_action_control_point: readonly [10949, "Object Action Control Point"];
    readonly object_changed: readonly [10952, "Object Changed"];
    readonly object_first_created: readonly [10945, "Object First-Created"];
    readonly object_id: readonly [10947, "Object ID"];
    readonly object_last_modified: readonly [10946, "Object Last-Modified"];
    readonly object_list_control_point: readonly [10950, "Object List Control Point"];
    readonly object_list_filter: readonly [10951, "Object List Filter"];
    readonly object_name: readonly [10942, "Object Name"];
    readonly object_properties: readonly [10948, "Object Properties"];
    readonly object_size: readonly [10944, "Object Size"];
    readonly object_type: readonly [10943, "Object Type"];
    readonly observation_schedule_changed: readonly [11249, "Observation Schedule Changed"];
    readonly "on-demand_ranging_data": readonly [11286, "On-demand Ranging Data"];
    readonly ots_feature: readonly [10941, "OTS Feature"];
    readonly ozone_concentration: readonly [11220, "Ozone Concentration"];
    readonly parent_group_object_id: readonly [11167, "Parent Group Object ID"];
    readonly particulate_matter_pm1_concentration: readonly [11221, "Particulate Matter - PM1 Concentration"];
    readonly particulate_matter_pm10_concentration: readonly [11223, "Particulate Matter - PM10 Concentration"];
    readonly particulate_matter_pm2_5_concentration: readonly [11222, "Particulate Matter - PM2.5 Concentration"];
    readonly perceived_lightness: readonly [11011, "Perceived Lightness"];
    readonly percentage_8: readonly [11012, "Percentage 8"];
    readonly percentage_8_steps: readonly [11269, "Percentage 8 Steps"];
    readonly physical_activity_current_session: readonly [11076, "Physical Activity Current Session"];
    readonly physical_activity_monitor_control_point: readonly [11075, "Physical Activity Monitor Control Point"];
    readonly physical_activity_monitor_features: readonly [11067, "Physical Activity Monitor Features"];
    readonly physical_activity_session_descriptor: readonly [11077, "Physical Activity Session Descriptor"];
    readonly playback_speed: readonly [11162, "Playback Speed"];
    readonly playing_order: readonly [11169, "Playing Order"];
    readonly playing_orders_supported: readonly [11170, "Playing Orders Supported"];
    readonly plx_continuous_measurement: readonly [10847, "PLX Continuous Measurement"];
    readonly plx_features: readonly [10848, "PLX Features"];
    readonly plx_spot_check_measurement: readonly [10846, "PLX Spot-Check Measurement"];
    readonly pnp_id: readonly [10832, "PnP ID"];
    readonly pollen_concentration: readonly [10869, "Pollen Concentration"];
    readonly position_2d: readonly [10799, undefined];
    readonly position_3d: readonly [10800, undefined];
    readonly position_quality: readonly [10857, "Position Quality"];
    readonly power: readonly [11013, "Power"];
    readonly power_specification: readonly [11014, "Power Specification"];
    readonly preferred_units: readonly [11078, "Preferred Units"];
    readonly pressure: readonly [10861, "Pressure"];
    readonly protocol_mode: readonly [10830, "Protocol Mode"];
    readonly pulse_oximetry_control_point: readonly [10850, undefined];
    readonly rainfall: readonly [10872, "Rainfall"];
    readonly ranging_data_ready: readonly [11288, "Ranging Data Ready"];
    readonly rank_characteristic: readonly [11143, "Set Member Rank"];
    readonly ras_control_point: readonly [11287, "RAS Control Point"];
    readonly ras_features: readonly [11284, "RAS Features"];
    readonly rc_feature: readonly [11037, "RC Feature"];
    readonly rc_settings: readonly [11038, "RC Settings"];
    readonly "real-time_ranging_data": readonly [11285, "Real-time Ranging Data"];
    readonly reconnection_configuration_control_point: readonly [11039, "Reconnection Configuration Control Point"];
    readonly record_access_control_point: readonly [10834, "Record Access Control Point"];
    readonly reference_time_information: readonly [10772, "Reference Time Information"];
    readonly registered_user: readonly [11063, "Registered User"];
    readonly relative_runtime_in_a_correlated_color_temperature_range: readonly [11237, "Relative Runtime in a Correlated Color Temperature Range"];
    readonly relative_runtime_in_a_current_range: readonly [11015, "Relative Runtime in a Current Range"];
    readonly relative_runtime_in_a_generic_level_range: readonly [11016, "Relative Runtime in a Generic Level Range"];
    readonly relative_value_in_a_period_of_day: readonly [11019, "Relative Value in a Period of Day"];
    readonly relative_value_in_a_temperature_range: readonly [11020, "Relative Value in a Temperature Range"];
    readonly relative_value_in_a_voltage_range: readonly [11017, "Relative Value in a Voltage Range"];
    readonly relative_value_in_an_illuminance_range: readonly [11018, "Relative Value in an Illuminance Range"];
    readonly removable: readonly [10810, undefined];
    readonly report: readonly [10829, "Report"];
    readonly report_map: readonly [10827, "Report Map"];
    readonly resolvable_private_address_only: readonly [10953, "Resolvable Private Address Only"];
    readonly resting_heart_rate: readonly [10898, "Resting Heart Rate"];
    readonly ringer_control_point: readonly [10816, "Ringer Control Point"];
    readonly ringer_setting: readonly [10817, "Ringer Setting"];
    readonly rotational_speed: readonly [11273, "Rotational Speed"];
    readonly rower_data: readonly [10961, "Rower Data"];
    readonly rsc_feature: readonly [10836, "RSC Feature"];
    readonly rsc_measurement: readonly [10835, "RSC Measurement"];
    readonly sc_control_point: readonly [10837, "SC Control Point"];
    readonly scan_interval_window: readonly [10831, "Scan Interval Window"];
    readonly scan_refresh: readonly [10801, "Scan Refresh"];
    readonly scientific_temperature_celsius: readonly [10812, undefined];
    readonly search_control_point: readonly [11175, "Search Control Point"];
    readonly search_results_object_id: readonly [11174, "Search Results Object ID"];
    readonly secondary_time_zone: readonly [10768, undefined];
    readonly sedentary_interval_notification: readonly [11087, "Sedentary Interval Notification"];
    readonly seeking_speed: readonly [11163, "Seeking Speed"];
    readonly sensor_location: readonly [10845, "Sensor Location"];
    readonly serial_number_string: readonly [10789, "Serial Number String"];
    readonly server_supported_features: readonly [11066, "Server Supported Features"];
    readonly service_cycle_data: readonly [11281, "Service Cycle Data"];
    readonly service_required: readonly [10811, undefined];
    readonly set_identity_resolving_key: readonly [11140, "Set Identity Resolving Key"];
    readonly sink_ase: readonly [11204, "Sink ASE"];
    readonly sink_audio_locations: readonly [11210, "Sink Audio Locations"];
    readonly sink_pac: readonly [11209, "Sink PAC"];
    readonly size_characteristic: readonly [11141, "Coordinated Set Size"];
    readonly sleep_activity_instantaneous_data: readonly [11073, "Sleep Activity Instantaneous Data"];
    readonly sleep_activity_summary_data: readonly [11074, "Sleep Activity Summary Data"];
    readonly software_revision_string: readonly [10792, "Software Revision String"];
    readonly source_ase: readonly [11205, "Source ASE"];
    readonly source_audio_locations: readonly [11212, "Source Audio Locations"];
    readonly source_pac: readonly [11211, "Source PAC"];
    readonly sport_type_for_aerobic_and_anaerobic_thresholds: readonly [10899, "Sport Type for Aerobic and Anaerobic Thresholds"];
    readonly stair_climber_data: readonly [10960, "Stair Climber Data"];
    readonly status_flags: readonly [11195, "Status Flags"];
    readonly step_climber_data: readonly [10959, "Step Climber Data"];
    readonly step_counter_activity_summary_data: readonly [11072, "Step Counter Activity Summary Data"];
    readonly stored_health_observations: readonly [11229, "Stored Health Observations"];
    readonly stride_length: readonly [11081, "Stride Length"];
    readonly string: readonly [10813, undefined];
    readonly sulfur_dioxide_concentration: readonly [11224, "Sulfur Dioxide Concentration"];
    readonly sulfur_hexafluoride_concentration: readonly [11225, "Sulfur Hexafluoride Concentration"];
    readonly supported_audio_contexts: readonly [11214, "Supported Audio Contexts"];
    readonly supported_heart_rate_range: readonly [10967, "Supported Heart Rate Range"];
    readonly supported_inclination_range: readonly [10965, "Supported Inclination Range"];
    readonly supported_new_alert_category: readonly [10823, "Supported New Alert Category"];
    readonly supported_power_range: readonly [10968, "Supported Power Range"];
    readonly supported_resistance_level_range: readonly [10966, "Supported Resistance Level Range"];
    readonly supported_speed_range: readonly [10964, "Supported Speed Range"];
    readonly supported_unread_alert_category: readonly [10824, "Supported Unread Alert Category"];
    readonly system_id: readonly [10787, "System ID"];
    readonly tds_control_point: readonly [10940, "TDS Control Point"];
    readonly temperature: readonly [10862, "Temperature"];
    readonly temperature_8: readonly [11021, "Temperature 8"];
    readonly temperature_8_in_a_period_of_day: readonly [11022, "Temperature 8 in a Period of Day"];
    readonly temperature_8_statistics: readonly [11023, "Temperature 8 Statistics"];
    readonly temperature_celsius: readonly [10783, undefined];
    readonly temperature_fahrenheit: readonly [10784, undefined];
    readonly temperature_measurement: readonly [10780, "Temperature Measurement"];
    readonly temperature_range: readonly [11024, "Temperature Range"];
    readonly temperature_statistics: readonly [11025, "Temperature Statistics"];
    readonly temperature_type: readonly [10781, "Temperature Type"];
    readonly termination_reason: readonly [11200, "Termination Reason"];
    readonly three_zone_heart_rate_limits: readonly [10900, "Three Zone Heart Rate Limits"];
    readonly time_accuracy: readonly [10770, "Time Accuracy"];
    readonly time_broadcast: readonly [10773, undefined];
    readonly time_change_log_data: readonly [11154, "Time Change Log Data"];
    readonly time_decihour_8: readonly [11026, "Time Decihour 8"];
    readonly time_exponential_8: readonly [11027, "Time Exponential 8"];
    readonly time_hour_24: readonly [11028, "Time Hour 24"];
    readonly time_millisecond_24: readonly [11029, "Time Millisecond 24"];
    readonly time_second_16: readonly [11030, "Time Second 16"];
    readonly time_second_32: readonly [11238, "Time Second 32"];
    readonly time_second_8: readonly [11031, "Time Second 8"];
    readonly time_source: readonly [10771, "Time Source"];
    readonly time_update_control_point: readonly [10774, "Time Update Control Point"];
    readonly time_update_state: readonly [10775, "Time Update State"];
    readonly time_with_dst: readonly [10769, "Time with DST"];
    readonly time_zone: readonly [10766, "Time Zone"];
    readonly tmap_role: readonly [11089, "TMAP Role"];
    readonly torque: readonly [11275, "Torque"];
    readonly track_changed: readonly [11158, "Track Changed"];
    readonly track_duration: readonly [11160, "Track Duration"];
    readonly track_position: readonly [11161, "Track Position"];
    readonly track_title: readonly [11159, "Track Title"];
    readonly training_status: readonly [10963, "Training Status"];
    readonly treadmill_data: readonly [10957, "Treadmill Data"];
    readonly true_wind_direction: readonly [10865, "True Wind Direction"];
    readonly true_wind_speed: readonly [10864, "True Wind Speed"];
    readonly two_zone_heart_rate_limits: readonly [10901, "Two Zone Heart Rate Limits"];
    readonly tx_power_level: readonly [10759, "Tx Power Level"];
    readonly ugg_features: readonly [11265, "UGG Features"];
    readonly ugt_features: readonly [11266, "UGT Features"];
    readonly uncertainty: readonly [10932, "Uncertainty"];
    readonly unread_alert_status: readonly [10821, "Unread Alert Status"];
    readonly uri: readonly [10934, "URI"];
    readonly user_control_point: readonly [10911, "User Control Point"];
    readonly user_index: readonly [10906, "User Index"];
    readonly uv_index: readonly [10870, "UV Index"];
    readonly vo2_max: readonly [10902, "VO2 Max"];
    readonly voc_concentration: readonly [11239, "VOC Concentration"];
    readonly voltage: readonly [11032, "Voltage"];
    readonly voltage_frequency: readonly [11240, "Voltage Frequency"];
    readonly voltage_specification: readonly [11033, "Voltage Specification"];
    readonly voltage_statistics: readonly [11034, "Voltage Statistics"];
    readonly volume_control_point: readonly [11134, "Volume Control Point"];
    readonly volume_flags: readonly [11135, "Volume Flags"];
    readonly volume_flow: readonly [11035, "Volume Flow"];
    readonly volume_offset_control_point: readonly [11138, "Volume Offset Control Point"];
    readonly volume_offset_state: readonly [11136, "Volume Offset State"];
    readonly volume_state: readonly [11133, "Volume State"];
    readonly waist_circumference: readonly [10903, "Waist Circumference"];
    readonly weight: readonly [10904, "Weight"];
    readonly weight_measurement: readonly [10909, "Weight Measurement"];
    readonly weight_scale_feature: readonly [10910, "Weight Scale Feature"];
    readonly wind_chill: readonly [10873, "Wind Chill"];
    readonly work_cycle_data: readonly [11280, "Work Cycle Data"];
}>
```

#### GATT_DESCRIPTOR_TABLE

<a id="api-gatt-descriptor-table"></a>

```typescript
GATT_DESCRIPTOR_TABLE: Readonly<{
    readonly complete_br_edr_transport_block_data: readonly [10511, "Complete BR-EDR Transport Block Data"];
    readonly es_configuration: readonly [10507, "Environmental Sensing Configuration"];
    readonly es_measurement: readonly [10508, "Environmental Sensing Measurement"];
    readonly es_trigger_setting: readonly [10509, "Environmental Sensing Trigger Setting"];
    readonly external_report_reference: readonly [10503, "External Report Reference"];
    readonly "gatt.characteristic_aggregate_format": readonly [10501, "Characteristic Aggregate Format"];
    readonly "gatt.characteristic_extended_properties": readonly [10496, "Characteristic Extended Properties"];
    readonly "gatt.characteristic_presentation_format": readonly [10500, "Characteristic Presentation Format"];
    readonly "gatt.characteristic_user_description": readonly [10497, "Characteristic User Description"];
    readonly "gatt.client_characteristic_configuration": readonly [10498, "Client Characteristic Configuration"];
    readonly "gatt.server_characteristic_configuration": readonly [10499, "Server Characteristic Configuration"];
    readonly manufacturer_limits: readonly [10515, "Manufacturer Limits"];
    readonly measurement_description: readonly [10514, "Measurement Description"];
    readonly number_of_digitals: readonly [10505, "Number of Digitals"];
    readonly observation_schedule: readonly [10512, "Observation Schedule"];
    readonly process_tolerances: readonly [10516, "Process Tolerances"];
    readonly report_reference: readonly [10504, "Report Reference"];
    readonly time_trigger_setting: readonly [10510, "Time Trigger Setting"];
    readonly valid_range: readonly [10502, "Valid Range"];
    readonly valid_range_accuracy: readonly [10513, "Valid Range and Accuracy"];
    readonly value_trigger_setting: readonly [10506, "Value Trigger Setting"];
}>
```

#### GATT_SERVICE_TABLE

<a id="api-gatt-service-table"></a>

```typescript
GATT_SERVICE_TABLE: Readonly<{
    readonly alert_notification: readonly [6161, "Alert Notification"];
    readonly audio_input_control: readonly [6211, "Audio Input Control"];
    readonly audio_stream_control: readonly [6222, "Audio Stream Control"];
    readonly authorization_control: readonly [6205, "Authorization Control"];
    readonly automation_io: readonly [6165, "Automation IO"];
    readonly basic_audio_announcement: readonly [6225, "Basic Audio Announcement"];
    readonly battery_service: readonly [6159, "Battery"];
    readonly binary_sensor: readonly [6203, "Binary Sensor"];
    readonly blood_pressure: readonly [6160, "Blood Pressure"];
    readonly body_composition: readonly [6171, "Body Composition"];
    readonly bond_management: readonly [6174, "Bond Management"];
    readonly broadcast_audio_announcement: readonly [6226, "Broadcast Audio Announcement"];
    readonly broadcast_audio_scan: readonly [6223, "Broadcast Audio Scan"];
    readonly common_audio: readonly [6227, "Common Audio"];
    readonly constant_tone_extension: readonly [6218, "Constant Tone Extension"];
    readonly continuous_glucose_monitoring: readonly [6175, "Continuous Glucose Monitoring"];
    readonly coordinated_set_identification: readonly [6214, "Coordinated Set Identification"];
    readonly current_time: readonly [6149, "Current Time"];
    readonly cycling_power: readonly [6168, "Cycling Power"];
    readonly cycling_speed_and_cadence: readonly [6166, "Cycling Speed and Cadence"];
    readonly device_information: readonly [6154, "Device Information"];
    readonly device_time: readonly [6215, "Device Time"];
    readonly elapsed_time: readonly [6207, "Elapsed Time"];
    readonly electronic_shelf_label: readonly [6231, "Electronic Shelf Label"];
    readonly emergency_configuration: readonly [6204, "Emergency Configuration"];
    readonly environmental_sensing: readonly [6170, "Environmental Sensing"];
    readonly fitness_machine: readonly [6182, "Fitness Machine"];
    readonly gaming_audio: readonly [6232, "Gaming Audio"];
    readonly gap: readonly [6144, "GAP"];
    readonly gatt: readonly [6145, "GATT"];
    readonly generic_health_sensor: readonly [6208, "Generic Health Sensor"];
    readonly generic_media_control: readonly [6217, "Generic Media Control"];
    readonly generic_telephone_bearer: readonly [6220, "Generic Telephone Bearer"];
    readonly glucose: readonly [6152, "Glucose"];
    readonly health_thermometer: readonly [6153, "Health Thermometer"];
    readonly hearing_access: readonly [6228, "Hearing Access"];
    readonly heart_rate: readonly [6157, "Heart Rate"];
    readonly http_proxy: readonly [6179, "HTTP Proxy"];
    readonly human_interface_device: readonly [6162, "Human Interface Device"];
    readonly immediate_alert: readonly [6146, "Immediate Alert"];
    readonly indoor_positioning: readonly [6177, "Indoor Positioning"];
    readonly industrial_measurement_device: readonly [6234, "Industrial Measurement Device"];
    readonly insulin_delivery: readonly [6202, "Insulin Delivery"];
    readonly internet_protocol_support: readonly [6176, "Internet Protocol Support"];
    readonly link_loss: readonly [6147, "Link Loss"];
    readonly location_and_navigation: readonly [6169, "Location and Navigation"];
    readonly media_control: readonly [6216, "Media Control"];
    readonly mesh_provisioning: readonly [6183, "Mesh Provisioning"];
    readonly mesh_proxy: readonly [6184, "Mesh Proxy"];
    readonly mesh_proxy_solicitation: readonly [6233, "Mesh Proxy Solicitation"];
    readonly microphone_control: readonly [6221, "Microphone Control"];
    readonly next_dst_change: readonly [6151, "Next DST Change"];
    readonly object_transfer: readonly [6181, "Object Transfer"];
    readonly phone_alert_status: readonly [6158, "Phone Alert Status"];
    readonly physical_activity_monitor: readonly [6206, "Physical Activity Monitor"];
    readonly public_broadcast_announcement: readonly [6230, "Public Broadcast Announcement"];
    readonly published_audio_capabilities: readonly [6224, "Published Audio Capabilities"];
    readonly pulse_oximeter: readonly [6178, "Pulse Oximeter"];
    readonly reconnection_configuration: readonly [6185, "Reconnection Configuration"];
    readonly reference_time_update: readonly [6150, "Reference Time Update"];
    readonly running_speed_and_cadence: readonly [6164, "Running Speed and Cadence"];
    readonly scan_parameters: readonly [6163, "Scan Parameters"];
    readonly telephone_bearer: readonly [6219, "Telephone Bearer"];
    readonly telephony_and_media_audio: readonly [6229, "Telephony and Media Audio"];
    readonly transport_discovery: readonly [6180, "Transport Discovery"];
    readonly tx_power: readonly [6148, "Tx Power"];
    readonly user_data: readonly [6172, "User Data"];
    readonly volume_control: readonly [6212, "Volume Control"];
    readonly volume_offset: readonly [6213, "Volume Offset Control"];
    readonly weight_scale: readonly [6173, "Weight Scale"];
}>
```

