incyclist-devices 2.0.38 → 2.1.1
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/lib/adapters.d.ts +1 -1
- package/lib/antv2/adapter-factory.d.ts +4 -13
- package/lib/antv2/adapter.d.ts +16 -33
- package/lib/antv2/adapter.js +68 -112
- package/lib/antv2/ant-interface.d.ts +3 -11
- package/lib/antv2/ant-interface.js +1 -1
- package/lib/antv2/base/adapter.d.ts +62 -0
- package/lib/antv2/base/adapter.js +360 -0
- package/lib/antv2/base/ant-interface.d.ts +35 -0
- package/lib/antv2/base/ant-interface.js +285 -0
- package/lib/antv2/base/binding.d.ts +13 -0
- package/lib/antv2/base/binding.js +27 -0
- package/lib/antv2/cad/adapter.d.ts +10 -0
- package/lib/antv2/cad/adapter.js +25 -0
- package/lib/antv2/cad/index.d.ts +2 -0
- package/lib/antv2/cad/index.js +7 -0
- package/lib/antv2/consts.d.ts +2 -0
- package/lib/antv2/consts.js +5 -0
- package/lib/antv2/factories/adapter-factory.d.ts +14 -0
- package/lib/antv2/factories/adapter-factory.js +65 -0
- package/lib/antv2/factories/sensor-factory.d.ts +5 -0
- package/lib/antv2/factories/sensor-factory.js +22 -0
- package/lib/antv2/fe/adapter.d.ts +25 -26
- package/lib/antv2/fe/adapter.js +212 -218
- package/lib/antv2/hr/adapter.d.ts +6 -14
- package/lib/antv2/hr/adapter.js +7 -55
- package/lib/antv2/hr copy/adapter.d.ts +11 -0
- package/lib/antv2/hr copy/adapter.js +30 -0
- package/lib/antv2/hr copy/index.d.ts +2 -0
- package/lib/antv2/hr copy/index.js +7 -0
- package/lib/antv2/index.d.ts +5 -4
- package/lib/antv2/index.js +4 -2
- package/lib/antv2/pwr/adapter.d.ts +9 -29
- package/lib/antv2/pwr/adapter.js +20 -130
- package/lib/antv2/types.d.ts +23 -3
- package/lib/base/adpater.d.ts +42 -45
- package/lib/base/adpater.js +144 -110
- package/lib/base/consts.d.ts +4 -0
- package/lib/base/consts.js +9 -0
- package/lib/ble/adapter-factory.d.ts +4 -4
- package/lib/ble/base/adapter.d.ts +6 -24
- package/lib/ble/base/adapter.js +4 -94
- package/lib/ble/ble-interface.d.ts +2 -3
- package/lib/ble/cp/adapter.d.ts +6 -11
- package/lib/ble/cp/adapter.js +9 -12
- package/lib/ble/elite/adapter.d.ts +8 -8
- package/lib/ble/elite/adapter.js +6 -2
- package/lib/ble/fm/adapter.d.ts +11 -11
- package/lib/ble/fm/adapter.js +26 -20
- package/lib/ble/hr/adapter.d.ts +3 -4
- package/lib/ble/hr/adapter.js +2 -2
- package/lib/ble/tacx/adapter.d.ts +2 -3
- package/lib/ble/tacx/adapter.js +8 -8
- package/lib/ble/types.d.ts +1 -2
- package/lib/ble/wahoo/adapter.d.ts +2 -2
- package/lib/ble/wahoo/adapter.js +6 -6
- package/lib/ble/wahoo/comms.js +16 -16
- package/lib/factories/adapters.d.ts +7 -0
- package/lib/factories/adapters.js +49 -0
- package/lib/factories/index.d.ts +3 -0
- package/lib/factories/index.js +10 -0
- package/lib/factories/interfaces.d.ts +7 -0
- package/lib/factories/interfaces.js +27 -0
- package/lib/index.d.ts +8 -9
- package/lib/index.js +5 -8
- package/lib/interfaces.d.ts +1 -1
- package/lib/modes/ant-fe-adv-st-mode.d.ts +12 -0
- package/lib/modes/ant-fe-adv-st-mode.js +83 -0
- package/lib/modes/antble-erg.d.ts +31 -0
- package/lib/modes/antble-erg.js +28 -0
- package/lib/modes/antble-smarttrainer.d.ts +23 -0
- package/lib/modes/antble-smarttrainer.js +65 -0
- package/lib/modes/base.d.ts +29 -0
- package/lib/modes/{cycling-mode.js → base.js} +23 -26
- package/lib/modes/daum-classic-standard.d.ts +17 -0
- package/lib/modes/daum-classic-standard.js +54 -0
- package/lib/modes/daum-erg.d.ts +49 -0
- package/lib/{serial/daum/ERGCyclingMode.js → modes/daum-erg.js} +45 -73
- package/lib/modes/daum-power.d.ts +5 -0
- package/lib/{serial/daum/DaumPowerMeterCyclingMode.js → modes/daum-power.js} +1 -10
- package/lib/modes/daum-premium-standard.d.ts +24 -0
- package/lib/{serial/daum/premium/modes/daum-classic.js → modes/daum-premium-standard.js} +26 -38
- package/lib/modes/daum-smarttrainer.d.ts +83 -0
- package/lib/{serial/daum/SmartTrainerCyclingMode.js → modes/daum-smarttrainer.js} +23 -26
- package/lib/modes/kettler-erg.d.ts +44 -0
- package/lib/{serial/kettler/ergo-racer/modes/erg.js → modes/kettler-erg.js} +12 -23
- package/lib/modes/power-base.d.ts +28 -3
- package/lib/modes/power-base.js +184 -7
- package/lib/modes/power-meter.d.ts +11 -16
- package/lib/modes/power-meter.js +15 -54
- package/lib/modes/simulator.d.ts +38 -10
- package/lib/modes/simulator.js +14 -46
- package/lib/modes/{cycling-mode.d.ts → types.d.ts} +22 -30
- package/lib/modes/types.js +56 -0
- package/lib/serial/SinglePathScanner.d.ts +17 -0
- package/lib/serial/SinglePathScanner.js +87 -0
- package/lib/serial/adapter-factory.d.ts +8 -6
- package/lib/serial/adapter.d.ts +6 -11
- package/lib/serial/adapter.js +5 -2
- package/lib/serial/base/adapter.d.ts +17 -0
- package/lib/serial/base/adapter.js +67 -0
- package/lib/serial/base/comms.d.ts +62 -0
- package/lib/serial/base/comms.js +280 -0
- package/lib/serial/base/serial-interface.d.ts +36 -0
- package/lib/serial/base/serial-interface.js +288 -0
- package/lib/serial/base/serial-scanner.d.ts +16 -0
- package/lib/serial/base/serial-scanner.js +87 -0
- package/lib/serial/base/serialport.d.ts +17 -0
- package/lib/serial/base/serialport.js +87 -0
- package/lib/serial/comms.d.ts +2 -2
- package/lib/serial/daum/DaumAdapter.d.ts +26 -35
- package/lib/serial/daum/DaumAdapter.js +214 -161
- package/lib/serial/daum/classic/PROTOCOL_NAME.d.ts +2 -0
- package/lib/serial/daum/classic/PROTOCOL_NAME.js +5 -0
- package/lib/serial/daum/classic/adapter.d.ts +13 -26
- package/lib/serial/daum/classic/adapter.js +72 -176
- package/lib/serial/daum/classic/comms.d.ts +21 -17
- package/lib/serial/daum/classic/comms.js +41 -14
- package/lib/serial/daum/classic/consts.d.ts +2 -0
- package/lib/serial/daum/classic/consts.js +5 -0
- package/lib/serial/daum/classic/mock.d.ts +4 -0
- package/lib/serial/daum/classic/mock.js +18 -7
- package/lib/serial/daum/classic/types.d.ts +8 -10
- package/lib/serial/daum/classic/utils.d.ts +1 -2
- package/lib/serial/daum/consts.d.ts +0 -0
- package/lib/serial/daum/consts.js +0 -0
- package/lib/serial/daum/premium/adapter.d.ts +17 -15
- package/lib/serial/daum/premium/adapter.js +86 -109
- package/lib/serial/daum/premium/comms.d.ts +7 -7
- package/lib/serial/daum/premium/comms.js +25 -16
- package/lib/serial/daum/premium/mock.d.ts +5 -1
- package/lib/serial/daum/premium/mock.js +17 -7
- package/lib/serial/daum/premium/types.d.ts +32 -17
- package/lib/serial/daum/premium/types.js +8 -8
- package/lib/serial/daum/premium/utils.d.ts +2 -3
- package/lib/serial/daum/premium/utils.js +3 -3
- package/lib/serial/daum/types.d.ts +14 -0
- package/lib/serial/daum/types.js +13 -0
- package/lib/serial/factories/adapter-factory.d.ts +14 -0
- package/lib/serial/factories/adapter-factory.js +30 -0
- package/lib/serial/index.d.ts +8 -5
- package/lib/serial/index.js +15 -15
- package/lib/serial/kettler/comms.d.ts +1 -1
- package/lib/serial/kettler/ergo-racer/adapter.d.ts +11 -16
- package/lib/serial/kettler/ergo-racer/adapter.js +10 -12
- package/lib/serial/kettler/types.d.ts +8 -0
- package/lib/serial/kettler/types.js +2 -0
- package/lib/serial/serial-interface.d.ts +2 -32
- package/lib/serial/serial-interface.js +4 -78
- package/lib/serial/serial-scanner.d.ts +16 -0
- package/lib/serial/serial-scanner.js +87 -0
- package/lib/serial/serialport.d.ts +1 -13
- package/lib/serial/types.d.ts +45 -0
- package/lib/serial/types.js +9 -0
- package/lib/simulator/Simulator.d.ts +13 -19
- package/lib/simulator/Simulator.js +10 -51
- package/lib/types/Command.d.ts +8 -0
- package/lib/types/Command.js +2 -0
- package/lib/types/adapter.d.ts +34 -24
- package/lib/types/command.d.ts +0 -8
- package/lib/types/command.js +0 -2
- package/lib/types/data.d.ts +12 -1
- package/lib/types/device.d.ts +8 -23
- package/lib/types/device.js +9 -8
- package/lib/types/index.d.ts +6 -0
- package/lib/types/index.js +22 -0
- package/lib/types/route.d.ts +0 -19
- package/lib/types/route.js +0 -2
- package/lib/types/types.d.ts +8 -0
- package/lib/types/types.js +2 -0
- package/lib/utils/utils.d.ts +2 -1
- package/lib/utils/utils.js +22 -4
- package/package.json +3 -3
- package/lib/antv2/modes/ant-fe-adv-st-mode.d.ts +0 -9
- package/lib/antv2/modes/ant-fe-adv-st-mode.js +0 -51
- package/lib/antv2/modes/ant-fe-erg-mode.d.ts +0 -6
- package/lib/antv2/modes/ant-fe-erg-mode.js +0 -14
- package/lib/antv2/modes/ant-fe-st-mode.d.ts +0 -5
- package/lib/antv2/modes/ant-fe-st-mode.js +0 -13
- package/lib/modes/ble-erg-mode.d.ts +0 -18
- package/lib/modes/ble-erg-mode.js +0 -148
- package/lib/modes/ble-st-mode.d.ts +0 -15
- package/lib/modes/ble-st-mode.js +0 -96
- package/lib/serial/daum/DaumPowerMeterCyclingMode.d.ts +0 -8
- package/lib/serial/daum/ERGCyclingMode.d.ts +0 -26
- package/lib/serial/daum/SmartTrainerCyclingMode.d.ts +0 -42
- package/lib/serial/daum/classic/modes/daum-classic.d.ts +0 -13
- package/lib/serial/daum/classic/modes/daum-classic.js +0 -97
- package/lib/serial/daum/constants.d.ts +0 -19
- package/lib/serial/daum/constants.js +0 -22
- package/lib/serial/daum/premium/modes/daum-classic.d.ts +0 -14
- package/lib/serial/kettler/ergo-racer/modes/erg.d.ts +0 -25
package/lib/base/adpater.js
CHANGED
|
@@ -12,14 +12,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.ControllableDevice = exports.DEFAULT_PROPS = exports.DEFAULT_USER_WEIGHT = exports.DEFAULT_BIKE_WEIGHT = void 0;
|
|
16
15
|
const events_1 = __importDefault(require("events"));
|
|
17
|
-
|
|
18
|
-
exports.DEFAULT_USER_WEIGHT = 75;
|
|
19
|
-
exports.DEFAULT_PROPS = {
|
|
20
|
-
userWeight: exports.DEFAULT_USER_WEIGHT,
|
|
21
|
-
bikeWeight: exports.DEFAULT_BIKE_WEIGHT
|
|
22
|
-
};
|
|
16
|
+
const consts_1 = require("./consts");
|
|
23
17
|
class IncyclistDevice extends events_1.default {
|
|
24
18
|
constructor(settings, props) {
|
|
25
19
|
super();
|
|
@@ -30,24 +24,40 @@ class IncyclistDevice extends events_1.default {
|
|
|
30
24
|
this.started = false;
|
|
31
25
|
this.stopped = false;
|
|
32
26
|
this.paused = false;
|
|
27
|
+
this.user = {};
|
|
28
|
+
this.data = {};
|
|
29
|
+
this.cyclingMode = this.getDefaultCyclingMode();
|
|
33
30
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
31
|
+
getLogger() { return this.logger; }
|
|
32
|
+
logEvent(event) {
|
|
33
|
+
if (!this.logger || this.paused)
|
|
34
|
+
return;
|
|
35
|
+
this.logger.logEvent(event);
|
|
36
|
+
const w = global.window;
|
|
37
|
+
if ((w === null || w === void 0 ? void 0 : w.DEVICE_DEBUG) || process.env.BLE_DEBUG || process.env.ANT_DEBUG) {
|
|
38
|
+
const logText = `~~~ ${this.getInterface()}: ${this.logger.getName()}`;
|
|
39
|
+
console.log(logText, event);
|
|
40
|
+
}
|
|
40
41
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
hasCapability(capability) {
|
|
44
|
-
return this.capabilities.find(c => c === capability) !== undefined;
|
|
42
|
+
getName() {
|
|
43
|
+
return this.settings.name;
|
|
45
44
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
getID() { throw new Error('not implemented'); }
|
|
46
|
+
getUniqueName() {
|
|
47
|
+
throw new Error("Method not implemented.");
|
|
49
48
|
}
|
|
50
|
-
|
|
49
|
+
getDisplayName() {
|
|
50
|
+
return this.getName();
|
|
51
|
+
}
|
|
52
|
+
getSettings() {
|
|
53
|
+
return this.settings;
|
|
54
|
+
}
|
|
55
|
+
isSame(adapter) { throw new Error("Method not implemented."); }
|
|
56
|
+
isEqual(settings) { throw new Error("Method not implemented."); }
|
|
57
|
+
getInterface() {
|
|
58
|
+
return typeof this.settings.interface === 'string' ? this.settings.interface : this.settings.interface.getName();
|
|
59
|
+
}
|
|
60
|
+
check() { throw new Error("Method not implemented."); }
|
|
51
61
|
start(props) { throw new Error("Method not implemented."); }
|
|
52
62
|
stop() { throw new Error("Method not implemented."); }
|
|
53
63
|
pause() {
|
|
@@ -62,15 +72,32 @@ class IncyclistDevice extends events_1.default {
|
|
|
62
72
|
return true;
|
|
63
73
|
});
|
|
64
74
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
this.
|
|
69
|
-
const
|
|
70
|
-
if (
|
|
71
|
-
|
|
72
|
-
|
|
75
|
+
connect() { throw new Error('not implemented'); }
|
|
76
|
+
close() { throw new Error('not implemented'); }
|
|
77
|
+
getControllerInfo() {
|
|
78
|
+
const a = this.constructor;
|
|
79
|
+
const config = a.controllers;
|
|
80
|
+
if (!config)
|
|
81
|
+
return undefined;
|
|
82
|
+
if (config.modes && config.modes.length > 0) {
|
|
83
|
+
if (!config.default)
|
|
84
|
+
config.default = config.modes[0];
|
|
85
|
+
return config;
|
|
73
86
|
}
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
isControllable() {
|
|
90
|
+
if (!this.getControllerInfo())
|
|
91
|
+
return false;
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
getCapabilities() { return this.capabilities; }
|
|
95
|
+
hasCapability(capability) {
|
|
96
|
+
return this.capabilities.find(c => c === capability) !== undefined;
|
|
97
|
+
}
|
|
98
|
+
addCapability(capability) {
|
|
99
|
+
if (!this.capabilities.includes(capability))
|
|
100
|
+
this.capabilities.push(capability);
|
|
74
101
|
}
|
|
75
102
|
getMaxUpdateFrequency() {
|
|
76
103
|
return this.updateFrequency;
|
|
@@ -78,34 +105,100 @@ class IncyclistDevice extends events_1.default {
|
|
|
78
105
|
setMaxUpdateFrequency(value) {
|
|
79
106
|
this.updateFrequency = value;
|
|
80
107
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
108
|
+
update() { throw new Error("Method not implemented."); }
|
|
109
|
+
setCyclingMode(mode, settings, sendInitCommands) {
|
|
110
|
+
if (!this.isControllable())
|
|
111
|
+
return;
|
|
112
|
+
let selectedMode;
|
|
113
|
+
if (typeof mode === 'string') {
|
|
114
|
+
const supported = this.getSupportedCyclingModes();
|
|
115
|
+
const CyclingModeClass = supported.find(M => { const m = new M(this); return m.getName() === mode; });
|
|
116
|
+
if (CyclingModeClass) {
|
|
117
|
+
this.cyclingMode = new CyclingModeClass(this, settings);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
selectedMode = this.getDefaultCyclingMode();
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
selectedMode = mode;
|
|
124
|
+
}
|
|
125
|
+
this.cyclingMode = selectedMode;
|
|
126
|
+
this.cyclingMode.setSettings(settings);
|
|
85
127
|
}
|
|
86
|
-
|
|
87
|
-
|
|
128
|
+
getSupportedCyclingModes() {
|
|
129
|
+
if (!this.isControllable())
|
|
130
|
+
return [];
|
|
131
|
+
const config = this.getControllerInfo();
|
|
132
|
+
return config.modes;
|
|
88
133
|
}
|
|
89
|
-
|
|
134
|
+
getCyclingMode() {
|
|
135
|
+
if (this.isControllable())
|
|
136
|
+
return this.cyclingMode;
|
|
137
|
+
}
|
|
138
|
+
getDefaultCyclingMode() {
|
|
139
|
+
if (!this.isControllable())
|
|
140
|
+
return;
|
|
141
|
+
const config = this.getControllerInfo();
|
|
142
|
+
const C = config.default;
|
|
143
|
+
try {
|
|
144
|
+
return new C(this);
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
this.logEvent({ message: 'error', error: err.message, fn: 'getDefaultCyclingMode', stack: err.stack });
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
setBikeProps(props) {
|
|
151
|
+
const { user, userWeight } = props || {};
|
|
152
|
+
if (user)
|
|
153
|
+
this.setUser(user);
|
|
154
|
+
if (userWeight)
|
|
155
|
+
this.user.weight = userWeight;
|
|
156
|
+
const keys = Object.keys(props);
|
|
157
|
+
keys.forEach(k => {
|
|
158
|
+
const p = props[k];
|
|
159
|
+
if (p === null)
|
|
160
|
+
delete this.props[k];
|
|
161
|
+
else if (p !== undefined)
|
|
162
|
+
this.props[k] = p;
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
sendInitCommands() {
|
|
166
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
167
|
+
return false;
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
sendUpdate(request) {
|
|
171
|
+
if (!this.isControllable())
|
|
172
|
+
return;
|
|
90
173
|
throw new Error("Method not implemented.");
|
|
91
174
|
}
|
|
92
|
-
|
|
93
|
-
|
|
175
|
+
setUser(user) {
|
|
176
|
+
this.user = user;
|
|
177
|
+
if (!user.weight)
|
|
178
|
+
this.user.weight = consts_1.DEFAULT_USER_WEIGHT;
|
|
94
179
|
}
|
|
95
|
-
|
|
96
|
-
return
|
|
180
|
+
getUser() {
|
|
181
|
+
return this.user;
|
|
97
182
|
}
|
|
98
|
-
|
|
99
|
-
|
|
183
|
+
getWeight() {
|
|
184
|
+
const { user = {}, props = consts_1.DEFAULT_PROPS } = this;
|
|
185
|
+
const userWeight = user.weight || props.userWeight || consts_1.DEFAULT_USER_WEIGHT;
|
|
186
|
+
const bikeWeight = props.bikeWeight || consts_1.DEFAULT_BIKE_WEIGHT;
|
|
187
|
+
return userWeight + bikeWeight;
|
|
100
188
|
}
|
|
101
|
-
|
|
189
|
+
isUpdateWithinFrequency() {
|
|
102
190
|
const updateFrequency = this.getMaxUpdateFrequency();
|
|
103
191
|
if (updateFrequency === -1 || updateFrequency === undefined)
|
|
104
192
|
return true;
|
|
105
193
|
return (!this.lastUpdate || (Date.now() - this.lastUpdate) > updateFrequency);
|
|
106
194
|
}
|
|
195
|
+
canEmitData() {
|
|
196
|
+
if (this.paused || this.stopped)
|
|
197
|
+
return false;
|
|
198
|
+
return this.isUpdateWithinFrequency();
|
|
199
|
+
}
|
|
107
200
|
emitData(data) {
|
|
108
|
-
if (!this.
|
|
201
|
+
if (!this.canEmitData())
|
|
109
202
|
return;
|
|
110
203
|
if (this.onDataFn)
|
|
111
204
|
this.onDataFn(data);
|
|
@@ -121,74 +214,15 @@ class IncyclistDevice extends events_1.default {
|
|
|
121
214
|
isPaused() {
|
|
122
215
|
return this.paused;
|
|
123
216
|
}
|
|
217
|
+
getData() {
|
|
218
|
+
return this.data;
|
|
219
|
+
}
|
|
124
220
|
hasDataListeners() {
|
|
125
221
|
return this.onDataFn || this.listenerCount('data') > 0;
|
|
126
222
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
class ControllableDevice extends IncyclistDevice {
|
|
130
|
-
constructor(settings, props) {
|
|
131
|
-
super(settings, props);
|
|
132
|
-
this.cyclingMode = this.getDefaultCyclingMode();
|
|
133
|
-
this.user = {};
|
|
134
|
-
}
|
|
135
|
-
isControllable() {
|
|
136
|
-
return true;
|
|
137
|
-
}
|
|
138
|
-
setUser(user) {
|
|
139
|
-
this.user = user;
|
|
140
|
-
if (!user.weight)
|
|
141
|
-
this.user.weight = exports.DEFAULT_USER_WEIGHT;
|
|
142
|
-
}
|
|
143
|
-
setBikeProps(props) {
|
|
144
|
-
const { user, userWeight } = props || {};
|
|
145
|
-
if (user)
|
|
146
|
-
this.setUser(user);
|
|
147
|
-
if (userWeight)
|
|
148
|
-
this.user.weight = userWeight;
|
|
149
|
-
const keys = Object.keys(props);
|
|
150
|
-
keys.forEach(k => {
|
|
151
|
-
const p = props[k];
|
|
152
|
-
if (p === null)
|
|
153
|
-
delete this.props[k];
|
|
154
|
-
else if (p !== undefined)
|
|
155
|
-
this.props[k] = p;
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
getSupportedCyclingModes() { throw new Error('not implemented'); }
|
|
159
|
-
getDefaultCyclingMode() { throw new Error('not implemented'); }
|
|
160
|
-
setCyclingMode(mode, settings) {
|
|
161
|
-
let selectedMode;
|
|
162
|
-
if (typeof mode === 'string') {
|
|
163
|
-
const supported = this.getSupportedCyclingModes();
|
|
164
|
-
const CyclingModeClass = supported.find(M => { const m = new M(this); return m.getName() === mode; });
|
|
165
|
-
if (CyclingModeClass) {
|
|
166
|
-
this.cyclingMode = new CyclingModeClass(this, settings);
|
|
167
|
-
return;
|
|
168
|
-
}
|
|
169
|
-
selectedMode = this.getDefaultCyclingMode();
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
selectedMode = mode;
|
|
173
|
-
}
|
|
174
|
-
this.cyclingMode = selectedMode;
|
|
175
|
-
this.cyclingMode.setSettings(settings);
|
|
176
|
-
}
|
|
177
|
-
sendInitCommands() {
|
|
178
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
179
|
-
return true;
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
getCyclingMode() {
|
|
183
|
-
if (!this.cyclingMode)
|
|
184
|
-
this.setCyclingMode(this.getDefaultCyclingMode());
|
|
185
|
-
return this.cyclingMode;
|
|
186
|
-
}
|
|
187
|
-
getWeight() {
|
|
188
|
-
const { user = {}, props = exports.DEFAULT_PROPS } = this;
|
|
189
|
-
const userWeight = user.weight || props.userWeight || exports.DEFAULT_USER_WEIGHT;
|
|
190
|
-
const bikeWeight = props.bikeWeight || exports.DEFAULT_BIKE_WEIGHT;
|
|
191
|
-
return userWeight + bikeWeight;
|
|
223
|
+
onData(callback) {
|
|
224
|
+
this.onDataFn = callback;
|
|
192
225
|
}
|
|
193
226
|
}
|
|
194
|
-
|
|
227
|
+
IncyclistDevice.controllers = {};
|
|
228
|
+
exports.default = IncyclistDevice;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_PROPS = exports.DEFAULT_USER_WEIGHT = exports.DEFAULT_BIKE_WEIGHT = void 0;
|
|
4
|
+
exports.DEFAULT_BIKE_WEIGHT = 10;
|
|
5
|
+
exports.DEFAULT_USER_WEIGHT = 75;
|
|
6
|
+
exports.DEFAULT_PROPS = {
|
|
7
|
+
userWeight: exports.DEFAULT_USER_WEIGHT,
|
|
8
|
+
bikeWeight: exports.DEFAULT_BIKE_WEIGHT
|
|
9
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DeviceProperties } from "../types/device";
|
|
2
1
|
import BleAdapter from "./base/adapter";
|
|
3
2
|
import { BleDeviceSettings, BleProtocol } from "./types";
|
|
3
|
+
import { DeviceProperties } from "../types";
|
|
4
4
|
import { BleComms } from "./base/comms";
|
|
5
5
|
export interface BleAdapterInfo {
|
|
6
6
|
protocol: BleProtocol;
|
|
@@ -10,7 +10,7 @@ export interface BleAdapterInfo {
|
|
|
10
10
|
export default class BleAdapterFactory {
|
|
11
11
|
static _instance: BleAdapterFactory;
|
|
12
12
|
implementations: BleAdapterInfo[];
|
|
13
|
-
instances: BleAdapter
|
|
13
|
+
instances: Array<BleAdapter>;
|
|
14
14
|
static getInstance(): BleAdapterFactory;
|
|
15
15
|
constructor();
|
|
16
16
|
getAdapterInfo(protocol: BleProtocol): BleAdapterInfo;
|
|
@@ -22,9 +22,9 @@ export default class BleAdapterFactory {
|
|
|
22
22
|
}): void;
|
|
23
23
|
find(settings?: BleDeviceSettings): BleAdapter;
|
|
24
24
|
register(protocol: BleProtocol, Adapter: typeof BleAdapter, Comm: typeof BleComms): void;
|
|
25
|
-
getAllInstances(): BleAdapter
|
|
25
|
+
getAllInstances(): Array<BleAdapter>;
|
|
26
26
|
getAllSupportedComms(): (typeof BleComms)[];
|
|
27
|
-
getAllSupportedAdapters(): (typeof BleAdapter)
|
|
27
|
+
getAllSupportedAdapters(): Array<(typeof BleAdapter)>;
|
|
28
28
|
getAllSupportedServices(): string[];
|
|
29
29
|
getDeviceClasses(peripheral: any, props?: {
|
|
30
30
|
protocol?: BleProtocol;
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import IncyclistDevice from "../../base/adpater";
|
|
2
|
-
import CyclingMode, { IncyclistBikeData } from "../../modes/cycling-mode";
|
|
3
|
-
import { Bike } from "../../types/adapter";
|
|
4
|
-
import { DeviceData } from "../../types/data";
|
|
5
|
-
import { DeviceProperties } from "../../types/device";
|
|
6
|
-
import { User } from "../../types/user";
|
|
7
2
|
import { BleComms } from "./comms";
|
|
8
3
|
import BleInterface from "../ble-interface";
|
|
9
4
|
import { BleDeviceProperties, BleDeviceSettings, BleStartProperties } from "../types";
|
|
10
|
-
|
|
5
|
+
import { IAdapter, IncyclistBikeData, IncyclistAdapterData, DeviceProperties } from "../../types";
|
|
6
|
+
export default class BleAdapter extends IncyclistDevice<BleDeviceProperties> {
|
|
11
7
|
ble: BleInterface;
|
|
12
8
|
deviceData: any;
|
|
13
|
-
data:
|
|
9
|
+
data: IncyclistAdapterData;
|
|
14
10
|
dataMsgCount: number;
|
|
15
11
|
lastDataTS: number;
|
|
16
12
|
device: BleComms;
|
|
@@ -20,7 +16,7 @@ export default class BleAdapter extends IncyclistDevice {
|
|
|
20
16
|
close(): Promise<boolean>;
|
|
21
17
|
getComms(): BleComms;
|
|
22
18
|
isEqual(settings: BleDeviceSettings): boolean;
|
|
23
|
-
isSame(adapter:
|
|
19
|
+
isSame(adapter: IAdapter): boolean;
|
|
24
20
|
isConnected(): boolean;
|
|
25
21
|
resetData(): void;
|
|
26
22
|
getInterface(): string;
|
|
@@ -28,8 +24,8 @@ export default class BleAdapter extends IncyclistDevice {
|
|
|
28
24
|
getID(): string;
|
|
29
25
|
getName(): string;
|
|
30
26
|
onDeviceData(deviceData: any): void;
|
|
31
|
-
mapData(deviceData: any):
|
|
32
|
-
transformData(data: IncyclistBikeData):
|
|
27
|
+
mapData(deviceData: any): IncyclistAdapterData | IncyclistBikeData;
|
|
28
|
+
transformData(data: IncyclistBikeData): IncyclistAdapterData;
|
|
33
29
|
getSettings(): BleDeviceSettings;
|
|
34
30
|
setProperties(props: BleDeviceProperties): void;
|
|
35
31
|
check(): Promise<boolean>;
|
|
@@ -38,17 +34,3 @@ export default class BleAdapter extends IncyclistDevice {
|
|
|
38
34
|
pause(): Promise<boolean>;
|
|
39
35
|
resume(): Promise<boolean>;
|
|
40
36
|
}
|
|
41
|
-
export declare class BleControllableAdapter extends BleAdapter implements Bike {
|
|
42
|
-
cyclingMode: CyclingMode;
|
|
43
|
-
user?: User;
|
|
44
|
-
constructor(settings: BleDeviceSettings, props?: DeviceProperties);
|
|
45
|
-
setUser(user: User): void;
|
|
46
|
-
isControllable(): boolean;
|
|
47
|
-
setBikeProps(props: DeviceProperties): void;
|
|
48
|
-
getWeight(): number;
|
|
49
|
-
getSupportedCyclingModes(): any[];
|
|
50
|
-
getDefaultCyclingMode(): CyclingMode;
|
|
51
|
-
setCyclingMode(mode: CyclingMode | string, settings?: any): void;
|
|
52
|
-
sendInitCommands(): Promise<boolean>;
|
|
53
|
-
getCyclingMode(): CyclingMode;
|
|
54
|
-
}
|
package/lib/ble/base/adapter.js
CHANGED
|
@@ -1,27 +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
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -35,8 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
13
|
};
|
|
37
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
|
|
39
|
-
const adpater_1 = __importStar(require("../../base/adpater"));
|
|
15
|
+
const adpater_1 = __importDefault(require("../../base/adpater"));
|
|
40
16
|
const ble_interface_1 = __importDefault(require("../ble-interface"));
|
|
41
17
|
const INTERFACE_NAME = 'ble';
|
|
42
18
|
class BleAdapter extends adpater_1.default {
|
|
@@ -134,10 +110,10 @@ class BleAdapter extends adpater_1.default {
|
|
|
134
110
|
this.dataMsgCount++;
|
|
135
111
|
this.lastDataTS = Date.now();
|
|
136
112
|
this.deviceData = Object.assign({}, deviceData);
|
|
137
|
-
if (!this.started || !this.
|
|
113
|
+
if (!this.started || !this.canEmitData())
|
|
138
114
|
return;
|
|
139
|
-
this.logEvent({ message: 'onDeviceData', data: deviceData, isControllable: (
|
|
140
|
-
if (this
|
|
115
|
+
this.logEvent({ message: 'onDeviceData', data: deviceData, isControllable: this.isControllable() });
|
|
116
|
+
if (this.isControllable()) {
|
|
141
117
|
const mappedData = this.mapData(deviceData);
|
|
142
118
|
const incyclistData = this.getCyclingMode().updateData(mappedData);
|
|
143
119
|
this.data = this.transformData(incyclistData);
|
|
@@ -232,69 +208,3 @@ class BleAdapter extends adpater_1.default {
|
|
|
232
208
|
}
|
|
233
209
|
}
|
|
234
210
|
exports.default = BleAdapter;
|
|
235
|
-
class BleControllableAdapter extends BleAdapter {
|
|
236
|
-
constructor(settings, props) {
|
|
237
|
-
super(settings, props);
|
|
238
|
-
this.cyclingMode = this.getDefaultCyclingMode();
|
|
239
|
-
this.user = {};
|
|
240
|
-
}
|
|
241
|
-
setUser(user) {
|
|
242
|
-
this.user = user;
|
|
243
|
-
if (!user.weight)
|
|
244
|
-
this.user.weight = adpater_1.DEFAULT_USER_WEIGHT;
|
|
245
|
-
}
|
|
246
|
-
isControllable() {
|
|
247
|
-
return true;
|
|
248
|
-
}
|
|
249
|
-
setBikeProps(props) {
|
|
250
|
-
const { user, userWeight } = props || {};
|
|
251
|
-
if (user)
|
|
252
|
-
this.setUser(user);
|
|
253
|
-
if (userWeight)
|
|
254
|
-
this.user.weight = userWeight;
|
|
255
|
-
const keys = Object.keys(props);
|
|
256
|
-
keys.forEach(k => {
|
|
257
|
-
const p = props[k];
|
|
258
|
-
if (p === null)
|
|
259
|
-
delete this.props[k];
|
|
260
|
-
else if (p !== undefined)
|
|
261
|
-
this.props[k] = p;
|
|
262
|
-
});
|
|
263
|
-
}
|
|
264
|
-
getWeight() {
|
|
265
|
-
const { user = {}, props = adpater_1.DEFAULT_PROPS } = this;
|
|
266
|
-
const userWeight = user.weight || props.userWeight || adpater_1.DEFAULT_USER_WEIGHT;
|
|
267
|
-
const bikeWeight = props.bikeWeight || adpater_1.DEFAULT_BIKE_WEIGHT;
|
|
268
|
-
return userWeight + bikeWeight;
|
|
269
|
-
}
|
|
270
|
-
getSupportedCyclingModes() { throw new Error('not implemented'); }
|
|
271
|
-
getDefaultCyclingMode() { throw new Error('not implemented'); }
|
|
272
|
-
setCyclingMode(mode, settings) {
|
|
273
|
-
let selectedMode;
|
|
274
|
-
if (typeof mode === 'string') {
|
|
275
|
-
const supported = this.getSupportedCyclingModes();
|
|
276
|
-
const CyclingModeClass = supported.find(M => { const m = new M(this); return m.getName() === mode; });
|
|
277
|
-
if (CyclingModeClass) {
|
|
278
|
-
this.cyclingMode = new CyclingModeClass(this, settings);
|
|
279
|
-
return;
|
|
280
|
-
}
|
|
281
|
-
selectedMode = this.getDefaultCyclingMode();
|
|
282
|
-
}
|
|
283
|
-
else {
|
|
284
|
-
selectedMode = mode;
|
|
285
|
-
}
|
|
286
|
-
this.cyclingMode = selectedMode;
|
|
287
|
-
this.cyclingMode.setSettings(settings);
|
|
288
|
-
}
|
|
289
|
-
sendInitCommands() {
|
|
290
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
291
|
-
return true;
|
|
292
|
-
});
|
|
293
|
-
}
|
|
294
|
-
getCyclingMode() {
|
|
295
|
-
if (!this.cyclingMode)
|
|
296
|
-
this.setCyclingMode(this.getDefaultCyclingMode());
|
|
297
|
-
return this.cyclingMode;
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
exports.BleControllableAdapter = BleControllableAdapter;
|
|
@@ -4,9 +4,8 @@ import { EventLogger } from 'gd-eventlog';
|
|
|
4
4
|
import BleAdapterFactory from './adapter-factory';
|
|
5
5
|
import { BleInterfaceProps, BlePeripheral, BleDeviceSettings, BleProtocol, BleBinding, BleInterfaceState, BleScanProps, BleCharacteristic } from './types';
|
|
6
6
|
import { BleComms } from './base/comms';
|
|
7
|
-
import { IncyclistInterface } from '../types
|
|
7
|
+
import { IncyclistInterface, IncyclistScanProps } from '../types';
|
|
8
8
|
import BleAdapter from './base/adapter';
|
|
9
|
-
import { IncyclistScanProps } from '../types/device';
|
|
10
9
|
import BlePeripheralCache from './peripheral-cache';
|
|
11
10
|
import EventEmitter from 'events';
|
|
12
11
|
export interface ScanState {
|
|
@@ -40,7 +39,7 @@ export default class BleInterface extends EventEmitter implements IncyclistInter
|
|
|
40
39
|
logger: EventLogger;
|
|
41
40
|
props: BleInterfaceProps;
|
|
42
41
|
binding: BleBinding;
|
|
43
|
-
connectedDevices: BleAdapter
|
|
42
|
+
connectedDevices: Array<BleAdapter>;
|
|
44
43
|
sensorIsConnecting: boolean;
|
|
45
44
|
emittingAdapters: {
|
|
46
45
|
comms: BleComms;
|
package/lib/ble/cp/adapter.d.ts
CHANGED
|
@@ -1,22 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { IncyclistBikeData } from '../../modes/cycling-mode';
|
|
3
|
-
import { BleControllableAdapter } from '../base/adapter';
|
|
4
|
-
import { DeviceProperties } from '../../types/device';
|
|
1
|
+
import BleAdapter from '../base/adapter';
|
|
5
2
|
import { PowerData } from './types';
|
|
6
|
-
import { DeviceData } from '../../types/data';
|
|
7
3
|
import { BleDeviceSettings } from '../types';
|
|
8
|
-
import
|
|
9
|
-
export default class PwrAdapter extends
|
|
4
|
+
import { DeviceProperties, IncyclistBikeData, IncyclistAdapterData, ControllerConfig, IAdapter } from '../../types';
|
|
5
|
+
export default class PwrAdapter extends BleAdapter {
|
|
6
|
+
protected static controllers: ControllerConfig;
|
|
10
7
|
distanceInternal: number;
|
|
11
8
|
constructor(settings: BleDeviceSettings, props?: DeviceProperties);
|
|
12
|
-
isSame(device:
|
|
9
|
+
isSame(device: IAdapter): boolean;
|
|
13
10
|
getProfile(): string;
|
|
14
11
|
getName(): string;
|
|
15
12
|
getDisplayName(): string;
|
|
16
|
-
getDefaultCyclingMode(): CyclingMode;
|
|
17
|
-
getSupportedCyclingModes(): any[];
|
|
18
13
|
mapData(deviceData: PowerData): IncyclistBikeData;
|
|
19
|
-
transformData(bikeData: IncyclistBikeData):
|
|
14
|
+
transformData(bikeData: IncyclistBikeData): IncyclistAdapterData;
|
|
20
15
|
sendUpdate(request: any): Promise<void>;
|
|
21
16
|
stop(): Promise<boolean>;
|
|
22
17
|
}
|
package/lib/ble/cp/adapter.js
CHANGED
|
@@ -13,21 +13,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
const gd_eventlog_1 = require("gd-eventlog");
|
|
16
|
-
const power_meter_1 = __importDefault(require("../../modes/power-meter"));
|
|
17
16
|
const comm_1 = __importDefault(require("./comm"));
|
|
18
|
-
const adapter_1 = require("../base/adapter");
|
|
19
|
-
const
|
|
20
|
-
|
|
17
|
+
const adapter_1 = __importDefault(require("../base/adapter"));
|
|
18
|
+
const types_1 = require("../../types");
|
|
19
|
+
const power_meter_1 = __importDefault(require("../../modes/power-meter"));
|
|
20
|
+
class PwrAdapter extends adapter_1.default {
|
|
21
21
|
constructor(settings, props) {
|
|
22
22
|
super(settings, props);
|
|
23
23
|
this.distanceInternal = 0;
|
|
24
24
|
this.logger = new gd_eventlog_1.EventLogger('Ble-CP');
|
|
25
25
|
const { id, address, name } = settings;
|
|
26
26
|
const logger = this.logger;
|
|
27
|
-
const ble = this.ble;
|
|
28
27
|
this.device = new comm_1.default({ id, address, name, logger });
|
|
29
28
|
this.capabilities = [
|
|
30
|
-
|
|
29
|
+
types_1.IncyclistCapability.Power, types_1.IncyclistCapability.Cadence, types_1.IncyclistCapability.Speed
|
|
31
30
|
];
|
|
32
31
|
}
|
|
33
32
|
isSame(device) {
|
|
@@ -47,12 +46,6 @@ class PwrAdapter extends adapter_1.BleControllableAdapter {
|
|
|
47
46
|
const powerStr = power ? ` (${power})` : '';
|
|
48
47
|
return `${name}${powerStr}`;
|
|
49
48
|
}
|
|
50
|
-
getDefaultCyclingMode() {
|
|
51
|
-
return new power_meter_1.default(this);
|
|
52
|
-
}
|
|
53
|
-
getSupportedCyclingModes() {
|
|
54
|
-
return [power_meter_1.default];
|
|
55
|
-
}
|
|
56
49
|
mapData(deviceData) {
|
|
57
50
|
const data = {
|
|
58
51
|
isPedalling: false,
|
|
@@ -108,4 +101,8 @@ class PwrAdapter extends adapter_1.BleControllableAdapter {
|
|
|
108
101
|
});
|
|
109
102
|
}
|
|
110
103
|
}
|
|
104
|
+
PwrAdapter.controllers = {
|
|
105
|
+
modes: [power_meter_1.default],
|
|
106
|
+
default: power_meter_1.default
|
|
107
|
+
};
|
|
111
108
|
exports.default = PwrAdapter;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import BleAdapter
|
|
2
|
-
import
|
|
1
|
+
import BleAdapter from '../base/adapter';
|
|
2
|
+
import ICyclingMode from '../../modes/types';
|
|
3
3
|
import { PowerData } from '../cp';
|
|
4
|
-
import { DeviceProperties } from '../../types
|
|
5
|
-
import { DeviceData } from '../../types/data';
|
|
4
|
+
import { DeviceProperties, IncyclistAdapterData, IncyclistBikeData, ControllerConfig, IAdapter } from '../../types';
|
|
6
5
|
import { BleDeviceSettings } from '../types';
|
|
7
|
-
export default class BleEliteAdapter extends
|
|
6
|
+
export default class BleEliteAdapter extends BleAdapter {
|
|
7
|
+
protected static controllers: ControllerConfig;
|
|
8
8
|
distanceInternal: number;
|
|
9
9
|
constructor(settings: BleDeviceSettings, props?: DeviceProperties);
|
|
10
|
-
isSame(device:
|
|
10
|
+
isSame(device: IAdapter): boolean;
|
|
11
11
|
getProfile(): string;
|
|
12
12
|
getName(): string;
|
|
13
|
-
getDefaultCyclingMode():
|
|
13
|
+
getDefaultCyclingMode(): ICyclingMode;
|
|
14
14
|
getSupportedCyclingModes(): any[];
|
|
15
15
|
mapData(deviceData: PowerData): IncyclistBikeData;
|
|
16
|
-
transformData(bikeData: IncyclistBikeData):
|
|
16
|
+
transformData(bikeData: IncyclistBikeData): IncyclistAdapterData;
|
|
17
17
|
start(props?: any): Promise<any>;
|
|
18
18
|
sendUpdate(request: any): Promise<void>;
|
|
19
19
|
}
|