@rickosborne/bluetools 2025.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2624 -0
- package/assigned.cjs +577 -0
- package/assigned.cjs.map +6 -0
- package/assigned.d.ts +552 -0
- package/assigned.d.ts.map +1 -0
- package/assigned.mjs +557 -0
- package/assigned.mjs.map +6 -0
- package/battery-level.cjs +50 -0
- package/battery-level.cjs.map +6 -0
- package/battery-level.d.ts +25 -0
- package/battery-level.d.ts.map +1 -0
- package/battery-level.mjs +31 -0
- package/battery-level.mjs.map +6 -0
- package/cross-trainer-data.cjs +188 -0
- package/cross-trainer-data.cjs.map +6 -0
- package/cross-trainer-data.d.ts +192 -0
- package/cross-trainer-data.d.ts.map +1 -0
- package/cross-trainer-data.mjs +169 -0
- package/cross-trainer-data.mjs.map +6 -0
- package/csc-feature.cjs +59 -0
- package/csc-feature.cjs.map +6 -0
- package/csc-feature.d.ts +55 -0
- package/csc-feature.d.ts.map +1 -0
- package/csc-feature.mjs +40 -0
- package/csc-feature.mjs.map +6 -0
- package/csc-measurement.cjs +76 -0
- package/csc-measurement.cjs.map +6 -0
- package/csc-measurement.d.ts +57 -0
- package/csc-measurement.d.ts.map +1 -0
- package/csc-measurement.mjs +57 -0
- package/csc-measurement.mjs.map +6 -0
- package/current-time.cjs +66 -0
- package/current-time.cjs.map +6 -0
- package/current-time.d.ts +65 -0
- package/current-time.d.ts.map +1 -0
- package/current-time.mjs +47 -0
- package/current-time.mjs.map +6 -0
- package/data-view-from-hex.cjs +34 -0
- package/data-view-from-hex.cjs.map +6 -0
- package/data-view-from-hex.d.ts +6 -0
- package/data-view-from-hex.d.ts.map +1 -0
- package/data-view-from-hex.mjs +15 -0
- package/data-view-from-hex.mjs.map +6 -0
- package/data-view-reader.cjs +115 -0
- package/data-view-reader.cjs.map +6 -0
- package/data-view-reader.d.ts +21 -0
- package/data-view-reader.d.ts.map +1 -0
- package/data-view-reader.mjs +96 -0
- package/data-view-reader.mjs.map +6 -0
- package/date-time.cjs +65 -0
- package/date-time.cjs.map +6 -0
- package/date-time.d.ts +89 -0
- package/date-time.d.ts.map +1 -0
- package/date-time.mjs +46 -0
- package/date-time.mjs.map +6 -0
- package/day-date-time.cjs +55 -0
- package/day-date-time.cjs.map +6 -0
- package/day-date-time.d.ts +21 -0
- package/day-date-time.d.ts.map +1 -0
- package/day-date-time.mjs +36 -0
- package/day-date-time.mjs.map +6 -0
- package/day-of-week.cjs +50 -0
- package/day-of-week.cjs.map +6 -0
- package/day-of-week.d.ts +33 -0
- package/day-of-week.d.ts.map +1 -0
- package/day-of-week.mjs +31 -0
- package/day-of-week.mjs.map +6 -0
- package/dst-offset.cjs +50 -0
- package/dst-offset.cjs.map +6 -0
- package/dst-offset.d.ts +30 -0
- package/dst-offset.d.ts.map +1 -0
- package/dst-offset.mjs +31 -0
- package/dst-offset.mjs.map +6 -0
- package/elevation.cjs +50 -0
- package/elevation.cjs.map +6 -0
- package/elevation.d.ts +22 -0
- package/elevation.d.ts.map +1 -0
- package/elevation.mjs +31 -0
- package/elevation.mjs.map +6 -0
- package/exact-time-256.cjs +54 -0
- package/exact-time-256.cjs.map +6 -0
- package/exact-time-256.d.ts +27 -0
- package/exact-time-256.d.ts.map +1 -0
- package/exact-time-256.mjs +35 -0
- package/exact-time-256.mjs.map +6 -0
- package/firmware-revision-string.cjs +50 -0
- package/firmware-revision-string.cjs.map +6 -0
- package/firmware-revision-string.d.ts +19 -0
- package/firmware-revision-string.d.ts.map +1 -0
- package/firmware-revision-string.mjs +31 -0
- package/firmware-revision-string.mjs.map +6 -0
- package/five-zone-heart-rate-limits.cjs +59 -0
- package/five-zone-heart-rate-limits.cjs.map +6 -0
- package/five-zone-heart-rate-limits.d.ts +47 -0
- package/five-zone-heart-rate-limits.d.ts.map +1 -0
- package/five-zone-heart-rate-limits.mjs +40 -0
- package/five-zone-heart-rate-limits.mjs.map +6 -0
- package/gatt-characteristic-presentation-format.cjs +62 -0
- package/gatt-characteristic-presentation-format.cjs.map +6 -0
- package/gatt-characteristic-presentation-format.d.ts +91 -0
- package/gatt-characteristic-presentation-format.d.ts.map +1 -0
- package/gatt-characteristic-presentation-format.mjs +43 -0
- package/gatt-characteristic-presentation-format.mjs.map +6 -0
- package/gatt.cjs +57 -0
- package/gatt.cjs.map +6 -0
- package/gatt.d.ts +4 -0
- package/gatt.d.ts.map +1 -0
- package/gatt.mjs +38 -0
- package/gatt.mjs.map +6 -0
- package/glucose-feature.cjs +83 -0
- package/glucose-feature.cjs.map +6 -0
- package/glucose-feature.d.ts +127 -0
- package/glucose-feature.d.ts.map +1 -0
- package/glucose-feature.mjs +64 -0
- package/glucose-feature.mjs.map +6 -0
- package/glucose-measurement-context.cjs +133 -0
- package/glucose-measurement-context.cjs.map +6 -0
- package/glucose-measurement-context.d.ts +183 -0
- package/glucose-measurement-context.d.ts.map +1 -0
- package/glucose-measurement-context.mjs +114 -0
- package/glucose-measurement-context.mjs.map +6 -0
- package/glucose-measurement.cjs +136 -0
- package/glucose-measurement.cjs.map +6 -0
- package/glucose-measurement.d.ts +230 -0
- package/glucose-measurement.d.ts.map +1 -0
- package/glucose-measurement.mjs +117 -0
- package/glucose-measurement.mjs.map +6 -0
- package/hardware-revision-string.cjs +50 -0
- package/hardware-revision-string.cjs.map +6 -0
- package/hardware-revision-string.d.ts +19 -0
- package/hardware-revision-string.d.ts.map +1 -0
- package/hardware-revision-string.mjs +31 -0
- package/hardware-revision-string.mjs.map +6 -0
- package/heart-rate-control-point.cjs +50 -0
- package/heart-rate-control-point.cjs.map +6 -0
- package/heart-rate-control-point.d.ts +26 -0
- package/heart-rate-control-point.d.ts.map +1 -0
- package/heart-rate-control-point.mjs +31 -0
- package/heart-rate-control-point.mjs.map +6 -0
- package/heart-rate-max.cjs +50 -0
- package/heart-rate-max.cjs.map +6 -0
- package/heart-rate-max.d.ts +23 -0
- package/heart-rate-max.d.ts.map +1 -0
- package/heart-rate-max.mjs +31 -0
- package/heart-rate-max.mjs.map +6 -0
- package/heart-rate-measurement.cjs +79 -0
- package/heart-rate-measurement.cjs.map +6 -0
- package/heart-rate-measurement.d.ts +65 -0
- package/heart-rate-measurement.d.ts.map +1 -0
- package/heart-rate-measurement.mjs +60 -0
- package/heart-rate-measurement.mjs.map +6 -0
- package/heart-rate.cjs +58 -0
- package/heart-rate.cjs.map +6 -0
- package/heart-rate.d.ts +7 -0
- package/heart-rate.d.ts.map +1 -0
- package/heart-rate.mjs +39 -0
- package/heart-rate.mjs.map +6 -0
- package/index.cjs +84 -0
- package/index.cjs.map +6 -0
- package/index.d.ts +67 -0
- package/index.d.ts.map +1 -0
- package/index.mjs +67 -0
- package/index.mjs.map +6 -0
- package/indoor-bike-data.cjs +153 -0
- package/indoor-bike-data.cjs.map +6 -0
- package/indoor-bike-data.d.ts +146 -0
- package/indoor-bike-data.d.ts.map +1 -0
- package/indoor-bike-data.mjs +134 -0
- package/indoor-bike-data.mjs.map +6 -0
- package/language.cjs +50 -0
- package/language.cjs.map +6 -0
- package/language.d.ts +22 -0
- package/language.d.ts.map +1 -0
- package/language.mjs +31 -0
- package/language.mjs.map +6 -0
- package/latitude.cjs +50 -0
- package/latitude.cjs.map +6 -0
- package/latitude.d.ts +19 -0
- package/latitude.d.ts.map +1 -0
- package/latitude.mjs +31 -0
- package/latitude.mjs.map +6 -0
- package/local-time-information.cjs +55 -0
- package/local-time-information.cjs.map +6 -0
- package/local-time-information.d.ts +21 -0
- package/local-time-information.d.ts.map +1 -0
- package/local-time-information.mjs +36 -0
- package/local-time-information.mjs.map +6 -0
- package/location-and-speed.cjs +114 -0
- package/location-and-speed.cjs.map +6 -0
- package/location-and-speed.d.ts +182 -0
- package/location-and-speed.d.ts.map +1 -0
- package/location-and-speed.mjs +95 -0
- package/location-and-speed.mjs.map +6 -0
- package/location-name.cjs +50 -0
- package/location-name.cjs.map +6 -0
- package/location-name.d.ts +19 -0
- package/location-name.d.ts.map +1 -0
- package/location-name.mjs +31 -0
- package/location-name.mjs.map +6 -0
- package/longitude.cjs +50 -0
- package/longitude.cjs.map +6 -0
- package/longitude.d.ts +19 -0
- package/longitude.d.ts.map +1 -0
- package/longitude.mjs +31 -0
- package/longitude.mjs.map +6 -0
- package/manufacturer-name-string.cjs +50 -0
- package/manufacturer-name-string.cjs.map +6 -0
- package/manufacturer-name-string.d.ts +19 -0
- package/manufacturer-name-string.d.ts.map +1 -0
- package/manufacturer-name-string.mjs +31 -0
- package/manufacturer-name-string.mjs.map +6 -0
- package/maximum-recommended-heart-rate.cjs +50 -0
- package/maximum-recommended-heart-rate.cjs.map +6 -0
- package/maximum-recommended-heart-rate.d.ts +23 -0
- package/maximum-recommended-heart-rate.d.ts.map +1 -0
- package/maximum-recommended-heart-rate.mjs +31 -0
- package/maximum-recommended-heart-rate.mjs.map +6 -0
- package/measurement-interval.cjs +50 -0
- package/measurement-interval.cjs.map +6 -0
- package/measurement-interval.d.ts +27 -0
- package/measurement-interval.d.ts.map +1 -0
- package/measurement-interval.mjs +31 -0
- package/measurement-interval.mjs.map +6 -0
- package/model-number-string.cjs +50 -0
- package/model-number-string.cjs.map +6 -0
- package/model-number-string.d.ts +19 -0
- package/model-number-string.d.ts.map +1 -0
- package/model-number-string.mjs +31 -0
- package/model-number-string.mjs.map +6 -0
- package/navigation.cjs +90 -0
- package/navigation.cjs.map +6 -0
- package/navigation.d.ts +134 -0
- package/navigation.d.ts.map +1 -0
- package/navigation.mjs +71 -0
- package/navigation.mjs.map +6 -0
- package/number-of-digitals.cjs +50 -0
- package/number-of-digitals.cjs.map +6 -0
- package/number-of-digitals.d.ts +19 -0
- package/number-of-digitals.d.ts.map +1 -0
- package/number-of-digitals.mjs +31 -0
- package/number-of-digitals.mjs.map +6 -0
- package/package.json +456 -0
- package/plx-continuous-measurement.cjs +184 -0
- package/plx-continuous-measurement.cjs.map +6 -0
- package/plx-continuous-measurement.d.ts +352 -0
- package/plx-continuous-measurement.d.ts.map +1 -0
- package/plx-continuous-measurement.mjs +165 -0
- package/plx-continuous-measurement.mjs.map +6 -0
- package/plx-features.cjs +163 -0
- package/plx-features.cjs.map +6 -0
- package/plx-features.d.ts +354 -0
- package/plx-features.d.ts.map +1 -0
- package/plx-features.mjs +144 -0
- package/plx-features.mjs.map +6 -0
- package/plx-spot-check-measurement.cjs +169 -0
- package/plx-spot-check-measurement.cjs.map +6 -0
- package/plx-spot-check-measurement.d.ts +334 -0
- package/plx-spot-check-measurement.d.ts.map +1 -0
- package/plx-spot-check-measurement.mjs +150 -0
- package/plx-spot-check-measurement.mjs.map +6 -0
- package/reference-time-information.cjs +61 -0
- package/reference-time-information.cjs.map +6 -0
- package/reference-time-information.d.ts +38 -0
- package/reference-time-information.d.ts.map +1 -0
- package/reference-time-information.mjs +42 -0
- package/reference-time-information.mjs.map +6 -0
- package/resting-heart-rate.cjs +50 -0
- package/resting-heart-rate.cjs.map +6 -0
- package/resting-heart-rate.d.ts +23 -0
- package/resting-heart-rate.d.ts.map +1 -0
- package/resting-heart-rate.mjs +31 -0
- package/resting-heart-rate.mjs.map +6 -0
- package/rsc-feature.cjs +65 -0
- package/rsc-feature.cjs.map +6 -0
- package/rsc-feature.d.ts +73 -0
- package/rsc-feature.d.ts.map +1 -0
- package/rsc-feature.mjs +46 -0
- package/rsc-feature.mjs.map +6 -0
- package/rsc-measurement.cjs +73 -0
- package/rsc-measurement.cjs.map +6 -0
- package/rsc-measurement.d.ts +70 -0
- package/rsc-measurement.d.ts.map +1 -0
- package/rsc-measurement.mjs +54 -0
- package/rsc-measurement.mjs.map +6 -0
- package/scripts/fetch-and-cache-text.d.ts +2 -0
- package/scripts/fetch-and-cache-text.d.ts.map +1 -0
- package/scripts/from-xml.d.ts +2 -0
- package/scripts/from-xml.d.ts.map +1 -0
- package/scripts/gatt-assigned.d.ts +2 -0
- package/scripts/gatt-assigned.d.ts.map +1 -0
- package/sensor-location.cjs +50 -0
- package/sensor-location.cjs.map +6 -0
- package/sensor-location.d.ts +42 -0
- package/sensor-location.d.ts.map +1 -0
- package/sensor-location.mjs +31 -0
- package/sensor-location.mjs.map +6 -0
- package/serial-number-string.cjs +50 -0
- package/serial-number-string.cjs.map +6 -0
- package/serial-number-string.d.ts +19 -0
- package/serial-number-string.d.ts.map +1 -0
- package/serial-number-string.mjs +31 -0
- package/serial-number-string.mjs.map +6 -0
- package/software-revision-string.cjs +50 -0
- package/software-revision-string.cjs.map +6 -0
- package/software-revision-string.d.ts +19 -0
- package/software-revision-string.d.ts.map +1 -0
- package/software-revision-string.mjs +31 -0
- package/software-revision-string.mjs.map +6 -0
- package/supported-heart-rate-range.cjs +56 -0
- package/supported-heart-rate-range.cjs.map +6 -0
- package/supported-heart-rate-range.d.ts +37 -0
- package/supported-heart-rate-range.d.ts.map +1 -0
- package/supported-heart-rate-range.mjs +37 -0
- package/supported-heart-rate-range.mjs.map +6 -0
- package/supported-inclination-range.cjs +56 -0
- package/supported-inclination-range.cjs.map +6 -0
- package/supported-inclination-range.d.ts +37 -0
- package/supported-inclination-range.d.ts.map +1 -0
- package/supported-inclination-range.mjs +37 -0
- package/supported-inclination-range.mjs.map +6 -0
- package/supported-speed-range.cjs +56 -0
- package/supported-speed-range.cjs.map +6 -0
- package/supported-speed-range.d.ts +37 -0
- package/supported-speed-range.d.ts.map +1 -0
- package/supported-speed-range.mjs +37 -0
- package/supported-speed-range.mjs.map +6 -0
- package/system-id.cjs +53 -0
- package/system-id.cjs.map +6 -0
- package/system-id.d.ts +34 -0
- package/system-id.d.ts.map +1 -0
- package/system-id.mjs +34 -0
- package/system-id.mjs.map +6 -0
- package/temperature-measurement.cjs +79 -0
- package/temperature-measurement.cjs.map +6 -0
- package/temperature-measurement.d.ts +61 -0
- package/temperature-measurement.d.ts.map +1 -0
- package/temperature-measurement.mjs +60 -0
- package/temperature-measurement.mjs.map +6 -0
- package/temperature-type.cjs +50 -0
- package/temperature-type.cjs.map +6 -0
- package/temperature-type.d.ts +37 -0
- package/temperature-type.d.ts.map +1 -0
- package/temperature-type.mjs +31 -0
- package/temperature-type.mjs.map +6 -0
- package/temperature.cjs +50 -0
- package/temperature.cjs.map +6 -0
- package/temperature.d.ts +22 -0
- package/temperature.d.ts.map +1 -0
- package/temperature.mjs +31 -0
- package/temperature.mjs.map +6 -0
- package/three-zone-heart-rate-limits.cjs +53 -0
- package/three-zone-heart-rate-limits.cjs.map +6 -0
- package/three-zone-heart-rate-limits.d.ts +33 -0
- package/three-zone-heart-rate-limits.d.ts.map +1 -0
- package/three-zone-heart-rate-limits.mjs +34 -0
- package/three-zone-heart-rate-limits.mjs.map +6 -0
- package/time-accuracy.cjs +50 -0
- package/time-accuracy.cjs.map +6 -0
- package/time-accuracy.d.ts +23 -0
- package/time-accuracy.d.ts.map +1 -0
- package/time-accuracy.mjs +31 -0
- package/time-accuracy.mjs.map +6 -0
- package/time-source.cjs +50 -0
- package/time-source.cjs.map +6 -0
- package/time-source.d.ts +33 -0
- package/time-source.d.ts.map +1 -0
- package/time-source.mjs +31 -0
- package/time-source.mjs.map +6 -0
- package/time-update-control-point.cjs +50 -0
- package/time-update-control-point.cjs.map +6 -0
- package/time-update-control-point.d.ts +29 -0
- package/time-update-control-point.d.ts.map +1 -0
- package/time-update-control-point.mjs +31 -0
- package/time-update-control-point.mjs.map +6 -0
- package/time-update-state.cjs +53 -0
- package/time-update-state.cjs.map +6 -0
- package/time-update-state.d.ts +45 -0
- package/time-update-state.d.ts.map +1 -0
- package/time-update-state.mjs +34 -0
- package/time-update-state.mjs.map +6 -0
- package/time-with-dst.cjs +55 -0
- package/time-with-dst.cjs.map +6 -0
- package/time-with-dst.d.ts +21 -0
- package/time-with-dst.d.ts.map +1 -0
- package/time-with-dst.mjs +36 -0
- package/time-with-dst.mjs.map +6 -0
- package/time-zone.cjs +50 -0
- package/time-zone.cjs.map +6 -0
- package/time-zone.d.ts +23 -0
- package/time-zone.d.ts.map +1 -0
- package/time-zone.mjs +31 -0
- package/time-zone.mjs.map +6 -0
- package/treadmill-data.cjs +171 -0
- package/treadmill-data.cjs.map +6 -0
- package/treadmill-data.d.ts +167 -0
- package/treadmill-data.d.ts.map +1 -0
- package/treadmill-data.mjs +152 -0
- package/treadmill-data.mjs.map +6 -0
- package/two-zone-heart-rate-limit.cjs +50 -0
- package/two-zone-heart-rate-limit.cjs.map +6 -0
- package/two-zone-heart-rate-limit.d.ts +23 -0
- package/two-zone-heart-rate-limit.d.ts.map +1 -0
- package/two-zone-heart-rate-limit.mjs +31 -0
- package/two-zone-heart-rate-limit.mjs.map +6 -0
- package/vo2-max.cjs +50 -0
- package/vo2-max.cjs.map +6 -0
- package/vo2-max.d.ts +22 -0
- package/vo2-max.d.ts.map +1 -0
- package/vo2-max.mjs +31 -0
- package/vo2-max.mjs.map +6 -0
package/README.md
ADDED
|
@@ -0,0 +1,2624 @@
|
|
|
1
|
+
# @rickosborne/bluetools
|
|
2
|
+
|
|
3
|
+
TypeScript/ES/JS for working with Bluetooth devices via node.
|
|
4
|
+
|
|
5
|
+
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.
|
|
6
|
+
Instead, it contains a bunch of types, classes, and functions auto-generated from the Bluetooth Characteristic and Descriptor reference XML.
|
|
7
|
+
|
|
8
|
+
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.
|
|
9
|
+
|
|
10
|
+
> ⚠️⚠️⚠️ ***This library does not attempt to cover the various edge cases of the real world or the Web Bluetooth spec.*** ⚠️⚠️⚠️
|
|
11
|
+
|
|
12
|
+
Indeed, I probably got a bunch of stuff wrong, as the source XML files for the data specs have almost zero examples.
|
|
13
|
+
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.
|
|
14
|
+
Use at your own risk. YMMV. All that.
|
|
15
|
+
|
|
16
|
+
Some things I guarantee won't work until I get some examples for unit tests:
|
|
17
|
+
|
|
18
|
+
- Float values (both `FLOAT` and `SFLOAT`). How many bytes are these? Are they little endian, too, or some custom encoding?
|
|
19
|
+
- Nibble values. Their sub-byte-size makes them annoying to use with the `DataView` type which underpins the Web Bluetooth API.
|
|
20
|
+
- What the actual frak are `Uint24` and `Int24`? 24?!?! What's the byte order here? What's a sane and reasonable way to read one from a DataView? How do the signs work? And an `Int40?`? wat?
|
|
21
|
+
|
|
22
|
+
As most of the code in this library is auto-generated, it all follows the same pattern:
|
|
23
|
+
|
|
24
|
+
- An interface for the fields parsed from the Characteristic / Descriptor.
|
|
25
|
+
- A class which implements that interface, and also holds static constants like the UUID and Name.
|
|
26
|
+
- A parser function which can read a `DataView` and generate instances of the class.
|
|
27
|
+
|
|
28
|
+
I have not converted _all_ the Characteristics or Descriptors.
|
|
29
|
+
If you have access to one of the XML sources you'd like to see added, file a GitHub issue.
|
|
30
|
+
You can also try generating them on your own using the `scripts/from-xml.ts` and `scripts/gatt-assigned.ts` scripts.
|
|
31
|
+
The former does most of the code generation, while the latter just adds to the UUID records.
|
|
32
|
+
## Usage
|
|
33
|
+
|
|
34
|
+
Install via your favorite package manager.
|
|
35
|
+
|
|
36
|
+
Each package supports CommonJS `require`, ESM `import`, and TypeScript usage.
|
|
37
|
+
|
|
38
|
+
You also have a choice: barrel imports or direct imports.
|
|
39
|
+
|
|
40
|
+
Barrel imports mean you're going to require/import everything from the same package-level namespace:
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
// CommonJS
|
|
44
|
+
const { isPlainObject, isListOf } = require("@rickosborne/guard");
|
|
45
|
+
// ESM / TypeScript
|
|
46
|
+
import { isPlainObject, isListOf } from "@rickosborne/guard";
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Implications:
|
|
50
|
+
|
|
51
|
+
- Nice and simple.
|
|
52
|
+
- 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.
|
|
53
|
+
|
|
54
|
+
The other option is to use direct imports:
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
// CommonJS
|
|
58
|
+
const { isPlainObject } = require("@rickosborne/guard/is-object");
|
|
59
|
+
const { isListOf } = require("@rickosborne/guard/is-list-of");
|
|
60
|
+
// ESM / TypeScript
|
|
61
|
+
import { isPlainObject } from "@rickosborne/guard/is-object.js";
|
|
62
|
+
import { isListOf } from "@rickosborne/guard/is-list-of.js";
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Implications:
|
|
66
|
+
|
|
67
|
+
- You (probably) don't have to worry about tree-shaking as your build (likely) ends up with only the functions you need.
|
|
68
|
+
|
|
69
|
+
If you're using a modern build system, there aren't any strong reasons to prefer one way over the other.
|
|
70
|
+
It's really just down to your personal preference.
|
|
71
|
+
|
|
72
|
+
### A quick note about file extensions
|
|
73
|
+
|
|
74
|
+
Do you need to use file extensions?
|
|
75
|
+
And if so, which extensions?
|
|
76
|
+
|
|
77
|
+
Honestly ... this is a dumpster fire question.
|
|
78
|
+
It really comes down to your own setup and configuration.
|
|
79
|
+
|
|
80
|
+
Within each package itself:
|
|
81
|
+
|
|
82
|
+
- The CommonJS files all have `.cjs` extensions.
|
|
83
|
+
- The ESM files all have `.mjs` extensions.
|
|
84
|
+
- 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.
|
|
85
|
+
|
|
86
|
+
So, in theory, the only extension which _won't_ work would be `.ts` because the source isn't included.
|
|
87
|
+
|
|
88
|
+
If you run into a problem with a particular configuration, file a GitHub issue with:
|
|
89
|
+
|
|
90
|
+
- Your `tsconfig.json`'s `module`, `moduleResolution`, and `target` settings.
|
|
91
|
+
- Your `package.json`'s `type` and `imports` settings.
|
|
92
|
+
- An example of another package which imports correctly for you.
|
|
93
|
+
|
|
94
|
+
## License
|
|
95
|
+
|
|
96
|
+
This package is licensed as [CC-BY-NC-SA-4.0] unless otherwise noted.
|
|
97
|
+
That is, Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International.
|
|
98
|
+
|
|
99
|
+
[CC-BY-NC-SA-4.0]: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
***
|
|
103
|
+
|
|
104
|
+
## API
|
|
105
|
+
|
|
106
|
+
### Classes
|
|
107
|
+
|
|
108
|
+
#### BatteryLevelImpl
|
|
109
|
+
|
|
110
|
+
<a id="api-batterylevelimpl"></a>
|
|
111
|
+
|
|
112
|
+
```typescript
|
|
113
|
+
class BatteryLevelImpl implements BatteryLevel
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
#### CrossTrainerDataImpl
|
|
117
|
+
|
|
118
|
+
<a id="api-crosstrainerdataimpl"></a>
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
class CrossTrainerDataImpl implements CrossTrainerData
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
#### CscFeatureImpl
|
|
125
|
+
|
|
126
|
+
<a id="api-cscfeatureimpl"></a>
|
|
127
|
+
|
|
128
|
+
```typescript
|
|
129
|
+
class CscFeatureImpl implements CscFeature
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
#### CscMeasurementImpl
|
|
133
|
+
|
|
134
|
+
<a id="api-cscmeasurementimpl"></a>
|
|
135
|
+
|
|
136
|
+
```typescript
|
|
137
|
+
class CscMeasurementImpl implements CscMeasurement
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
#### CurrentTimeImpl
|
|
141
|
+
|
|
142
|
+
<a id="api-currenttimeimpl"></a>
|
|
143
|
+
|
|
144
|
+
```typescript
|
|
145
|
+
class CurrentTimeImpl implements CurrentTime
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
#### DateTimeImpl
|
|
149
|
+
|
|
150
|
+
<a id="api-datetimeimpl"></a>
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
class DateTimeImpl implements DateTime
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
#### DayDateTimeImpl
|
|
157
|
+
|
|
158
|
+
<a id="api-daydatetimeimpl"></a>
|
|
159
|
+
|
|
160
|
+
```typescript
|
|
161
|
+
class DayDateTimeImpl implements DayDateTime
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
#### DayOfWeekImpl
|
|
165
|
+
|
|
166
|
+
<a id="api-dayofweekimpl"></a>
|
|
167
|
+
|
|
168
|
+
```typescript
|
|
169
|
+
class DayOfWeekImpl implements DayOfWeek
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
#### DstOffsetImpl
|
|
173
|
+
|
|
174
|
+
<a id="api-dstoffsetimpl"></a>
|
|
175
|
+
|
|
176
|
+
```typescript
|
|
177
|
+
class DstOffsetImpl implements DstOffset
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
#### ElevationImpl
|
|
181
|
+
|
|
182
|
+
<a id="api-elevationimpl"></a>
|
|
183
|
+
|
|
184
|
+
```typescript
|
|
185
|
+
class ElevationImpl implements Elevation
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
#### ExactTime256Impl
|
|
189
|
+
|
|
190
|
+
<a id="api-exacttime256impl"></a>
|
|
191
|
+
|
|
192
|
+
```typescript
|
|
193
|
+
class ExactTime256Impl implements ExactTime256
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
#### FirmwareRevisionStringImpl
|
|
197
|
+
|
|
198
|
+
<a id="api-firmwarerevisionstringimpl"></a>
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
class FirmwareRevisionStringImpl implements FirmwareRevisionString
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
#### FiveZoneHeartRateLimitsImpl
|
|
205
|
+
|
|
206
|
+
<a id="api-fivezoneheartratelimitsimpl"></a>
|
|
207
|
+
|
|
208
|
+
```typescript
|
|
209
|
+
class FiveZoneHeartRateLimitsImpl implements FiveZoneHeartRateLimits
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
The fields in the above table are in the order of LSO to MSO. Where LSO = Least Significant Octet and MSO = Most Significant Octet.
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
#### GattCharacteristicPresentationFormatImpl
|
|
217
|
+
|
|
218
|
+
<a id="api-gattcharacteristicpresentationformatimpl"></a>
|
|
219
|
+
|
|
220
|
+
```typescript
|
|
221
|
+
class GattCharacteristicPresentationFormatImpl implements GattCharacteristicPresentationFormat
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
#### GlucoseFeatureImpl
|
|
225
|
+
|
|
226
|
+
<a id="api-glucosefeatureimpl"></a>
|
|
227
|
+
|
|
228
|
+
```typescript
|
|
229
|
+
class GlucoseFeatureImpl implements GlucoseFeature
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
#### GlucoseMeasurementContextImpl
|
|
233
|
+
|
|
234
|
+
<a id="api-glucosemeasurementcontextimpl"></a>
|
|
235
|
+
|
|
236
|
+
```typescript
|
|
237
|
+
class GlucoseMeasurementContextImpl implements GlucoseMeasurementContext
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
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.
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
#### GlucoseMeasurementImpl
|
|
245
|
+
|
|
246
|
+
<a id="api-glucosemeasurementimpl"></a>
|
|
247
|
+
|
|
248
|
+
```typescript
|
|
249
|
+
class GlucoseMeasurementImpl implements GlucoseMeasurement
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
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.
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
#### HardwareRevisionStringImpl
|
|
257
|
+
|
|
258
|
+
<a id="api-hardwarerevisionstringimpl"></a>
|
|
259
|
+
|
|
260
|
+
```typescript
|
|
261
|
+
class HardwareRevisionStringImpl implements HardwareRevisionString
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
#### HeartRateControlPointImpl
|
|
265
|
+
|
|
266
|
+
<a id="api-heartratecontrolpointimpl"></a>
|
|
267
|
+
|
|
268
|
+
```typescript
|
|
269
|
+
class HeartRateControlPointImpl implements HeartRateControlPoint
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
#### HeartRateMaxImpl
|
|
273
|
+
|
|
274
|
+
<a id="api-heartratemaximpl"></a>
|
|
275
|
+
|
|
276
|
+
```typescript
|
|
277
|
+
class HeartRateMaxImpl implements HeartRateMax
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
#### HeartRateMeasurementImpl
|
|
281
|
+
|
|
282
|
+
<a id="api-heartratemeasurementimpl"></a>
|
|
283
|
+
|
|
284
|
+
```typescript
|
|
285
|
+
class HeartRateMeasurementImpl implements HeartRateMeasurement
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
The fields in the above table are in the order of LSO to MSO. Where LSO = Least Significant Octet and MSO = Most Significant Octet.
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
#### IndoorBikeDataImpl
|
|
293
|
+
|
|
294
|
+
<a id="api-indoorbikedataimpl"></a>
|
|
295
|
+
|
|
296
|
+
```typescript
|
|
297
|
+
class IndoorBikeDataImpl implements IndoorBikeData
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
#### LanguageImpl
|
|
301
|
+
|
|
302
|
+
<a id="api-languageimpl"></a>
|
|
303
|
+
|
|
304
|
+
```typescript
|
|
305
|
+
class LanguageImpl implements Language
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
#### LatitudeImpl
|
|
309
|
+
|
|
310
|
+
<a id="api-latitudeimpl"></a>
|
|
311
|
+
|
|
312
|
+
```typescript
|
|
313
|
+
class LatitudeImpl implements Latitude
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
#### LocalTimeInformationImpl
|
|
317
|
+
|
|
318
|
+
<a id="api-localtimeinformationimpl"></a>
|
|
319
|
+
|
|
320
|
+
```typescript
|
|
321
|
+
class LocalTimeInformationImpl implements LocalTimeInformation
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
#### LocationAndSpeedImpl
|
|
325
|
+
|
|
326
|
+
<a id="api-locationandspeedimpl"></a>
|
|
327
|
+
|
|
328
|
+
```typescript
|
|
329
|
+
class LocationAndSpeedImpl implements LocationAndSpeed
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
#### LocationNameImpl
|
|
333
|
+
|
|
334
|
+
<a id="api-locationnameimpl"></a>
|
|
335
|
+
|
|
336
|
+
```typescript
|
|
337
|
+
class LocationNameImpl implements LocationName
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
#### LongitudeImpl
|
|
341
|
+
|
|
342
|
+
<a id="api-longitudeimpl"></a>
|
|
343
|
+
|
|
344
|
+
```typescript
|
|
345
|
+
class LongitudeImpl implements Longitude
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
#### ManufacturerNameStringImpl
|
|
349
|
+
|
|
350
|
+
<a id="api-manufacturernamestringimpl"></a>
|
|
351
|
+
|
|
352
|
+
```typescript
|
|
353
|
+
class ManufacturerNameStringImpl implements ManufacturerNameString
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
#### MaximumRecommendedHeartRateImpl
|
|
357
|
+
|
|
358
|
+
<a id="api-maximumrecommendedheartrateimpl"></a>
|
|
359
|
+
|
|
360
|
+
```typescript
|
|
361
|
+
class MaximumRecommendedHeartRateImpl implements MaximumRecommendedHeartRate
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
#### MeasurementIntervalImpl
|
|
365
|
+
|
|
366
|
+
<a id="api-measurementintervalimpl"></a>
|
|
367
|
+
|
|
368
|
+
```typescript
|
|
369
|
+
class MeasurementIntervalImpl implements MeasurementInterval
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
#### ModelNumberStringImpl
|
|
373
|
+
|
|
374
|
+
<a id="api-modelnumberstringimpl"></a>
|
|
375
|
+
|
|
376
|
+
```typescript
|
|
377
|
+
class ModelNumberStringImpl implements ModelNumberString
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
#### NavigationImpl
|
|
381
|
+
|
|
382
|
+
<a id="api-navigationimpl"></a>
|
|
383
|
+
|
|
384
|
+
```typescript
|
|
385
|
+
class NavigationImpl implements Navigation
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
#### NumberOfDigitalsImpl
|
|
389
|
+
|
|
390
|
+
<a id="api-numberofdigitalsimpl"></a>
|
|
391
|
+
|
|
392
|
+
```typescript
|
|
393
|
+
class NumberOfDigitalsImpl implements NumberOfDigitals
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
#### PlxContinuousMeasurementImpl
|
|
397
|
+
|
|
398
|
+
<a id="api-plxcontinuousmeasurementimpl"></a>
|
|
399
|
+
|
|
400
|
+
```typescript
|
|
401
|
+
class PlxContinuousMeasurementImpl implements PlxContinuousMeasurement
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
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.
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
#### PlxFeaturesImpl
|
|
409
|
+
|
|
410
|
+
<a id="api-plxfeaturesimpl"></a>
|
|
411
|
+
|
|
412
|
+
```typescript
|
|
413
|
+
class PlxFeaturesImpl implements PlxFeatures
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
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.
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
#### PlxSpotCheckMeasurementImpl
|
|
421
|
+
|
|
422
|
+
<a id="api-plxspotcheckmeasurementimpl"></a>
|
|
423
|
+
|
|
424
|
+
```typescript
|
|
425
|
+
class PlxSpotCheckMeasurementImpl implements PlxSpotCheckMeasurement
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
#### ReferenceTimeInformationImpl
|
|
429
|
+
|
|
430
|
+
<a id="api-referencetimeinformationimpl"></a>
|
|
431
|
+
|
|
432
|
+
```typescript
|
|
433
|
+
class ReferenceTimeInformationImpl implements ReferenceTimeInformation
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
#### RestingHeartRateImpl
|
|
437
|
+
|
|
438
|
+
<a id="api-restingheartrateimpl"></a>
|
|
439
|
+
|
|
440
|
+
```typescript
|
|
441
|
+
class RestingHeartRateImpl implements RestingHeartRate
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
#### RscFeatureImpl
|
|
445
|
+
|
|
446
|
+
<a id="api-rscfeatureimpl"></a>
|
|
447
|
+
|
|
448
|
+
```typescript
|
|
449
|
+
class RscFeatureImpl implements RscFeature
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
#### RscMeasurementImpl
|
|
453
|
+
|
|
454
|
+
<a id="api-rscmeasurementimpl"></a>
|
|
455
|
+
|
|
456
|
+
```typescript
|
|
457
|
+
class RscMeasurementImpl implements RscMeasurement
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
#### SensorLocationImpl
|
|
461
|
+
|
|
462
|
+
<a id="api-sensorlocationimpl"></a>
|
|
463
|
+
|
|
464
|
+
```typescript
|
|
465
|
+
class SensorLocationImpl implements SensorLocation
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
#### SerialNumberStringImpl
|
|
469
|
+
|
|
470
|
+
<a id="api-serialnumberstringimpl"></a>
|
|
471
|
+
|
|
472
|
+
```typescript
|
|
473
|
+
class SerialNumberStringImpl implements SerialNumberString
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
#### SoftwareRevisionStringImpl
|
|
477
|
+
|
|
478
|
+
<a id="api-softwarerevisionstringimpl"></a>
|
|
479
|
+
|
|
480
|
+
```typescript
|
|
481
|
+
class SoftwareRevisionStringImpl implements SoftwareRevisionString
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
#### SupportedHeartRateRangeImpl
|
|
485
|
+
|
|
486
|
+
<a id="api-supportedheartraterangeimpl"></a>
|
|
487
|
+
|
|
488
|
+
```typescript
|
|
489
|
+
class SupportedHeartRateRangeImpl implements SupportedHeartRateRange
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
#### SupportedInclinationRangeImpl
|
|
493
|
+
|
|
494
|
+
<a id="api-supportedinclinationrangeimpl"></a>
|
|
495
|
+
|
|
496
|
+
```typescript
|
|
497
|
+
class SupportedInclinationRangeImpl implements SupportedInclinationRange
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
#### SupportedSpeedRangeImpl
|
|
501
|
+
|
|
502
|
+
<a id="api-supportedspeedrangeimpl"></a>
|
|
503
|
+
|
|
504
|
+
```typescript
|
|
505
|
+
class SupportedSpeedRangeImpl implements SupportedSpeedRange
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
#### SystemIdImpl
|
|
509
|
+
|
|
510
|
+
<a id="api-systemidimpl"></a>
|
|
511
|
+
|
|
512
|
+
```typescript
|
|
513
|
+
class SystemIdImpl implements SystemId
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
#### TemperatureImpl
|
|
517
|
+
|
|
518
|
+
<a id="api-temperatureimpl"></a>
|
|
519
|
+
|
|
520
|
+
```typescript
|
|
521
|
+
class TemperatureImpl implements Temperature
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
#### TemperatureMeasurementImpl
|
|
525
|
+
|
|
526
|
+
<a id="api-temperaturemeasurementimpl"></a>
|
|
527
|
+
|
|
528
|
+
```typescript
|
|
529
|
+
class TemperatureMeasurementImpl implements TemperatureMeasurement
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
#### TemperatureTypeImpl
|
|
533
|
+
|
|
534
|
+
<a id="api-temperaturetypeimpl"></a>
|
|
535
|
+
|
|
536
|
+
```typescript
|
|
537
|
+
class TemperatureTypeImpl implements TemperatureType
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
#### ThreeZoneHeartRateLimitsImpl
|
|
541
|
+
|
|
542
|
+
<a id="api-threezoneheartratelimitsimpl"></a>
|
|
543
|
+
|
|
544
|
+
```typescript
|
|
545
|
+
class ThreeZoneHeartRateLimitsImpl implements ThreeZoneHeartRateLimits
|
|
546
|
+
```
|
|
547
|
+
|
|
548
|
+
The fields in the above table are in the order of LSO to MSO. Where LSO = Least Significant Octet and MSO = Most Significant Octet.
|
|
549
|
+
|
|
550
|
+
|
|
551
|
+
|
|
552
|
+
#### TimeAccuracyImpl
|
|
553
|
+
|
|
554
|
+
<a id="api-timeaccuracyimpl"></a>
|
|
555
|
+
|
|
556
|
+
```typescript
|
|
557
|
+
class TimeAccuracyImpl implements TimeAccuracy
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
#### TimeSourceImpl
|
|
561
|
+
|
|
562
|
+
<a id="api-timesourceimpl"></a>
|
|
563
|
+
|
|
564
|
+
```typescript
|
|
565
|
+
class TimeSourceImpl implements TimeSource
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
#### TimeUpdateControlPointImpl
|
|
569
|
+
|
|
570
|
+
<a id="api-timeupdatecontrolpointimpl"></a>
|
|
571
|
+
|
|
572
|
+
```typescript
|
|
573
|
+
class TimeUpdateControlPointImpl implements TimeUpdateControlPoint
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
#### TimeUpdateStateImpl
|
|
577
|
+
|
|
578
|
+
<a id="api-timeupdatestateimpl"></a>
|
|
579
|
+
|
|
580
|
+
```typescript
|
|
581
|
+
class TimeUpdateStateImpl implements TimeUpdateState
|
|
582
|
+
```
|
|
583
|
+
|
|
584
|
+
#### TimeWithDstImpl
|
|
585
|
+
|
|
586
|
+
<a id="api-timewithdstimpl"></a>
|
|
587
|
+
|
|
588
|
+
```typescript
|
|
589
|
+
class TimeWithDstImpl implements TimeWithDst
|
|
590
|
+
```
|
|
591
|
+
|
|
592
|
+
#### TimeZoneImpl
|
|
593
|
+
|
|
594
|
+
<a id="api-timezoneimpl"></a>
|
|
595
|
+
|
|
596
|
+
```typescript
|
|
597
|
+
class TimeZoneImpl implements TimeZone
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
#### TreadmillDataImpl
|
|
601
|
+
|
|
602
|
+
<a id="api-treadmilldataimpl"></a>
|
|
603
|
+
|
|
604
|
+
```typescript
|
|
605
|
+
class TreadmillDataImpl implements TreadmillData
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
#### TwoZoneHeartRateLimitImpl
|
|
609
|
+
|
|
610
|
+
<a id="api-twozoneheartratelimitimpl"></a>
|
|
611
|
+
|
|
612
|
+
```typescript
|
|
613
|
+
class TwoZoneHeartRateLimitImpl implements TwoZoneHeartRateLimit
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
#### Vo2MaxImpl
|
|
617
|
+
|
|
618
|
+
<a id="api-vo2maximpl"></a>
|
|
619
|
+
|
|
620
|
+
```typescript
|
|
621
|
+
class Vo2MaxImpl implements Vo2Max
|
|
622
|
+
```
|
|
623
|
+
|
|
624
|
+
### Functions
|
|
625
|
+
|
|
626
|
+
#### batteryLevelFromDataView
|
|
627
|
+
|
|
628
|
+
<a id="api-batterylevelfromdataview"></a>
|
|
629
|
+
|
|
630
|
+
```typescript
|
|
631
|
+
function batteryLevelFromDataView(dataView: DataView | DataViewReader, indexStart?: number): BatteryLevel;
|
|
632
|
+
```
|
|
633
|
+
|
|
634
|
+
Parse from a DataView into [BatteryLevel](#api-batterylevel).
|
|
635
|
+
|
|
636
|
+
|
|
637
|
+
#### crossTrainerDataFromDataView
|
|
638
|
+
|
|
639
|
+
<a id="api-crosstrainerdatafromdataview"></a>
|
|
640
|
+
|
|
641
|
+
```typescript
|
|
642
|
+
function crossTrainerDataFromDataView(dataView: DataView | DataViewReader, indexStart?: number): CrossTrainerData;
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
Parse from a DataView into [CrossTrainerData](#api-crosstrainerdata).
|
|
646
|
+
|
|
647
|
+
|
|
648
|
+
#### cscFeatureFromDataView
|
|
649
|
+
|
|
650
|
+
<a id="api-cscfeaturefromdataview"></a>
|
|
651
|
+
|
|
652
|
+
```typescript
|
|
653
|
+
function cscFeatureFromDataView(dataView: DataView | DataViewReader, indexStart?: number): CscFeature;
|
|
654
|
+
```
|
|
655
|
+
|
|
656
|
+
Parse from a DataView into [CscFeature](#api-cscfeature).
|
|
657
|
+
|
|
658
|
+
|
|
659
|
+
#### cscMeasurementFromDataView
|
|
660
|
+
|
|
661
|
+
<a id="api-cscmeasurementfromdataview"></a>
|
|
662
|
+
|
|
663
|
+
```typescript
|
|
664
|
+
function cscMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): CscMeasurement;
|
|
665
|
+
```
|
|
666
|
+
|
|
667
|
+
Parse from a DataView into [CscMeasurement](#api-cscmeasurement).
|
|
668
|
+
|
|
669
|
+
|
|
670
|
+
#### currentTimeFromDataView
|
|
671
|
+
|
|
672
|
+
<a id="api-currenttimefromdataview"></a>
|
|
673
|
+
|
|
674
|
+
```typescript
|
|
675
|
+
function currentTimeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): CurrentTime;
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
Parse from a DataView into [CurrentTime](#api-currenttime).
|
|
679
|
+
|
|
680
|
+
|
|
681
|
+
#### dataViewFromHex
|
|
682
|
+
|
|
683
|
+
<a id="api-dataviewfromhex"></a>
|
|
684
|
+
|
|
685
|
+
```typescript
|
|
686
|
+
dataViewFromHex: (hex: string) => DataView
|
|
687
|
+
```
|
|
688
|
+
|
|
689
|
+
Build a DataView from a hex-encoded string. This is a polyfill for `Uint8Array.fromHex()`.
|
|
690
|
+
|
|
691
|
+
|
|
692
|
+
#### dataViewReader
|
|
693
|
+
|
|
694
|
+
<a id="api-dataviewreader"></a>
|
|
695
|
+
|
|
696
|
+
```typescript
|
|
697
|
+
dataViewReader: (dataView: DataView | DataViewReader, indexStart?: number) => DataViewReader
|
|
698
|
+
```
|
|
699
|
+
|
|
700
|
+
#### dateTimeFromDataView
|
|
701
|
+
|
|
702
|
+
<a id="api-datetimefromdataview"></a>
|
|
703
|
+
|
|
704
|
+
```typescript
|
|
705
|
+
function dateTimeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): DateTime;
|
|
706
|
+
```
|
|
707
|
+
|
|
708
|
+
Parse from a DataView into [DateTime](#api-datetime).
|
|
709
|
+
|
|
710
|
+
|
|
711
|
+
#### dayDateTimeFromDataView
|
|
712
|
+
|
|
713
|
+
<a id="api-daydatetimefromdataview"></a>
|
|
714
|
+
|
|
715
|
+
```typescript
|
|
716
|
+
function dayDateTimeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): DayDateTime;
|
|
717
|
+
```
|
|
718
|
+
|
|
719
|
+
Parse from a DataView into [DayDateTime](#api-daydatetime).
|
|
720
|
+
|
|
721
|
+
|
|
722
|
+
#### dayOfWeekFromDataView
|
|
723
|
+
|
|
724
|
+
<a id="api-dayofweekfromdataview"></a>
|
|
725
|
+
|
|
726
|
+
```typescript
|
|
727
|
+
function dayOfWeekFromDataView(dataView: DataView | DataViewReader, indexStart?: number): DayOfWeek;
|
|
728
|
+
```
|
|
729
|
+
|
|
730
|
+
Parse from a DataView into [DayOfWeek](#api-dayofweek).
|
|
731
|
+
|
|
732
|
+
|
|
733
|
+
#### dstOffsetFromDataView
|
|
734
|
+
|
|
735
|
+
<a id="api-dstoffsetfromdataview"></a>
|
|
736
|
+
|
|
737
|
+
```typescript
|
|
738
|
+
function dstOffsetFromDataView(dataView: DataView | DataViewReader, indexStart?: number): DstOffset;
|
|
739
|
+
```
|
|
740
|
+
|
|
741
|
+
Parse from a DataView into [DstOffset](#api-dstoffset).
|
|
742
|
+
|
|
743
|
+
|
|
744
|
+
#### elevationFromDataView
|
|
745
|
+
|
|
746
|
+
<a id="api-elevationfromdataview"></a>
|
|
747
|
+
|
|
748
|
+
```typescript
|
|
749
|
+
function elevationFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Elevation;
|
|
750
|
+
```
|
|
751
|
+
|
|
752
|
+
Parse from a DataView into [Elevation](#api-elevation).
|
|
753
|
+
|
|
754
|
+
|
|
755
|
+
#### exactTime256FromDataView
|
|
756
|
+
|
|
757
|
+
<a id="api-exacttime256fromdataview"></a>
|
|
758
|
+
|
|
759
|
+
```typescript
|
|
760
|
+
function exactTime256FromDataView(dataView: DataView | DataViewReader, indexStart?: number): ExactTime256;
|
|
761
|
+
```
|
|
762
|
+
|
|
763
|
+
Parse from a DataView into [ExactTime256](#api-exacttime256).
|
|
764
|
+
|
|
765
|
+
|
|
766
|
+
#### firmwareRevisionStringFromDataView
|
|
767
|
+
|
|
768
|
+
<a id="api-firmwarerevisionstringfromdataview"></a>
|
|
769
|
+
|
|
770
|
+
```typescript
|
|
771
|
+
function firmwareRevisionStringFromDataView(dataView: DataView | DataViewReader, indexStart?: number): FirmwareRevisionString;
|
|
772
|
+
```
|
|
773
|
+
|
|
774
|
+
Parse from a DataView into [FirmwareRevisionString](#api-firmwarerevisionstring).
|
|
775
|
+
|
|
776
|
+
|
|
777
|
+
#### fiveZoneHeartRateLimitsFromDataView
|
|
778
|
+
|
|
779
|
+
<a id="api-fivezoneheartratelimitsfromdataview"></a>
|
|
780
|
+
|
|
781
|
+
```typescript
|
|
782
|
+
function fiveZoneHeartRateLimitsFromDataView(dataView: DataView | DataViewReader, indexStart?: number): FiveZoneHeartRateLimits;
|
|
783
|
+
```
|
|
784
|
+
|
|
785
|
+
Parse from a DataView into [FiveZoneHeartRateLimits](#api-fivezoneheartratelimits).
|
|
786
|
+
|
|
787
|
+
|
|
788
|
+
#### gattCharacteristicName
|
|
789
|
+
|
|
790
|
+
<a id="api-gattcharacteristicname"></a>
|
|
791
|
+
|
|
792
|
+
```typescript
|
|
793
|
+
gattCharacteristicName: (idOrName: string | number | null | undefined) => "string" | "current_time" | "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" | "anaerobic_heart_rate_lower_limit" | "anaerobic_heart_rate_upper_limit" | "anaerobic_threshold" | "analog" | "analog_output" | "apparent_wind_direction" | "apparent_wind_speed" | "barometric_pressure_trend" | "battery_level" | "battery_level_state" | "battery_power_state" | "blood_pressure_feature" | "blood_pressure_measurement" | "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" | "cgm_feature" | "cgm_measurement" | "cgm_session_run_time" | "cgm_session_start_time" | "cgm_specific_ops_control_point" | "cgm_status" | "cross_trainer_data" | "csc_feature" | "csc_measurement" | "cycling_power_control_point" | "cycling_power_feature" | "cycling_power_measurement" | "cycling_power_vector" | "database_change_increment" | "date_of_birth" | "date_of_threshold_assessment" | "date_time" | "date_utc" | "day_date_time" | "day_of_week" | "descriptor_value_changed" | "dew_point" | "digital" | "digital_output" | "dst_offset" | "elevation" | "email_address" | "exact_time_100" | "exact_time_256" | "fat_burn_heart_rate_lower_limit" | "fat_burn_heart_rate_upper_limit" | "firmware_revision_string" | "first_name" | "fitness_machine_control_point" | "fitness_machine_feature" | "fitness_machine_status" | "five_zone_heart_rate_limits" | "floor_number" | "gap.appearance" | "gap.central_address_resolution_support" | "gap.device_name" | "gap.peripheral_preferred_connection_parameters" | "gap.peripheral_privacy_flag" | "gap.reconnection_address" | "gatt.service_changed" | "gender" | "glucose_feature" | "glucose_measurement" | "glucose_measurement_context" | "gust_factor" | "hardware_revision_string" | "heart_rate_control_point" | "heart_rate_max" | "heart_rate_measurement" | "heat_index" | "height" | "hid_control_point" | "hid_information" | "hip_circumference" | "http_control_point" | "http_entity_body" | "http_headers" | "http_status_code" | "https_security" | "humidity" | "ieee_11073-20601_regulatory_certification_data_list" | "indoor_bike_data" | "indoor_positioning_configuration" | "intermediate_cuff_pressure" | "intermediate_temperature" | "irradiance" | "language" | "last_name" | "latitude" | "ln_control_point" | "ln_feature" | "local_east_coordinate.xml" | "local_north_coordinate" | "local_time_information" | "location_and_speed" | "location_name" | "longitude" | "magnetic_declination" | "magnetic_flux_density_2D" | "magnetic_flux_density_3D" | "manufacturer_name_string" | "maximum_recommended_heart_rate" | "measurement_interval" | "model_number_string" | "navigation" | "network_availability" | "new_alert" | "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" | "ots_feature" | "plx_continuous_measurement" | "plx_features" | "plx_spot_check_measurement" | "pnp_id" | "pollen_concentration" | "position_2d" | "position_3d" | "position_quality" | "pressure" | "protocol_mode" | "pulse_oximetry_control_point" | "rainfall" | "record_access_control_point" | "reference_time_information" | "removable" | "report" | "report_map" | "resolvable_private_address_only" | "resting_heart_rate" | "ringer_control_point" | "ringer_setting" | "rower_data" | "rsc_feature" | "rsc_measurement" | "sc_control_point" | "scan_interval_window" | "scan_refresh" | "scientific_temperature_celsius" | "secondary_time_zone" | "sensor_location" | "serial_number_string" | "service_required" | "software_revision_string" | "sport_type_for_aerobic_and_anaerobic_thresholds" | "stair_climber_data" | "step_climber_data" | "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_celsius" | "temperature_fahrenheit" | "temperature_measurement" | "temperature_type" | "three_zone_heart_rate_limits" | "time_accuracy" | "time_broadcast" | "time_source" | "time_update_control_point" | "time_update_state" | "time_with_dst" | "time_zone" | "training_status" | "treadmill_data" | "true_wind_direction" | "true_wind_speed" | "two_zone_heart_rate_limit" | "tx_power_level" | "uncertainty" | "unread_alert_status" | "uri" | "user_control_point" | "user_index" | "uv_index" | "vo2_max" | "waist_circumference" | "weight" | "weight_measurement" | "weight_scale_feature" | "wind_chill" | undefined
|
|
794
|
+
```
|
|
795
|
+
|
|
796
|
+
#### gattCharacteristicPresentationFormatFromDataView
|
|
797
|
+
|
|
798
|
+
<a id="api-gattcharacteristicpresentationformatfromdataview"></a>
|
|
799
|
+
|
|
800
|
+
```typescript
|
|
801
|
+
function gattCharacteristicPresentationFormatFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GattCharacteristicPresentationFormat;
|
|
802
|
+
```
|
|
803
|
+
|
|
804
|
+
Parse from a DataView into [GattCharacteristicPresentationFormat](#api-gattcharacteristicpresentationformat).
|
|
805
|
+
|
|
806
|
+
|
|
807
|
+
#### gattDescriptorName
|
|
808
|
+
|
|
809
|
+
<a id="api-gattdescriptorname"></a>
|
|
810
|
+
|
|
811
|
+
```typescript
|
|
812
|
+
gattDescriptorName: (idOrName: string | number | null | undefined) => "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" | "number_of_digitals" | "report_reference" | "time_trigger_setting" | "valid_range" | "value_trigger_setting" | undefined
|
|
813
|
+
```
|
|
814
|
+
|
|
815
|
+
#### gattServiceName
|
|
816
|
+
|
|
817
|
+
<a id="api-gattservicename"></a>
|
|
818
|
+
|
|
819
|
+
```typescript
|
|
820
|
+
gattServiceName: (idOrName: string | number | null | undefined) => "alert_notification" | "automation_io" | "battery_service" | "blood_pressure" | "body_composition" | "bond_management" | "continuous_glucose_monitoring" | "current_time" | "cycling_power" | "cycling_speed_and_cadence" | "device_information" | "environmental_sensing" | "fitness_machine" | "generic_access" | "generic_attribute" | "glucose" | "health_thermometer" | "heart_rate" | "http_proxy" | "human_interface_device" | "immediate_alert" | "indoor_positioning" | "internet_protocol_support" | "link_loss" | "location_and_navigation" | "mesh_provisioning" | "mesh_proxy" | "next_dst_change" | "object_transfer" | "phone_alert_status" | "pulse_oximeter" | "reconnection_configuration" | "reference_time_update" | "running_speed_and_cadence" | "scan_parameters" | "transport_discovery" | "tx_power" | "user_data" | "weight_scale" | undefined
|
|
821
|
+
```
|
|
822
|
+
|
|
823
|
+
#### glucoseFeatureFromDataView
|
|
824
|
+
|
|
825
|
+
<a id="api-glucosefeaturefromdataview"></a>
|
|
826
|
+
|
|
827
|
+
```typescript
|
|
828
|
+
function glucoseFeatureFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GlucoseFeature;
|
|
829
|
+
```
|
|
830
|
+
|
|
831
|
+
Parse from a DataView into [GlucoseFeature](#api-glucosefeature).
|
|
832
|
+
|
|
833
|
+
|
|
834
|
+
#### glucoseMeasurementContextFromDataView
|
|
835
|
+
|
|
836
|
+
<a id="api-glucosemeasurementcontextfromdataview"></a>
|
|
837
|
+
|
|
838
|
+
```typescript
|
|
839
|
+
function glucoseMeasurementContextFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GlucoseMeasurementContext;
|
|
840
|
+
```
|
|
841
|
+
|
|
842
|
+
Parse from a DataView into [GlucoseMeasurementContext](#api-glucosemeasurementcontext).
|
|
843
|
+
|
|
844
|
+
|
|
845
|
+
#### glucoseMeasurementFromDataView
|
|
846
|
+
|
|
847
|
+
<a id="api-glucosemeasurementfromdataview"></a>
|
|
848
|
+
|
|
849
|
+
```typescript
|
|
850
|
+
function glucoseMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GlucoseMeasurement;
|
|
851
|
+
```
|
|
852
|
+
|
|
853
|
+
Parse from a DataView into [GlucoseMeasurement](#api-glucosemeasurement).
|
|
854
|
+
|
|
855
|
+
|
|
856
|
+
#### hardwareRevisionStringFromDataView
|
|
857
|
+
|
|
858
|
+
<a id="api-hardwarerevisionstringfromdataview"></a>
|
|
859
|
+
|
|
860
|
+
```typescript
|
|
861
|
+
function hardwareRevisionStringFromDataView(dataView: DataView | DataViewReader, indexStart?: number): HardwareRevisionString;
|
|
862
|
+
```
|
|
863
|
+
|
|
864
|
+
Parse from a DataView into [HardwareRevisionString](#api-hardwarerevisionstring).
|
|
865
|
+
|
|
866
|
+
|
|
867
|
+
#### heartRateControlPointFromDataView
|
|
868
|
+
|
|
869
|
+
<a id="api-heartratecontrolpointfromdataview"></a>
|
|
870
|
+
|
|
871
|
+
```typescript
|
|
872
|
+
function heartRateControlPointFromDataView(dataView: DataView | DataViewReader, indexStart?: number): HeartRateControlPoint;
|
|
873
|
+
```
|
|
874
|
+
|
|
875
|
+
Parse from a DataView into [HeartRateControlPoint](#api-heartratecontrolpoint).
|
|
876
|
+
|
|
877
|
+
|
|
878
|
+
#### heartRateMaxFromDataView
|
|
879
|
+
|
|
880
|
+
<a id="api-heartratemaxfromdataview"></a>
|
|
881
|
+
|
|
882
|
+
```typescript
|
|
883
|
+
function heartRateMaxFromDataView(dataView: DataView | DataViewReader, indexStart?: number): HeartRateMax;
|
|
884
|
+
```
|
|
885
|
+
|
|
886
|
+
Parse from a DataView into [HeartRateMax](#api-heartratemax).
|
|
887
|
+
|
|
888
|
+
|
|
889
|
+
#### heartRateMeasurementFromDataView
|
|
890
|
+
|
|
891
|
+
<a id="api-heartratemeasurementfromdataview"></a>
|
|
892
|
+
|
|
893
|
+
```typescript
|
|
894
|
+
function heartRateMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): HeartRateMeasurement;
|
|
895
|
+
```
|
|
896
|
+
|
|
897
|
+
Parse from a DataView into [HeartRateMeasurement](#api-heartratemeasurement).
|
|
898
|
+
|
|
899
|
+
|
|
900
|
+
#### indoorBikeDataFromDataView
|
|
901
|
+
|
|
902
|
+
<a id="api-indoorbikedatafromdataview"></a>
|
|
903
|
+
|
|
904
|
+
```typescript
|
|
905
|
+
function indoorBikeDataFromDataView(dataView: DataView | DataViewReader, indexStart?: number): IndoorBikeData;
|
|
906
|
+
```
|
|
907
|
+
|
|
908
|
+
Parse from a DataView into [IndoorBikeData](#api-indoorbikedata).
|
|
909
|
+
|
|
910
|
+
|
|
911
|
+
#### isDataViewReader
|
|
912
|
+
|
|
913
|
+
<a id="api-isdataviewreader"></a>
|
|
914
|
+
|
|
915
|
+
```typescript
|
|
916
|
+
isDataViewReader: (value: unknown) => value is DataViewReader
|
|
917
|
+
```
|
|
918
|
+
|
|
919
|
+
#### isGattCharacteristicName
|
|
920
|
+
|
|
921
|
+
<a id="api-isgattcharacteristicname"></a>
|
|
922
|
+
|
|
923
|
+
```typescript
|
|
924
|
+
isGattCharacteristicName: (value: unknown) => value is "string" | "current_time" | "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" | "anaerobic_heart_rate_lower_limit" | "anaerobic_heart_rate_upper_limit" | "anaerobic_threshold" | "analog" | "analog_output" | "apparent_wind_direction" | "apparent_wind_speed" | "barometric_pressure_trend" | "battery_level" | "battery_level_state" | "battery_power_state" | "blood_pressure_feature" | "blood_pressure_measurement" | "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" | "cgm_feature" | "cgm_measurement" | "cgm_session_run_time" | "cgm_session_start_time" | "cgm_specific_ops_control_point" | "cgm_status" | "cross_trainer_data" | "csc_feature" | "csc_measurement" | "cycling_power_control_point" | "cycling_power_feature" | "cycling_power_measurement" | "cycling_power_vector" | "database_change_increment" | "date_of_birth" | "date_of_threshold_assessment" | "date_time" | "date_utc" | "day_date_time" | "day_of_week" | "descriptor_value_changed" | "dew_point" | "digital" | "digital_output" | "dst_offset" | "elevation" | "email_address" | "exact_time_100" | "exact_time_256" | "fat_burn_heart_rate_lower_limit" | "fat_burn_heart_rate_upper_limit" | "firmware_revision_string" | "first_name" | "fitness_machine_control_point" | "fitness_machine_feature" | "fitness_machine_status" | "five_zone_heart_rate_limits" | "floor_number" | "gap.appearance" | "gap.central_address_resolution_support" | "gap.device_name" | "gap.peripheral_preferred_connection_parameters" | "gap.peripheral_privacy_flag" | "gap.reconnection_address" | "gatt.service_changed" | "gender" | "glucose_feature" | "glucose_measurement" | "glucose_measurement_context" | "gust_factor" | "hardware_revision_string" | "heart_rate_control_point" | "heart_rate_max" | "heart_rate_measurement" | "heat_index" | "height" | "hid_control_point" | "hid_information" | "hip_circumference" | "http_control_point" | "http_entity_body" | "http_headers" | "http_status_code" | "https_security" | "humidity" | "ieee_11073-20601_regulatory_certification_data_list" | "indoor_bike_data" | "indoor_positioning_configuration" | "intermediate_cuff_pressure" | "intermediate_temperature" | "irradiance" | "language" | "last_name" | "latitude" | "ln_control_point" | "ln_feature" | "local_east_coordinate.xml" | "local_north_coordinate" | "local_time_information" | "location_and_speed" | "location_name" | "longitude" | "magnetic_declination" | "magnetic_flux_density_2D" | "magnetic_flux_density_3D" | "manufacturer_name_string" | "maximum_recommended_heart_rate" | "measurement_interval" | "model_number_string" | "navigation" | "network_availability" | "new_alert" | "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" | "ots_feature" | "plx_continuous_measurement" | "plx_features" | "plx_spot_check_measurement" | "pnp_id" | "pollen_concentration" | "position_2d" | "position_3d" | "position_quality" | "pressure" | "protocol_mode" | "pulse_oximetry_control_point" | "rainfall" | "record_access_control_point" | "reference_time_information" | "removable" | "report" | "report_map" | "resolvable_private_address_only" | "resting_heart_rate" | "ringer_control_point" | "ringer_setting" | "rower_data" | "rsc_feature" | "rsc_measurement" | "sc_control_point" | "scan_interval_window" | "scan_refresh" | "scientific_temperature_celsius" | "secondary_time_zone" | "sensor_location" | "serial_number_string" | "service_required" | "software_revision_string" | "sport_type_for_aerobic_and_anaerobic_thresholds" | "stair_climber_data" | "step_climber_data" | "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_celsius" | "temperature_fahrenheit" | "temperature_measurement" | "temperature_type" | "three_zone_heart_rate_limits" | "time_accuracy" | "time_broadcast" | "time_source" | "time_update_control_point" | "time_update_state" | "time_with_dst" | "time_zone" | "training_status" | "treadmill_data" | "true_wind_direction" | "true_wind_speed" | "two_zone_heart_rate_limit" | "tx_power_level" | "uncertainty" | "unread_alert_status" | "uri" | "user_control_point" | "user_index" | "uv_index" | "vo2_max" | "waist_circumference" | "weight" | "weight_measurement" | "weight_scale_feature" | "wind_chill"
|
|
925
|
+
```
|
|
926
|
+
|
|
927
|
+
#### isGattDescriptorName
|
|
928
|
+
|
|
929
|
+
<a id="api-isgattdescriptorname"></a>
|
|
930
|
+
|
|
931
|
+
```typescript
|
|
932
|
+
isGattDescriptorName: (value: unknown) => value is "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" | "number_of_digitals" | "report_reference" | "time_trigger_setting" | "valid_range" | "value_trigger_setting"
|
|
933
|
+
```
|
|
934
|
+
|
|
935
|
+
#### isGattServiceName
|
|
936
|
+
|
|
937
|
+
<a id="api-isgattservicename"></a>
|
|
938
|
+
|
|
939
|
+
```typescript
|
|
940
|
+
isGattServiceName: (value: unknown) => value is "alert_notification" | "automation_io" | "battery_service" | "blood_pressure" | "body_composition" | "bond_management" | "continuous_glucose_monitoring" | "current_time" | "cycling_power" | "cycling_speed_and_cadence" | "device_information" | "environmental_sensing" | "fitness_machine" | "generic_access" | "generic_attribute" | "glucose" | "health_thermometer" | "heart_rate" | "http_proxy" | "human_interface_device" | "immediate_alert" | "indoor_positioning" | "internet_protocol_support" | "link_loss" | "location_and_navigation" | "mesh_provisioning" | "mesh_proxy" | "next_dst_change" | "object_transfer" | "phone_alert_status" | "pulse_oximeter" | "reconnection_configuration" | "reference_time_update" | "running_speed_and_cadence" | "scan_parameters" | "transport_discovery" | "tx_power" | "user_data" | "weight_scale"
|
|
941
|
+
```
|
|
942
|
+
|
|
943
|
+
#### languageFromDataView
|
|
944
|
+
|
|
945
|
+
<a id="api-languagefromdataview"></a>
|
|
946
|
+
|
|
947
|
+
```typescript
|
|
948
|
+
function languageFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Language;
|
|
949
|
+
```
|
|
950
|
+
|
|
951
|
+
Parse from a DataView into [Language](#api-language).
|
|
952
|
+
|
|
953
|
+
|
|
954
|
+
#### latitudeFromDataView
|
|
955
|
+
|
|
956
|
+
<a id="api-latitudefromdataview"></a>
|
|
957
|
+
|
|
958
|
+
```typescript
|
|
959
|
+
function latitudeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Latitude;
|
|
960
|
+
```
|
|
961
|
+
|
|
962
|
+
Parse from a DataView into [Latitude](#api-latitude).
|
|
963
|
+
|
|
964
|
+
|
|
965
|
+
#### localTimeInformationFromDataView
|
|
966
|
+
|
|
967
|
+
<a id="api-localtimeinformationfromdataview"></a>
|
|
968
|
+
|
|
969
|
+
```typescript
|
|
970
|
+
function localTimeInformationFromDataView(dataView: DataView | DataViewReader, indexStart?: number): LocalTimeInformation;
|
|
971
|
+
```
|
|
972
|
+
|
|
973
|
+
Parse from a DataView into [LocalTimeInformation](#api-localtimeinformation).
|
|
974
|
+
|
|
975
|
+
|
|
976
|
+
#### locationAndSpeedFromDataView
|
|
977
|
+
|
|
978
|
+
<a id="api-locationandspeedfromdataview"></a>
|
|
979
|
+
|
|
980
|
+
```typescript
|
|
981
|
+
function locationAndSpeedFromDataView(dataView: DataView | DataViewReader, indexStart?: number): LocationAndSpeed;
|
|
982
|
+
```
|
|
983
|
+
|
|
984
|
+
Parse from a DataView into [LocationAndSpeed](#api-locationandspeed).
|
|
985
|
+
|
|
986
|
+
|
|
987
|
+
#### locationNameFromDataView
|
|
988
|
+
|
|
989
|
+
<a id="api-locationnamefromdataview"></a>
|
|
990
|
+
|
|
991
|
+
```typescript
|
|
992
|
+
function locationNameFromDataView(dataView: DataView | DataViewReader, indexStart?: number): LocationName;
|
|
993
|
+
```
|
|
994
|
+
|
|
995
|
+
Parse from a DataView into [LocationName](#api-locationname).
|
|
996
|
+
|
|
997
|
+
|
|
998
|
+
#### longitudeFromDataView
|
|
999
|
+
|
|
1000
|
+
<a id="api-longitudefromdataview"></a>
|
|
1001
|
+
|
|
1002
|
+
```typescript
|
|
1003
|
+
function longitudeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Longitude;
|
|
1004
|
+
```
|
|
1005
|
+
|
|
1006
|
+
Parse from a DataView into [Longitude](#api-longitude).
|
|
1007
|
+
|
|
1008
|
+
|
|
1009
|
+
#### manufacturerNameStringFromDataView
|
|
1010
|
+
|
|
1011
|
+
<a id="api-manufacturernamestringfromdataview"></a>
|
|
1012
|
+
|
|
1013
|
+
```typescript
|
|
1014
|
+
function manufacturerNameStringFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ManufacturerNameString;
|
|
1015
|
+
```
|
|
1016
|
+
|
|
1017
|
+
Parse from a DataView into [ManufacturerNameString](#api-manufacturernamestring).
|
|
1018
|
+
|
|
1019
|
+
|
|
1020
|
+
#### maximumRecommendedHeartRateFromDataView
|
|
1021
|
+
|
|
1022
|
+
<a id="api-maximumrecommendedheartratefromdataview"></a>
|
|
1023
|
+
|
|
1024
|
+
```typescript
|
|
1025
|
+
function maximumRecommendedHeartRateFromDataView(dataView: DataView | DataViewReader, indexStart?: number): MaximumRecommendedHeartRate;
|
|
1026
|
+
```
|
|
1027
|
+
|
|
1028
|
+
Parse from a DataView into [MaximumRecommendedHeartRate](#api-maximumrecommendedheartrate).
|
|
1029
|
+
|
|
1030
|
+
|
|
1031
|
+
#### measurementIntervalFromDataView
|
|
1032
|
+
|
|
1033
|
+
<a id="api-measurementintervalfromdataview"></a>
|
|
1034
|
+
|
|
1035
|
+
```typescript
|
|
1036
|
+
function measurementIntervalFromDataView(dataView: DataView | DataViewReader, indexStart?: number): MeasurementInterval;
|
|
1037
|
+
```
|
|
1038
|
+
|
|
1039
|
+
Parse from a DataView into [MeasurementInterval](#api-measurementinterval).
|
|
1040
|
+
|
|
1041
|
+
|
|
1042
|
+
#### modelNumberStringFromDataView
|
|
1043
|
+
|
|
1044
|
+
<a id="api-modelnumberstringfromdataview"></a>
|
|
1045
|
+
|
|
1046
|
+
```typescript
|
|
1047
|
+
function modelNumberStringFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ModelNumberString;
|
|
1048
|
+
```
|
|
1049
|
+
|
|
1050
|
+
Parse from a DataView into [ModelNumberString](#api-modelnumberstring).
|
|
1051
|
+
|
|
1052
|
+
|
|
1053
|
+
#### navigationFromDataView
|
|
1054
|
+
|
|
1055
|
+
<a id="api-navigationfromdataview"></a>
|
|
1056
|
+
|
|
1057
|
+
```typescript
|
|
1058
|
+
function navigationFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Navigation;
|
|
1059
|
+
```
|
|
1060
|
+
|
|
1061
|
+
Parse from a DataView into [Navigation](#api-navigation).
|
|
1062
|
+
|
|
1063
|
+
|
|
1064
|
+
#### numberOfDigitalsFromDataView
|
|
1065
|
+
|
|
1066
|
+
<a id="api-numberofdigitalsfromdataview"></a>
|
|
1067
|
+
|
|
1068
|
+
```typescript
|
|
1069
|
+
function numberOfDigitalsFromDataView(dataView: DataView | DataViewReader, indexStart?: number): NumberOfDigitals;
|
|
1070
|
+
```
|
|
1071
|
+
|
|
1072
|
+
Parse from a DataView into [NumberOfDigitals](#api-numberofdigitals).
|
|
1073
|
+
|
|
1074
|
+
|
|
1075
|
+
#### parseHeartRate
|
|
1076
|
+
|
|
1077
|
+
<a id="api-parseheartrate"></a>
|
|
1078
|
+
|
|
1079
|
+
```typescript
|
|
1080
|
+
parseHeartRate: (viewOrHex: DataView | string) => HeartRateMeasurement
|
|
1081
|
+
```
|
|
1082
|
+
|
|
1083
|
+
#### plxContinuousMeasurementFromDataView
|
|
1084
|
+
|
|
1085
|
+
<a id="api-plxcontinuousmeasurementfromdataview"></a>
|
|
1086
|
+
|
|
1087
|
+
```typescript
|
|
1088
|
+
function plxContinuousMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): PlxContinuousMeasurement;
|
|
1089
|
+
```
|
|
1090
|
+
|
|
1091
|
+
Parse from a DataView into [PlxContinuousMeasurement](#api-plxcontinuousmeasurement).
|
|
1092
|
+
|
|
1093
|
+
|
|
1094
|
+
#### plxFeaturesFromDataView
|
|
1095
|
+
|
|
1096
|
+
<a id="api-plxfeaturesfromdataview"></a>
|
|
1097
|
+
|
|
1098
|
+
```typescript
|
|
1099
|
+
function plxFeaturesFromDataView(dataView: DataView | DataViewReader, indexStart?: number): PlxFeatures;
|
|
1100
|
+
```
|
|
1101
|
+
|
|
1102
|
+
Parse from a DataView into [PlxFeatures](#api-plxfeatures).
|
|
1103
|
+
|
|
1104
|
+
|
|
1105
|
+
#### plxSpotCheckMeasurementFromDataView
|
|
1106
|
+
|
|
1107
|
+
<a id="api-plxspotcheckmeasurementfromdataview"></a>
|
|
1108
|
+
|
|
1109
|
+
```typescript
|
|
1110
|
+
function plxSpotCheckMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): PlxSpotCheckMeasurement;
|
|
1111
|
+
```
|
|
1112
|
+
|
|
1113
|
+
Parse from a DataView into [PlxSpotCheckMeasurement](#api-plxspotcheckmeasurement).
|
|
1114
|
+
|
|
1115
|
+
|
|
1116
|
+
#### referenceTimeInformationFromDataView
|
|
1117
|
+
|
|
1118
|
+
<a id="api-referencetimeinformationfromdataview"></a>
|
|
1119
|
+
|
|
1120
|
+
```typescript
|
|
1121
|
+
function referenceTimeInformationFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ReferenceTimeInformation;
|
|
1122
|
+
```
|
|
1123
|
+
|
|
1124
|
+
Parse from a DataView into [ReferenceTimeInformation](#api-referencetimeinformation).
|
|
1125
|
+
|
|
1126
|
+
|
|
1127
|
+
#### restingHeartRateFromDataView
|
|
1128
|
+
|
|
1129
|
+
<a id="api-restingheartratefromdataview"></a>
|
|
1130
|
+
|
|
1131
|
+
```typescript
|
|
1132
|
+
function restingHeartRateFromDataView(dataView: DataView | DataViewReader, indexStart?: number): RestingHeartRate;
|
|
1133
|
+
```
|
|
1134
|
+
|
|
1135
|
+
Parse from a DataView into [RestingHeartRate](#api-restingheartrate).
|
|
1136
|
+
|
|
1137
|
+
|
|
1138
|
+
#### rscFeatureFromDataView
|
|
1139
|
+
|
|
1140
|
+
<a id="api-rscfeaturefromdataview"></a>
|
|
1141
|
+
|
|
1142
|
+
```typescript
|
|
1143
|
+
function rscFeatureFromDataView(dataView: DataView | DataViewReader, indexStart?: number): RscFeature;
|
|
1144
|
+
```
|
|
1145
|
+
|
|
1146
|
+
Parse from a DataView into [RscFeature](#api-rscfeature).
|
|
1147
|
+
|
|
1148
|
+
|
|
1149
|
+
#### rscMeasurementFromDataView
|
|
1150
|
+
|
|
1151
|
+
<a id="api-rscmeasurementfromdataview"></a>
|
|
1152
|
+
|
|
1153
|
+
```typescript
|
|
1154
|
+
function rscMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): RscMeasurement;
|
|
1155
|
+
```
|
|
1156
|
+
|
|
1157
|
+
Parse from a DataView into [RscMeasurement](#api-rscmeasurement).
|
|
1158
|
+
|
|
1159
|
+
|
|
1160
|
+
#### sensorLocationFromDataView
|
|
1161
|
+
|
|
1162
|
+
<a id="api-sensorlocationfromdataview"></a>
|
|
1163
|
+
|
|
1164
|
+
```typescript
|
|
1165
|
+
function sensorLocationFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SensorLocation;
|
|
1166
|
+
```
|
|
1167
|
+
|
|
1168
|
+
Parse from a DataView into [SensorLocation](#api-sensorlocation).
|
|
1169
|
+
|
|
1170
|
+
|
|
1171
|
+
#### serialNumberStringFromDataView
|
|
1172
|
+
|
|
1173
|
+
<a id="api-serialnumberstringfromdataview"></a>
|
|
1174
|
+
|
|
1175
|
+
```typescript
|
|
1176
|
+
function serialNumberStringFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SerialNumberString;
|
|
1177
|
+
```
|
|
1178
|
+
|
|
1179
|
+
Parse from a DataView into [SerialNumberString](#api-serialnumberstring).
|
|
1180
|
+
|
|
1181
|
+
|
|
1182
|
+
#### softwareRevisionStringFromDataView
|
|
1183
|
+
|
|
1184
|
+
<a id="api-softwarerevisionstringfromdataview"></a>
|
|
1185
|
+
|
|
1186
|
+
```typescript
|
|
1187
|
+
function softwareRevisionStringFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SoftwareRevisionString;
|
|
1188
|
+
```
|
|
1189
|
+
|
|
1190
|
+
Parse from a DataView into [SoftwareRevisionString](#api-softwarerevisionstring).
|
|
1191
|
+
|
|
1192
|
+
|
|
1193
|
+
#### supportedHeartRateRangeFromDataView
|
|
1194
|
+
|
|
1195
|
+
<a id="api-supportedheartraterangefromdataview"></a>
|
|
1196
|
+
|
|
1197
|
+
```typescript
|
|
1198
|
+
function supportedHeartRateRangeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SupportedHeartRateRange;
|
|
1199
|
+
```
|
|
1200
|
+
|
|
1201
|
+
Parse from a DataView into [SupportedHeartRateRange](#api-supportedheartraterange).
|
|
1202
|
+
|
|
1203
|
+
|
|
1204
|
+
#### supportedInclinationRangeFromDataView
|
|
1205
|
+
|
|
1206
|
+
<a id="api-supportedinclinationrangefromdataview"></a>
|
|
1207
|
+
|
|
1208
|
+
```typescript
|
|
1209
|
+
function supportedInclinationRangeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SupportedInclinationRange;
|
|
1210
|
+
```
|
|
1211
|
+
|
|
1212
|
+
Parse from a DataView into [SupportedInclinationRange](#api-supportedinclinationrange).
|
|
1213
|
+
|
|
1214
|
+
|
|
1215
|
+
#### supportedSpeedRangeFromDataView
|
|
1216
|
+
|
|
1217
|
+
<a id="api-supportedspeedrangefromdataview"></a>
|
|
1218
|
+
|
|
1219
|
+
```typescript
|
|
1220
|
+
function supportedSpeedRangeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SupportedSpeedRange;
|
|
1221
|
+
```
|
|
1222
|
+
|
|
1223
|
+
Parse from a DataView into [SupportedSpeedRange](#api-supportedspeedrange).
|
|
1224
|
+
|
|
1225
|
+
|
|
1226
|
+
#### systemIdFromDataView
|
|
1227
|
+
|
|
1228
|
+
<a id="api-systemidfromdataview"></a>
|
|
1229
|
+
|
|
1230
|
+
```typescript
|
|
1231
|
+
function systemIdFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SystemId;
|
|
1232
|
+
```
|
|
1233
|
+
|
|
1234
|
+
Parse from a DataView into [SystemId](#api-systemid).
|
|
1235
|
+
|
|
1236
|
+
|
|
1237
|
+
#### temperatureFromDataView
|
|
1238
|
+
|
|
1239
|
+
<a id="api-temperaturefromdataview"></a>
|
|
1240
|
+
|
|
1241
|
+
```typescript
|
|
1242
|
+
function temperatureFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Temperature;
|
|
1243
|
+
```
|
|
1244
|
+
|
|
1245
|
+
Parse from a DataView into [Temperature](#api-temperature).
|
|
1246
|
+
|
|
1247
|
+
|
|
1248
|
+
#### temperatureMeasurementFromDataView
|
|
1249
|
+
|
|
1250
|
+
<a id="api-temperaturemeasurementfromdataview"></a>
|
|
1251
|
+
|
|
1252
|
+
```typescript
|
|
1253
|
+
function temperatureMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TemperatureMeasurement;
|
|
1254
|
+
```
|
|
1255
|
+
|
|
1256
|
+
Parse from a DataView into [TemperatureMeasurement](#api-temperaturemeasurement).
|
|
1257
|
+
|
|
1258
|
+
|
|
1259
|
+
#### temperatureTypeFromDataView
|
|
1260
|
+
|
|
1261
|
+
<a id="api-temperaturetypefromdataview"></a>
|
|
1262
|
+
|
|
1263
|
+
```typescript
|
|
1264
|
+
function temperatureTypeFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TemperatureType;
|
|
1265
|
+
```
|
|
1266
|
+
|
|
1267
|
+
Parse from a DataView into [TemperatureType](#api-temperaturetype).
|
|
1268
|
+
|
|
1269
|
+
|
|
1270
|
+
#### threeZoneHeartRateLimitsFromDataView
|
|
1271
|
+
|
|
1272
|
+
<a id="api-threezoneheartratelimitsfromdataview"></a>
|
|
1273
|
+
|
|
1274
|
+
```typescript
|
|
1275
|
+
function threeZoneHeartRateLimitsFromDataView(dataView: DataView | DataViewReader, indexStart?: number): ThreeZoneHeartRateLimits;
|
|
1276
|
+
```
|
|
1277
|
+
|
|
1278
|
+
Parse from a DataView into [ThreeZoneHeartRateLimits](#api-threezoneheartratelimits).
|
|
1279
|
+
|
|
1280
|
+
|
|
1281
|
+
#### timeAccuracyFromDataView
|
|
1282
|
+
|
|
1283
|
+
<a id="api-timeaccuracyfromdataview"></a>
|
|
1284
|
+
|
|
1285
|
+
```typescript
|
|
1286
|
+
function timeAccuracyFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TimeAccuracy;
|
|
1287
|
+
```
|
|
1288
|
+
|
|
1289
|
+
Parse from a DataView into [TimeAccuracy](#api-timeaccuracy).
|
|
1290
|
+
|
|
1291
|
+
|
|
1292
|
+
#### timeSourceFromDataView
|
|
1293
|
+
|
|
1294
|
+
<a id="api-timesourcefromdataview"></a>
|
|
1295
|
+
|
|
1296
|
+
```typescript
|
|
1297
|
+
function timeSourceFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TimeSource;
|
|
1298
|
+
```
|
|
1299
|
+
|
|
1300
|
+
Parse from a DataView into [TimeSource](#api-timesource).
|
|
1301
|
+
|
|
1302
|
+
|
|
1303
|
+
#### timeUpdateControlPointFromDataView
|
|
1304
|
+
|
|
1305
|
+
<a id="api-timeupdatecontrolpointfromdataview"></a>
|
|
1306
|
+
|
|
1307
|
+
```typescript
|
|
1308
|
+
function timeUpdateControlPointFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TimeUpdateControlPoint;
|
|
1309
|
+
```
|
|
1310
|
+
|
|
1311
|
+
Parse from a DataView into [TimeUpdateControlPoint](#api-timeupdatecontrolpoint).
|
|
1312
|
+
|
|
1313
|
+
|
|
1314
|
+
#### timeUpdateStateFromDataView
|
|
1315
|
+
|
|
1316
|
+
<a id="api-timeupdatestatefromdataview"></a>
|
|
1317
|
+
|
|
1318
|
+
```typescript
|
|
1319
|
+
function timeUpdateStateFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TimeUpdateState;
|
|
1320
|
+
```
|
|
1321
|
+
|
|
1322
|
+
Parse from a DataView into [TimeUpdateState](#api-timeupdatestate).
|
|
1323
|
+
|
|
1324
|
+
|
|
1325
|
+
#### timeWithDstFromDataView
|
|
1326
|
+
|
|
1327
|
+
<a id="api-timewithdstfromdataview"></a>
|
|
1328
|
+
|
|
1329
|
+
```typescript
|
|
1330
|
+
function timeWithDstFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TimeWithDst;
|
|
1331
|
+
```
|
|
1332
|
+
|
|
1333
|
+
Parse from a DataView into [TimeWithDst](#api-timewithdst).
|
|
1334
|
+
|
|
1335
|
+
|
|
1336
|
+
#### timeZoneFromDataView
|
|
1337
|
+
|
|
1338
|
+
<a id="api-timezonefromdataview"></a>
|
|
1339
|
+
|
|
1340
|
+
```typescript
|
|
1341
|
+
function timeZoneFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TimeZone;
|
|
1342
|
+
```
|
|
1343
|
+
|
|
1344
|
+
Parse from a DataView into [TimeZone](#api-timezone).
|
|
1345
|
+
|
|
1346
|
+
|
|
1347
|
+
#### treadmillDataFromDataView
|
|
1348
|
+
|
|
1349
|
+
<a id="api-treadmilldatafromdataview"></a>
|
|
1350
|
+
|
|
1351
|
+
```typescript
|
|
1352
|
+
function treadmillDataFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TreadmillData;
|
|
1353
|
+
```
|
|
1354
|
+
|
|
1355
|
+
Parse from a DataView into [TreadmillData](#api-treadmilldata).
|
|
1356
|
+
|
|
1357
|
+
|
|
1358
|
+
#### twoZoneHeartRateLimitFromDataView
|
|
1359
|
+
|
|
1360
|
+
<a id="api-twozoneheartratelimitfromdataview"></a>
|
|
1361
|
+
|
|
1362
|
+
```typescript
|
|
1363
|
+
function twoZoneHeartRateLimitFromDataView(dataView: DataView | DataViewReader, indexStart?: number): TwoZoneHeartRateLimit;
|
|
1364
|
+
```
|
|
1365
|
+
|
|
1366
|
+
Parse from a DataView into [TwoZoneHeartRateLimit](#api-twozoneheartratelimit).
|
|
1367
|
+
|
|
1368
|
+
|
|
1369
|
+
#### vo2MaxFromDataView
|
|
1370
|
+
|
|
1371
|
+
<a id="api-vo2maxfromdataview"></a>
|
|
1372
|
+
|
|
1373
|
+
```typescript
|
|
1374
|
+
function vo2MaxFromDataView(dataView: DataView | DataViewReader, indexStart?: number): Vo2Max;
|
|
1375
|
+
```
|
|
1376
|
+
|
|
1377
|
+
Parse from a DataView into [Vo2Max](#api-vo2max).
|
|
1378
|
+
|
|
1379
|
+
|
|
1380
|
+
### Interfaces
|
|
1381
|
+
|
|
1382
|
+
#### BatteryLevel
|
|
1383
|
+
|
|
1384
|
+
<a id="api-batterylevel"></a>
|
|
1385
|
+
|
|
1386
|
+
```typescript
|
|
1387
|
+
export interface BatteryLevel
|
|
1388
|
+
```
|
|
1389
|
+
|
|
1390
|
+
<p>The current charge level of a battery. 100% represents fully charged while 0% represents fully discharged.</p>
|
|
1391
|
+
|
|
1392
|
+
|
|
1393
|
+
#### CrossTrainerData
|
|
1394
|
+
|
|
1395
|
+
<a id="api-crosstrainerdata"></a>
|
|
1396
|
+
|
|
1397
|
+
```typescript
|
|
1398
|
+
export interface CrossTrainerData
|
|
1399
|
+
```
|
|
1400
|
+
|
|
1401
|
+
<p>The Cross Trainer Data characteristic is used to send training-related data to the Client from a cross trainer (Server).</p>
|
|
1402
|
+
|
|
1403
|
+
|
|
1404
|
+
#### CscFeature
|
|
1405
|
+
|
|
1406
|
+
<a id="api-cscfeature"></a>
|
|
1407
|
+
|
|
1408
|
+
```typescript
|
|
1409
|
+
export interface CscFeature
|
|
1410
|
+
```
|
|
1411
|
+
|
|
1412
|
+
<p>The CSC (Cycling Speed and Cadence) Feature characteristic is used to describe the supported features of the Server.</p>
|
|
1413
|
+
|
|
1414
|
+
|
|
1415
|
+
#### CscMeasurement
|
|
1416
|
+
|
|
1417
|
+
<a id="api-cscmeasurement"></a>
|
|
1418
|
+
|
|
1419
|
+
```typescript
|
|
1420
|
+
export interface CscMeasurement
|
|
1421
|
+
```
|
|
1422
|
+
|
|
1423
|
+
<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>
|
|
1424
|
+
|
|
1425
|
+
|
|
1426
|
+
#### CurrentTime
|
|
1427
|
+
|
|
1428
|
+
<a id="api-currenttime"></a>
|
|
1429
|
+
|
|
1430
|
+
```typescript
|
|
1431
|
+
export interface CurrentTime
|
|
1432
|
+
```
|
|
1433
|
+
|
|
1434
|
+
#### DataViewReader
|
|
1435
|
+
|
|
1436
|
+
<a id="api-dataviewreader"></a>
|
|
1437
|
+
|
|
1438
|
+
```typescript
|
|
1439
|
+
export interface DataViewReader
|
|
1440
|
+
```
|
|
1441
|
+
|
|
1442
|
+
#### DateTime
|
|
1443
|
+
|
|
1444
|
+
<a id="api-datetime"></a>
|
|
1445
|
+
|
|
1446
|
+
```typescript
|
|
1447
|
+
export interface DateTime
|
|
1448
|
+
```
|
|
1449
|
+
|
|
1450
|
+
<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>
|
|
1451
|
+
|
|
1452
|
+
|
|
1453
|
+
#### DayDateTime
|
|
1454
|
+
|
|
1455
|
+
<a id="api-daydatetime"></a>
|
|
1456
|
+
|
|
1457
|
+
```typescript
|
|
1458
|
+
export interface DayDateTime
|
|
1459
|
+
```
|
|
1460
|
+
|
|
1461
|
+
#### DayOfWeek
|
|
1462
|
+
|
|
1463
|
+
<a id="api-dayofweek"></a>
|
|
1464
|
+
|
|
1465
|
+
```typescript
|
|
1466
|
+
export interface DayOfWeek
|
|
1467
|
+
```
|
|
1468
|
+
|
|
1469
|
+
#### DstOffset
|
|
1470
|
+
|
|
1471
|
+
<a id="api-dstoffset"></a>
|
|
1472
|
+
|
|
1473
|
+
```typescript
|
|
1474
|
+
export interface DstOffset
|
|
1475
|
+
```
|
|
1476
|
+
|
|
1477
|
+
#### Elevation
|
|
1478
|
+
|
|
1479
|
+
<a id="api-elevation"></a>
|
|
1480
|
+
|
|
1481
|
+
```typescript
|
|
1482
|
+
export interface Elevation
|
|
1483
|
+
```
|
|
1484
|
+
|
|
1485
|
+
#### ExactTime256
|
|
1486
|
+
|
|
1487
|
+
<a id="api-exacttime256"></a>
|
|
1488
|
+
|
|
1489
|
+
```typescript
|
|
1490
|
+
export interface ExactTime256
|
|
1491
|
+
```
|
|
1492
|
+
|
|
1493
|
+
#### FirmwareRevisionString
|
|
1494
|
+
|
|
1495
|
+
<a id="api-firmwarerevisionstring"></a>
|
|
1496
|
+
|
|
1497
|
+
```typescript
|
|
1498
|
+
export interface FirmwareRevisionString
|
|
1499
|
+
```
|
|
1500
|
+
|
|
1501
|
+
<p>The value of this characteristic is a UTF-8 string representing the firmware revision for the firmware within the device.</p>
|
|
1502
|
+
|
|
1503
|
+
|
|
1504
|
+
#### FiveZoneHeartRateLimits
|
|
1505
|
+
|
|
1506
|
+
<a id="api-fivezoneheartratelimits"></a>
|
|
1507
|
+
|
|
1508
|
+
```typescript
|
|
1509
|
+
export interface FiveZoneHeartRateLimits
|
|
1510
|
+
```
|
|
1511
|
+
|
|
1512
|
+
<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>
|
|
1513
|
+
|
|
1514
|
+
|
|
1515
|
+
#### GattCharacteristicPresentationFormat
|
|
1516
|
+
|
|
1517
|
+
<a id="api-gattcharacteristicpresentationformat"></a>
|
|
1518
|
+
|
|
1519
|
+
```typescript
|
|
1520
|
+
export interface GattCharacteristicPresentationFormat
|
|
1521
|
+
```
|
|
1522
|
+
|
|
1523
|
+
<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>
|
|
1524
|
+
|
|
1525
|
+
|
|
1526
|
+
#### GlucoseFeature
|
|
1527
|
+
|
|
1528
|
+
<a id="api-glucosefeature"></a>
|
|
1529
|
+
|
|
1530
|
+
```typescript
|
|
1531
|
+
export interface GlucoseFeature
|
|
1532
|
+
```
|
|
1533
|
+
|
|
1534
|
+
<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>
|
|
1535
|
+
|
|
1536
|
+
|
|
1537
|
+
#### GlucoseMeasurement
|
|
1538
|
+
|
|
1539
|
+
<a id="api-glucosemeasurement"></a>
|
|
1540
|
+
|
|
1541
|
+
```typescript
|
|
1542
|
+
export interface GlucoseMeasurement
|
|
1543
|
+
```
|
|
1544
|
+
|
|
1545
|
+
<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>
|
|
1546
|
+
|
|
1547
|
+
|
|
1548
|
+
#### GlucoseMeasurementContext
|
|
1549
|
+
|
|
1550
|
+
<a id="api-glucosemeasurementcontext"></a>
|
|
1551
|
+
|
|
1552
|
+
```typescript
|
|
1553
|
+
export interface GlucoseMeasurementContext
|
|
1554
|
+
```
|
|
1555
|
+
|
|
1556
|
+
<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>
|
|
1557
|
+
|
|
1558
|
+
|
|
1559
|
+
#### HardwareRevisionString
|
|
1560
|
+
|
|
1561
|
+
<a id="api-hardwarerevisionstring"></a>
|
|
1562
|
+
|
|
1563
|
+
```typescript
|
|
1564
|
+
export interface HardwareRevisionString
|
|
1565
|
+
```
|
|
1566
|
+
|
|
1567
|
+
<p>The value of this characteristic is a UTF-8 string representing the hardware revision for the hardware within the device.</p>
|
|
1568
|
+
|
|
1569
|
+
|
|
1570
|
+
#### HeartRateControlPoint
|
|
1571
|
+
|
|
1572
|
+
<a id="api-heartratecontrolpoint"></a>
|
|
1573
|
+
|
|
1574
|
+
```typescript
|
|
1575
|
+
export interface HeartRateControlPoint
|
|
1576
|
+
```
|
|
1577
|
+
|
|
1578
|
+
#### HeartRateMax
|
|
1579
|
+
|
|
1580
|
+
<a id="api-heartratemax"></a>
|
|
1581
|
+
|
|
1582
|
+
```typescript
|
|
1583
|
+
export interface HeartRateMax
|
|
1584
|
+
```
|
|
1585
|
+
|
|
1586
|
+
<p>Maximum heart rate a user can reach.</p>
|
|
1587
|
+
|
|
1588
|
+
|
|
1589
|
+
#### HeartRateMeasurement
|
|
1590
|
+
|
|
1591
|
+
<a id="api-heartratemeasurement"></a>
|
|
1592
|
+
|
|
1593
|
+
```typescript
|
|
1594
|
+
export interface HeartRateMeasurement
|
|
1595
|
+
```
|
|
1596
|
+
|
|
1597
|
+
#### IndoorBikeData
|
|
1598
|
+
|
|
1599
|
+
<a id="api-indoorbikedata"></a>
|
|
1600
|
+
|
|
1601
|
+
```typescript
|
|
1602
|
+
export interface IndoorBikeData
|
|
1603
|
+
```
|
|
1604
|
+
|
|
1605
|
+
<p>The Indoor Bike Data characteristic is used to send training-related data to the Client from an indoor bike (Server).</p>
|
|
1606
|
+
|
|
1607
|
+
|
|
1608
|
+
#### Language
|
|
1609
|
+
|
|
1610
|
+
<a id="api-language"></a>
|
|
1611
|
+
|
|
1612
|
+
```typescript
|
|
1613
|
+
export interface Language
|
|
1614
|
+
```
|
|
1615
|
+
|
|
1616
|
+
#### Latitude
|
|
1617
|
+
|
|
1618
|
+
<a id="api-latitude"></a>
|
|
1619
|
+
|
|
1620
|
+
```typescript
|
|
1621
|
+
export interface Latitude
|
|
1622
|
+
```
|
|
1623
|
+
|
|
1624
|
+
<p>The Latitude characteristic describes the WGS84 North coordinate of the device.</p>
|
|
1625
|
+
|
|
1626
|
+
|
|
1627
|
+
#### LocalTimeInformation
|
|
1628
|
+
|
|
1629
|
+
<a id="api-localtimeinformation"></a>
|
|
1630
|
+
|
|
1631
|
+
```typescript
|
|
1632
|
+
export interface LocalTimeInformation
|
|
1633
|
+
```
|
|
1634
|
+
|
|
1635
|
+
#### LocationAndSpeed
|
|
1636
|
+
|
|
1637
|
+
<a id="api-locationandspeed"></a>
|
|
1638
|
+
|
|
1639
|
+
```typescript
|
|
1640
|
+
export interface LocationAndSpeed
|
|
1641
|
+
```
|
|
1642
|
+
|
|
1643
|
+
<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>
|
|
1644
|
+
|
|
1645
|
+
|
|
1646
|
+
#### LocationName
|
|
1647
|
+
|
|
1648
|
+
<a id="api-locationname"></a>
|
|
1649
|
+
|
|
1650
|
+
```typescript
|
|
1651
|
+
export interface LocationName
|
|
1652
|
+
```
|
|
1653
|
+
|
|
1654
|
+
<p>The Location Name characteristic describes the name of the location the device is installed in.</p>
|
|
1655
|
+
|
|
1656
|
+
|
|
1657
|
+
#### Longitude
|
|
1658
|
+
|
|
1659
|
+
<a id="api-longitude"></a>
|
|
1660
|
+
|
|
1661
|
+
```typescript
|
|
1662
|
+
export interface Longitude
|
|
1663
|
+
```
|
|
1664
|
+
|
|
1665
|
+
<p>The Longitude characteristic describes the WGS84 East coordinate of the device.</p>
|
|
1666
|
+
|
|
1667
|
+
|
|
1668
|
+
#### ManufacturerNameString
|
|
1669
|
+
|
|
1670
|
+
<a id="api-manufacturernamestring"></a>
|
|
1671
|
+
|
|
1672
|
+
```typescript
|
|
1673
|
+
export interface ManufacturerNameString
|
|
1674
|
+
```
|
|
1675
|
+
|
|
1676
|
+
<p>The value of this characteristic is a UTF-8 string representing the name of the manufacturer of the device.</p>
|
|
1677
|
+
|
|
1678
|
+
|
|
1679
|
+
#### MaximumRecommendedHeartRate
|
|
1680
|
+
|
|
1681
|
+
<a id="api-maximumrecommendedheartrate"></a>
|
|
1682
|
+
|
|
1683
|
+
```typescript
|
|
1684
|
+
export interface MaximumRecommendedHeartRate
|
|
1685
|
+
```
|
|
1686
|
+
|
|
1687
|
+
<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>
|
|
1688
|
+
|
|
1689
|
+
|
|
1690
|
+
#### MeasurementInterval
|
|
1691
|
+
|
|
1692
|
+
<a id="api-measurementinterval"></a>
|
|
1693
|
+
|
|
1694
|
+
```typescript
|
|
1695
|
+
export interface MeasurementInterval
|
|
1696
|
+
```
|
|
1697
|
+
|
|
1698
|
+
<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>
|
|
1699
|
+
|
|
1700
|
+
|
|
1701
|
+
#### ModelNumberString
|
|
1702
|
+
|
|
1703
|
+
<a id="api-modelnumberstring"></a>
|
|
1704
|
+
|
|
1705
|
+
```typescript
|
|
1706
|
+
export interface ModelNumberString
|
|
1707
|
+
```
|
|
1708
|
+
|
|
1709
|
+
<p>The value of this characteristic is a UTF-8 string representing the model number assigned by the device vendor.</p>
|
|
1710
|
+
|
|
1711
|
+
|
|
1712
|
+
#### Navigation
|
|
1713
|
+
|
|
1714
|
+
<a id="api-navigation"></a>
|
|
1715
|
+
|
|
1716
|
+
```typescript
|
|
1717
|
+
export interface Navigation
|
|
1718
|
+
```
|
|
1719
|
+
|
|
1720
|
+
<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>
|
|
1721
|
+
|
|
1722
|
+
|
|
1723
|
+
#### NumberOfDigitals
|
|
1724
|
+
|
|
1725
|
+
<a id="api-numberofdigitals"></a>
|
|
1726
|
+
|
|
1727
|
+
```typescript
|
|
1728
|
+
export interface NumberOfDigitals
|
|
1729
|
+
```
|
|
1730
|
+
|
|
1731
|
+
<p>The Characteristic Number of Digitals descriptor is used for defining the number of digitals in a characteristic.</p>
|
|
1732
|
+
|
|
1733
|
+
|
|
1734
|
+
#### PlxContinuousMeasurement
|
|
1735
|
+
|
|
1736
|
+
<a id="api-plxcontinuousmeasurement"></a>
|
|
1737
|
+
|
|
1738
|
+
```typescript
|
|
1739
|
+
export interface PlxContinuousMeasurement
|
|
1740
|
+
```
|
|
1741
|
+
|
|
1742
|
+
<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>
|
|
1743
|
+
|
|
1744
|
+
|
|
1745
|
+
#### PlxFeatures
|
|
1746
|
+
|
|
1747
|
+
<a id="api-plxfeatures"></a>
|
|
1748
|
+
|
|
1749
|
+
```typescript
|
|
1750
|
+
export interface PlxFeatures
|
|
1751
|
+
```
|
|
1752
|
+
|
|
1753
|
+
<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>
|
|
1754
|
+
|
|
1755
|
+
|
|
1756
|
+
#### PlxSpotCheckMeasurement
|
|
1757
|
+
|
|
1758
|
+
<a id="api-plxspotcheckmeasurement"></a>
|
|
1759
|
+
|
|
1760
|
+
```typescript
|
|
1761
|
+
export interface PlxSpotCheckMeasurement
|
|
1762
|
+
```
|
|
1763
|
+
|
|
1764
|
+
<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>
|
|
1765
|
+
|
|
1766
|
+
|
|
1767
|
+
#### ReferenceTimeInformation
|
|
1768
|
+
|
|
1769
|
+
<a id="api-referencetimeinformation"></a>
|
|
1770
|
+
|
|
1771
|
+
```typescript
|
|
1772
|
+
export interface ReferenceTimeInformation
|
|
1773
|
+
```
|
|
1774
|
+
|
|
1775
|
+
#### RestingHeartRate
|
|
1776
|
+
|
|
1777
|
+
<a id="api-restingheartrate"></a>
|
|
1778
|
+
|
|
1779
|
+
```typescript
|
|
1780
|
+
export interface RestingHeartRate
|
|
1781
|
+
```
|
|
1782
|
+
|
|
1783
|
+
<p>Lowest Heart Rate a user can reach</p>
|
|
1784
|
+
|
|
1785
|
+
|
|
1786
|
+
#### RscFeature
|
|
1787
|
+
|
|
1788
|
+
<a id="api-rscfeature"></a>
|
|
1789
|
+
|
|
1790
|
+
```typescript
|
|
1791
|
+
export interface RscFeature
|
|
1792
|
+
```
|
|
1793
|
+
|
|
1794
|
+
<p>The RSC (Running Speed and Cadence) Feature characteristic is used to describe the supported features of the Server.</p>
|
|
1795
|
+
|
|
1796
|
+
|
|
1797
|
+
#### RscMeasurement
|
|
1798
|
+
|
|
1799
|
+
<a id="api-rscmeasurement"></a>
|
|
1800
|
+
|
|
1801
|
+
```typescript
|
|
1802
|
+
export interface RscMeasurement
|
|
1803
|
+
```
|
|
1804
|
+
|
|
1805
|
+
<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>
|
|
1806
|
+
|
|
1807
|
+
|
|
1808
|
+
#### SensorLocation
|
|
1809
|
+
|
|
1810
|
+
<a id="api-sensorlocation"></a>
|
|
1811
|
+
|
|
1812
|
+
```typescript
|
|
1813
|
+
export interface SensorLocation
|
|
1814
|
+
```
|
|
1815
|
+
|
|
1816
|
+
<p>The Sensor Location characteristic is used to expose the location of the sensor.</p>
|
|
1817
|
+
|
|
1818
|
+
|
|
1819
|
+
#### SerialNumberString
|
|
1820
|
+
|
|
1821
|
+
<a id="api-serialnumberstring"></a>
|
|
1822
|
+
|
|
1823
|
+
```typescript
|
|
1824
|
+
export interface SerialNumberString
|
|
1825
|
+
```
|
|
1826
|
+
|
|
1827
|
+
<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>
|
|
1828
|
+
|
|
1829
|
+
|
|
1830
|
+
#### SoftwareRevisionString
|
|
1831
|
+
|
|
1832
|
+
<a id="api-softwarerevisionstring"></a>
|
|
1833
|
+
|
|
1834
|
+
```typescript
|
|
1835
|
+
export interface SoftwareRevisionString
|
|
1836
|
+
```
|
|
1837
|
+
|
|
1838
|
+
<p>The value of this characteristic is a UTF-8 string representing the software revision for the software within the device.</p>
|
|
1839
|
+
|
|
1840
|
+
|
|
1841
|
+
#### SupportedHeartRateRange
|
|
1842
|
+
|
|
1843
|
+
<a id="api-supportedheartraterange"></a>
|
|
1844
|
+
|
|
1845
|
+
```typescript
|
|
1846
|
+
export interface SupportedHeartRateRange
|
|
1847
|
+
```
|
|
1848
|
+
|
|
1849
|
+
<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>
|
|
1850
|
+
|
|
1851
|
+
|
|
1852
|
+
#### SupportedInclinationRange
|
|
1853
|
+
|
|
1854
|
+
<a id="api-supportedinclinationrange"></a>
|
|
1855
|
+
|
|
1856
|
+
```typescript
|
|
1857
|
+
export interface SupportedInclinationRange
|
|
1858
|
+
```
|
|
1859
|
+
|
|
1860
|
+
<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>
|
|
1861
|
+
|
|
1862
|
+
|
|
1863
|
+
#### SupportedSpeedRange
|
|
1864
|
+
|
|
1865
|
+
<a id="api-supportedspeedrange"></a>
|
|
1866
|
+
|
|
1867
|
+
```typescript
|
|
1868
|
+
export interface SupportedSpeedRange
|
|
1869
|
+
```
|
|
1870
|
+
|
|
1871
|
+
<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>
|
|
1872
|
+
|
|
1873
|
+
|
|
1874
|
+
#### SystemId
|
|
1875
|
+
|
|
1876
|
+
<a id="api-systemid"></a>
|
|
1877
|
+
|
|
1878
|
+
```typescript
|
|
1879
|
+
export interface SystemId
|
|
1880
|
+
```
|
|
1881
|
+
|
|
1882
|
+
<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>
|
|
1883
|
+
|
|
1884
|
+
|
|
1885
|
+
#### Temperature
|
|
1886
|
+
|
|
1887
|
+
<a id="api-temperature"></a>
|
|
1888
|
+
|
|
1889
|
+
```typescript
|
|
1890
|
+
export interface Temperature
|
|
1891
|
+
```
|
|
1892
|
+
|
|
1893
|
+
#### TemperatureMeasurement
|
|
1894
|
+
|
|
1895
|
+
<a id="api-temperaturemeasurement"></a>
|
|
1896
|
+
|
|
1897
|
+
```typescript
|
|
1898
|
+
export interface TemperatureMeasurement
|
|
1899
|
+
```
|
|
1900
|
+
|
|
1901
|
+
<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>
|
|
1902
|
+
|
|
1903
|
+
|
|
1904
|
+
#### TemperatureType
|
|
1905
|
+
|
|
1906
|
+
<a id="api-temperaturetype"></a>
|
|
1907
|
+
|
|
1908
|
+
```typescript
|
|
1909
|
+
export interface TemperatureType
|
|
1910
|
+
```
|
|
1911
|
+
|
|
1912
|
+
<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>
|
|
1913
|
+
|
|
1914
|
+
|
|
1915
|
+
#### ThreeZoneHeartRateLimits
|
|
1916
|
+
|
|
1917
|
+
<a id="api-threezoneheartratelimits"></a>
|
|
1918
|
+
|
|
1919
|
+
```typescript
|
|
1920
|
+
export interface ThreeZoneHeartRateLimits
|
|
1921
|
+
```
|
|
1922
|
+
|
|
1923
|
+
<p>Data structure containing the limits between the heart rate zones for the 3-zone heart rate definition (Hard, Moderate and Light).</p>
|
|
1924
|
+
|
|
1925
|
+
|
|
1926
|
+
#### TimeAccuracy
|
|
1927
|
+
|
|
1928
|
+
<a id="api-timeaccuracy"></a>
|
|
1929
|
+
|
|
1930
|
+
```typescript
|
|
1931
|
+
export interface TimeAccuracy
|
|
1932
|
+
```
|
|
1933
|
+
|
|
1934
|
+
#### TimeSource
|
|
1935
|
+
|
|
1936
|
+
<a id="api-timesource"></a>
|
|
1937
|
+
|
|
1938
|
+
```typescript
|
|
1939
|
+
export interface TimeSource
|
|
1940
|
+
```
|
|
1941
|
+
|
|
1942
|
+
#### TimeUpdateControlPoint
|
|
1943
|
+
|
|
1944
|
+
<a id="api-timeupdatecontrolpoint"></a>
|
|
1945
|
+
|
|
1946
|
+
```typescript
|
|
1947
|
+
export interface TimeUpdateControlPoint
|
|
1948
|
+
```
|
|
1949
|
+
|
|
1950
|
+
#### TimeUpdateState
|
|
1951
|
+
|
|
1952
|
+
<a id="api-timeupdatestate"></a>
|
|
1953
|
+
|
|
1954
|
+
```typescript
|
|
1955
|
+
export interface TimeUpdateState
|
|
1956
|
+
```
|
|
1957
|
+
|
|
1958
|
+
#### TimeWithDst
|
|
1959
|
+
|
|
1960
|
+
<a id="api-timewithdst"></a>
|
|
1961
|
+
|
|
1962
|
+
```typescript
|
|
1963
|
+
export interface TimeWithDst
|
|
1964
|
+
```
|
|
1965
|
+
|
|
1966
|
+
#### TimeZone
|
|
1967
|
+
|
|
1968
|
+
<a id="api-timezone"></a>
|
|
1969
|
+
|
|
1970
|
+
```typescript
|
|
1971
|
+
export interface TimeZone
|
|
1972
|
+
```
|
|
1973
|
+
|
|
1974
|
+
#### TreadmillData
|
|
1975
|
+
|
|
1976
|
+
<a id="api-treadmilldata"></a>
|
|
1977
|
+
|
|
1978
|
+
```typescript
|
|
1979
|
+
export interface TreadmillData
|
|
1980
|
+
```
|
|
1981
|
+
|
|
1982
|
+
<p>The Treadmill Data characteristic is used to send training-related data to the Client from a treadmill (Server).</p>
|
|
1983
|
+
|
|
1984
|
+
|
|
1985
|
+
#### TwoZoneHeartRateLimit
|
|
1986
|
+
|
|
1987
|
+
<a id="api-twozoneheartratelimit"></a>
|
|
1988
|
+
|
|
1989
|
+
```typescript
|
|
1990
|
+
export interface TwoZoneHeartRateLimit
|
|
1991
|
+
```
|
|
1992
|
+
|
|
1993
|
+
<p>Heart rate limit between the heart rate zones for the 2-zone heart rate definition (Fitness and Fat Burn).</p>
|
|
1994
|
+
|
|
1995
|
+
|
|
1996
|
+
#### Vo2Max
|
|
1997
|
+
|
|
1998
|
+
<a id="api-vo2max"></a>
|
|
1999
|
+
|
|
2000
|
+
```typescript
|
|
2001
|
+
export interface Vo2Max
|
|
2002
|
+
```
|
|
2003
|
+
|
|
2004
|
+
<p>Maximal Oxygen uptake of a user</p>
|
|
2005
|
+
|
|
2006
|
+
|
|
2007
|
+
### TypeAliases
|
|
2008
|
+
|
|
2009
|
+
#### GattCharacteristicName
|
|
2010
|
+
|
|
2011
|
+
<a id="api-gattcharacteristicname"></a>
|
|
2012
|
+
|
|
2013
|
+
```typescript
|
|
2014
|
+
type GattCharacteristicName = keyof typeof GATT_CHARACTERISTIC_UUID;
|
|
2015
|
+
```
|
|
2016
|
+
|
|
2017
|
+
#### GattDescriptorName
|
|
2018
|
+
|
|
2019
|
+
<a id="api-gattdescriptorname"></a>
|
|
2020
|
+
|
|
2021
|
+
```typescript
|
|
2022
|
+
type GattDescriptorName = keyof typeof GATT_DESCRIPTOR_UUID;
|
|
2023
|
+
```
|
|
2024
|
+
|
|
2025
|
+
#### GattServiceName
|
|
2026
|
+
|
|
2027
|
+
<a id="api-gattservicename"></a>
|
|
2028
|
+
|
|
2029
|
+
```typescript
|
|
2030
|
+
type GattServiceName = keyof typeof GATT_SERVICE_UUID;
|
|
2031
|
+
```
|
|
2032
|
+
|
|
2033
|
+
### Variables
|
|
2034
|
+
|
|
2035
|
+
#### GATT_CHARACTERISTIC_ID
|
|
2036
|
+
|
|
2037
|
+
<a id="api-gatt-characteristic-id"></a>
|
|
2038
|
+
|
|
2039
|
+
```typescript
|
|
2040
|
+
GATT_CHARACTERISTIC_ID: Readonly<{
|
|
2041
|
+
readonly aerobic_heart_rate_lower_limit: 10878;
|
|
2042
|
+
readonly aerobic_heart_rate_upper_limit: 10884;
|
|
2043
|
+
readonly aerobic_threshold: 10879;
|
|
2044
|
+
readonly age: 10880;
|
|
2045
|
+
readonly aggregate: 10842;
|
|
2046
|
+
readonly alert_category_id: 10819;
|
|
2047
|
+
readonly alert_category_id_bit_mask: 10818;
|
|
2048
|
+
readonly alert_level: 10758;
|
|
2049
|
+
readonly alert_notification_control_point: 10820;
|
|
2050
|
+
readonly alert_status: 10815;
|
|
2051
|
+
readonly altitude: 10931;
|
|
2052
|
+
readonly anaerobic_heart_rate_lower_limit: 10881;
|
|
2053
|
+
readonly anaerobic_heart_rate_upper_limit: 10882;
|
|
2054
|
+
readonly anaerobic_threshold: 10883;
|
|
2055
|
+
readonly analog: 10840;
|
|
2056
|
+
readonly analog_output: 10841;
|
|
2057
|
+
readonly apparent_wind_direction: 10867;
|
|
2058
|
+
readonly apparent_wind_speed: 10866;
|
|
2059
|
+
readonly barometric_pressure_trend: 10915;
|
|
2060
|
+
readonly battery_level: 10777;
|
|
2061
|
+
readonly battery_level_state: 10779;
|
|
2062
|
+
readonly battery_power_state: 10778;
|
|
2063
|
+
readonly blood_pressure_feature: 10825;
|
|
2064
|
+
readonly blood_pressure_measurement: 10805;
|
|
2065
|
+
readonly body_composition_feature: 10907;
|
|
2066
|
+
readonly body_composition_measurement: 10908;
|
|
2067
|
+
readonly body_sensor_location: 10808;
|
|
2068
|
+
readonly bond_management_control_point: 10916;
|
|
2069
|
+
readonly bond_management_feature: 10917;
|
|
2070
|
+
readonly boot_keyboard_input_report: 10786;
|
|
2071
|
+
readonly boot_keyboard_output_report: 10802;
|
|
2072
|
+
readonly boot_mouse_input_report: 10803;
|
|
2073
|
+
readonly cgm_feature: 10920;
|
|
2074
|
+
readonly cgm_measurement: 10919;
|
|
2075
|
+
readonly cgm_session_run_time: 10923;
|
|
2076
|
+
readonly cgm_session_start_time: 10922;
|
|
2077
|
+
readonly cgm_specific_ops_control_point: 10924;
|
|
2078
|
+
readonly cgm_status: 10921;
|
|
2079
|
+
readonly cross_trainer_data: 10958;
|
|
2080
|
+
readonly csc_feature: 10844;
|
|
2081
|
+
readonly csc_measurement: 10843;
|
|
2082
|
+
readonly current_time: 10795;
|
|
2083
|
+
readonly cycling_power_control_point: 10854;
|
|
2084
|
+
readonly cycling_power_feature: 10853;
|
|
2085
|
+
readonly cycling_power_measurement: 10851;
|
|
2086
|
+
readonly cycling_power_vector: 10852;
|
|
2087
|
+
readonly database_change_increment: 10905;
|
|
2088
|
+
readonly date_of_birth: 10885;
|
|
2089
|
+
readonly date_of_threshold_assessment: 10886;
|
|
2090
|
+
readonly date_time: 10760;
|
|
2091
|
+
readonly date_utc: 10989;
|
|
2092
|
+
readonly day_date_time: 10762;
|
|
2093
|
+
readonly day_of_week: 10761;
|
|
2094
|
+
readonly descriptor_value_changed: 10877;
|
|
2095
|
+
readonly dew_point: 10875;
|
|
2096
|
+
readonly digital: 10838;
|
|
2097
|
+
readonly digital_output: 10839;
|
|
2098
|
+
readonly dst_offset: 10765;
|
|
2099
|
+
readonly elevation: 10860;
|
|
2100
|
+
readonly email_address: 10887;
|
|
2101
|
+
readonly exact_time_100: 10763;
|
|
2102
|
+
readonly exact_time_256: 10764;
|
|
2103
|
+
readonly fat_burn_heart_rate_lower_limit: 10888;
|
|
2104
|
+
readonly fat_burn_heart_rate_upper_limit: 10889;
|
|
2105
|
+
readonly firmware_revision_string: 10790;
|
|
2106
|
+
readonly first_name: 10890;
|
|
2107
|
+
readonly fitness_machine_control_point: 10969;
|
|
2108
|
+
readonly fitness_machine_feature: 10956;
|
|
2109
|
+
readonly fitness_machine_status: 10970;
|
|
2110
|
+
readonly five_zone_heart_rate_limits: 10891;
|
|
2111
|
+
readonly floor_number: 10930;
|
|
2112
|
+
readonly "gap.appearance": 10753;
|
|
2113
|
+
readonly "gap.central_address_resolution_support": 10918;
|
|
2114
|
+
readonly "gap.device_name": 10752;
|
|
2115
|
+
readonly "gap.peripheral_preferred_connection_parameters": 10756;
|
|
2116
|
+
readonly "gap.peripheral_privacy_flag": 10754;
|
|
2117
|
+
readonly "gap.reconnection_address": 10755;
|
|
2118
|
+
readonly "gatt.service_changed": 10757;
|
|
2119
|
+
readonly gender: 10892;
|
|
2120
|
+
readonly glucose_feature: 10833;
|
|
2121
|
+
readonly glucose_measurement: 10776;
|
|
2122
|
+
readonly glucose_measurement_context: 10804;
|
|
2123
|
+
readonly gust_factor: 10868;
|
|
2124
|
+
readonly hardware_revision_string: 10791;
|
|
2125
|
+
readonly heart_rate_control_point: 10809;
|
|
2126
|
+
readonly heart_rate_max: 10893;
|
|
2127
|
+
readonly heart_rate_measurement: 10807;
|
|
2128
|
+
readonly heat_index: 10874;
|
|
2129
|
+
readonly height: 10894;
|
|
2130
|
+
readonly hid_control_point: 10828;
|
|
2131
|
+
readonly hid_information: 10826;
|
|
2132
|
+
readonly hip_circumference: 10895;
|
|
2133
|
+
readonly http_control_point: 10938;
|
|
2134
|
+
readonly http_entity_body: 10937;
|
|
2135
|
+
readonly http_headers: 10935;
|
|
2136
|
+
readonly http_status_code: 10936;
|
|
2137
|
+
readonly https_security: 10939;
|
|
2138
|
+
readonly humidity: 10863;
|
|
2139
|
+
readonly "ieee_11073-20601_regulatory_certification_data_list": 10794;
|
|
2140
|
+
readonly indoor_bike_data: 10962;
|
|
2141
|
+
readonly indoor_positioning_configuration: 10925;
|
|
2142
|
+
readonly intermediate_cuff_pressure: 10806;
|
|
2143
|
+
readonly intermediate_temperature: 10782;
|
|
2144
|
+
readonly irradiance: 10871;
|
|
2145
|
+
readonly language: 10914;
|
|
2146
|
+
readonly last_name: 10896;
|
|
2147
|
+
readonly latitude: 10926;
|
|
2148
|
+
readonly ln_control_point: 10859;
|
|
2149
|
+
readonly ln_feature: 10858;
|
|
2150
|
+
readonly "local_east_coordinate.xml": 10929;
|
|
2151
|
+
readonly local_north_coordinate: 10928;
|
|
2152
|
+
readonly local_time_information: 10767;
|
|
2153
|
+
readonly location_and_speed: 10855;
|
|
2154
|
+
readonly location_name: 10933;
|
|
2155
|
+
readonly longitude: 10927;
|
|
2156
|
+
readonly magnetic_declination: 10796;
|
|
2157
|
+
readonly magnetic_flux_density_2D: 10912;
|
|
2158
|
+
readonly magnetic_flux_density_3D: 10913;
|
|
2159
|
+
readonly manufacturer_name_string: 10793;
|
|
2160
|
+
readonly maximum_recommended_heart_rate: 10897;
|
|
2161
|
+
readonly measurement_interval: 10785;
|
|
2162
|
+
readonly model_number_string: 10788;
|
|
2163
|
+
readonly navigation: 10856;
|
|
2164
|
+
readonly network_availability: 10814;
|
|
2165
|
+
readonly new_alert: 10822;
|
|
2166
|
+
readonly object_action_control_point: 10949;
|
|
2167
|
+
readonly object_changed: 10952;
|
|
2168
|
+
readonly object_first_created: 10945;
|
|
2169
|
+
readonly object_id: 10947;
|
|
2170
|
+
readonly object_last_modified: 10946;
|
|
2171
|
+
readonly object_list_control_point: 10950;
|
|
2172
|
+
readonly object_list_filter: 10951;
|
|
2173
|
+
readonly object_name: 10942;
|
|
2174
|
+
readonly object_properties: 10948;
|
|
2175
|
+
readonly object_size: 10944;
|
|
2176
|
+
readonly object_type: 10943;
|
|
2177
|
+
readonly ots_feature: 10941;
|
|
2178
|
+
readonly plx_continuous_measurement: 10847;
|
|
2179
|
+
readonly plx_features: 10848;
|
|
2180
|
+
readonly plx_spot_check_measurement: 10846;
|
|
2181
|
+
readonly pnp_id: 10832;
|
|
2182
|
+
readonly pollen_concentration: 10869;
|
|
2183
|
+
readonly position_2d: 10799;
|
|
2184
|
+
readonly position_3d: 10800;
|
|
2185
|
+
readonly position_quality: 10857;
|
|
2186
|
+
readonly pressure: 10861;
|
|
2187
|
+
readonly protocol_mode: 10830;
|
|
2188
|
+
readonly pulse_oximetry_control_point: 10850;
|
|
2189
|
+
readonly rainfall: 10872;
|
|
2190
|
+
readonly record_access_control_point: 10834;
|
|
2191
|
+
readonly reference_time_information: 10772;
|
|
2192
|
+
readonly removable: 10810;
|
|
2193
|
+
readonly report: 10829;
|
|
2194
|
+
readonly report_map: 10827;
|
|
2195
|
+
readonly resolvable_private_address_only: 10953;
|
|
2196
|
+
readonly resting_heart_rate: 10898;
|
|
2197
|
+
readonly ringer_control_point: 10816;
|
|
2198
|
+
readonly ringer_setting: 10817;
|
|
2199
|
+
readonly rower_data: 10961;
|
|
2200
|
+
readonly rsc_feature: 10836;
|
|
2201
|
+
readonly rsc_measurement: 10835;
|
|
2202
|
+
readonly sc_control_point: 10837;
|
|
2203
|
+
readonly scan_interval_window: 10831;
|
|
2204
|
+
readonly scan_refresh: 10801;
|
|
2205
|
+
readonly scientific_temperature_celsius: 10812;
|
|
2206
|
+
readonly secondary_time_zone: 10768;
|
|
2207
|
+
readonly sensor_location: 10845;
|
|
2208
|
+
readonly serial_number_string: 10789;
|
|
2209
|
+
readonly service_required: 10811;
|
|
2210
|
+
readonly software_revision_string: 10792;
|
|
2211
|
+
readonly sport_type_for_aerobic_and_anaerobic_thresholds: 10899;
|
|
2212
|
+
readonly stair_climber_data: 10960;
|
|
2213
|
+
readonly step_climber_data: 10959;
|
|
2214
|
+
readonly string: 10813;
|
|
2215
|
+
readonly supported_heart_rate_range: 10967;
|
|
2216
|
+
readonly supported_inclination_range: 10965;
|
|
2217
|
+
readonly supported_new_alert_category: 10823;
|
|
2218
|
+
readonly supported_power_range: 10968;
|
|
2219
|
+
readonly supported_resistance_level_range: 10966;
|
|
2220
|
+
readonly supported_speed_range: 10964;
|
|
2221
|
+
readonly supported_unread_alert_category: 10824;
|
|
2222
|
+
readonly system_id: 10787;
|
|
2223
|
+
readonly tds_control_point: 10940;
|
|
2224
|
+
readonly temperature: 10862;
|
|
2225
|
+
readonly temperature_celsius: 10783;
|
|
2226
|
+
readonly temperature_fahrenheit: 10784;
|
|
2227
|
+
readonly temperature_measurement: 10780;
|
|
2228
|
+
readonly temperature_type: 10781;
|
|
2229
|
+
readonly three_zone_heart_rate_limits: 10900;
|
|
2230
|
+
readonly time_accuracy: 10770;
|
|
2231
|
+
readonly time_broadcast: 10773;
|
|
2232
|
+
readonly time_source: 10771;
|
|
2233
|
+
readonly time_update_control_point: 10774;
|
|
2234
|
+
readonly time_update_state: 10775;
|
|
2235
|
+
readonly time_with_dst: 10769;
|
|
2236
|
+
readonly time_zone: 10766;
|
|
2237
|
+
readonly training_status: 10963;
|
|
2238
|
+
readonly treadmill_data: 10957;
|
|
2239
|
+
readonly true_wind_direction: 10865;
|
|
2240
|
+
readonly true_wind_speed: 10864;
|
|
2241
|
+
readonly two_zone_heart_rate_limit: 10901;
|
|
2242
|
+
readonly tx_power_level: 10759;
|
|
2243
|
+
readonly uncertainty: 10932;
|
|
2244
|
+
readonly unread_alert_status: 10821;
|
|
2245
|
+
readonly uri: 10934;
|
|
2246
|
+
readonly user_control_point: 10911;
|
|
2247
|
+
readonly user_index: 10906;
|
|
2248
|
+
readonly uv_index: 10870;
|
|
2249
|
+
readonly vo2_max: 10902;
|
|
2250
|
+
readonly waist_circumference: 10903;
|
|
2251
|
+
readonly weight: 10904;
|
|
2252
|
+
readonly weight_measurement: 10909;
|
|
2253
|
+
readonly weight_scale_feature: 10910;
|
|
2254
|
+
readonly wind_chill: 10873;
|
|
2255
|
+
}>
|
|
2256
|
+
```
|
|
2257
|
+
|
|
2258
|
+
#### GATT_CHARACTERISTIC_UUID
|
|
2259
|
+
|
|
2260
|
+
<a id="api-gatt-characteristic-uuid"></a>
|
|
2261
|
+
|
|
2262
|
+
```typescript
|
|
2263
|
+
GATT_CHARACTERISTIC_UUID: Readonly<{
|
|
2264
|
+
readonly aerobic_heart_rate_lower_limit: "00002a7e-0000-1000-8000-00805f9b34fb";
|
|
2265
|
+
readonly aerobic_heart_rate_upper_limit: "00002a84-0000-1000-8000-00805f9b34fb";
|
|
2266
|
+
readonly aerobic_threshold: "00002a7f-0000-1000-8000-00805f9b34fb";
|
|
2267
|
+
readonly age: "00002a80-0000-1000-8000-00805f9b34fb";
|
|
2268
|
+
readonly aggregate: "00002a5a-0000-1000-8000-00805f9b34fb";
|
|
2269
|
+
readonly alert_category_id: "00002a43-0000-1000-8000-00805f9b34fb";
|
|
2270
|
+
readonly alert_category_id_bit_mask: "00002a42-0000-1000-8000-00805f9b34fb";
|
|
2271
|
+
readonly alert_level: "00002a06-0000-1000-8000-00805f9b34fb";
|
|
2272
|
+
readonly alert_notification_control_point: "00002a44-0000-1000-8000-00805f9b34fb";
|
|
2273
|
+
readonly alert_status: "00002a3f-0000-1000-8000-00805f9b34fb";
|
|
2274
|
+
readonly altitude: "00002ab3-0000-1000-8000-00805f9b34fb";
|
|
2275
|
+
readonly anaerobic_heart_rate_lower_limit: "00002a81-0000-1000-8000-00805f9b34fb";
|
|
2276
|
+
readonly anaerobic_heart_rate_upper_limit: "00002a82-0000-1000-8000-00805f9b34fb";
|
|
2277
|
+
readonly anaerobic_threshold: "00002a83-0000-1000-8000-00805f9b34fb";
|
|
2278
|
+
readonly analog: "00002a58-0000-1000-8000-00805f9b34fb";
|
|
2279
|
+
readonly analog_output: "00002a59-0000-1000-8000-00805f9b34fb";
|
|
2280
|
+
readonly apparent_wind_direction: "00002a73-0000-1000-8000-00805f9b34fb";
|
|
2281
|
+
readonly apparent_wind_speed: "00002a72-0000-1000-8000-00805f9b34fb";
|
|
2282
|
+
readonly barometric_pressure_trend: "00002aa3-0000-1000-8000-00805f9b34fb";
|
|
2283
|
+
readonly battery_level: "00002a19-0000-1000-8000-00805f9b34fb";
|
|
2284
|
+
readonly battery_level_state: "00002a1b-0000-1000-8000-00805f9b34fb";
|
|
2285
|
+
readonly battery_power_state: "00002a1a-0000-1000-8000-00805f9b34fb";
|
|
2286
|
+
readonly blood_pressure_feature: "00002a49-0000-1000-8000-00805f9b34fb";
|
|
2287
|
+
readonly blood_pressure_measurement: "00002a35-0000-1000-8000-00805f9b34fb";
|
|
2288
|
+
readonly body_composition_feature: "00002a9b-0000-1000-8000-00805f9b34fb";
|
|
2289
|
+
readonly body_composition_measurement: "00002a9c-0000-1000-8000-00805f9b34fb";
|
|
2290
|
+
readonly body_sensor_location: "00002a38-0000-1000-8000-00805f9b34fb";
|
|
2291
|
+
readonly bond_management_control_point: "00002aa4-0000-1000-8000-00805f9b34fb";
|
|
2292
|
+
readonly bond_management_feature: "00002aa5-0000-1000-8000-00805f9b34fb";
|
|
2293
|
+
readonly boot_keyboard_input_report: "00002a22-0000-1000-8000-00805f9b34fb";
|
|
2294
|
+
readonly boot_keyboard_output_report: "00002a32-0000-1000-8000-00805f9b34fb";
|
|
2295
|
+
readonly boot_mouse_input_report: "00002a33-0000-1000-8000-00805f9b34fb";
|
|
2296
|
+
readonly cgm_feature: "00002aa8-0000-1000-8000-00805f9b34fb";
|
|
2297
|
+
readonly cgm_measurement: "00002aa7-0000-1000-8000-00805f9b34fb";
|
|
2298
|
+
readonly cgm_session_run_time: "00002aab-0000-1000-8000-00805f9b34fb";
|
|
2299
|
+
readonly cgm_session_start_time: "00002aaa-0000-1000-8000-00805f9b34fb";
|
|
2300
|
+
readonly cgm_specific_ops_control_point: "00002aac-0000-1000-8000-00805f9b34fb";
|
|
2301
|
+
readonly cgm_status: "00002aa9-0000-1000-8000-00805f9b34fb";
|
|
2302
|
+
readonly cross_trainer_data: "00002ace-0000-1000-8000-00805f9b34fb";
|
|
2303
|
+
readonly csc_feature: "00002a5c-0000-1000-8000-00805f9b34fb";
|
|
2304
|
+
readonly csc_measurement: "00002a5b-0000-1000-8000-00805f9b34fb";
|
|
2305
|
+
readonly current_time: "00002a2b-0000-1000-8000-00805f9b34fb";
|
|
2306
|
+
readonly cycling_power_control_point: "00002a66-0000-1000-8000-00805f9b34fb";
|
|
2307
|
+
readonly cycling_power_feature: "00002a65-0000-1000-8000-00805f9b34fb";
|
|
2308
|
+
readonly cycling_power_measurement: "00002a63-0000-1000-8000-00805f9b34fb";
|
|
2309
|
+
readonly cycling_power_vector: "00002a64-0000-1000-8000-00805f9b34fb";
|
|
2310
|
+
readonly database_change_increment: "00002a99-0000-1000-8000-00805f9b34fb";
|
|
2311
|
+
readonly date_of_birth: "00002a85-0000-1000-8000-00805f9b34fb";
|
|
2312
|
+
readonly date_of_threshold_assessment: "00002a86-0000-1000-8000-00805f9b34fb";
|
|
2313
|
+
readonly date_time: "00002a08-0000-1000-8000-00805f9b34fb";
|
|
2314
|
+
readonly date_utc: "00002aed-0000-1000-8000-00805f9b34fb";
|
|
2315
|
+
readonly day_date_time: "00002a0a-0000-1000-8000-00805f9b34fb";
|
|
2316
|
+
readonly day_of_week: "00002a09-0000-1000-8000-00805f9b34fb";
|
|
2317
|
+
readonly descriptor_value_changed: "00002a7d-0000-1000-8000-00805f9b34fb";
|
|
2318
|
+
readonly dew_point: "00002a7b-0000-1000-8000-00805f9b34fb";
|
|
2319
|
+
readonly digital: "00002a56-0000-1000-8000-00805f9b34fb";
|
|
2320
|
+
readonly digital_output: "00002a57-0000-1000-8000-00805f9b34fb";
|
|
2321
|
+
readonly dst_offset: "00002a0d-0000-1000-8000-00805f9b34fb";
|
|
2322
|
+
readonly elevation: "00002a6c-0000-1000-8000-00805f9b34fb";
|
|
2323
|
+
readonly email_address: "00002a87-0000-1000-8000-00805f9b34fb";
|
|
2324
|
+
readonly exact_time_100: "00002a0b-0000-1000-8000-00805f9b34fb";
|
|
2325
|
+
readonly exact_time_256: "00002a0c-0000-1000-8000-00805f9b34fb";
|
|
2326
|
+
readonly fat_burn_heart_rate_lower_limit: "00002a88-0000-1000-8000-00805f9b34fb";
|
|
2327
|
+
readonly fat_burn_heart_rate_upper_limit: "00002a89-0000-1000-8000-00805f9b34fb";
|
|
2328
|
+
readonly firmware_revision_string: "00002a26-0000-1000-8000-00805f9b34fb";
|
|
2329
|
+
readonly first_name: "00002a8a-0000-1000-8000-00805f9b34fb";
|
|
2330
|
+
readonly fitness_machine_control_point: "00002ad9-0000-1000-8000-00805f9b34fb";
|
|
2331
|
+
readonly fitness_machine_feature: "00002acc-0000-1000-8000-00805f9b34fb";
|
|
2332
|
+
readonly fitness_machine_status: "00002ada-0000-1000-8000-00805f9b34fb";
|
|
2333
|
+
readonly five_zone_heart_rate_limits: "00002a8b-0000-1000-8000-00805f9b34fb";
|
|
2334
|
+
readonly floor_number: "00002ab2-0000-1000-8000-00805f9b34fb";
|
|
2335
|
+
readonly "gap.appearance": "00002a01-0000-1000-8000-00805f9b34fb";
|
|
2336
|
+
readonly "gap.central_address_resolution_support": "00002aa6-0000-1000-8000-00805f9b34fb";
|
|
2337
|
+
readonly "gap.device_name": "00002a00-0000-1000-8000-00805f9b34fb";
|
|
2338
|
+
readonly "gap.peripheral_preferred_connection_parameters": "00002a04-0000-1000-8000-00805f9b34fb";
|
|
2339
|
+
readonly "gap.peripheral_privacy_flag": "00002a02-0000-1000-8000-00805f9b34fb";
|
|
2340
|
+
readonly "gap.reconnection_address": "00002a03-0000-1000-8000-00805f9b34fb";
|
|
2341
|
+
readonly "gatt.service_changed": "00002a05-0000-1000-8000-00805f9b34fb";
|
|
2342
|
+
readonly gender: "00002a8c-0000-1000-8000-00805f9b34fb";
|
|
2343
|
+
readonly glucose_feature: "00002a51-0000-1000-8000-00805f9b34fb";
|
|
2344
|
+
readonly glucose_measurement: "00002a18-0000-1000-8000-00805f9b34fb";
|
|
2345
|
+
readonly glucose_measurement_context: "00002a34-0000-1000-8000-00805f9b34fb";
|
|
2346
|
+
readonly gust_factor: "00002a74-0000-1000-8000-00805f9b34fb";
|
|
2347
|
+
readonly hardware_revision_string: "00002a27-0000-1000-8000-00805f9b34fb";
|
|
2348
|
+
readonly heart_rate_control_point: "00002a39-0000-1000-8000-00805f9b34fb";
|
|
2349
|
+
readonly heart_rate_max: "00002a8d-0000-1000-8000-00805f9b34fb";
|
|
2350
|
+
readonly heart_rate_measurement: "00002a37-0000-1000-8000-00805f9b34fb";
|
|
2351
|
+
readonly heat_index: "00002a7a-0000-1000-8000-00805f9b34fb";
|
|
2352
|
+
readonly height: "00002a8e-0000-1000-8000-00805f9b34fb";
|
|
2353
|
+
readonly hid_control_point: "00002a4c-0000-1000-8000-00805f9b34fb";
|
|
2354
|
+
readonly hid_information: "00002a4a-0000-1000-8000-00805f9b34fb";
|
|
2355
|
+
readonly hip_circumference: "00002a8f-0000-1000-8000-00805f9b34fb";
|
|
2356
|
+
readonly http_control_point: "00002aba-0000-1000-8000-00805f9b34fb";
|
|
2357
|
+
readonly http_entity_body: "00002ab9-0000-1000-8000-00805f9b34fb";
|
|
2358
|
+
readonly http_headers: "00002ab7-0000-1000-8000-00805f9b34fb";
|
|
2359
|
+
readonly http_status_code: "00002ab8-0000-1000-8000-00805f9b34fb";
|
|
2360
|
+
readonly https_security: "00002abb-0000-1000-8000-00805f9b34fb";
|
|
2361
|
+
readonly humidity: "00002a6f-0000-1000-8000-00805f9b34fb";
|
|
2362
|
+
readonly "ieee_11073-20601_regulatory_certification_data_list": "00002a2a-0000-1000-8000-00805f9b34fb";
|
|
2363
|
+
readonly indoor_bike_data: "00002ad2-0000-1000-8000-00805f9b34fb";
|
|
2364
|
+
readonly indoor_positioning_configuration: "00002aad-0000-1000-8000-00805f9b34fb";
|
|
2365
|
+
readonly intermediate_cuff_pressure: "00002a36-0000-1000-8000-00805f9b34fb";
|
|
2366
|
+
readonly intermediate_temperature: "00002a1e-0000-1000-8000-00805f9b34fb";
|
|
2367
|
+
readonly irradiance: "00002a77-0000-1000-8000-00805f9b34fb";
|
|
2368
|
+
readonly language: "00002aa2-0000-1000-8000-00805f9b34fb";
|
|
2369
|
+
readonly last_name: "00002a90-0000-1000-8000-00805f9b34fb";
|
|
2370
|
+
readonly latitude: "00002aae-0000-1000-8000-00805f9b34fb";
|
|
2371
|
+
readonly ln_control_point: "00002a6b-0000-1000-8000-00805f9b34fb";
|
|
2372
|
+
readonly ln_feature: "00002a6a-0000-1000-8000-00805f9b34fb";
|
|
2373
|
+
readonly "local_east_coordinate.xml": "00002ab1-0000-1000-8000-00805f9b34fb";
|
|
2374
|
+
readonly local_north_coordinate: "00002ab0-0000-1000-8000-00805f9b34fb";
|
|
2375
|
+
readonly local_time_information: "00002a0f-0000-1000-8000-00805f9b34fb";
|
|
2376
|
+
readonly location_and_speed: "00002a67-0000-1000-8000-00805f9b34fb";
|
|
2377
|
+
readonly location_name: "00002ab5-0000-1000-8000-00805f9b34fb";
|
|
2378
|
+
readonly longitude: "00002aaf-0000-1000-8000-00805f9b34fb";
|
|
2379
|
+
readonly magnetic_declination: "00002a2c-0000-1000-8000-00805f9b34fb";
|
|
2380
|
+
readonly magnetic_flux_density_2D: "00002aa0-0000-1000-8000-00805f9b34fb";
|
|
2381
|
+
readonly magnetic_flux_density_3D: "00002aa1-0000-1000-8000-00805f9b34fb";
|
|
2382
|
+
readonly manufacturer_name_string: "00002a29-0000-1000-8000-00805f9b34fb";
|
|
2383
|
+
readonly maximum_recommended_heart_rate: "00002a91-0000-1000-8000-00805f9b34fb";
|
|
2384
|
+
readonly measurement_interval: "00002a21-0000-1000-8000-00805f9b34fb";
|
|
2385
|
+
readonly model_number_string: "00002a24-0000-1000-8000-00805f9b34fb";
|
|
2386
|
+
readonly navigation: "00002a68-0000-1000-8000-00805f9b34fb";
|
|
2387
|
+
readonly network_availability: "00002a3e-0000-1000-8000-00805f9b34fb";
|
|
2388
|
+
readonly new_alert: "00002a46-0000-1000-8000-00805f9b34fb";
|
|
2389
|
+
readonly object_action_control_point: "00002ac5-0000-1000-8000-00805f9b34fb";
|
|
2390
|
+
readonly object_changed: "00002ac8-0000-1000-8000-00805f9b34fb";
|
|
2391
|
+
readonly object_first_created: "00002ac1-0000-1000-8000-00805f9b34fb";
|
|
2392
|
+
readonly object_id: "00002ac3-0000-1000-8000-00805f9b34fb";
|
|
2393
|
+
readonly object_last_modified: "00002ac2-0000-1000-8000-00805f9b34fb";
|
|
2394
|
+
readonly object_list_control_point: "00002ac6-0000-1000-8000-00805f9b34fb";
|
|
2395
|
+
readonly object_list_filter: "00002ac7-0000-1000-8000-00805f9b34fb";
|
|
2396
|
+
readonly object_name: "00002abe-0000-1000-8000-00805f9b34fb";
|
|
2397
|
+
readonly object_properties: "00002ac4-0000-1000-8000-00805f9b34fb";
|
|
2398
|
+
readonly object_size: "00002ac0-0000-1000-8000-00805f9b34fb";
|
|
2399
|
+
readonly object_type: "00002abf-0000-1000-8000-00805f9b34fb";
|
|
2400
|
+
readonly ots_feature: "00002abd-0000-1000-8000-00805f9b34fb";
|
|
2401
|
+
readonly plx_continuous_measurement: "00002a5f-0000-1000-8000-00805f9b34fb";
|
|
2402
|
+
readonly plx_features: "00002a60-0000-1000-8000-00805f9b34fb";
|
|
2403
|
+
readonly plx_spot_check_measurement: "00002a5e-0000-1000-8000-00805f9b34fb";
|
|
2404
|
+
readonly pnp_id: "00002a50-0000-1000-8000-00805f9b34fb";
|
|
2405
|
+
readonly pollen_concentration: "00002a75-0000-1000-8000-00805f9b34fb";
|
|
2406
|
+
readonly position_2d: "00002a2f-0000-1000-8000-00805f9b34fb";
|
|
2407
|
+
readonly position_3d: "00002a30-0000-1000-8000-00805f9b34fb";
|
|
2408
|
+
readonly position_quality: "00002a69-0000-1000-8000-00805f9b34fb";
|
|
2409
|
+
readonly pressure: "00002a6d-0000-1000-8000-00805f9b34fb";
|
|
2410
|
+
readonly protocol_mode: "00002a4e-0000-1000-8000-00805f9b34fb";
|
|
2411
|
+
readonly pulse_oximetry_control_point: "00002a62-0000-1000-8000-00805f9b34fb";
|
|
2412
|
+
readonly rainfall: "00002a78-0000-1000-8000-00805f9b34fb";
|
|
2413
|
+
readonly record_access_control_point: "00002a52-0000-1000-8000-00805f9b34fb";
|
|
2414
|
+
readonly reference_time_information: "00002a14-0000-1000-8000-00805f9b34fb";
|
|
2415
|
+
readonly removable: "00002a3a-0000-1000-8000-00805f9b34fb";
|
|
2416
|
+
readonly report: "00002a4d-0000-1000-8000-00805f9b34fb";
|
|
2417
|
+
readonly report_map: "00002a4b-0000-1000-8000-00805f9b34fb";
|
|
2418
|
+
readonly resolvable_private_address_only: "00002ac9-0000-1000-8000-00805f9b34fb";
|
|
2419
|
+
readonly resting_heart_rate: "00002a92-0000-1000-8000-00805f9b34fb";
|
|
2420
|
+
readonly ringer_control_point: "00002a40-0000-1000-8000-00805f9b34fb";
|
|
2421
|
+
readonly ringer_setting: "00002a41-0000-1000-8000-00805f9b34fb";
|
|
2422
|
+
readonly rower_data: "00002ad1-0000-1000-8000-00805f9b34fb";
|
|
2423
|
+
readonly rsc_feature: "00002a54-0000-1000-8000-00805f9b34fb";
|
|
2424
|
+
readonly rsc_measurement: "00002a53-0000-1000-8000-00805f9b34fb";
|
|
2425
|
+
readonly sc_control_point: "00002a55-0000-1000-8000-00805f9b34fb";
|
|
2426
|
+
readonly scan_interval_window: "00002a4f-0000-1000-8000-00805f9b34fb";
|
|
2427
|
+
readonly scan_refresh: "00002a31-0000-1000-8000-00805f9b34fb";
|
|
2428
|
+
readonly scientific_temperature_celsius: "00002a3c-0000-1000-8000-00805f9b34fb";
|
|
2429
|
+
readonly secondary_time_zone: "00002a10-0000-1000-8000-00805f9b34fb";
|
|
2430
|
+
readonly sensor_location: "00002a5d-0000-1000-8000-00805f9b34fb";
|
|
2431
|
+
readonly serial_number_string: "00002a25-0000-1000-8000-00805f9b34fb";
|
|
2432
|
+
readonly service_required: "00002a3b-0000-1000-8000-00805f9b34fb";
|
|
2433
|
+
readonly software_revision_string: "00002a28-0000-1000-8000-00805f9b34fb";
|
|
2434
|
+
readonly sport_type_for_aerobic_and_anaerobic_thresholds: "00002a93-0000-1000-8000-00805f9b34fb";
|
|
2435
|
+
readonly stair_climber_data: "00002ad0-0000-1000-8000-00805f9b34fb";
|
|
2436
|
+
readonly step_climber_data: "00002acf-0000-1000-8000-00805f9b34fb";
|
|
2437
|
+
readonly string: "00002a3d-0000-1000-8000-00805f9b34fb";
|
|
2438
|
+
readonly supported_heart_rate_range: "00002ad7-0000-1000-8000-00805f9b34fb";
|
|
2439
|
+
readonly supported_inclination_range: "00002ad5-0000-1000-8000-00805f9b34fb";
|
|
2440
|
+
readonly supported_new_alert_category: "00002a47-0000-1000-8000-00805f9b34fb";
|
|
2441
|
+
readonly supported_power_range: "00002ad8-0000-1000-8000-00805f9b34fb";
|
|
2442
|
+
readonly supported_resistance_level_range: "00002ad6-0000-1000-8000-00805f9b34fb";
|
|
2443
|
+
readonly supported_speed_range: "00002ad4-0000-1000-8000-00805f9b34fb";
|
|
2444
|
+
readonly supported_unread_alert_category: "00002a48-0000-1000-8000-00805f9b34fb";
|
|
2445
|
+
readonly system_id: "00002a23-0000-1000-8000-00805f9b34fb";
|
|
2446
|
+
readonly tds_control_point: "00002abc-0000-1000-8000-00805f9b34fb";
|
|
2447
|
+
readonly temperature: "00002a6e-0000-1000-8000-00805f9b34fb";
|
|
2448
|
+
readonly temperature_celsius: "00002a1f-0000-1000-8000-00805f9b34fb";
|
|
2449
|
+
readonly temperature_fahrenheit: "00002a20-0000-1000-8000-00805f9b34fb";
|
|
2450
|
+
readonly temperature_measurement: "00002a1c-0000-1000-8000-00805f9b34fb";
|
|
2451
|
+
readonly temperature_type: "00002a1d-0000-1000-8000-00805f9b34fb";
|
|
2452
|
+
readonly three_zone_heart_rate_limits: "00002a94-0000-1000-8000-00805f9b34fb";
|
|
2453
|
+
readonly time_accuracy: "00002a12-0000-1000-8000-00805f9b34fb";
|
|
2454
|
+
readonly time_broadcast: "00002a15-0000-1000-8000-00805f9b34fb";
|
|
2455
|
+
readonly time_source: "00002a13-0000-1000-8000-00805f9b34fb";
|
|
2456
|
+
readonly time_update_control_point: "00002a16-0000-1000-8000-00805f9b34fb";
|
|
2457
|
+
readonly time_update_state: "00002a17-0000-1000-8000-00805f9b34fb";
|
|
2458
|
+
readonly time_with_dst: "00002a11-0000-1000-8000-00805f9b34fb";
|
|
2459
|
+
readonly time_zone: "00002a0e-0000-1000-8000-00805f9b34fb";
|
|
2460
|
+
readonly training_status: "00002ad3-0000-1000-8000-00805f9b34fb";
|
|
2461
|
+
readonly treadmill_data: "00002acd-0000-1000-8000-00805f9b34fb";
|
|
2462
|
+
readonly true_wind_direction: "00002a71-0000-1000-8000-00805f9b34fb";
|
|
2463
|
+
readonly true_wind_speed: "00002a70-0000-1000-8000-00805f9b34fb";
|
|
2464
|
+
readonly two_zone_heart_rate_limit: "00002a95-0000-1000-8000-00805f9b34fb";
|
|
2465
|
+
readonly tx_power_level: "00002a07-0000-1000-8000-00805f9b34fb";
|
|
2466
|
+
readonly uncertainty: "00002ab4-0000-1000-8000-00805f9b34fb";
|
|
2467
|
+
readonly unread_alert_status: "00002a45-0000-1000-8000-00805f9b34fb";
|
|
2468
|
+
readonly uri: "00002ab6-0000-1000-8000-00805f9b34fb";
|
|
2469
|
+
readonly user_control_point: "00002a9f-0000-1000-8000-00805f9b34fb";
|
|
2470
|
+
readonly user_index: "00002a9a-0000-1000-8000-00805f9b34fb";
|
|
2471
|
+
readonly uv_index: "00002a76-0000-1000-8000-00805f9b34fb";
|
|
2472
|
+
readonly vo2_max: "00002a96-0000-1000-8000-00805f9b34fb";
|
|
2473
|
+
readonly waist_circumference: "00002a97-0000-1000-8000-00805f9b34fb";
|
|
2474
|
+
readonly weight: "00002a98-0000-1000-8000-00805f9b34fb";
|
|
2475
|
+
readonly weight_measurement: "00002a9d-0000-1000-8000-00805f9b34fb";
|
|
2476
|
+
readonly weight_scale_feature: "00002a9e-0000-1000-8000-00805f9b34fb";
|
|
2477
|
+
readonly wind_chill: "00002a79-0000-1000-8000-00805f9b34fb";
|
|
2478
|
+
}>
|
|
2479
|
+
```
|
|
2480
|
+
|
|
2481
|
+
#### GATT_DESCRIPTOR_ID
|
|
2482
|
+
|
|
2483
|
+
<a id="api-gatt-descriptor-id"></a>
|
|
2484
|
+
|
|
2485
|
+
```typescript
|
|
2486
|
+
GATT_DESCRIPTOR_ID: Readonly<{
|
|
2487
|
+
readonly es_configuration: 10507;
|
|
2488
|
+
readonly es_measurement: 10508;
|
|
2489
|
+
readonly es_trigger_setting: 10509;
|
|
2490
|
+
readonly external_report_reference: 10503;
|
|
2491
|
+
readonly "gatt.characteristic_aggregate_format": 10501;
|
|
2492
|
+
readonly "gatt.characteristic_extended_properties": 10496;
|
|
2493
|
+
readonly "gatt.characteristic_presentation_format": 10500;
|
|
2494
|
+
readonly "gatt.characteristic_user_description": 10497;
|
|
2495
|
+
readonly "gatt.client_characteristic_configuration": 10498;
|
|
2496
|
+
readonly "gatt.server_characteristic_configuration": 10499;
|
|
2497
|
+
readonly number_of_digitals: 10505;
|
|
2498
|
+
readonly report_reference: 10504;
|
|
2499
|
+
readonly time_trigger_setting: 10510;
|
|
2500
|
+
readonly valid_range: 10502;
|
|
2501
|
+
readonly value_trigger_setting: 10506;
|
|
2502
|
+
}>
|
|
2503
|
+
```
|
|
2504
|
+
|
|
2505
|
+
#### GATT_DESCRIPTOR_UUID
|
|
2506
|
+
|
|
2507
|
+
<a id="api-gatt-descriptor-uuid"></a>
|
|
2508
|
+
|
|
2509
|
+
```typescript
|
|
2510
|
+
GATT_DESCRIPTOR_UUID: Readonly<{
|
|
2511
|
+
readonly es_configuration: "0000290b-0000-1000-8000-00805f9b34fb";
|
|
2512
|
+
readonly es_measurement: "0000290c-0000-1000-8000-00805f9b34fb";
|
|
2513
|
+
readonly es_trigger_setting: "0000290d-0000-1000-8000-00805f9b34fb";
|
|
2514
|
+
readonly external_report_reference: "00002907-0000-1000-8000-00805f9b34fb";
|
|
2515
|
+
readonly "gatt.characteristic_aggregate_format": "00002905-0000-1000-8000-00805f9b34fb";
|
|
2516
|
+
readonly "gatt.characteristic_extended_properties": "00002900-0000-1000-8000-00805f9b34fb";
|
|
2517
|
+
readonly "gatt.characteristic_presentation_format": "00002904-0000-1000-8000-00805f9b34fb";
|
|
2518
|
+
readonly "gatt.characteristic_user_description": "00002901-0000-1000-8000-00805f9b34fb";
|
|
2519
|
+
readonly "gatt.client_characteristic_configuration": "00002902-0000-1000-8000-00805f9b34fb";
|
|
2520
|
+
readonly "gatt.server_characteristic_configuration": "00002903-0000-1000-8000-00805f9b34fb";
|
|
2521
|
+
readonly number_of_digitals: "00002909-0000-1000-8000-00805f9b34fb";
|
|
2522
|
+
readonly report_reference: "00002908-0000-1000-8000-00805f9b34fb";
|
|
2523
|
+
readonly time_trigger_setting: "0000290e-0000-1000-8000-00805f9b34fb";
|
|
2524
|
+
readonly valid_range: "00002906-0000-1000-8000-00805f9b34fb";
|
|
2525
|
+
readonly value_trigger_setting: "0000290a-0000-1000-8000-00805f9b34fb";
|
|
2526
|
+
}>
|
|
2527
|
+
```
|
|
2528
|
+
|
|
2529
|
+
#### GATT_SERVICE_ID
|
|
2530
|
+
|
|
2531
|
+
<a id="api-gatt-service-id"></a>
|
|
2532
|
+
|
|
2533
|
+
```typescript
|
|
2534
|
+
GATT_SERVICE_ID: Readonly<{
|
|
2535
|
+
readonly alert_notification: 6161;
|
|
2536
|
+
readonly automation_io: 6165;
|
|
2537
|
+
readonly battery_service: 6159;
|
|
2538
|
+
readonly blood_pressure: 6160;
|
|
2539
|
+
readonly body_composition: 6171;
|
|
2540
|
+
readonly bond_management: 6174;
|
|
2541
|
+
readonly continuous_glucose_monitoring: 6175;
|
|
2542
|
+
readonly current_time: 6149;
|
|
2543
|
+
readonly cycling_power: 6168;
|
|
2544
|
+
readonly cycling_speed_and_cadence: 6166;
|
|
2545
|
+
readonly device_information: 6154;
|
|
2546
|
+
readonly environmental_sensing: 6170;
|
|
2547
|
+
readonly fitness_machine: 6182;
|
|
2548
|
+
readonly generic_access: 6144;
|
|
2549
|
+
readonly generic_attribute: 6145;
|
|
2550
|
+
readonly glucose: 6152;
|
|
2551
|
+
readonly health_thermometer: 6153;
|
|
2552
|
+
readonly heart_rate: 6157;
|
|
2553
|
+
readonly http_proxy: 6179;
|
|
2554
|
+
readonly human_interface_device: 6162;
|
|
2555
|
+
readonly immediate_alert: 6146;
|
|
2556
|
+
readonly indoor_positioning: 6177;
|
|
2557
|
+
readonly internet_protocol_support: 6176;
|
|
2558
|
+
readonly link_loss: 6147;
|
|
2559
|
+
readonly location_and_navigation: 6169;
|
|
2560
|
+
readonly mesh_provisioning: 6183;
|
|
2561
|
+
readonly mesh_proxy: 6184;
|
|
2562
|
+
readonly next_dst_change: 6151;
|
|
2563
|
+
readonly object_transfer: 6181;
|
|
2564
|
+
readonly phone_alert_status: 6158;
|
|
2565
|
+
readonly pulse_oximeter: 6178;
|
|
2566
|
+
readonly reconnection_configuration: 6185;
|
|
2567
|
+
readonly reference_time_update: 6150;
|
|
2568
|
+
readonly running_speed_and_cadence: 6164;
|
|
2569
|
+
readonly scan_parameters: 6163;
|
|
2570
|
+
readonly transport_discovery: 6180;
|
|
2571
|
+
readonly tx_power: 6148;
|
|
2572
|
+
readonly user_data: 6172;
|
|
2573
|
+
readonly weight_scale: 6173;
|
|
2574
|
+
}>
|
|
2575
|
+
```
|
|
2576
|
+
|
|
2577
|
+
#### GATT_SERVICE_UUID
|
|
2578
|
+
|
|
2579
|
+
<a id="api-gatt-service-uuid"></a>
|
|
2580
|
+
|
|
2581
|
+
```typescript
|
|
2582
|
+
GATT_SERVICE_UUID: Readonly<{
|
|
2583
|
+
readonly alert_notification: "00001811-0000-1000-8000-00805f9b34fb";
|
|
2584
|
+
readonly automation_io: "00001815-0000-1000-8000-00805f9b34fb";
|
|
2585
|
+
readonly battery_service: "0000180f-0000-1000-8000-00805f9b34fb";
|
|
2586
|
+
readonly blood_pressure: "00001810-0000-1000-8000-00805f9b34fb";
|
|
2587
|
+
readonly body_composition: "0000181b-0000-1000-8000-00805f9b34fb";
|
|
2588
|
+
readonly bond_management: "0000181e-0000-1000-8000-00805f9b34fb";
|
|
2589
|
+
readonly continuous_glucose_monitoring: "0000181f-0000-1000-8000-00805f9b34fb";
|
|
2590
|
+
readonly current_time: "00001805-0000-1000-8000-00805f9b34fb";
|
|
2591
|
+
readonly cycling_power: "00001818-0000-1000-8000-00805f9b34fb";
|
|
2592
|
+
readonly cycling_speed_and_cadence: "00001816-0000-1000-8000-00805f9b34fb";
|
|
2593
|
+
readonly device_information: "0000180a-0000-1000-8000-00805f9b34fb";
|
|
2594
|
+
readonly environmental_sensing: "0000181a-0000-1000-8000-00805f9b34fb";
|
|
2595
|
+
readonly fitness_machine: "00001826-0000-1000-8000-00805f9b34fb";
|
|
2596
|
+
readonly generic_access: "00001800-0000-1000-8000-00805f9b34fb";
|
|
2597
|
+
readonly generic_attribute: "00001801-0000-1000-8000-00805f9b34fb";
|
|
2598
|
+
readonly glucose: "00001808-0000-1000-8000-00805f9b34fb";
|
|
2599
|
+
readonly health_thermometer: "00001809-0000-1000-8000-00805f9b34fb";
|
|
2600
|
+
readonly heart_rate: "0000180d-0000-1000-8000-00805f9b34fb";
|
|
2601
|
+
readonly http_proxy: "00001823-0000-1000-8000-00805f9b34fb";
|
|
2602
|
+
readonly human_interface_device: "00001812-0000-1000-8000-00805f9b34fb";
|
|
2603
|
+
readonly immediate_alert: "00001802-0000-1000-8000-00805f9b34fb";
|
|
2604
|
+
readonly indoor_positioning: "00001821-0000-1000-8000-00805f9b34fb";
|
|
2605
|
+
readonly internet_protocol_support: "00001820-0000-1000-8000-00805f9b34fb";
|
|
2606
|
+
readonly link_loss: "00001803-0000-1000-8000-00805f9b34fb";
|
|
2607
|
+
readonly location_and_navigation: "00001819-0000-1000-8000-00805f9b34fb";
|
|
2608
|
+
readonly mesh_provisioning: "00001827-0000-1000-8000-00805f9b34fb";
|
|
2609
|
+
readonly mesh_proxy: "00001828-0000-1000-8000-00805f9b34fb";
|
|
2610
|
+
readonly next_dst_change: "00001807-0000-1000-8000-00805f9b34fb";
|
|
2611
|
+
readonly object_transfer: "00001825-0000-1000-8000-00805f9b34fb";
|
|
2612
|
+
readonly phone_alert_status: "0000180e-0000-1000-8000-00805f9b34fb";
|
|
2613
|
+
readonly pulse_oximeter: "00001822-0000-1000-8000-00805f9b34fb";
|
|
2614
|
+
readonly reconnection_configuration: "00001829-0000-1000-8000-00805f9b34fb";
|
|
2615
|
+
readonly reference_time_update: "00001806-0000-1000-8000-00805f9b34fb";
|
|
2616
|
+
readonly running_speed_and_cadence: "00001814-0000-1000-8000-00805f9b34fb";
|
|
2617
|
+
readonly scan_parameters: "00001813-0000-1000-8000-00805f9b34fb";
|
|
2618
|
+
readonly transport_discovery: "00001824-0000-1000-8000-00805f9b34fb";
|
|
2619
|
+
readonly tx_power: "00001804-0000-1000-8000-00805f9b34fb";
|
|
2620
|
+
readonly user_data: "0000181c-0000-1000-8000-00805f9b34fb";
|
|
2621
|
+
readonly weight_scale: "0000181d-0000-1000-8000-00805f9b34fb";
|
|
2622
|
+
}>
|
|
2623
|
+
```
|
|
2624
|
+
|