incyclist-devices 1.5.27 → 1.5.29
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/antv2/fe.js +24 -26
- package/lib/ble/ble-erg-mode.js +18 -5
- package/lib/cycling-mode.d.ts +1 -0
- package/package.json +1 -1
package/lib/antv2/fe.js
CHANGED
|
@@ -88,7 +88,7 @@ class AntFEAdapter extends ant_device_1.default {
|
|
|
88
88
|
this.logger.logEvent({ message: 'send bike update requested', update, request });
|
|
89
89
|
try {
|
|
90
90
|
const fe = this.sensor;
|
|
91
|
-
const isReset = (!
|
|
91
|
+
const isReset = (!update || update.reset || Object.keys(update).length === 0);
|
|
92
92
|
if (isReset)
|
|
93
93
|
yield fe.sendTrackResistance(0);
|
|
94
94
|
if (update.slope !== undefined) {
|
|
@@ -97,14 +97,6 @@ class AntFEAdapter extends ant_device_1.default {
|
|
|
97
97
|
if (update.targetPower !== undefined) {
|
|
98
98
|
yield fe.sendTargetPower(update.targetPower);
|
|
99
99
|
}
|
|
100
|
-
else if (request.maxPower !== undefined) {
|
|
101
|
-
if (this.data.power && this.data.power > request.maxPower)
|
|
102
|
-
yield fe.sendTargetPower(request.maxPower);
|
|
103
|
-
}
|
|
104
|
-
else if (request.minPower !== undefined) {
|
|
105
|
-
if (this.data.power && this.data.power < request.minPower)
|
|
106
|
-
yield fe.sendTargetPower(request.minPower);
|
|
107
|
-
}
|
|
108
100
|
}
|
|
109
101
|
catch (err) {
|
|
110
102
|
if (err.message && err.message.toLowerCase() === 'timeout') {
|
|
@@ -198,7 +190,7 @@ class AntFEAdapter extends ant_device_1.default {
|
|
|
198
190
|
return __awaiter(this, void 0, void 0, function* () {
|
|
199
191
|
_super.start.call(this, props);
|
|
200
192
|
this.startProps = props;
|
|
201
|
-
this.logger.logEvent({ message: 'starting device', props });
|
|
193
|
+
this.logger.logEvent({ message: 'starting device', props, isStarted: this.started, isReconnecting: this.isReconnecting });
|
|
202
194
|
const opts = props || {};
|
|
203
195
|
const { args = {}, user = {} } = opts;
|
|
204
196
|
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -248,25 +240,30 @@ class AntFEAdapter extends ant_device_1.default {
|
|
|
248
240
|
yield (0, utils_2.sleep)(2000);
|
|
249
241
|
continue;
|
|
250
242
|
}
|
|
251
|
-
|
|
252
|
-
const fe = this.sensor;
|
|
253
|
-
const mode = this.getCyclingMode();
|
|
254
|
-
const bikeType = mode ? mode.getSetting('bikeType').toLowerCase() : 'race';
|
|
255
|
-
const defaultBikeWeight = bikeType === 'mountain' ? DEFAULT_BIKE_WEIGHT_MOUNTAIN : DEFAULT_BIKE_WEIGHT;
|
|
256
|
-
const userWeight = args.userWeight || user.weight || DEFAULT_USER_WEIGHT;
|
|
257
|
-
const bikeWeight = args.bikeWeight || defaultBikeWeight;
|
|
258
|
-
status.userSent = status.userSent || (yield fe.sendUserConfiguration(userWeight, bikeWeight, args.wheelDiameter, args.gearRatio));
|
|
259
|
-
status.slopeSent = status.slopeSent || (yield fe.sendTrackResistance(0.0));
|
|
260
|
-
}
|
|
261
|
-
catch (err) {
|
|
262
|
-
this.logger.logEvent({ message: 'sending FE message error', error: err.message });
|
|
243
|
+
if (!this.isReconnecting) {
|
|
263
244
|
try {
|
|
264
|
-
|
|
245
|
+
const fe = this.sensor;
|
|
246
|
+
const mode = this.getCyclingMode();
|
|
247
|
+
const bikeType = mode ? mode.getSetting('bikeType').toLowerCase() : 'race';
|
|
248
|
+
const defaultBikeWeight = bikeType === 'mountain' ? DEFAULT_BIKE_WEIGHT_MOUNTAIN : DEFAULT_BIKE_WEIGHT;
|
|
249
|
+
const userWeight = args.userWeight || user.weight || DEFAULT_USER_WEIGHT;
|
|
250
|
+
const bikeWeight = args.bikeWeight || defaultBikeWeight;
|
|
251
|
+
status.userSent = status.userSent || (yield fe.sendUserConfiguration(userWeight, bikeWeight, args.wheelDiameter, args.gearRatio));
|
|
252
|
+
status.slopeSent = status.slopeSent || (yield fe.sendTrackResistance(0.0));
|
|
265
253
|
}
|
|
266
|
-
catch (
|
|
267
|
-
|
|
254
|
+
catch (err) {
|
|
255
|
+
this.logger.logEvent({ message: 'sending FE message error', error: err.message });
|
|
256
|
+
try {
|
|
257
|
+
yield this.ant.stopSensor(this.sensor);
|
|
258
|
+
}
|
|
259
|
+
catch (_b) { }
|
|
260
|
+
this.started = false;
|
|
261
|
+
}
|
|
262
|
+
success = status.userSent && status.slopeSent;
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
success = true;
|
|
268
266
|
}
|
|
269
|
-
success = status.userSent && status.slopeSent;
|
|
270
267
|
}
|
|
271
268
|
while (success && this.dataMsgCount === 0) {
|
|
272
269
|
yield (0, utils_2.sleep)(500);
|
|
@@ -298,6 +295,7 @@ class AntFEAdapter extends ant_device_1.default {
|
|
|
298
295
|
return __awaiter(this, void 0, void 0, function* () {
|
|
299
296
|
this.logger.logEvent({ message: 'stopping device' });
|
|
300
297
|
let stopped = yield this.ant.stopSensor(this.sensor);
|
|
298
|
+
this.started = false;
|
|
301
299
|
yield _super.stop.call(this);
|
|
302
300
|
this.logger.logEvent({ message: 'stopping device done', success: stopped });
|
|
303
301
|
return stopped;
|
package/lib/ble/ble-erg-mode.js
CHANGED
|
@@ -33,7 +33,7 @@ class BleERGCyclingMode extends power_base_1.default {
|
|
|
33
33
|
return config.properties.find(p => p.name === name);
|
|
34
34
|
}
|
|
35
35
|
getBikeInitRequest() {
|
|
36
|
-
const startPower = this.getSetting('startPower');
|
|
36
|
+
const startPower = Number(this.getSetting('startPower'));
|
|
37
37
|
return { targetPower: startPower };
|
|
38
38
|
}
|
|
39
39
|
sendBikeUpdate(request) {
|
|
@@ -46,10 +46,13 @@ class BleERGCyclingMode extends power_base_1.default {
|
|
|
46
46
|
this.logger.logEvent({ message: "processing update request", request, prev: this.prevRequest, data: getData() });
|
|
47
47
|
let newRequest = {};
|
|
48
48
|
try {
|
|
49
|
-
if (!request || request.reset
|
|
49
|
+
if (!request || request.reset) {
|
|
50
50
|
this.prevRequest = {};
|
|
51
51
|
return request.reset ? { reset: true } : {};
|
|
52
52
|
}
|
|
53
|
+
if (Object.keys(request).length === 0 && this.prevRequest) {
|
|
54
|
+
request.targetPower = this.prevRequest.targetPower;
|
|
55
|
+
}
|
|
53
56
|
const prevData = this.data || {};
|
|
54
57
|
if (request.slope !== undefined) {
|
|
55
58
|
if (!this.data)
|
|
@@ -57,14 +60,19 @@ class BleERGCyclingMode extends power_base_1.default {
|
|
|
57
60
|
this.data.slope = request.slope;
|
|
58
61
|
}
|
|
59
62
|
delete request.slope;
|
|
63
|
+
if (request.targetPowerDelta && this.prevRequest && this.prevRequest.targetPower) {
|
|
64
|
+
request.targetPower = this.prevRequest.targetPower + request.targetPowerDelta;
|
|
65
|
+
delete request.targetPowerDelta;
|
|
66
|
+
}
|
|
60
67
|
if (request.targetPower !== undefined) {
|
|
61
68
|
delete request.refresh;
|
|
69
|
+
newRequest.targetPower = Number(request.targetPower);
|
|
62
70
|
}
|
|
63
|
-
if (request.refresh) {
|
|
71
|
+
if (request.refresh && request.targetPower === undefined) {
|
|
64
72
|
delete request.refresh;
|
|
65
73
|
newRequest.targetPower = this.prevRequest.targetPower;
|
|
66
74
|
}
|
|
67
|
-
if (request.maxPower !== undefined && request.minPower !== undefined && request.maxPower === request.minPower) {
|
|
75
|
+
if (request.targetPower === undefined && request.maxPower !== undefined && request.minPower !== undefined && request.maxPower === request.minPower) {
|
|
68
76
|
request.targetPower = request.maxPower;
|
|
69
77
|
newRequest.targetPower = request.targetPower;
|
|
70
78
|
}
|
|
@@ -82,7 +90,12 @@ class BleERGCyclingMode extends power_base_1.default {
|
|
|
82
90
|
if (prevData.power && prevData.power < request.minPower)
|
|
83
91
|
newRequest.targetPower = request.minPower;
|
|
84
92
|
}
|
|
85
|
-
|
|
93
|
+
if (Object.keys(newRequest).length === 0) {
|
|
94
|
+
if (this.prevRequest)
|
|
95
|
+
newRequest.targetPower = this.prevRequest.targetPower;
|
|
96
|
+
newRequest.refresh = true;
|
|
97
|
+
}
|
|
98
|
+
this.prevRequest = JSON.parse(JSON.stringify(newRequest));
|
|
86
99
|
}
|
|
87
100
|
catch (err) {
|
|
88
101
|
this.logger.logEvent({ message: "error", fn: 'sendBikeUpdate()', error: err.message || err, stack: err.stack });
|
package/lib/cycling-mode.d.ts
CHANGED