incyclist-devices 1.5.38 → 2.0.0
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 +238 -0
- package/lib/adapters.d.ts +7 -0
- package/lib/adapters.js +49 -0
- package/lib/antv2/adapter-factory.d.ts +21 -10
- package/lib/antv2/adapter-factory.js +51 -33
- package/lib/antv2/adapter.d.ts +65 -0
- package/lib/antv2/adapter.js +310 -0
- package/lib/antv2/ant-interface.d.ts +17 -11
- package/lib/antv2/ant-interface.js +41 -31
- package/lib/antv2/{ant-binding.d.ts → binding.d.ts} +1 -1
- package/lib/antv2/{ant-binding.js → binding.js} +1 -1
- package/lib/antv2/fe/adapter.d.ts +28 -0
- package/lib/antv2/{fe.js → fe/adapter.js} +106 -90
- package/lib/antv2/fe/index.d.ts +2 -0
- package/lib/antv2/fe/index.js +7 -0
- package/lib/antv2/hr/adapter.d.ts +15 -0
- package/lib/antv2/hr/adapter.js +76 -0
- package/lib/antv2/hr/index.d.ts +2 -0
- package/lib/antv2/hr/index.js +7 -0
- package/lib/antv2/index.d.ts +7 -0
- package/lib/antv2/index.js +20 -0
- package/lib/antv2/modes/ant-fe-adv-st-mode.d.ts +9 -0
- package/lib/{ant/antfe → antv2/modes}/ant-fe-adv-st-mode.js +1 -1
- package/lib/antv2/modes/ant-fe-erg-mode.d.ts +6 -0
- package/lib/{ant/antfe → antv2/modes}/ant-fe-erg-mode.js +1 -1
- package/lib/antv2/modes/ant-fe-st-mode.d.ts +5 -0
- package/lib/{ant/antfe → antv2/modes}/ant-fe-st-mode.js +1 -1
- package/lib/antv2/pwr/adapter.d.ts +24 -0
- package/lib/antv2/pwr/adapter.js +141 -0
- package/lib/antv2/pwr/index.d.ts +2 -0
- package/lib/antv2/pwr/index.js +7 -0
- package/lib/antv2/sensor-factory.d.ts +2 -2
- package/lib/antv2/types.d.ts +22 -0
- package/lib/antv2/types.js +5 -0
- package/lib/antv2/utils.d.ts +4 -0
- package/lib/antv2/utils.js +192 -0
- package/lib/base/adpater.d.ts +68 -0
- package/lib/base/adpater.js +183 -0
- package/lib/ble/adapter-factory.d.ts +33 -0
- package/lib/ble/adapter-factory.js +105 -0
- package/lib/ble/base/adapter.d.ts +53 -0
- package/lib/ble/base/adapter.js +290 -0
- package/lib/ble/base/comms-utils.d.ts +7 -0
- package/lib/ble/base/comms-utils.js +91 -0
- package/lib/ble/{ble-device.d.ts → base/comms.d.ts} +31 -16
- package/lib/ble/{ble-device.js → base/comms.js} +193 -55
- package/lib/ble/bindings/index.d.ts +2 -0
- package/lib/ble/bindings/index.js +8 -0
- package/lib/ble/bindings/linux.d.ts +15 -0
- package/lib/ble/bindings/linux.js +39 -0
- package/lib/ble/bindings/mock.d.ts +9 -0
- package/lib/ble/bindings/mock.js +108 -0
- package/lib/ble/bindings/types.d.ts +57 -0
- package/lib/ble/bindings/types.js +96 -0
- package/lib/ble/ble-interface.d.ts +38 -59
- package/lib/ble/ble-interface.js +254 -462
- package/lib/ble/ble-peripheral.d.ts +7 -5
- package/lib/ble/ble-peripheral.js +52 -21
- package/lib/ble/consts.d.ts +3 -0
- package/lib/ble/consts.js +4 -1
- package/lib/ble/cp/adapter.d.ts +22 -0
- package/lib/ble/cp/adapter.js +111 -0
- package/lib/ble/cp/comm.d.ts +31 -0
- package/lib/ble/cp/comm.js +125 -0
- package/lib/ble/cp/index.d.ts +4 -0
- package/lib/ble/cp/index.js +10 -0
- package/lib/ble/cp/types.d.ts +13 -0
- package/lib/ble/cp/types.js +2 -0
- package/lib/ble/elite/adapter.d.ts +19 -0
- package/lib/ble/elite/adapter.js +120 -0
- package/lib/ble/elite/comms.d.ts +32 -0
- package/lib/ble/elite/comms.js +126 -0
- package/lib/ble/elite/index.d.ts +3 -0
- package/lib/ble/elite/index.js +10 -0
- package/lib/ble/fm/adapter.d.ts +22 -0
- package/lib/ble/fm/adapter.js +249 -0
- package/lib/ble/fm/comms.d.ts +50 -0
- package/lib/ble/{fm.js → fm/comms.js} +34 -277
- package/lib/ble/fm/consts.d.ts +6 -0
- package/lib/ble/fm/consts.js +9 -0
- package/lib/ble/fm/index.d.ts +5 -0
- package/lib/ble/fm/index.js +13 -0
- package/lib/ble/fm/types.d.ts +30 -0
- package/lib/ble/fm/types.js +2 -0
- package/lib/ble/hr/adapter.d.ts +14 -0
- package/lib/ble/hr/adapter.js +45 -0
- package/lib/ble/hr/comm.d.ts +19 -0
- package/lib/ble/hr/comm.js +56 -0
- package/lib/ble/hr/index.d.ts +4 -0
- package/lib/ble/hr/index.js +10 -0
- package/lib/ble/hr/mock.d.ts +7 -0
- package/lib/ble/hr/mock.js +47 -0
- package/lib/ble/hr/types.d.ts +5 -0
- package/lib/ble/hr/types.js +2 -0
- package/lib/ble/index.d.ts +9 -0
- package/lib/ble/index.js +26 -0
- package/lib/ble/peripheral-cache.d.ts +43 -0
- package/lib/ble/peripheral-cache.js +107 -0
- package/lib/ble/tacx/adapter.d.ts +10 -0
- package/lib/ble/tacx/adapter.js +99 -0
- package/lib/ble/{tacx.d.ts → tacx/comms.d.ts} +11 -43
- package/lib/ble/{tacx.js → tacx/comms.js} +23 -155
- package/lib/ble/tacx/index.d.ts +4 -0
- package/lib/ble/tacx/index.js +10 -0
- package/lib/ble/tacx/types.d.ts +25 -0
- package/lib/ble/tacx/types.js +2 -0
- package/lib/ble/types.d.ts +128 -0
- package/lib/ble/types.js +2 -0
- package/lib/ble/utils.d.ts +17 -0
- package/lib/ble/utils.js +54 -0
- package/lib/ble/wahoo/adapter.d.ts +9 -0
- package/lib/ble/wahoo/adapter.js +95 -0
- package/lib/ble/{wahoo-kickr.d.ts → wahoo/comms.d.ts} +11 -44
- package/lib/ble/{wahoo-kickr.js → wahoo/comms.js} +29 -129
- package/lib/ble/wahoo/index.d.ts +4 -0
- package/lib/ble/wahoo/index.js +10 -0
- package/lib/ble/wahoo/types.d.ts +19 -0
- package/lib/ble/wahoo/types.js +2 -0
- package/lib/index.d.ts +15 -0
- package/lib/index.js +34 -0
- package/lib/interfaces.d.ts +7 -0
- package/lib/interfaces.js +27 -0
- package/lib/{ble → modes}/ble-erg-mode.d.ts +4 -4
- package/lib/{ble → modes}/ble-erg-mode.js +2 -2
- package/lib/{ble → modes}/ble-st-mode.d.ts +3 -3
- package/lib/{ble → modes}/ble-st-mode.js +1 -1
- package/lib/{cycling-mode.d.ts → modes/cycling-mode.d.ts} +8 -8
- package/lib/modes/power-base.d.ts +3 -3
- package/lib/modes/power-base.js +8 -4
- package/lib/modes/power-meter.d.ts +3 -3
- package/lib/modes/simulator.d.ts +2 -2
- package/lib/modes/simulator.js +1 -1
- package/lib/serial/adapter-factory.d.ts +12 -0
- package/lib/serial/adapter-factory.js +30 -0
- package/lib/serial/adapter.d.ts +21 -0
- package/lib/serial/adapter.js +61 -0
- package/lib/serial/bindings/tcp.d.ts +45 -0
- package/lib/serial/bindings/tcp.js +284 -0
- package/lib/serial/comm.d.ts +7 -0
- package/lib/serial/comm.js +2 -0
- package/lib/{daum → serial/daum}/DaumAdapter.d.ts +14 -23
- package/lib/{daum → serial/daum}/DaumAdapter.js +57 -97
- package/lib/{daum → serial/daum}/DaumPowerMeterCyclingMode.d.ts +2 -2
- package/lib/{daum → serial/daum}/DaumPowerMeterCyclingMode.js +1 -1
- package/lib/{daum → serial/daum}/ERGCyclingMode.d.ts +3 -3
- package/lib/{daum → serial/daum}/ERGCyclingMode.js +3 -3
- package/lib/{daum → serial/daum}/SmartTrainerCyclingMode.d.ts +3 -3
- package/lib/{daum → serial/daum}/SmartTrainerCyclingMode.js +4 -3
- package/lib/serial/daum/classic/adapter.d.ts +29 -0
- package/lib/{daum/classic/DaumClassicAdapter.js → serial/daum/classic/adapter.js} +77 -50
- package/lib/{daum/classic/bike.d.ts → serial/daum/classic/comms.d.ts} +14 -16
- package/lib/{daum/classic/bike.js → serial/daum/classic/comms.js} +68 -152
- package/lib/serial/daum/classic/mock.d.ts +96 -0
- package/lib/serial/daum/classic/mock.js +365 -0
- package/lib/{daum/classic/DaumClassicCyclingMode.d.ts → serial/daum/classic/modes/daum-classic.d.ts} +3 -3
- package/lib/{daum/classic/DaumClassicCyclingMode.js → serial/daum/classic/modes/daum-classic.js} +2 -2
- package/lib/{daum → serial/daum}/classic/utils.d.ts +1 -1
- package/lib/serial/daum/premium/adapter.d.ts +25 -0
- package/lib/{daum/premium/DaumPremiumAdapter.js → serial/daum/premium/adapter.js} +107 -47
- package/lib/{daum/premium/bike.d.ts → serial/daum/premium/comms.d.ts} +26 -54
- package/lib/{daum/premium/bike.js → serial/daum/premium/comms.js} +215 -420
- package/lib/serial/daum/premium/mock.d.ts +75 -0
- package/lib/serial/daum/premium/mock.js +289 -0
- package/lib/{daum/premium/DaumClassicCyclingMode.d.ts → serial/daum/premium/modes/daum-classic.d.ts} +3 -3
- package/lib/{daum/premium/DaumClassicCyclingMode.js → serial/daum/premium/modes/daum-classic.js} +2 -2
- package/lib/serial/daum/premium/types.d.ts +12 -0
- package/lib/serial/daum/premium/types.js +2 -0
- package/lib/{daum → serial/daum}/premium/utils.d.ts +8 -11
- package/lib/{daum → serial/daum}/premium/utils.js +22 -63
- package/lib/serial/index.d.ts +9 -0
- package/lib/serial/index.js +49 -0
- package/lib/{kettler → serial/kettler}/comms.d.ts +8 -6
- package/lib/{kettler → serial/kettler}/comms.js +71 -32
- package/lib/{kettler → serial/kettler}/ergo-racer/adapter.d.ts +14 -28
- package/lib/{kettler → serial/kettler}/ergo-racer/adapter.js +102 -169
- package/lib/serial/kettler/ergo-racer/mock.d.ts +66 -0
- package/lib/serial/kettler/ergo-racer/mock.js +216 -0
- package/lib/{kettler/ergo-racer/ERGCyclingMode.d.ts → serial/kettler/ergo-racer/modes/erg.d.ts} +4 -4
- package/lib/{kettler/ergo-racer/ERGCyclingMode.js → serial/kettler/ergo-racer/modes/erg.js} +2 -2
- package/lib/serial/serial-interface.d.ts +60 -0
- package/lib/serial/serial-interface.js +309 -0
- package/lib/simulator/Simulator.d.ts +12 -25
- package/lib/simulator/Simulator.js +26 -87
- package/lib/types/adapter.d.ts +39 -0
- package/lib/types/adapter.js +2 -0
- package/lib/types/capabilities.d.ts +8 -0
- package/lib/types/capabilities.js +12 -0
- package/lib/types/data.d.ts +12 -0
- package/lib/types/data.js +2 -0
- package/lib/types/device.d.ts +32 -0
- package/lib/types/device.js +11 -0
- package/lib/types/interface.d.ts +18 -0
- package/lib/types/interface.js +2 -0
- package/lib/types/route.d.ts +2 -2
- package/lib/types/user.d.ts +1 -1
- package/lib/{utils.d.ts → utils/utils.d.ts} +1 -0
- package/lib/{utils.js → utils/utils.js} +5 -1
- package/package.json +16 -14
- package/lib/DeviceSupport.d.ts +0 -36
- package/lib/DeviceSupport.js +0 -82
- package/lib/ant/AntAdapter.d.ts +0 -50
- package/lib/ant/AntAdapter.js +0 -109
- package/lib/ant/AntScanner.d.ts +0 -60
- package/lib/ant/AntScanner.js +0 -651
- package/lib/ant/antfe/AntFEAdapter.d.ts +0 -83
- package/lib/ant/antfe/AntFEAdapter.js +0 -652
- package/lib/ant/antfe/ant-fe-adv-st-mode.d.ts +0 -9
- package/lib/ant/antfe/ant-fe-erg-mode.d.ts +0 -6
- package/lib/ant/antfe/ant-fe-st-mode.d.ts +0 -5
- package/lib/ant/anthrm/AntHrmAdapter.d.ts +0 -16
- package/lib/ant/anthrm/AntHrmAdapter.js +0 -130
- package/lib/ant/antpwr/pwr-adapter.d.ts +0 -49
- package/lib/ant/antpwr/pwr-adapter.js +0 -251
- package/lib/ant/utils.d.ts +0 -1
- package/lib/ant/utils.js +0 -23
- package/lib/antv2/AntAdapter.d.ts +0 -48
- package/lib/antv2/AntAdapter.js +0 -104
- package/lib/antv2/ant-device.d.ts +0 -59
- package/lib/antv2/ant-device.js +0 -161
- package/lib/antv2/fe.d.ts +0 -32
- package/lib/antv2/hr.d.ts +0 -18
- package/lib/antv2/hr.js +0 -102
- package/lib/antv2/incyclist-protocol.d.ts +0 -37
- package/lib/antv2/incyclist-protocol.js +0 -126
- package/lib/antv2/pwr.d.ts +0 -28
- package/lib/antv2/pwr.js +0 -171
- package/lib/ble/ble.d.ts +0 -129
- package/lib/ble/ble.js +0 -86
- package/lib/ble/elite.d.ts +0 -90
- package/lib/ble/elite.js +0 -322
- package/lib/ble/fm.d.ts +0 -125
- package/lib/ble/hrm.d.ts +0 -48
- package/lib/ble/hrm.js +0 -134
- package/lib/ble/incyclist-protocol.d.ts +0 -31
- package/lib/ble/incyclist-protocol.js +0 -153
- package/lib/ble/pwr.d.ts +0 -89
- package/lib/ble/pwr.js +0 -322
- package/lib/daum/classic/DaumClassicAdapter.d.ts +0 -28
- package/lib/daum/classic/DaumClassicProtocol.d.ts +0 -27
- package/lib/daum/classic/DaumClassicProtocol.js +0 -185
- package/lib/daum/premium/DaumPremiumAdapter.d.ts +0 -16
- package/lib/daum/premium/DaumPremiumProtocol.d.ts +0 -32
- package/lib/daum/premium/DaumPremiumProtocol.js +0 -207
- package/lib/daum/premium/tcpserial.d.ts +0 -33
- package/lib/daum/premium/tcpserial.js +0 -123
- package/lib/device.d.ts +0 -94
- package/lib/device.js +0 -76
- package/lib/kettler/ergo-racer/protocol.d.ts +0 -41
- package/lib/kettler/ergo-racer/protocol.js +0 -203
- package/lib/protocol.d.ts +0 -74
- package/lib/protocol.js +0 -41
- package/lib/registry.d.ts +0 -8
- package/lib/registry.js +0 -33
- package/lib/serialport/bindings/tcp.d.ts +0 -20
- package/lib/serialport/bindings/tcp.js +0 -33
- package/lib/serialport/index.d.ts +0 -2
- package/lib/serialport/index.js +0 -29
- package/lib/serialport/serialport.d.ts +0 -29
- package/lib/serialport/serialport.js +0 -87
- /package/lib/{cycling-mode.js → modes/cycling-mode.js} +0 -0
- /package/lib/{daum → serial/daum}/classic/utils.js +0 -0
- /package/lib/{daum → serial/daum}/constants.d.ts +0 -0
- /package/lib/{daum → serial/daum}/constants.js +0 -0
- /package/lib/{serialport.d.ts → serial/serialport.d.ts} +0 -0
- /package/lib/{serialport.js → serial/serialport.js} +0 -0
- /package/lib/{calculations.d.ts → utils/calculations.d.ts} +0 -0
- /package/lib/{calculations.js → utils/calculations.js} +0 -0
|
@@ -1,23 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
22
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
23
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -32,17 +13,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
32
13
|
};
|
|
33
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
15
|
exports.Simulator = void 0;
|
|
35
|
-
const
|
|
36
|
-
const registry_1 = __importDefault(require("../registry"));
|
|
37
|
-
const device_1 = __importDefault(require("../device"));
|
|
16
|
+
const adpater_1 = require("../base/adpater");
|
|
38
17
|
const gd_eventlog_1 = require("gd-eventlog");
|
|
39
18
|
const simulator_1 = __importDefault(require("../modes/simulator"));
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
class Simulator extends
|
|
43
|
-
constructor(
|
|
44
|
-
|
|
45
|
-
super(proto);
|
|
19
|
+
const capabilities_1 = require("../types/capabilities");
|
|
20
|
+
const DEFAULT_PROPS = { isBot: false };
|
|
21
|
+
class Simulator extends adpater_1.ControllableDevice {
|
|
22
|
+
constructor(settings, props = DEFAULT_PROPS) {
|
|
23
|
+
super(settings, props);
|
|
46
24
|
this.logger = new gd_eventlog_1.EventLogger(Simulator.NAME);
|
|
47
25
|
this.speed = 0;
|
|
48
26
|
this.power = 0;
|
|
@@ -59,12 +37,16 @@ class Simulator extends device_1.default {
|
|
|
59
37
|
this.isBot = props.isBot || false;
|
|
60
38
|
this.ignoreHrm = false;
|
|
61
39
|
const name = this.getCyclingMode().getName();
|
|
62
|
-
const modeSettings = this.isBot ? props.settings
|
|
40
|
+
const modeSettings = this.isBot ? props.settings : this.getCyclingMode().getSettings();
|
|
63
41
|
this.setCyclingMode(name, modeSettings);
|
|
42
|
+
this.capabilities = [
|
|
43
|
+
capabilities_1.IncyclistCapability.Power, capabilities_1.IncyclistCapability.Speed, capabilities_1.IncyclistCapability.Cadence, capabilities_1.IncyclistCapability.Gear,
|
|
44
|
+
capabilities_1.IncyclistCapability.Control
|
|
45
|
+
];
|
|
46
|
+
}
|
|
47
|
+
isEqual(settings) {
|
|
48
|
+
return settings.interface === this.getInterface() && settings.name === this.settings.name;
|
|
64
49
|
}
|
|
65
|
-
isBike() { return true; }
|
|
66
|
-
isHrm() { return false; }
|
|
67
|
-
isPower() { return true; }
|
|
68
50
|
isSame(device) {
|
|
69
51
|
if (!(device instanceof Simulator))
|
|
70
52
|
return false;
|
|
@@ -72,18 +54,7 @@ class Simulator extends device_1.default {
|
|
|
72
54
|
}
|
|
73
55
|
getID() { return Simulator.NAME; }
|
|
74
56
|
getName() { return Simulator.NAME; }
|
|
75
|
-
|
|
76
|
-
getWeight() {
|
|
77
|
-
let userWeight = device_2.DEFAULT_USER_WEIGHT;
|
|
78
|
-
let bikeWeight = device_2.DEFAULT_BIKE_WEIGHT;
|
|
79
|
-
if (this.userSettings && this.userSettings.weight) {
|
|
80
|
-
userWeight = Number(this.userSettings.weight);
|
|
81
|
-
}
|
|
82
|
-
if (this.bikeSettings && this.bikeSettings.weight) {
|
|
83
|
-
bikeWeight = Number(this.bikeSettings.weight);
|
|
84
|
-
}
|
|
85
|
-
return bikeWeight + userWeight;
|
|
86
|
-
}
|
|
57
|
+
getUniqueName() { return Simulator.NAME; }
|
|
87
58
|
setIgnoreHrm(ignore) {
|
|
88
59
|
this.ignoreHrm = ignore;
|
|
89
60
|
}
|
|
@@ -120,15 +91,14 @@ class Simulator extends device_1.default {
|
|
|
120
91
|
start(props) {
|
|
121
92
|
return __awaiter(this, void 0, void 0, function* () {
|
|
122
93
|
this.startProps = props;
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
this.bikeSettings = props.bikeSettings;
|
|
94
|
+
this.paused = false;
|
|
95
|
+
if (props)
|
|
96
|
+
this.setBikeProps(props);
|
|
127
97
|
return new Promise((resolve) => {
|
|
128
98
|
if (!this.isBot)
|
|
129
99
|
this.logger.logEvent({ message: 'start', iv: this.iv });
|
|
130
100
|
if (this.started) {
|
|
131
|
-
return resolve(
|
|
101
|
+
return resolve(true);
|
|
132
102
|
}
|
|
133
103
|
this.started = true;
|
|
134
104
|
this.time = Date.now();
|
|
@@ -146,7 +116,7 @@ class Simulator extends device_1.default {
|
|
|
146
116
|
this.iv = setInterval(() => this.update(), 1000);
|
|
147
117
|
if (!this.isBot)
|
|
148
118
|
this.logger.logEvent({ message: 'started' });
|
|
149
|
-
resolve(
|
|
119
|
+
resolve(true);
|
|
150
120
|
});
|
|
151
121
|
});
|
|
152
122
|
}
|
|
@@ -217,6 +187,8 @@ class Simulator extends device_1.default {
|
|
|
217
187
|
if (!this.isBot && startDelay && timeSinceStart < startDelay * 1000) {
|
|
218
188
|
return;
|
|
219
189
|
}
|
|
190
|
+
if (this.paused)
|
|
191
|
+
return;
|
|
220
192
|
const prevDist = this.data.distanceInternal;
|
|
221
193
|
const d = this.data;
|
|
222
194
|
const prevTime = d.deviceTime;
|
|
@@ -235,12 +207,12 @@ class Simulator extends device_1.default {
|
|
|
235
207
|
if (this.isBot) {
|
|
236
208
|
this.logger.logEvent(Object.assign({ message: 'Coach update', prevDist, prevTime }, data));
|
|
237
209
|
}
|
|
238
|
-
this.paused = (this.data.speed === 0);
|
|
239
210
|
if (this.ignoreHrm)
|
|
240
211
|
delete data.heartrate;
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
212
|
+
this.emitData(data);
|
|
213
|
+
}
|
|
214
|
+
canSendUpdate() {
|
|
215
|
+
return true;
|
|
244
216
|
}
|
|
245
217
|
calculateDistance(speedKps, timeS) {
|
|
246
218
|
return timeS * speedKps / 3.6;
|
|
@@ -253,36 +225,3 @@ class Simulator extends device_1.default {
|
|
|
253
225
|
}
|
|
254
226
|
exports.Simulator = Simulator;
|
|
255
227
|
Simulator.NAME = 'Simulator';
|
|
256
|
-
class SimulatorProtocol extends protocol_1.default {
|
|
257
|
-
constructor() {
|
|
258
|
-
super();
|
|
259
|
-
this.devices = [];
|
|
260
|
-
}
|
|
261
|
-
add(settings) {
|
|
262
|
-
let device = new Simulator(this, settings);
|
|
263
|
-
this.devices.push(device);
|
|
264
|
-
return device;
|
|
265
|
-
}
|
|
266
|
-
getName() {
|
|
267
|
-
return SimulatorProtocol.NAME;
|
|
268
|
-
}
|
|
269
|
-
getInterfaces() {
|
|
270
|
-
return [protocol_1.INTERFACE.SIMULATOR];
|
|
271
|
-
}
|
|
272
|
-
isBike() {
|
|
273
|
-
return true;
|
|
274
|
-
}
|
|
275
|
-
isHrm() {
|
|
276
|
-
return false;
|
|
277
|
-
}
|
|
278
|
-
isPower() {
|
|
279
|
-
return true;
|
|
280
|
-
}
|
|
281
|
-
getDevices() {
|
|
282
|
-
return this.devices;
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
exports.default = SimulatorProtocol;
|
|
286
|
-
SimulatorProtocol.NAME = 'Simulator';
|
|
287
|
-
const simulator = new SimulatorProtocol();
|
|
288
|
-
registry_1.default.register(simulator);
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import EventEmitter from "events";
|
|
3
|
+
import CyclingMode from "../modes/cycling-mode";
|
|
4
|
+
import { IncyclistCapability } from "./capabilities";
|
|
5
|
+
import { DeviceData } from "./data";
|
|
6
|
+
import { DeviceProperties, DeviceSettings } from "./device";
|
|
7
|
+
import { User } from "./user";
|
|
8
|
+
export type OnDeviceDataCallback = (data: DeviceData) => void;
|
|
9
|
+
export interface IncyclistDeviceAdapter extends EventEmitter {
|
|
10
|
+
connect(): Promise<boolean>;
|
|
11
|
+
close(): Promise<boolean>;
|
|
12
|
+
check(): Promise<boolean>;
|
|
13
|
+
isEqual(settings: DeviceSettings): boolean;
|
|
14
|
+
getCapabilities(): IncyclistCapability[];
|
|
15
|
+
hasCapability(capability: IncyclistCapability): boolean;
|
|
16
|
+
addCapability(capability: IncyclistCapability): void;
|
|
17
|
+
isControllable(): boolean;
|
|
18
|
+
getName(): string;
|
|
19
|
+
getUniqueName(): string;
|
|
20
|
+
getSettings(): DeviceSettings;
|
|
21
|
+
getDisplayName(): string;
|
|
22
|
+
update(): any;
|
|
23
|
+
start(props?: DeviceProperties): Promise<boolean>;
|
|
24
|
+
stop(): Promise<boolean>;
|
|
25
|
+
pause(): Promise<boolean>;
|
|
26
|
+
resume(): Promise<boolean>;
|
|
27
|
+
sendUpdate(request: any): any;
|
|
28
|
+
getMaxUpdateFrequency(): any;
|
|
29
|
+
setMaxUpdateFrequency(value: number): any;
|
|
30
|
+
onData(callback: OnDeviceDataCallback): any;
|
|
31
|
+
}
|
|
32
|
+
export interface Bike {
|
|
33
|
+
setCyclingMode(mode: CyclingMode | string, settings?: any): void;
|
|
34
|
+
getSupportedCyclingModes(): Array<any>;
|
|
35
|
+
getCyclingMode(): CyclingMode;
|
|
36
|
+
getDefaultCyclingMode(): CyclingMode;
|
|
37
|
+
setBikeProps(props: DeviceProperties): void;
|
|
38
|
+
setUser(user: User): void;
|
|
39
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IncyclistCapability = void 0;
|
|
4
|
+
var IncyclistCapability;
|
|
5
|
+
(function (IncyclistCapability) {
|
|
6
|
+
IncyclistCapability["Power"] = "power";
|
|
7
|
+
IncyclistCapability["Speed"] = "speed";
|
|
8
|
+
IncyclistCapability["Cadence"] = "cadence";
|
|
9
|
+
IncyclistCapability["HeartRate"] = "heartrate";
|
|
10
|
+
IncyclistCapability["Gear"] = "gear";
|
|
11
|
+
IncyclistCapability["Control"] = "control";
|
|
12
|
+
})(IncyclistCapability = exports.IncyclistCapability || (exports.IncyclistCapability = {}));
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type DeviceData = {
|
|
2
|
+
speed?: number;
|
|
3
|
+
slope?: number;
|
|
4
|
+
power?: number;
|
|
5
|
+
cadence?: number;
|
|
6
|
+
heartrate?: number;
|
|
7
|
+
distance?: number;
|
|
8
|
+
timestamp?: number;
|
|
9
|
+
deviceTime?: number;
|
|
10
|
+
deviceDistanceCounter?: number;
|
|
11
|
+
internalDistanceCounter?: number;
|
|
12
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { EventLogger } from "gd-eventlog";
|
|
2
|
+
import { IncyclistInterface } from "./interface";
|
|
3
|
+
import { User } from "./user";
|
|
4
|
+
export declare const INTERFACE: {
|
|
5
|
+
SERIAL: string;
|
|
6
|
+
TCPIP: string;
|
|
7
|
+
ANT: string;
|
|
8
|
+
BLE: string;
|
|
9
|
+
USB: string;
|
|
10
|
+
SIMULATOR: string;
|
|
11
|
+
};
|
|
12
|
+
export type Device = {
|
|
13
|
+
getID(): string;
|
|
14
|
+
getName(): string;
|
|
15
|
+
getInterface(): string;
|
|
16
|
+
};
|
|
17
|
+
export type DeviceProperties = {
|
|
18
|
+
user?: User;
|
|
19
|
+
userWeight?: number;
|
|
20
|
+
bikeWeight?: number;
|
|
21
|
+
};
|
|
22
|
+
export interface DeviceStartProperties extends DeviceProperties {
|
|
23
|
+
timeout?: number;
|
|
24
|
+
}
|
|
25
|
+
export type IncyclistScanProps = {
|
|
26
|
+
timeout?: number;
|
|
27
|
+
logger?: EventLogger;
|
|
28
|
+
};
|
|
29
|
+
export type DeviceSettings = {
|
|
30
|
+
interface: string | IncyclistInterface;
|
|
31
|
+
name?: string;
|
|
32
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import EventEmitter from "events";
|
|
3
|
+
import { EventLogger } from "gd-eventlog";
|
|
4
|
+
import { IncyclistScanProps, DeviceSettings } from "./device";
|
|
5
|
+
export type InterfaceProps = {
|
|
6
|
+
binding?: any;
|
|
7
|
+
logger?: EventLogger;
|
|
8
|
+
log?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export interface IncyclistInterface extends EventEmitter {
|
|
11
|
+
getName(): string;
|
|
12
|
+
setBinding(binding: any): void;
|
|
13
|
+
connect(): Promise<boolean>;
|
|
14
|
+
disconnect(): Promise<boolean>;
|
|
15
|
+
isConnected(): boolean;
|
|
16
|
+
scan(props: IncyclistScanProps): Promise<DeviceSettings[]>;
|
|
17
|
+
stopScan(): Promise<boolean>;
|
|
18
|
+
}
|
package/lib/types/route.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type Point = {
|
|
2
2
|
lat?: number;
|
|
3
3
|
lng?: number;
|
|
4
4
|
elevation?: number;
|
|
@@ -10,7 +10,7 @@ export declare enum RouteType {
|
|
|
10
10
|
FOLLOW_ROUTE = "follow route",
|
|
11
11
|
VIDEO = "video"
|
|
12
12
|
}
|
|
13
|
-
export
|
|
13
|
+
export type Route = {
|
|
14
14
|
programId: number;
|
|
15
15
|
points: Point[];
|
|
16
16
|
type: string;
|
package/lib/types/user.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const sleep: (ms: any) => Promise<unknown>;
|
|
2
|
+
export declare const resolveNextTick: () => Promise<void>;
|
|
2
3
|
export declare function runWithRetries(fn: any, maxRetries: any, timeBetween: any): Promise<unknown>;
|
|
3
4
|
export declare function floatVal(d?: number | string): number;
|
|
4
5
|
export declare function intVal(d?: number | string): number;
|
|
@@ -9,11 +9,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.Queue = exports.hexstr = exports.intVal = exports.floatVal = exports.runWithRetries = exports.sleep = void 0;
|
|
12
|
+
exports.Queue = exports.hexstr = exports.intVal = exports.floatVal = exports.runWithRetries = exports.resolveNextTick = exports.sleep = void 0;
|
|
13
13
|
const sleep = (ms) => {
|
|
14
14
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
15
15
|
};
|
|
16
16
|
exports.sleep = sleep;
|
|
17
|
+
const resolveNextTick = () => {
|
|
18
|
+
return new Promise(resolve => process.nextTick(() => resolve()));
|
|
19
|
+
};
|
|
20
|
+
exports.resolveNextTick = resolveNextTick;
|
|
17
21
|
function runWithRetries(fn, maxRetries, timeBetween) {
|
|
18
22
|
return new Promise((resolve, reject) => {
|
|
19
23
|
let retries = 0;
|
package/package.json
CHANGED
|
@@ -1,37 +1,39 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "incyclist-devices",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"dependencies": {
|
|
5
|
+
"@serialport/bindings-interface": "^1.2.2",
|
|
5
6
|
"@serialport/parser-byte-length": "^9.0.1",
|
|
6
7
|
"@serialport/parser-delimiter": "^9.0.1",
|
|
7
|
-
"@
|
|
8
|
-
"
|
|
9
|
-
"incyclist-ant-plus": "^0.1.
|
|
8
|
+
"@serialport/parser-readline": "^10.5.0",
|
|
9
|
+
"@serialport/stream": "^10.5.0",
|
|
10
|
+
"incyclist-ant-plus": "^0.1.18",
|
|
10
11
|
"win32filetime": "^1.0.2"
|
|
11
12
|
},
|
|
12
13
|
"peerDependencies": {
|
|
13
14
|
"gd-eventlog": "^0.1.22"
|
|
14
15
|
},
|
|
15
16
|
"devDependencies": {
|
|
16
|
-
"@
|
|
17
|
-
"@
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"eslint
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
17
|
+
"@serialport/binding-mock": "^10.2.2",
|
|
18
|
+
"@serialport/bindings-cpp": "^10.8.0",
|
|
19
|
+
"@types/jest": "^29.2.4",
|
|
20
|
+
"@types/node": "^18.11.18",
|
|
21
|
+
"eslint": "^8.30.0",
|
|
22
|
+
"eslint-config-react-app": "^7.0.1",
|
|
23
|
+
"jest": "^29.3.1",
|
|
24
|
+
"ts-jest": "^29.0.3",
|
|
25
|
+
"typescript": "^4.9.4"
|
|
24
26
|
},
|
|
25
27
|
"scripts": {
|
|
26
28
|
"lint": "eslint . --ext .ts",
|
|
27
29
|
"build": "tsc",
|
|
28
30
|
"test": "jest --coverage",
|
|
29
|
-
"dev": "
|
|
31
|
+
"dev": "tsc --watch"
|
|
30
32
|
},
|
|
31
33
|
"files": [
|
|
32
34
|
"lib/"
|
|
33
35
|
],
|
|
34
|
-
"main": "lib/
|
|
36
|
+
"main": "lib/index.js",
|
|
35
37
|
"directories": {
|
|
36
38
|
"example": "./sample",
|
|
37
39
|
"lib": "./src"
|
package/lib/DeviceSupport.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import DeviceRegistry from './registry';
|
|
2
|
-
import DeviceAdapter from './device';
|
|
3
|
-
import DeviceProtocolBase, { INTERFACE, DeviceProtocol } from './protocol';
|
|
4
|
-
import SimulatorProtocol from './simulator/Simulator';
|
|
5
|
-
import DaumPremiumProtocol from './daum/premium/DaumPremiumProtocol';
|
|
6
|
-
import DaumClassicProtocol from './daum/classic/DaumClassicProtocol';
|
|
7
|
-
import KettlerRacerProtocol from './kettler/ergo-racer/protocol';
|
|
8
|
-
import { AntScanner } from './ant/AntScanner';
|
|
9
|
-
import { CyclingModeProperyType } from './cycling-mode';
|
|
10
|
-
import AntProtocol from './antv2/incyclist-protocol';
|
|
11
|
-
import AntInterface from './antv2/ant-interface';
|
|
12
|
-
import BleProtocol from './ble/incyclist-protocol';
|
|
13
|
-
import BleInterface from './ble/ble-interface';
|
|
14
|
-
import BleHrmDevice from './ble/hrm';
|
|
15
|
-
import BleCyclingPowerDevice from './ble/pwr';
|
|
16
|
-
import BleFitnessMachineDevice from './ble/fm';
|
|
17
|
-
import WahooAdvancedFitnessMachineDevice from './ble/wahoo-kickr';
|
|
18
|
-
declare const Protocols: {
|
|
19
|
-
SimulatorProtocol: typeof SimulatorProtocol;
|
|
20
|
-
DaumClassicProtocol: typeof DaumClassicProtocol;
|
|
21
|
-
DaumPremiumProtocol: typeof DaumPremiumProtocol;
|
|
22
|
-
KettlerRacerProtocol: typeof KettlerRacerProtocol;
|
|
23
|
-
BleProtocol: typeof BleProtocol;
|
|
24
|
-
};
|
|
25
|
-
export interface FeatureList {
|
|
26
|
-
[key: string]: boolean;
|
|
27
|
-
}
|
|
28
|
-
export default class DeviceSupport {
|
|
29
|
-
static _features: FeatureList;
|
|
30
|
-
static init(props?: {
|
|
31
|
-
features?: FeatureList;
|
|
32
|
-
}): void;
|
|
33
|
-
static hasFeature(feature: string): boolean;
|
|
34
|
-
static setFeature(key: string, value: boolean): void;
|
|
35
|
-
}
|
|
36
|
-
export { DeviceProtocolBase, DeviceProtocol, DeviceRegistry, INTERFACE, DeviceAdapter as Device, Protocols, AntScanner, AntProtocol, AntInterface, CyclingModeProperyType, BleProtocol, BleInterface, BleHrmDevice, BleCyclingPowerDevice, BleFitnessMachineDevice, WahooAdvancedFitnessMachineDevice };
|
package/lib/DeviceSupport.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
-
};
|
|
24
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.WahooAdvancedFitnessMachineDevice = exports.BleFitnessMachineDevice = exports.BleCyclingPowerDevice = exports.BleHrmDevice = exports.BleInterface = exports.BleProtocol = exports.CyclingModeProperyType = exports.AntInterface = exports.AntProtocol = exports.AntScanner = exports.Protocols = exports.Device = exports.INTERFACE = exports.DeviceRegistry = exports.DeviceProtocolBase = void 0;
|
|
26
|
-
const registry_1 = __importDefault(require("./registry"));
|
|
27
|
-
exports.DeviceRegistry = registry_1.default;
|
|
28
|
-
const device_1 = __importDefault(require("./device"));
|
|
29
|
-
exports.Device = device_1.default;
|
|
30
|
-
const protocol_1 = __importStar(require("./protocol"));
|
|
31
|
-
exports.DeviceProtocolBase = protocol_1.default;
|
|
32
|
-
Object.defineProperty(exports, "INTERFACE", { enumerable: true, get: function () { return protocol_1.INTERFACE; } });
|
|
33
|
-
const Simulator_1 = __importDefault(require("./simulator/Simulator"));
|
|
34
|
-
const DaumPremiumProtocol_1 = __importDefault(require("./daum/premium/DaumPremiumProtocol"));
|
|
35
|
-
const DaumClassicProtocol_1 = __importDefault(require("./daum/classic/DaumClassicProtocol"));
|
|
36
|
-
const protocol_2 = __importDefault(require("./kettler/ergo-racer/protocol"));
|
|
37
|
-
const AntScanner_1 = require("./ant/AntScanner");
|
|
38
|
-
Object.defineProperty(exports, "AntScanner", { enumerable: true, get: function () { return AntScanner_1.AntScanner; } });
|
|
39
|
-
const cycling_mode_1 = require("./cycling-mode");
|
|
40
|
-
Object.defineProperty(exports, "CyclingModeProperyType", { enumerable: true, get: function () { return cycling_mode_1.CyclingModeProperyType; } });
|
|
41
|
-
const incyclist_protocol_1 = __importDefault(require("./antv2/incyclist-protocol"));
|
|
42
|
-
exports.AntProtocol = incyclist_protocol_1.default;
|
|
43
|
-
const ant_interface_1 = __importDefault(require("./antv2/ant-interface"));
|
|
44
|
-
exports.AntInterface = ant_interface_1.default;
|
|
45
|
-
const incyclist_protocol_2 = __importDefault(require("./ble/incyclist-protocol"));
|
|
46
|
-
exports.BleProtocol = incyclist_protocol_2.default;
|
|
47
|
-
const ble_interface_1 = __importDefault(require("./ble/ble-interface"));
|
|
48
|
-
exports.BleInterface = ble_interface_1.default;
|
|
49
|
-
const hrm_1 = __importDefault(require("./ble/hrm"));
|
|
50
|
-
exports.BleHrmDevice = hrm_1.default;
|
|
51
|
-
const pwr_1 = __importDefault(require("./ble/pwr"));
|
|
52
|
-
exports.BleCyclingPowerDevice = pwr_1.default;
|
|
53
|
-
const fm_1 = __importDefault(require("./ble/fm"));
|
|
54
|
-
exports.BleFitnessMachineDevice = fm_1.default;
|
|
55
|
-
const wahoo_kickr_1 = __importDefault(require("./ble/wahoo-kickr"));
|
|
56
|
-
exports.WahooAdvancedFitnessMachineDevice = wahoo_kickr_1.default;
|
|
57
|
-
const Protocols = {
|
|
58
|
-
SimulatorProtocol: Simulator_1.default,
|
|
59
|
-
DaumClassicProtocol: DaumClassicProtocol_1.default,
|
|
60
|
-
DaumPremiumProtocol: DaumPremiumProtocol_1.default,
|
|
61
|
-
KettlerRacerProtocol: protocol_2.default,
|
|
62
|
-
BleProtocol: incyclist_protocol_2.default
|
|
63
|
-
};
|
|
64
|
-
exports.Protocols = Protocols;
|
|
65
|
-
class DeviceSupport {
|
|
66
|
-
static init(props = {}) {
|
|
67
|
-
if (props.features) {
|
|
68
|
-
this._features = props.features;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
static hasFeature(feature) {
|
|
72
|
-
const featureVal = this._features[feature];
|
|
73
|
-
if (featureVal === undefined)
|
|
74
|
-
return false;
|
|
75
|
-
return featureVal;
|
|
76
|
-
}
|
|
77
|
-
static setFeature(key, value) {
|
|
78
|
-
this._features[key] = value;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
exports.default = DeviceSupport;
|
|
82
|
-
DeviceSupport._features = {};
|
package/lib/ant/AntAdapter.d.ts
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import DeviceAdapter from "../device";
|
|
2
|
-
import { EventLogger } from 'gd-eventlog';
|
|
3
|
-
export declare const DEFAULT_UPDATE_FREQUENCY = 1000;
|
|
4
|
-
export default class AntAdapter extends DeviceAdapter {
|
|
5
|
-
paused: boolean;
|
|
6
|
-
stopped: boolean;
|
|
7
|
-
ignoreHrm: boolean;
|
|
8
|
-
ignoreBike: boolean;
|
|
9
|
-
ignorePower: boolean;
|
|
10
|
-
deviceID: string;
|
|
11
|
-
port: string;
|
|
12
|
-
stick: any;
|
|
13
|
-
channel: number;
|
|
14
|
-
sensor: any;
|
|
15
|
-
deviceData: any;
|
|
16
|
-
data: any;
|
|
17
|
-
logger: EventLogger;
|
|
18
|
-
lastUpdate?: number;
|
|
19
|
-
updateFrequency: number;
|
|
20
|
-
userSettings: {
|
|
21
|
-
weight?: number;
|
|
22
|
-
};
|
|
23
|
-
bikeSettings: {
|
|
24
|
-
weight?: number;
|
|
25
|
-
};
|
|
26
|
-
constructor(protocol: any);
|
|
27
|
-
isSame(device: DeviceAdapter): boolean;
|
|
28
|
-
setSensor(sensor: any): void;
|
|
29
|
-
getID(): string;
|
|
30
|
-
setIgnoreHrm(ignore: any): void;
|
|
31
|
-
setIgnoreBike(ignore: any): void;
|
|
32
|
-
setIgnorePower(ignore: any): void;
|
|
33
|
-
getProfile(): string;
|
|
34
|
-
getPort(): string;
|
|
35
|
-
getWeight(): number;
|
|
36
|
-
setChannel(channel: any): void;
|
|
37
|
-
setStick(stick: any): void;
|
|
38
|
-
isStopped(): boolean;
|
|
39
|
-
onDeviceData(data: any): void;
|
|
40
|
-
onDeviceEvent(data: any): void;
|
|
41
|
-
onAttached(): void;
|
|
42
|
-
update(): void;
|
|
43
|
-
check(): void;
|
|
44
|
-
connect(): void;
|
|
45
|
-
close(): void;
|
|
46
|
-
pause(): Promise<boolean>;
|
|
47
|
-
resume(): Promise<boolean>;
|
|
48
|
-
start(props?: any): Promise<any>;
|
|
49
|
-
stop(): Promise<boolean>;
|
|
50
|
-
}
|