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 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 = (!request || request.reset || Object.keys(request).length === 0);
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
- try {
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
- yield this.ant.stopSensor(this.sensor);
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 (_b) { }
267
- this.started = false;
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;
@@ -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 || Object.keys(request).length === 0) {
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
- this.prevRequest = JSON.parse(JSON.stringify(request));
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 });
@@ -4,6 +4,7 @@ export declare type UpdateRequest = {
4
4
  minPower?: number;
5
5
  maxPower?: number;
6
6
  targetPower?: number;
7
+ targetPowerDelta?: number;
7
8
  reset?: boolean;
8
9
  refresh?: boolean;
9
10
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "incyclist-devices",
3
- "version": "1.5.27",
3
+ "version": "1.5.29",
4
4
  "dependencies": {
5
5
  "@serialport/parser-byte-length": "^9.0.1",
6
6
  "@serialport/parser-delimiter": "^9.0.1",