incyclist-devices 2.1.37 → 2.1.39

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.
@@ -46,4 +46,5 @@ export default class ERGCyclingMode extends PowerBasedCyclingModeBase implements
46
46
  private cleanupPrevEvents;
47
47
  private checkIsStarting;
48
48
  calculateTargetPower(request: any, updateMode?: boolean): any;
49
+ protected checkForTempPowerAdjustments(request: UpdateRequest): void;
49
50
  }
@@ -39,7 +39,8 @@ class ERGCyclingMode extends power_base_1.default {
39
39
  this.data = {};
40
40
  this.data.slope = request.slope;
41
41
  }
42
- if (request.targetPower !== undefined) {
42
+ this.checkForTempPowerAdjustments(request);
43
+ if (request.targetPower !== undefined || request.gear !== undefined) {
43
44
  delete request.slope;
44
45
  delete request.refresh;
45
46
  }
@@ -77,11 +78,15 @@ class ERGCyclingMode extends power_base_1.default {
77
78
  if (request.maxPower !== undefined && request.minPower !== undefined && request.maxPower === request.minPower) {
78
79
  request.targetPower = request.maxPower;
79
80
  }
80
- if (request.targetPower === undefined) {
81
+ if (request.targetPower === undefined && request.gear === undefined) {
81
82
  newRequest.targetPower = this.calculateTargetPower(request);
82
83
  }
83
84
  else {
84
- newRequest.targetPower = request.targetPower;
85
+ if (!request.gear || request.targetPower !== undefined)
86
+ newRequest.targetPower = request.targetPower;
87
+ }
88
+ if (request.gear) {
89
+ newRequest.gear = request.gear;
85
90
  }
86
91
  delete request.slope;
87
92
  if (request.maxPower !== undefined) {
@@ -169,6 +174,16 @@ class ERGCyclingMode extends power_base_1.default {
169
174
  }
170
175
  return target;
171
176
  }
177
+ checkForTempPowerAdjustments(request) {
178
+ const data = this.getData();
179
+ if (request.targetPowerDelta && (data === null || data === void 0 ? void 0 : data.gear)) {
180
+ if (Math.abs(request.targetPowerDelta) === 5)
181
+ request.gear = data.gear + Math.sign(request.targetPowerDelta);
182
+ if (Math.abs(request.targetPowerDelta) === 50)
183
+ request.gear = data.gear + Math.sign(request.targetPowerDelta) * 5;
184
+ delete request.targetPowerDelta;
185
+ }
186
+ }
172
187
  }
173
188
  ERGCyclingMode.config = {
174
189
  isERG: true,
@@ -92,8 +92,7 @@ class PowerBasedCyclingModeBase extends base_1.CyclingModeBase {
92
92
  newRequest.targetPower = request.minPower;
93
93
  }
94
94
  else {
95
- if (this.prevRequest)
96
- newRequest.targetPower = this.prevRequest.targetPower;
95
+ newRequest.targetPower = target;
97
96
  }
98
97
  newRequest.minPower = request.minPower;
99
98
  }
@@ -105,8 +104,7 @@ class PowerBasedCyclingModeBase extends base_1.CyclingModeBase {
105
104
  newRequest.targetPower = request.maxPower;
106
105
  }
107
106
  else {
108
- if (this.prevRequest)
109
- newRequest.targetPower = this.prevRequest.targetPower;
107
+ newRequest.targetPower = target;
110
108
  }
111
109
  newRequest.maxPower = request.maxPower;
112
110
  }
@@ -8,6 +8,7 @@ export type UpdateRequest = {
8
8
  reset?: boolean;
9
9
  refresh?: boolean;
10
10
  init?: boolean;
11
+ gear?: number;
11
12
  };
12
13
  export declare enum CyclingModeProperyType {
13
14
  Integer = "Integer",
@@ -490,6 +490,9 @@ class DaumAdapter extends adapter_1.SerialIncyclistDevice {
490
490
  if (request.targetPower !== undefined) {
491
491
  yield bike.setTargetPower(request.targetPower);
492
492
  }
493
+ if (request.gear !== undefined) {
494
+ yield bike.setTargetGear(request.gear);
495
+ }
493
496
  this.requestBusy = false;
494
497
  return request;
495
498
  }
@@ -39,4 +39,5 @@ export default class Daum8008 extends SerialPortComms<DaumClassicCommsState, Dau
39
39
  setSlope(slope: number, bike?: number): Promise<SetSlopeRepsonse>;
40
40
  setTargetSlope(slope: number): Promise<void>;
41
41
  setTargetPower(power: number): Promise<void>;
42
+ setTargetGear(gear: number): Promise<void>;
42
43
  }
@@ -249,5 +249,15 @@ class Daum8008 extends comms_1.default {
249
249
  yield this.setPower(power);
250
250
  });
251
251
  }
252
+ setTargetGear(gear) {
253
+ return __awaiter(this, void 0, void 0, function* () {
254
+ let target = gear;
255
+ if (target < 2)
256
+ target = 1;
257
+ if (target > 28)
258
+ target = 28;
259
+ yield this.setGear(target);
260
+ });
261
+ }
252
262
  }
253
263
  exports.default = Daum8008;
@@ -24,6 +24,7 @@ export default class Daum8i extends SerialPortComms<DaumPremiumCommsState, DaumP
24
24
  sendNAK(logPayload: any): Promise<void>;
25
25
  setTargetPower(power: number): Promise<void>;
26
26
  setTargetSlope(_slope: number): Promise<void>;
27
+ setTargetGear(gear: number): Promise<void>;
27
28
  getProtocolVersion(): Promise<string>;
28
29
  getDashboardVersion(): Promise<string>;
29
30
  getDeviceType(): Promise<string>;
@@ -293,6 +293,16 @@ class Daum8i extends comms_1.default {
293
293
  setTargetSlope(_slope) {
294
294
  return;
295
295
  }
296
+ setTargetGear(gear) {
297
+ return __awaiter(this, void 0, void 0, function* () {
298
+ let target = gear;
299
+ if (target < 2)
300
+ target = 1;
301
+ if (target > 28)
302
+ target = 28;
303
+ yield this.setGear(target);
304
+ });
305
+ }
296
306
  getProtocolVersion() {
297
307
  return __awaiter(this, void 0, void 0, function* () {
298
308
  const data = yield this.sendStrCommand('getProtocolVersion', 'V00');
@@ -8,6 +8,7 @@ export declare abstract class DaumSerialComms {
8
8
  abstract close(): Promise<boolean>;
9
9
  abstract setTargetSlope(slope: number): Promise<void>;
10
10
  abstract setTargetPower(power: number): Promise<void>;
11
+ abstract setTargetGear(gear: number): Promise<void>;
11
12
  }
12
13
  export declare class ResponseTimeout extends Error {
13
14
  constructor();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "incyclist-devices",
3
- "version": "2.1.37",
3
+ "version": "2.1.39",
4
4
  "dependencies": {
5
5
  "@serialport/bindings-interface": "^1.2.2",
6
6
  "@serialport/parser-byte-length": "^9.0.1",