@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/heart-rate.cjs
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var heart_rate_exports = {};
|
|
21
|
+
__export(heart_rate_exports, {
|
|
22
|
+
parseHeartRate: () => parseHeartRate
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(heart_rate_exports);
|
|
25
|
+
var import_data_view_from_hex = require("./data-view-from-hex.cjs");
|
|
26
|
+
const parseHeartRate = /* @__PURE__ */ __name((viewOrHex) => {
|
|
27
|
+
const reading = typeof viewOrHex === "string" ? (0, import_data_view_from_hex.dataViewFromHex)(viewOrHex) : viewOrHex;
|
|
28
|
+
const flags = reading.getUint8(0);
|
|
29
|
+
const rateBytes = !!(flags & 1) ? 2 : 1;
|
|
30
|
+
let index = 1;
|
|
31
|
+
const bpm = rateBytes === 1 ? reading.getUint8(index) : reading.getUint16(index, true);
|
|
32
|
+
index += rateBytes;
|
|
33
|
+
const sensorContact = (flags & 6) >> 1;
|
|
34
|
+
const energyExpendedPresent = !!(flags & 8);
|
|
35
|
+
let expendedJ;
|
|
36
|
+
if (energyExpendedPresent) {
|
|
37
|
+
expendedJ = reading.getUint16(index, true);
|
|
38
|
+
index += 2;
|
|
39
|
+
}
|
|
40
|
+
const rrPresent = !!(flags & 16);
|
|
41
|
+
let rrInterval;
|
|
42
|
+
if (rrPresent) {
|
|
43
|
+
rrInterval = [];
|
|
44
|
+
for (; index + 1 < reading.byteLength; index += 2) {
|
|
45
|
+
rrInterval.push(reading.getUint16(index, true));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const reserved = flags & 224;
|
|
49
|
+
return {
|
|
50
|
+
bpm,
|
|
51
|
+
flags,
|
|
52
|
+
sensorContact,
|
|
53
|
+
...expendedJ == null ? {} : { expendedJ },
|
|
54
|
+
...reserved === 0 ? {} : { reserved },
|
|
55
|
+
...rrInterval == null ? {} : { rrInterval }
|
|
56
|
+
};
|
|
57
|
+
}, "parseHeartRate");
|
|
58
|
+
//# sourceMappingURL=heart-rate.cjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/packages/bluetools/heart-rate.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAAgC;AAOzB,MAAM,iBAAiB,wBAAC,cAAuD;AACrF,QAAM,UAAoB,OAAO,cAAc,eAAW,2CAAgB,SAAS,IAAI;AACvF,QAAM,QAAQ,QAAQ,SAAS,CAAC;AAChC,QAAM,YAAY,CAAC,EAAE,QAAQ,KAAe,IAAI;AAChD,MAAI,QAAQ;AACZ,QAAM,MAAM,cAAc,IAAI,QAAQ,SAAS,KAAK,IAAI,QAAQ,UAAU,OAAO,IAAI;AACrF,WAAS;AACT,QAAM,iBAAiB,QAAQ,MAAgB;AAC/C,QAAM,wBAAwB,CAAC,EAAE,QAAQ;AACzC,MAAI;AACJ,MAAI,uBAAuB;AAC1B,gBAAY,QAAQ,UAAU,OAAO,IAAI;AACzC,aAAS;AAAA,EACV;AACA,QAAM,YAAY,CAAC,EAAE,QAAQ;AAC7B,MAAI;AACJ,MAAI,WAAW;AACd,iBAAa,CAAC;AACd,WAAO,QAAQ,IAAI,QAAQ,YAAY,SAAS,GAAG;AAClD,iBAAW,KAAK,QAAQ,UAAU,OAAO,IAAI,CAAC;AAAA,IAC/C;AAAA,EACD;AACA,QAAM,WAAW,QAAQ;AACzB,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAI,aAAa,OAAO,CAAC,IAAI,EAAE,UAAU;AAAA,IACzC,GAAI,aAAa,IAAI,CAAC,IAAI,EAAE,SAAS;AAAA,IACrC,GAAI,cAAc,OAAO,CAAC,IAAI,EAAE,WAAW;AAAA,EAC5C;AACD,GA/B8B;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/heart-rate.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { HeartRateMeasurement } from "./heart-rate-measurement.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see {@link https://github.com/oesmith/gatt-xml/blob/master/org.bluetooth.characteristic.heart_rate_measurement.xml}
|
|
4
|
+
* @see {@link https://github.com/WebBluetoothCG/demos/blob/gh-pages/heart-rate-sensor/heartRateSensor.js}
|
|
5
|
+
*/
|
|
6
|
+
export declare const parseHeartRate: (viewOrHex: DataView | string) => HeartRateMeasurement;
|
|
7
|
+
//# sourceMappingURL=heart-rate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heart-rate.d.ts","sourceRoot":"","sources":["../../../src/packages/bluetools/heart-rate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,cAAc,cAAe,QAAQ,GAAG,MAAM,KAAG,oBA+B7D,CAAC"}
|
package/heart-rate.mjs
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { dataViewFromHex } from "./data-view-from-hex.mjs";
|
|
4
|
+
const parseHeartRate = /* @__PURE__ */ __name((viewOrHex) => {
|
|
5
|
+
const reading = typeof viewOrHex === "string" ? dataViewFromHex(viewOrHex) : viewOrHex;
|
|
6
|
+
const flags = reading.getUint8(0);
|
|
7
|
+
const rateBytes = !!(flags & 1) ? 2 : 1;
|
|
8
|
+
let index = 1;
|
|
9
|
+
const bpm = rateBytes === 1 ? reading.getUint8(index) : reading.getUint16(index, true);
|
|
10
|
+
index += rateBytes;
|
|
11
|
+
const sensorContact = (flags & 6) >> 1;
|
|
12
|
+
const energyExpendedPresent = !!(flags & 8);
|
|
13
|
+
let expendedJ;
|
|
14
|
+
if (energyExpendedPresent) {
|
|
15
|
+
expendedJ = reading.getUint16(index, true);
|
|
16
|
+
index += 2;
|
|
17
|
+
}
|
|
18
|
+
const rrPresent = !!(flags & 16);
|
|
19
|
+
let rrInterval;
|
|
20
|
+
if (rrPresent) {
|
|
21
|
+
rrInterval = [];
|
|
22
|
+
for (; index + 1 < reading.byteLength; index += 2) {
|
|
23
|
+
rrInterval.push(reading.getUint16(index, true));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const reserved = flags & 224;
|
|
27
|
+
return {
|
|
28
|
+
bpm,
|
|
29
|
+
flags,
|
|
30
|
+
sensorContact,
|
|
31
|
+
...expendedJ == null ? {} : { expendedJ },
|
|
32
|
+
...reserved === 0 ? {} : { reserved },
|
|
33
|
+
...rrInterval == null ? {} : { rrInterval }
|
|
34
|
+
};
|
|
35
|
+
}, "parseHeartRate");
|
|
36
|
+
export {
|
|
37
|
+
parseHeartRate
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=heart-rate.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/packages/bluetools/heart-rate.ts"],
|
|
4
|
+
"mappings": ";;AAAA,SAAS,uBAAuB;AAOzB,MAAM,iBAAiB,wBAAC,cAAuD;AACrF,QAAM,UAAoB,OAAO,cAAc,WAAW,gBAAgB,SAAS,IAAI;AACvF,QAAM,QAAQ,QAAQ,SAAS,CAAC;AAChC,QAAM,YAAY,CAAC,EAAE,QAAQ,KAAe,IAAI;AAChD,MAAI,QAAQ;AACZ,QAAM,MAAM,cAAc,IAAI,QAAQ,SAAS,KAAK,IAAI,QAAQ,UAAU,OAAO,IAAI;AACrF,WAAS;AACT,QAAM,iBAAiB,QAAQ,MAAgB;AAC/C,QAAM,wBAAwB,CAAC,EAAE,QAAQ;AACzC,MAAI;AACJ,MAAI,uBAAuB;AAC1B,gBAAY,QAAQ,UAAU,OAAO,IAAI;AACzC,aAAS;AAAA,EACV;AACA,QAAM,YAAY,CAAC,EAAE,QAAQ;AAC7B,MAAI;AACJ,MAAI,WAAW;AACd,iBAAa,CAAC;AACd,WAAO,QAAQ,IAAI,QAAQ,YAAY,SAAS,GAAG;AAClD,iBAAW,KAAK,QAAQ,UAAU,OAAO,IAAI,CAAC;AAAA,IAC/C;AAAA,EACD;AACA,QAAM,WAAW,QAAQ;AACzB,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAI,aAAa,OAAO,CAAC,IAAI,EAAE,UAAU;AAAA,IACzC,GAAI,aAAa,IAAI,CAAC,IAAI,EAAE,SAAS;AAAA,IACrC,GAAI,cAAc,OAAO,CAAC,IAAI,EAAE,WAAW;AAAA,EAC5C;AACD,GA/B8B;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/index.cjs
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var index_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(index_exports);
|
|
18
|
+
__reExport(index_exports, require("./assigned.cjs"), module.exports);
|
|
19
|
+
__reExport(index_exports, require("./battery-level.cjs"), module.exports);
|
|
20
|
+
__reExport(index_exports, require("./cross-trainer-data.cjs"), module.exports);
|
|
21
|
+
__reExport(index_exports, require("./csc-feature.cjs"), module.exports);
|
|
22
|
+
__reExport(index_exports, require("./csc-measurement.cjs"), module.exports);
|
|
23
|
+
__reExport(index_exports, require("./current-time.cjs"), module.exports);
|
|
24
|
+
__reExport(index_exports, require("./data-view-from-hex.cjs"), module.exports);
|
|
25
|
+
__reExport(index_exports, require("./data-view-reader.cjs"), module.exports);
|
|
26
|
+
__reExport(index_exports, require("./date-time.cjs"), module.exports);
|
|
27
|
+
__reExport(index_exports, require("./day-date-time.cjs"), module.exports);
|
|
28
|
+
__reExport(index_exports, require("./day-of-week.cjs"), module.exports);
|
|
29
|
+
__reExport(index_exports, require("./dst-offset.cjs"), module.exports);
|
|
30
|
+
__reExport(index_exports, require("./elevation.cjs"), module.exports);
|
|
31
|
+
__reExport(index_exports, require("./exact-time-256.cjs"), module.exports);
|
|
32
|
+
__reExport(index_exports, require("./firmware-revision-string.cjs"), module.exports);
|
|
33
|
+
__reExport(index_exports, require("./five-zone-heart-rate-limits.cjs"), module.exports);
|
|
34
|
+
__reExport(index_exports, require("./gatt-characteristic-presentation-format.cjs"), module.exports);
|
|
35
|
+
__reExport(index_exports, require("./gatt.cjs"), module.exports);
|
|
36
|
+
__reExport(index_exports, require("./glucose-feature.cjs"), module.exports);
|
|
37
|
+
__reExport(index_exports, require("./glucose-measurement-context.cjs"), module.exports);
|
|
38
|
+
__reExport(index_exports, require("./glucose-measurement.cjs"), module.exports);
|
|
39
|
+
__reExport(index_exports, require("./hardware-revision-string.cjs"), module.exports);
|
|
40
|
+
__reExport(index_exports, require("./heart-rate-control-point.cjs"), module.exports);
|
|
41
|
+
__reExport(index_exports, require("./heart-rate-max.cjs"), module.exports);
|
|
42
|
+
__reExport(index_exports, require("./heart-rate-measurement.cjs"), module.exports);
|
|
43
|
+
__reExport(index_exports, require("./heart-rate.cjs"), module.exports);
|
|
44
|
+
__reExport(index_exports, require("./indoor-bike-data.cjs"), module.exports);
|
|
45
|
+
__reExport(index_exports, require("./language.cjs"), module.exports);
|
|
46
|
+
__reExport(index_exports, require("./latitude.cjs"), module.exports);
|
|
47
|
+
__reExport(index_exports, require("./local-time-information.cjs"), module.exports);
|
|
48
|
+
__reExport(index_exports, require("./location-and-speed.cjs"), module.exports);
|
|
49
|
+
__reExport(index_exports, require("./location-name.cjs"), module.exports);
|
|
50
|
+
__reExport(index_exports, require("./longitude.cjs"), module.exports);
|
|
51
|
+
__reExport(index_exports, require("./manufacturer-name-string.cjs"), module.exports);
|
|
52
|
+
__reExport(index_exports, require("./maximum-recommended-heart-rate.cjs"), module.exports);
|
|
53
|
+
__reExport(index_exports, require("./measurement-interval.cjs"), module.exports);
|
|
54
|
+
__reExport(index_exports, require("./model-number-string.cjs"), module.exports);
|
|
55
|
+
__reExport(index_exports, require("./navigation.cjs"), module.exports);
|
|
56
|
+
__reExport(index_exports, require("./number-of-digitals.cjs"), module.exports);
|
|
57
|
+
__reExport(index_exports, require("./plx-continuous-measurement.cjs"), module.exports);
|
|
58
|
+
__reExport(index_exports, require("./plx-features.cjs"), module.exports);
|
|
59
|
+
__reExport(index_exports, require("./plx-spot-check-measurement.cjs"), module.exports);
|
|
60
|
+
__reExport(index_exports, require("./reference-time-information.cjs"), module.exports);
|
|
61
|
+
__reExport(index_exports, require("./resting-heart-rate.cjs"), module.exports);
|
|
62
|
+
__reExport(index_exports, require("./rsc-feature.cjs"), module.exports);
|
|
63
|
+
__reExport(index_exports, require("./rsc-measurement.cjs"), module.exports);
|
|
64
|
+
__reExport(index_exports, require("./sensor-location.cjs"), module.exports);
|
|
65
|
+
__reExport(index_exports, require("./serial-number-string.cjs"), module.exports);
|
|
66
|
+
__reExport(index_exports, require("./software-revision-string.cjs"), module.exports);
|
|
67
|
+
__reExport(index_exports, require("./supported-heart-rate-range.cjs"), module.exports);
|
|
68
|
+
__reExport(index_exports, require("./supported-inclination-range.cjs"), module.exports);
|
|
69
|
+
__reExport(index_exports, require("./supported-speed-range.cjs"), module.exports);
|
|
70
|
+
__reExport(index_exports, require("./system-id.cjs"), module.exports);
|
|
71
|
+
__reExport(index_exports, require("./temperature-measurement.cjs"), module.exports);
|
|
72
|
+
__reExport(index_exports, require("./temperature-type.cjs"), module.exports);
|
|
73
|
+
__reExport(index_exports, require("./temperature.cjs"), module.exports);
|
|
74
|
+
__reExport(index_exports, require("./three-zone-heart-rate-limits.cjs"), module.exports);
|
|
75
|
+
__reExport(index_exports, require("./time-accuracy.cjs"), module.exports);
|
|
76
|
+
__reExport(index_exports, require("./time-source.cjs"), module.exports);
|
|
77
|
+
__reExport(index_exports, require("./time-update-control-point.cjs"), module.exports);
|
|
78
|
+
__reExport(index_exports, require("./time-update-state.cjs"), module.exports);
|
|
79
|
+
__reExport(index_exports, require("./time-with-dst.cjs"), module.exports);
|
|
80
|
+
__reExport(index_exports, require("./time-zone.cjs"), module.exports);
|
|
81
|
+
__reExport(index_exports, require("./treadmill-data.cjs"), module.exports);
|
|
82
|
+
__reExport(index_exports, require("./two-zone-heart-rate-limit.cjs"), module.exports);
|
|
83
|
+
__reExport(index_exports, require("./vo2-max.cjs"), module.exports);
|
|
84
|
+
//# sourceMappingURL=index.cjs.map
|
package/index.cjs.map
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/packages/bluetools/index.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,0BAAd;AACA,0BAAc,+BADd;AAEA,0BAAc,oCAFd;AAGA,0BAAc,6BAHd;AAIA,0BAAc,iCAJd;AAKA,0BAAc,8BALd;AAMA,0BAAc,oCANd;AAOA,0BAAc,kCAPd;AAQA,0BAAc,2BARd;AASA,0BAAc,+BATd;AAUA,0BAAc,6BAVd;AAWA,0BAAc,4BAXd;AAYA,0BAAc,2BAZd;AAaA,0BAAc,gCAbd;AAcA,0BAAc,0CAdd;AAeA,0BAAc,6CAfd;AAgBA,0BAAc,yDAhBd;AAiBA,0BAAc,sBAjBd;AAkBA,0BAAc,iCAlBd;AAmBA,0BAAc,6CAnBd;AAoBA,0BAAc,qCApBd;AAqBA,0BAAc,0CArBd;AAsBA,0BAAc,0CAtBd;AAuBA,0BAAc,gCAvBd;AAwBA,0BAAc,wCAxBd;AAyBA,0BAAc,4BAzBd;AA0BA,0BAAc,kCA1Bd;AA2BA,0BAAc,0BA3Bd;AA4BA,0BAAc,0BA5Bd;AA6BA,0BAAc,wCA7Bd;AA8BA,0BAAc,oCA9Bd;AA+BA,0BAAc,+BA/Bd;AAgCA,0BAAc,2BAhCd;AAiCA,0BAAc,0CAjCd;AAkCA,0BAAc,gDAlCd;AAmCA,0BAAc,sCAnCd;AAoCA,0BAAc,qCApCd;AAqCA,0BAAc,4BArCd;AAsCA,0BAAc,oCAtCd;AAuCA,0BAAc,4CAvCd;AAwCA,0BAAc,8BAxCd;AAyCA,0BAAc,4CAzCd;AA0CA,0BAAc,4CA1Cd;AA2CA,0BAAc,oCA3Cd;AA4CA,0BAAc,6BA5Cd;AA6CA,0BAAc,iCA7Cd;AA8CA,0BAAc,iCA9Cd;AA+CA,0BAAc,sCA/Cd;AAgDA,0BAAc,0CAhDd;AAiDA,0BAAc,4CAjDd;AAkDA,0BAAc,6CAlDd;AAmDA,0BAAc,uCAnDd;AAoDA,0BAAc,2BApDd;AAqDA,0BAAc,yCArDd;AAsDA,0BAAc,kCAtDd;AAuDA,0BAAc,6BAvDd;AAwDA,0BAAc,8CAxDd;AAyDA,0BAAc,+BAzDd;AA0DA,0BAAc,6BA1Dd;AA2DA,0BAAc,2CA3Dd;AA4DA,0BAAc,mCA5Dd;AA6DA,0BAAc,+BA7Dd;AA8DA,0BAAc,2BA9Dd;AA+DA,0BAAc,gCA/Dd;AAgEA,0BAAc,2CAhEd;AAiEA,0BAAc,yBAjEd;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export * from "./assigned";
|
|
2
|
+
export * from "./battery-level";
|
|
3
|
+
export * from "./cross-trainer-data";
|
|
4
|
+
export * from "./csc-feature";
|
|
5
|
+
export * from "./csc-measurement";
|
|
6
|
+
export * from "./current-time";
|
|
7
|
+
export * from "./data-view-from-hex";
|
|
8
|
+
export * from "./data-view-reader";
|
|
9
|
+
export * from "./date-time";
|
|
10
|
+
export * from "./day-date-time";
|
|
11
|
+
export * from "./day-of-week";
|
|
12
|
+
export * from "./dst-offset";
|
|
13
|
+
export * from "./elevation";
|
|
14
|
+
export * from "./exact-time-256";
|
|
15
|
+
export * from "./firmware-revision-string";
|
|
16
|
+
export * from "./five-zone-heart-rate-limits";
|
|
17
|
+
export * from "./gatt-characteristic-presentation-format";
|
|
18
|
+
export * from "./gatt";
|
|
19
|
+
export * from "./glucose-feature";
|
|
20
|
+
export * from "./glucose-measurement-context";
|
|
21
|
+
export * from "./glucose-measurement";
|
|
22
|
+
export * from "./hardware-revision-string";
|
|
23
|
+
export * from "./heart-rate-control-point";
|
|
24
|
+
export * from "./heart-rate-max";
|
|
25
|
+
export * from "./heart-rate-measurement";
|
|
26
|
+
export * from "./heart-rate";
|
|
27
|
+
export * from "./indoor-bike-data";
|
|
28
|
+
export * from "./language";
|
|
29
|
+
export * from "./latitude";
|
|
30
|
+
export * from "./local-time-information";
|
|
31
|
+
export * from "./location-and-speed";
|
|
32
|
+
export * from "./location-name";
|
|
33
|
+
export * from "./longitude";
|
|
34
|
+
export * from "./manufacturer-name-string";
|
|
35
|
+
export * from "./maximum-recommended-heart-rate";
|
|
36
|
+
export * from "./measurement-interval";
|
|
37
|
+
export * from "./model-number-string";
|
|
38
|
+
export * from "./navigation";
|
|
39
|
+
export * from "./number-of-digitals";
|
|
40
|
+
export * from "./plx-continuous-measurement";
|
|
41
|
+
export * from "./plx-features";
|
|
42
|
+
export * from "./plx-spot-check-measurement";
|
|
43
|
+
export * from "./reference-time-information";
|
|
44
|
+
export * from "./resting-heart-rate";
|
|
45
|
+
export * from "./rsc-feature";
|
|
46
|
+
export * from "./rsc-measurement";
|
|
47
|
+
export * from "./sensor-location";
|
|
48
|
+
export * from "./serial-number-string";
|
|
49
|
+
export * from "./software-revision-string";
|
|
50
|
+
export * from "./supported-heart-rate-range";
|
|
51
|
+
export * from "./supported-inclination-range";
|
|
52
|
+
export * from "./supported-speed-range";
|
|
53
|
+
export * from "./system-id";
|
|
54
|
+
export * from "./temperature-measurement";
|
|
55
|
+
export * from "./temperature-type";
|
|
56
|
+
export * from "./temperature";
|
|
57
|
+
export * from "./three-zone-heart-rate-limits";
|
|
58
|
+
export * from "./time-accuracy";
|
|
59
|
+
export * from "./time-source";
|
|
60
|
+
export * from "./time-update-control-point";
|
|
61
|
+
export * from "./time-update-state";
|
|
62
|
+
export * from "./time-with-dst";
|
|
63
|
+
export * from "./time-zone";
|
|
64
|
+
export * from "./treadmill-data";
|
|
65
|
+
export * from "./two-zone-heart-rate-limit";
|
|
66
|
+
export * from "./vo2-max";
|
|
67
|
+
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/packages/bluetools/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mCAAmC,CAAC;AAClD,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,cAAc,CAAC"}
|
package/index.mjs
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export * from "./assigned.mjs";
|
|
2
|
+
export * from "./battery-level.mjs";
|
|
3
|
+
export * from "./cross-trainer-data.mjs";
|
|
4
|
+
export * from "./csc-feature.mjs";
|
|
5
|
+
export * from "./csc-measurement.mjs";
|
|
6
|
+
export * from "./current-time.mjs";
|
|
7
|
+
export * from "./data-view-from-hex.mjs";
|
|
8
|
+
export * from "./data-view-reader.mjs";
|
|
9
|
+
export * from "./date-time.mjs";
|
|
10
|
+
export * from "./day-date-time.mjs";
|
|
11
|
+
export * from "./day-of-week.mjs";
|
|
12
|
+
export * from "./dst-offset.mjs";
|
|
13
|
+
export * from "./elevation.mjs";
|
|
14
|
+
export * from "./exact-time-256.mjs";
|
|
15
|
+
export * from "./firmware-revision-string.mjs";
|
|
16
|
+
export * from "./five-zone-heart-rate-limits.mjs";
|
|
17
|
+
export * from "./gatt-characteristic-presentation-format.mjs";
|
|
18
|
+
export * from "./gatt.mjs";
|
|
19
|
+
export * from "./glucose-feature.mjs";
|
|
20
|
+
export * from "./glucose-measurement-context.mjs";
|
|
21
|
+
export * from "./glucose-measurement.mjs";
|
|
22
|
+
export * from "./hardware-revision-string.mjs";
|
|
23
|
+
export * from "./heart-rate-control-point.mjs";
|
|
24
|
+
export * from "./heart-rate-max.mjs";
|
|
25
|
+
export * from "./heart-rate-measurement.mjs";
|
|
26
|
+
export * from "./heart-rate.mjs";
|
|
27
|
+
export * from "./indoor-bike-data.mjs";
|
|
28
|
+
export * from "./language.mjs";
|
|
29
|
+
export * from "./latitude.mjs";
|
|
30
|
+
export * from "./local-time-information.mjs";
|
|
31
|
+
export * from "./location-and-speed.mjs";
|
|
32
|
+
export * from "./location-name.mjs";
|
|
33
|
+
export * from "./longitude.mjs";
|
|
34
|
+
export * from "./manufacturer-name-string.mjs";
|
|
35
|
+
export * from "./maximum-recommended-heart-rate.mjs";
|
|
36
|
+
export * from "./measurement-interval.mjs";
|
|
37
|
+
export * from "./model-number-string.mjs";
|
|
38
|
+
export * from "./navigation.mjs";
|
|
39
|
+
export * from "./number-of-digitals.mjs";
|
|
40
|
+
export * from "./plx-continuous-measurement.mjs";
|
|
41
|
+
export * from "./plx-features.mjs";
|
|
42
|
+
export * from "./plx-spot-check-measurement.mjs";
|
|
43
|
+
export * from "./reference-time-information.mjs";
|
|
44
|
+
export * from "./resting-heart-rate.mjs";
|
|
45
|
+
export * from "./rsc-feature.mjs";
|
|
46
|
+
export * from "./rsc-measurement.mjs";
|
|
47
|
+
export * from "./sensor-location.mjs";
|
|
48
|
+
export * from "./serial-number-string.mjs";
|
|
49
|
+
export * from "./software-revision-string.mjs";
|
|
50
|
+
export * from "./supported-heart-rate-range.mjs";
|
|
51
|
+
export * from "./supported-inclination-range.mjs";
|
|
52
|
+
export * from "./supported-speed-range.mjs";
|
|
53
|
+
export * from "./system-id.mjs";
|
|
54
|
+
export * from "./temperature-measurement.mjs";
|
|
55
|
+
export * from "./temperature-type.mjs";
|
|
56
|
+
export * from "./temperature.mjs";
|
|
57
|
+
export * from "./three-zone-heart-rate-limits.mjs";
|
|
58
|
+
export * from "./time-accuracy.mjs";
|
|
59
|
+
export * from "./time-source.mjs";
|
|
60
|
+
export * from "./time-update-control-point.mjs";
|
|
61
|
+
export * from "./time-update-state.mjs";
|
|
62
|
+
export * from "./time-with-dst.mjs";
|
|
63
|
+
export * from "./time-zone.mjs";
|
|
64
|
+
export * from "./treadmill-data.mjs";
|
|
65
|
+
export * from "./two-zone-heart-rate-limit.mjs";
|
|
66
|
+
export * from "./vo2-max.mjs";
|
|
67
|
+
//# sourceMappingURL=index.mjs.map
|
package/index.mjs.map
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/packages/bluetools/index.ts"],
|
|
4
|
+
"mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
7
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
22
|
+
var indoor_bike_data_exports = {};
|
|
23
|
+
__export(indoor_bike_data_exports, {
|
|
24
|
+
IndoorBikeDataImpl: () => IndoorBikeDataImpl,
|
|
25
|
+
indoorBikeDataFromDataView: () => indoorBikeDataFromDataView
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(indoor_bike_data_exports);
|
|
28
|
+
var import_data_view_reader = require("./data-view-reader.cjs");
|
|
29
|
+
const _IndoorBikeDataImpl = class _IndoorBikeDataImpl {
|
|
30
|
+
/** Parse from a DataView into {@link IndoorBikeData}. */
|
|
31
|
+
static fromDataView(dataView, indexStart) {
|
|
32
|
+
return new _IndoorBikeDataImpl(indoorBikeDataFromDataView(dataView, indexStart));
|
|
33
|
+
}
|
|
34
|
+
averageCadence;
|
|
35
|
+
averagePower;
|
|
36
|
+
averageSpeed;
|
|
37
|
+
elapsedTime;
|
|
38
|
+
energyPerHour;
|
|
39
|
+
energyPerMinute;
|
|
40
|
+
flags;
|
|
41
|
+
heartRate;
|
|
42
|
+
instantaneousCadence;
|
|
43
|
+
instantaneousPower;
|
|
44
|
+
instantaneousSpeed;
|
|
45
|
+
metabolicEquivalent;
|
|
46
|
+
remainingTime;
|
|
47
|
+
resistanceLevel;
|
|
48
|
+
totalDistance;
|
|
49
|
+
totalEnergy;
|
|
50
|
+
constructor(indoorBikeData) {
|
|
51
|
+
this.averageCadence = indoorBikeData.averageCadence;
|
|
52
|
+
this.averagePower = indoorBikeData.averagePower;
|
|
53
|
+
this.averageSpeed = indoorBikeData.averageSpeed;
|
|
54
|
+
this.elapsedTime = indoorBikeData.elapsedTime;
|
|
55
|
+
this.energyPerHour = indoorBikeData.energyPerHour;
|
|
56
|
+
this.energyPerMinute = indoorBikeData.energyPerMinute;
|
|
57
|
+
this.flags = indoorBikeData.flags;
|
|
58
|
+
this.heartRate = indoorBikeData.heartRate;
|
|
59
|
+
this.instantaneousCadence = indoorBikeData.instantaneousCadence;
|
|
60
|
+
this.instantaneousPower = indoorBikeData.instantaneousPower;
|
|
61
|
+
this.instantaneousSpeed = indoorBikeData.instantaneousSpeed;
|
|
62
|
+
this.metabolicEquivalent = indoorBikeData.metabolicEquivalent;
|
|
63
|
+
this.remainingTime = indoorBikeData.remainingTime;
|
|
64
|
+
this.resistanceLevel = indoorBikeData.resistanceLevel;
|
|
65
|
+
this.totalDistance = indoorBikeData.totalDistance;
|
|
66
|
+
this.totalEnergy = indoorBikeData.totalEnergy;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
__name(_IndoorBikeDataImpl, "IndoorBikeDataImpl");
|
|
70
|
+
__publicField(_IndoorBikeDataImpl, "UUID_PREFIX", 10962);
|
|
71
|
+
__publicField(_IndoorBikeDataImpl, "TYPE_NAME", "org.bluetooth.characteristic.indoor_bike_data");
|
|
72
|
+
__publicField(_IndoorBikeDataImpl, "NAME", "Indoor Bike Data");
|
|
73
|
+
let IndoorBikeDataImpl = _IndoorBikeDataImpl;
|
|
74
|
+
function indoorBikeDataFromDataView(dataView, indexStart = 0) {
|
|
75
|
+
const $dvr = (0, import_data_view_reader.dataViewReader)(dataView, indexStart);
|
|
76
|
+
const flags = $dvr.uint16();
|
|
77
|
+
const moreData = !!(flags & 1);
|
|
78
|
+
const instantaneousCadencePresent = !!((flags & 2) >> 1);
|
|
79
|
+
const averageSpeedPresent = !!((flags & 4) >> 2);
|
|
80
|
+
const averageCandencePresent = !!((flags & 8) >> 3);
|
|
81
|
+
const totalDistancePresent = !!((flags & 16) >> 4);
|
|
82
|
+
const resistanceLevelPresent = !!((flags & 32) >> 5);
|
|
83
|
+
const instantaneousPowerPresent = !!((flags & 64) >> 6);
|
|
84
|
+
const averagePowerPresent = !!((flags & 128) >> 7);
|
|
85
|
+
const expendedEnergyPresent = !!((flags & 256) >> 8);
|
|
86
|
+
const heartRatePresent = !!((flags & 512) >> 9);
|
|
87
|
+
const metabolicEquivalentPresent = !!((flags & 1024) >> 10);
|
|
88
|
+
const elapsedTimePresent = !!((flags & 2048) >> 11);
|
|
89
|
+
const remainingTimePresent = !!((flags & 4096) >> 12);
|
|
90
|
+
let instantaneousSpeed = void 0;
|
|
91
|
+
if (!moreData) {
|
|
92
|
+
instantaneousSpeed = $dvr.uint16();
|
|
93
|
+
}
|
|
94
|
+
let averageSpeed = void 0;
|
|
95
|
+
if (instantaneousCadencePresent) {
|
|
96
|
+
averageSpeed = $dvr.uint16();
|
|
97
|
+
}
|
|
98
|
+
let instantaneousCadence = void 0;
|
|
99
|
+
if (averageSpeedPresent) {
|
|
100
|
+
instantaneousCadence = $dvr.uint16();
|
|
101
|
+
}
|
|
102
|
+
let averageCadence = void 0;
|
|
103
|
+
if (averageCandencePresent) {
|
|
104
|
+
averageCadence = $dvr.uint16();
|
|
105
|
+
}
|
|
106
|
+
let totalDistance = void 0;
|
|
107
|
+
if (totalDistancePresent) {
|
|
108
|
+
totalDistance = $dvr.uint24();
|
|
109
|
+
}
|
|
110
|
+
let resistanceLevel = void 0;
|
|
111
|
+
if (resistanceLevelPresent) {
|
|
112
|
+
resistanceLevel = $dvr.int16();
|
|
113
|
+
}
|
|
114
|
+
let instantaneousPower = void 0;
|
|
115
|
+
if (instantaneousPowerPresent) {
|
|
116
|
+
instantaneousPower = $dvr.int16();
|
|
117
|
+
}
|
|
118
|
+
let averagePower = void 0;
|
|
119
|
+
if (averagePowerPresent) {
|
|
120
|
+
averagePower = $dvr.int16();
|
|
121
|
+
}
|
|
122
|
+
let totalEnergy = void 0;
|
|
123
|
+
if (expendedEnergyPresent) {
|
|
124
|
+
totalEnergy = $dvr.uint16();
|
|
125
|
+
}
|
|
126
|
+
let energyPerHour = void 0;
|
|
127
|
+
if (expendedEnergyPresent) {
|
|
128
|
+
energyPerHour = $dvr.uint16();
|
|
129
|
+
}
|
|
130
|
+
let energyPerMinute = void 0;
|
|
131
|
+
if (expendedEnergyPresent) {
|
|
132
|
+
energyPerMinute = $dvr.uint8();
|
|
133
|
+
}
|
|
134
|
+
let heartRate = void 0;
|
|
135
|
+
if (heartRatePresent) {
|
|
136
|
+
heartRate = $dvr.uint8();
|
|
137
|
+
}
|
|
138
|
+
let metabolicEquivalent = void 0;
|
|
139
|
+
if (metabolicEquivalentPresent) {
|
|
140
|
+
metabolicEquivalent = $dvr.uint8();
|
|
141
|
+
}
|
|
142
|
+
let elapsedTime = void 0;
|
|
143
|
+
if (elapsedTimePresent) {
|
|
144
|
+
elapsedTime = $dvr.uint16();
|
|
145
|
+
}
|
|
146
|
+
let remainingTime = void 0;
|
|
147
|
+
if (remainingTimePresent) {
|
|
148
|
+
remainingTime = $dvr.uint16();
|
|
149
|
+
}
|
|
150
|
+
return { averageCadence, averagePower, averageSpeed, elapsedTime, energyPerHour, energyPerMinute, flags, heartRate, instantaneousCadence, instantaneousPower, instantaneousSpeed, metabolicEquivalent, remainingTime, resistanceLevel, totalDistance, totalEnergy };
|
|
151
|
+
}
|
|
152
|
+
__name(indoorBikeDataFromDataView, "indoorBikeDataFromDataView");
|
|
153
|
+
//# sourceMappingURL=indoor-bike-data.cjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/packages/bluetools/indoor-bike-data.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|