incyclist-devices 1.4.47 → 1.4.48

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/ble/fm.d.ts CHANGED
@@ -87,6 +87,7 @@ export declare class FmAdapter extends DeviceAdapter {
87
87
  transformData(bikeData: IncyclistBikeData): DeviceData;
88
88
  start(props?: any): Promise<any>;
89
89
  stop(): Promise<boolean>;
90
+ sendUpdate(request: any): Promise<void>;
90
91
  pause(): Promise<boolean>;
91
92
  resume(): Promise<boolean>;
92
93
  }
package/lib/ble/fm.js CHANGED
@@ -383,6 +383,13 @@ class FmAdapter extends Device_1.default {
383
383
  return this.device.disconnect();
384
384
  });
385
385
  }
386
+ sendUpdate(request) {
387
+ return __awaiter(this, void 0, void 0, function* () {
388
+ if (this.paused)
389
+ return;
390
+ this.getCyclingMode().sendBikeUpdate(request);
391
+ });
392
+ }
386
393
  pause() { this.paused = true; return Promise.resolve(true); }
387
394
  resume() { this.paused = false; return Promise.resolve(true); }
388
395
  }
package/lib/ble/pwr.d.ts CHANGED
@@ -72,6 +72,7 @@ export declare class PwrAdapter extends DeviceAdapter {
72
72
  transformData(bikeData: IncyclistBikeData): DeviceData;
73
73
  start(props?: any): Promise<any>;
74
74
  stop(): Promise<boolean>;
75
+ sendUpdate(request: any): Promise<void>;
75
76
  pause(): Promise<boolean>;
76
77
  resume(): Promise<boolean>;
77
78
  }
package/lib/ble/pwr.js CHANGED
@@ -254,6 +254,13 @@ class PwrAdapter extends Device_1.default {
254
254
  return this.device.disconnect();
255
255
  });
256
256
  }
257
+ sendUpdate(request) {
258
+ return __awaiter(this, void 0, void 0, function* () {
259
+ if (this.paused)
260
+ return;
261
+ this.getCyclingMode().sendBikeUpdate(request);
262
+ });
263
+ }
257
264
  pause() { this.paused = true; return Promise.resolve(true); }
258
265
  resume() { this.paused = false; return Promise.resolve(true); }
259
266
  }
@@ -37,6 +37,7 @@ class PowerBasedCyclingModeBase extends CyclingMode_1.CyclingModeBase {
37
37
  let powerToMaintainSpeed = calculations_1.default.calculatePower(m, vPrev, slope, props);
38
38
  const powerDelta = powerToMaintainSpeed - power;
39
39
  const Ekin = EkinPrev - powerDelta * t;
40
+ console.log('~~~~ calculateSpeedAndDistance', Ekin, powerToMaintainSpeed, power, m, vPrev, slope);
40
41
  if (Ekin > 0) {
41
42
  const v = Math.sqrt(2 * Ekin / m);
42
43
  const speed = v * 3.6;
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.config = void 0;
7
7
  const power_base_1 = __importDefault(require("./power-base"));
8
+ const MIN_SPEED = 10;
8
9
  exports.config = {
9
10
  name: 'PowerMeter',
10
11
  description: 'Power and cadence are taken from device. Speed is calculated from power and current slope\nThis mode will not respect maximum power and/or workout limits',
@@ -54,12 +55,18 @@ class PowerMeterCyclingMode extends power_base_1.default {
54
55
  const m = this.getWeight();
55
56
  let t = this.getTimeSinceLastUpdate();
56
57
  const { speed, distance } = this.calculateSpeedAndDistance(power, slope, m, t);
57
- data.speed = speed;
58
58
  data.power = Math.round(power);
59
- data.distanceInternal = Math.round(distanceInternal + distance);
60
59
  data.slope = slope;
60
+ if (power === 0 && speed < MIN_SPEED) {
61
+ data.speed = Math.round(prevData.speed - 1) < 0 ? 0 : Math.round(prevData.speed - 1);
62
+ data.distanceInternal = Math.round(distanceInternal + data.speed / 3.6 * t);
63
+ }
64
+ else {
65
+ data.speed = (power === 0 && speed < MIN_SPEED) ? 0 : speed;
66
+ data.distanceInternal = (power === 0 && speed < MIN_SPEED) ? Math.round(distanceInternal) : Math.round(distanceInternal + distance);
67
+ }
61
68
  if (props.log)
62
- this.logger.logEvent({ message: "updateData result", data, bikeData, prevSpeed: prevData.speed });
69
+ this.logger.logEvent({ message: "updateData result", data, bikeData, prevSpeed: prevData.speed, stopped: speed < MIN_SPEED });
63
70
  this.data = data;
64
71
  }
65
72
  catch (err) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "incyclist-devices",
3
- "version": "1.4.47",
3
+ "version": "1.4.48",
4
4
  "dependencies": {
5
5
  "@serialport/parser-byte-length": "^9.0.1",
6
6
  "@serialport/parser-delimiter": "^9.0.1",