incyclist-devices 1.4.17 → 1.4.18

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.
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CyclingModeBase = exports.CyclingModeProperyType = void 0;
4
3
  var CyclingModeProperyType;
5
4
  (function (CyclingModeProperyType) {
6
5
  CyclingModeProperyType["Integer"] = "Integer";
package/lib/Device.js CHANGED
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_USER_WEIGHT = exports.DEFAULT_BIKE_WEIGHT = void 0;
4
3
  exports.DEFAULT_BIKE_WEIGHT = 10;
5
4
  exports.DEFAULT_USER_WEIGHT = 75;
6
5
  class DeviceAdapterBase {
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.INTERFACE = void 0;
4
3
  exports.INTERFACE = {
5
4
  SERIAL: 'serial',
6
5
  ANT: 'ant',
@@ -1,43 +1,30 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
14
5
  var __importStar = (this && this.__importStar) || function (mod) {
15
6
  if (mod && mod.__esModule) return mod;
16
7
  var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
8
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
9
+ result["default"] = mod;
19
10
  return result;
20
11
  };
21
- var __importDefault = (this && this.__importDefault) || function (mod) {
22
- return (mod && mod.__esModule) ? mod : { "default": mod };
23
- };
24
12
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.CyclingModeProperyType = exports.AntScanner = exports.Protocols = exports.Device = exports.INTERFACE = exports.DeviceRegistry = exports.DeviceProtocolBase = void 0;
26
13
  const DeviceRegistry_1 = __importDefault(require("./DeviceRegistry"));
27
14
  exports.DeviceRegistry = DeviceRegistry_1.default;
28
15
  const Device_1 = __importDefault(require("./Device"));
29
16
  exports.Device = Device_1.default;
30
17
  const DeviceProtocol_1 = __importStar(require("./DeviceProtocol"));
31
18
  exports.DeviceProtocolBase = DeviceProtocol_1.default;
32
- Object.defineProperty(exports, "INTERFACE", { enumerable: true, get: function () { return DeviceProtocol_1.INTERFACE; } });
19
+ exports.INTERFACE = DeviceProtocol_1.INTERFACE;
33
20
  const Simulator_1 = __importDefault(require("./simulator/Simulator"));
34
21
  const DaumPremiumProtocol_1 = __importDefault(require("./daum/premium/DaumPremiumProtocol"));
35
22
  const DaumClassicProtocol_1 = __importDefault(require("./daum/classic/DaumClassicProtocol"));
36
23
  const protocol_1 = __importDefault(require("./kettler/ergo-racer/protocol"));
37
24
  const AntScanner_1 = require("./ant/AntScanner");
38
- Object.defineProperty(exports, "AntScanner", { enumerable: true, get: function () { return AntScanner_1.AntScanner; } });
25
+ exports.AntScanner = AntScanner_1.AntScanner;
39
26
  const CyclingMode_1 = require("./CyclingMode");
40
- Object.defineProperty(exports, "CyclingModeProperyType", { enumerable: true, get: function () { return CyclingMode_1.CyclingModeProperyType; } });
27
+ exports.CyclingModeProperyType = CyclingMode_1.CyclingModeProperyType;
41
28
  const Protocols = {
42
29
  SimulatorProtocol: Simulator_1.default,
43
30
  DaumClassicProtocol: DaumClassicProtocol_1.default,
@@ -3,7 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DEFAULT_UPDATE_FREQUENCY = void 0;
7
6
  const Device_1 = __importDefault(require("../Device"));
8
7
  exports.DEFAULT_UPDATE_FREQUENCY = 1000;
9
8
  class AntAdapter extends Device_1.default {
@@ -1,23 +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
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -27,11 +8,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
27
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
28
9
  });
29
10
  };
11
+ var __importStar = (this && this.__importStar) || function (mod) {
12
+ if (mod && mod.__esModule) return mod;
13
+ var result = {};
14
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
15
+ result["default"] = mod;
16
+ return result;
17
+ };
30
18
  var __importDefault = (this && this.__importDefault) || function (mod) {
31
19
  return (mod && mod.__esModule) ? mod : { "default": mod };
32
20
  };
33
21
  Object.defineProperty(exports, "__esModule", { value: true });
34
- exports.AntScanner = exports.AntProtocol = void 0;
35
22
  const gd_eventlog_1 = require("gd-eventlog");
36
23
  const DeviceProtocol_1 = __importStar(require("../DeviceProtocol"));
37
24
  const AntHrmAdapter_1 = __importDefault(require("./anthrm/AntHrmAdapter"));
@@ -52,7 +52,7 @@ class AntFEAdapter extends AntAdapter_1.default {
52
52
  getDisplayName() {
53
53
  const { DeviceID, ManId, ComputedHeartRate } = this.deviceData;
54
54
  const hrmStr = ComputedHeartRate ? ` (${ComputedHeartRate})` : '';
55
- return `${(0, utils_1.getBrand)(ManId)} FE ${DeviceID}${hrmStr}`;
55
+ return `${utils_1.getBrand(ManId)} FE ${DeviceID}${hrmStr}`;
56
56
  }
57
57
  onAttached() {
58
58
  this.logger.logEvent({ message: 'Device connected' });
@@ -225,7 +225,7 @@ class AntFEAdapter extends AntAdapter_1.default {
225
225
  trackResistanceSent: false,
226
226
  userSent: false,
227
227
  };
228
- (0, utils_2.runWithRetries)(() => __awaiter(this, void 0, void 0, function* () {
228
+ utils_2.runWithRetries(() => __awaiter(this, void 0, void 0, function* () {
229
229
  if (this.isStopped())
230
230
  resolve(false);
231
231
  try {
@@ -310,18 +310,18 @@ class AntFEAdapter extends AntAdapter_1.default {
310
310
  try {
311
311
  const isReset = (!request || request.reset || Object.keys(request).length === 0);
312
312
  if (request.slope !== undefined) {
313
- yield (0, utils_2.runWithRetries)(() => __awaiter(this, void 0, void 0, function* () { return yield this.sendTrackResistance(request.slope); }), 2, 100);
313
+ yield utils_2.runWithRetries(() => __awaiter(this, void 0, void 0, function* () { return yield this.sendTrackResistance(request.slope); }), 2, 100);
314
314
  }
315
315
  if (request.targetPower !== undefined) {
316
- yield (0, utils_2.runWithRetries)(() => __awaiter(this, void 0, void 0, function* () { return yield this.sendTargetPower(request.targetPower); }), 2, 100);
316
+ yield utils_2.runWithRetries(() => __awaiter(this, void 0, void 0, function* () { return yield this.sendTargetPower(request.targetPower); }), 2, 100);
317
317
  }
318
318
  else if (request.maxPower !== undefined) {
319
319
  if (this.data.power && this.data.power > request.maxPower)
320
- yield (0, utils_2.runWithRetries)(() => __awaiter(this, void 0, void 0, function* () { return yield this.sendTargetPower(request.maxPower); }), 2, 100);
320
+ yield utils_2.runWithRetries(() => __awaiter(this, void 0, void 0, function* () { return yield this.sendTargetPower(request.maxPower); }), 2, 100);
321
321
  }
322
322
  else if (request.minPower !== undefined) {
323
323
  if (this.data.power && this.data.power < request.minPower)
324
- yield (0, utils_2.runWithRetries)(() => __awaiter(this, void 0, void 0, function* () { return yield this.sendTargetPower(request.minPower); }), 2, 100);
324
+ yield utils_2.runWithRetries(() => __awaiter(this, void 0, void 0, function* () { return yield this.sendTargetPower(request.minPower); }), 2, 100);
325
325
  }
326
326
  }
327
327
  catch (err) {
@@ -406,7 +406,7 @@ class AntFEAdapter extends AntAdapter_1.default {
406
406
  this.currentCmd = this.queue.dequeue();
407
407
  this.currentCmd.tsStart = Date.now();
408
408
  const { msg, logStr } = this.currentCmd;
409
- this.logger.logEvent({ message: "sending", cmd: logStr, msg: (0, utils_2.hexstr)(msg), queueSize: this.queue.size() });
409
+ this.logger.logEvent({ message: "sending", cmd: logStr, msg: utils_2.hexstr(msg), queueSize: this.queue.size() });
410
410
  if (this.stick)
411
411
  this.stick.write(msg);
412
412
  }
@@ -43,7 +43,7 @@ class AntHrmAdapter extends AntAdapter_1.default {
43
43
  getDisplayName() {
44
44
  const { DeviceID, manID, ComputedHeartRate } = this.deviceData;
45
45
  const hrmStr = ComputedHeartRate ? ` (${ComputedHeartRate})` : '';
46
- return `${(0, utils_1.getBrand)(manID)} Hrm ${DeviceID}${hrmStr}`;
46
+ return `${utils_1.getBrand(manID)} Hrm ${DeviceID}${hrmStr}`;
47
47
  }
48
48
  onDeviceData(deviceData) {
49
49
  if (!this.started)
package/lib/ant/utils.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getBrand = void 0;
4
- const getBrand = (manId) => {
3
+ exports.getBrand = (manId) => {
5
4
  if (manId === undefined)
6
5
  return "ANT+";
7
6
  switch (manId) {
@@ -20,4 +19,3 @@ const getBrand = (manId) => {
20
19
  return "ANT+";
21
20
  }
22
21
  };
23
- exports.getBrand = getBrand;
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.solveCubic = exports.IllegalArgumentException = void 0;
4
3
  const g = 9.80665;
5
4
  const rho = 1.2041;
6
5
  const cwABike = {
@@ -1,23 +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
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -27,6 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
27
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
28
9
  });
29
10
  };
11
+ var __importStar = (this && this.__importStar) || function (mod) {
12
+ if (mod && mod.__esModule) return mod;
13
+ var result = {};
14
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
15
+ result["default"] = mod;
16
+ return result;
17
+ };
30
18
  var __importDefault = (this && this.__importDefault) || function (mod) {
31
19
  return (mod && mod.__esModule) ? mod : { "default": mod };
32
20
  };
@@ -308,16 +296,16 @@ class DaumAdapterBase extends Device_1.default {
308
296
  return;
309
297
  let distance = 0;
310
298
  if (this.distanceInternal !== undefined && this.daumRunData.distanceInternal !== undefined) {
311
- distance = (0, utils_1.intVal)(this.daumRunData.distanceInternal - this.distanceInternal);
299
+ distance = utils_1.intVal(this.daumRunData.distanceInternal - this.distanceInternal);
312
300
  }
313
301
  if (this.daumRunData.distanceInternal !== undefined)
314
302
  this.distanceInternal = this.daumRunData.distanceInternal;
315
303
  let data = {
316
- speed: (0, utils_1.floatVal)(this.daumRunData.speed),
317
- slope: (0, utils_1.floatVal)(this.daumRunData.slope),
318
- power: (0, utils_1.intVal)(this.daumRunData.power),
319
- cadence: (0, utils_1.intVal)(this.daumRunData.pedalRpm),
320
- heartrate: (0, utils_1.intVal)(this.daumRunData.heartrate),
304
+ speed: utils_1.floatVal(this.daumRunData.speed),
305
+ slope: utils_1.floatVal(this.daumRunData.slope),
306
+ power: utils_1.intVal(this.daumRunData.power),
307
+ cadence: utils_1.intVal(this.daumRunData.pedalRpm),
308
+ heartrate: utils_1.intVal(this.daumRunData.heartrate),
321
309
  distance,
322
310
  timestamp: Date.now(),
323
311
  deviceTime: this.daumRunData.time,
@@ -3,7 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.direction = void 0;
7
6
  const gd_eventlog_1 = require("gd-eventlog");
8
7
  const CyclingMode_1 = require("../CyclingMode");
9
8
  const calculations_1 = __importDefault(require("../calculations"));
@@ -86,7 +86,7 @@ class DaumClassicAdapter extends DaumAdapter_1.default {
86
86
  const { user } = props;
87
87
  this.initData();
88
88
  let startState = {};
89
- return (0, utils_1.runWithRetries)(() => __awaiter(this, void 0, void 0, function* () {
89
+ return utils_1.runWithRetries(() => __awaiter(this, void 0, void 0, function* () {
90
90
  try {
91
91
  if (!this.bike.isConnected())
92
92
  yield this.bike.saveConnect();
@@ -1,23 +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
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -27,6 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
27
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
28
9
  });
29
10
  };
11
+ var __importStar = (this && this.__importStar) || function (mod) {
12
+ if (mod && mod.__esModule) return mod;
13
+ var result = {};
14
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
15
+ result["default"] = mod;
16
+ return result;
17
+ };
30
18
  var __importDefault = (this && this.__importDefault) || function (mod) {
31
19
  return (mod && mod.__esModule) ? mod : { "default": mod };
32
20
  };
@@ -52,9 +52,9 @@ class Daum8008 {
52
52
  }
53
53
  getUserWeight() {
54
54
  if (this.settings && this.settings.user && this.settings.user.weight)
55
- return (0, utils_1.getWeight)(this.settings.user.weight);
55
+ return utils_1.getWeight(this.settings.user.weight);
56
56
  else
57
- return (0, utils_1.getWeight)();
57
+ return utils_1.getWeight();
58
58
  }
59
59
  getBikeWeight() {
60
60
  if (this.settings && this.settings.weight) {
@@ -274,7 +274,7 @@ class Daum8008 {
274
274
  };
275
275
  this.queue.enqueue(cmdInfo);
276
276
  if (this.queue.size() > 1)
277
- this.logger.logEvent({ message: "sendCommand:adding:", cmd: logStr, hex: (0, utils_1.hexstr)(payload), queueSize: this.queue.size() });
277
+ this.logger.logEvent({ message: "sendCommand:adding:", cmd: logStr, hex: utils_1.hexstr(payload), queueSize: this.queue.size() });
278
278
  if (this.bikeCmdWorker === undefined) {
279
279
  this.startWorker();
280
280
  }
@@ -293,7 +293,7 @@ class Daum8008 {
293
293
  const parser = serialPort.pipe(new ByteLength({ length: expected }));
294
294
  parser.on('data', (data) => {
295
295
  let duration = Date.now() - this.cmdStart;
296
- this.logger.logEvent({ message: "sendCommand:received:", duration, hex: (0, utils_1.hexstr)(data), port: this.getPort() });
296
+ this.logger.logEvent({ message: "sendCommand:received:", duration, hex: utils_1.hexstr(data), port: this.getPort() });
297
297
  serialPort.unpipe();
298
298
  if (callbackErr !== undefined) {
299
299
  if (data[0] !== payload[0]) {
@@ -306,7 +306,7 @@ class Daum8008 {
306
306
  callback(data);
307
307
  done();
308
308
  });
309
- this.logger.logEvent({ message: "sendCommand:sending:", cmd: logStr, hex: (0, utils_1.hexstr)(payload), port: this.getPort() });
309
+ this.logger.logEvent({ message: "sendCommand:sending:", cmd: logStr, hex: utils_1.hexstr(payload), port: this.getPort() });
310
310
  this.cmdCurrent.start = this.cmdStart = Date.now();
311
311
  serialPort.write(payload);
312
312
  }
@@ -321,53 +321,53 @@ class Daum8008 {
321
321
  this.sendDaum8008Command(`checkCockpit(${bikeNo})`, [0x10, bikeNo], 3, (data) => resolve({ bike: data[1], version: data[2] }), (status, err) => {
322
322
  if (status === 408)
323
323
  return resolve({ bike: bikeNo, version: undefined });
324
- reject((0, utils_1.buildError)(status, err));
324
+ reject(utils_1.buildError(status, err));
325
325
  });
326
326
  });
327
327
  }
328
328
  getAddress() {
329
329
  return new Promise((resolve, reject) => {
330
- this.sendDaum8008Command(`getAddress()`, [0x11], 2, (data) => resolve({ bike: data[1] }), (status, err) => reject((0, utils_1.buildError)(status, err)));
330
+ this.sendDaum8008Command(`getAddress()`, [0x11], 2, (data) => resolve({ bike: data[1] }), (status, err) => reject(utils_1.buildError(status, err)));
331
331
  });
332
332
  }
333
333
  getVersion(bikeNo = 0) {
334
334
  return new Promise((resolve, reject) => {
335
- this.sendDaum8008Command(`getVersion(${bikeNo})`, [0x73, bikeNo], 11, (data) => resolve({ bike: data[1], serialNo: (0, utils_1.hexstr)(data, 2, 8), cockpit: (0, utils_1.getCockpit)(data[10]) }), (status, err) => reject((0, utils_1.buildError)(status, err)));
335
+ this.sendDaum8008Command(`getVersion(${bikeNo})`, [0x73, bikeNo], 11, (data) => resolve({ bike: data[1], serialNo: utils_1.hexstr(data, 2, 8), cockpit: utils_1.getCockpit(data[10]) }), (status, err) => reject(utils_1.buildError(status, err)));
336
336
  });
337
337
  }
338
338
  resetDevice(bikeNo = 0) {
339
339
  return new Promise((resolve, reject) => {
340
- this.sendDaum8008Command(`resetDevice(${bikeNo})`, [0x12, bikeNo], 2, (data) => resolve({}), (status, err) => reject((0, utils_1.buildError)(status, err)));
340
+ this.sendDaum8008Command(`resetDevice(${bikeNo})`, [0x12, bikeNo], 2, (data) => resolve({}), (status, err) => reject(utils_1.buildError(status, err)));
341
341
  });
342
342
  }
343
343
  startProg(bikeNo = 0) {
344
344
  return new Promise((resolve, reject) => {
345
- this.sendDaum8008Command(`startProg(${bikeNo})`, [0x21, bikeNo], 3, (data) => resolve({ bike: data[1], pedalling: data[2] > 0 }), (status, err) => reject((0, utils_1.buildError)(status, err)));
345
+ this.sendDaum8008Command(`startProg(${bikeNo})`, [0x21, bikeNo], 3, (data) => resolve({ bike: data[1], pedalling: data[2] > 0 }), (status, err) => reject(utils_1.buildError(status, err)));
346
346
  });
347
347
  }
348
348
  stopProg(bikeNo = 0) {
349
349
  return new Promise((resolve, reject) => {
350
- this.sendDaum8008Command(`stopProg(${bikeNo})`, [0x22, bikeNo], 3, (data) => resolve({ bike: data[1], pedalling: data[2] !== 0 }), (status, err) => reject((0, utils_1.buildError)(status, err)));
350
+ this.sendDaum8008Command(`stopProg(${bikeNo})`, [0x22, bikeNo], 3, (data) => resolve({ bike: data[1], pedalling: data[2] !== 0 }), (status, err) => reject(utils_1.buildError(status, err)));
351
351
  });
352
352
  }
353
353
  setProg(progNo = 0, bikeNo = 0) {
354
354
  return new Promise((resolve, reject) => {
355
- this.sendDaum8008Command(`setProg(${bikeNo},${progNo})`, [0x23, bikeNo, progNo], 4, (data) => resolve({ bike: data[1], progNo: data[2], pedalling: data[3] !== 0 }), (status, err) => reject((0, utils_1.buildError)(status, err)));
355
+ this.sendDaum8008Command(`setProg(${bikeNo},${progNo})`, [0x23, bikeNo, progNo], 4, (data) => resolve({ bike: data[1], progNo: data[2], pedalling: data[3] !== 0 }), (status, err) => reject(utils_1.buildError(status, err)));
356
356
  });
357
357
  }
358
358
  setBikeType(bikeType, bikeNo = 0) {
359
- const bikeVal = (0, utils_1.getBikeType)(bikeType);
359
+ const bikeVal = utils_1.getBikeType(bikeType);
360
360
  return new Promise((resolve, reject) => {
361
- this.sendDaum8008Command(`setBikeType(${bikeNo},${bikeType})`, [0x69, bikeNo, 0, 0, bikeVal], 3, (data) => resolve({}), (status, err) => reject((0, utils_1.buildError)(status, err)));
361
+ this.sendDaum8008Command(`setBikeType(${bikeNo},${bikeType})`, [0x69, bikeNo, 0, 0, bikeVal], 3, (data) => resolve({}), (status, err) => reject(utils_1.buildError(status, err)));
362
362
  });
363
363
  }
364
364
  setPerson(user = {}, bikeNo = 0) {
365
365
  const age = user.age !== undefined ? user.age : utils_1.DEFAULT_AGE;
366
- const gender = (0, utils_1.getGender)(user.sex);
367
- const length = (0, utils_1.getLength)(user.length);
366
+ const gender = utils_1.getGender(user.sex);
367
+ const length = utils_1.getLength(user.length);
368
368
  const maxPower = this.settings.maxPower === undefined ? 800 : this.settings.maxPower;
369
369
  const mUser = user.weight || this.getUserWeight();
370
- const weight = (0, utils_1.getWeight)(mUser) + this.getBikeWeight();
370
+ const weight = utils_1.getWeight(mUser) + this.getBikeWeight();
371
371
  var cmd = [0x24, bikeNo, 0];
372
372
  cmd.push(age);
373
373
  cmd.push(gender);
@@ -390,26 +390,26 @@ class Daum8008 {
390
390
  if (data[i] === 0 || data[i] === 80)
391
391
  return;
392
392
  }
393
- reject((0, utils_1.buildError)(512, 'illegal response'));
393
+ reject(utils_1.buildError(512, 'illegal response'));
394
394
  ok = false;
395
395
  }
396
396
  });
397
397
  if (ok)
398
398
  resolve({ bike: data[1], age, gender, length, weight });
399
- }, (status, err) => reject((0, utils_1.buildError)(status, err)));
399
+ }, (status, err) => reject(utils_1.buildError(status, err)));
400
400
  });
401
401
  }
402
402
  runData(bikeNo = 0) {
403
403
  return new Promise((resolve, reject) => {
404
404
  this.sendDaum8008Command(`runData(${bikeNo})`, [0x40, bikeNo], 19, (data) => {
405
405
  try {
406
- const parsed = (0, utils_1.parseRunData)(data);
406
+ const parsed = utils_1.parseRunData(data);
407
407
  resolve(parsed);
408
408
  }
409
409
  catch (e) {
410
- reject((0, utils_1.buildError)(500, e));
410
+ reject(utils_1.buildError(500, e));
411
411
  }
412
- }, (status, err) => reject((0, utils_1.buildError)(status, err)));
412
+ }, (status, err) => reject(utils_1.buildError(status, err)));
413
413
  });
414
414
  }
415
415
  setGear(gear, bikeNo = 0) {
@@ -419,7 +419,7 @@ class Daum8008 {
419
419
  if (gear > 28)
420
420
  gearVal = 28;
421
421
  return new Promise((resolve, reject) => {
422
- this.sendDaum8008Command(`setGear(${bikeNo},${gearVal})`, [0x53, bikeNo, gearVal], 3, (data) => resolve({ bike: data[1], gear: data[2] }), (status, err) => reject((0, utils_1.buildError)(status, err)));
422
+ this.sendDaum8008Command(`setGear(${bikeNo},${gearVal})`, [0x53, bikeNo, gearVal], 3, (data) => resolve({ bike: data[1], gear: data[2] }), (status, err) => reject(utils_1.buildError(status, err)));
423
423
  });
424
424
  }
425
425
  setPower(power, bikeNo = 0) {
@@ -434,7 +434,7 @@ class Daum8008 {
434
434
  if (power > 800)
435
435
  powerRequest = 800;
436
436
  const powerVal = Math.round(powerRequest / 5);
437
- this.sendDaum8008Command(`setPower(${bikeNo},${power})`, [0x51, bikeNo, powerVal], 3, (data) => resolve({ bike: data[1], power: (data[2] * 5) }), (status, err) => reject((0, utils_1.buildError)(status, err)));
437
+ this.sendDaum8008Command(`setPower(${bikeNo},${power})`, [0x51, bikeNo, powerVal], 3, (data) => resolve({ bike: data[1], power: (data[2] * 5) }), (status, err) => reject(utils_1.buildError(status, err)));
438
438
  });
439
439
  }
440
440
  setSlope(slope, bikeNo = 0) {
@@ -444,12 +444,12 @@ class Daum8008 {
444
444
  return;
445
445
  }
446
446
  const cmd = [0x55, bikeNo];
447
- const arr = (0, utils_1.Float32ToIntArray)(slope);
447
+ const arr = utils_1.Float32ToIntArray(slope);
448
448
  cmd.push(arr[3]);
449
449
  cmd.push(arr[2]);
450
450
  cmd.push(arr[1]);
451
451
  cmd.push(arr[0]);
452
- this.sendDaum8008Command(`setSlope(${bikeNo},${slope})`, cmd, 6, (data) => resolve({ bike: data[1], slope: slope }), (status, err) => reject((0, utils_1.buildError)(status, err)));
452
+ this.sendDaum8008Command(`setSlope(${bikeNo},${slope})`, cmd, 6, (data) => resolve({ bike: data[1], slope: slope }), (status, err) => reject(utils_1.buildError(status, err)));
453
453
  });
454
454
  }
455
455
  }
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Float32ToIntArray = exports.Float32ToHex = exports.hexstr = exports.buildError = exports.parseRunData = exports.getWeight = exports.getLength = exports.getGender = exports.getBikeType = exports.getCockpit = exports.DEFAULT_BIKE_WEIGHT = exports.DEFAULT_USER_WEIGHT = exports.DEFAULT_AGE = void 0;
4
3
  exports.DEFAULT_AGE = 30;
5
4
  exports.DEFAULT_USER_WEIGHT = 75;
6
5
  exports.DEFAULT_BIKE_WEIGHT = 10;
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BIKE_TRAINING_STATE = exports.BIKE_INTERFACE = exports.ACTUAL_BIKE_TYPE = void 0;
4
3
  exports.ACTUAL_BIKE_TYPE = {
5
4
  ALLROUND: 'allround',
6
5
  RACE: 'race',
@@ -72,7 +72,7 @@ class DaumPremiumDevice extends DaumAdapter_1.default {
72
72
  const route = opts.route;
73
73
  var info = {};
74
74
  this.initData();
75
- return (0, utils_1.runWithRetries)(() => __awaiter(this, void 0, void 0, function* () {
75
+ return utils_1.runWithRetries(() => __awaiter(this, void 0, void 0, function* () {
76
76
  if (this.isStopped())
77
77
  return;
78
78
  try {
@@ -1,23 +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
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -27,6 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
27
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
28
9
  });
29
10
  };
11
+ var __importStar = (this && this.__importStar) || function (mod) {
12
+ if (mod && mod.__esModule) return mod;
13
+ var result = {};
14
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
15
+ result["default"] = mod;
16
+ return result;
17
+ };
30
18
  var __importDefault = (this && this.__importDefault) || function (mod) {
31
19
  return (mod && mod.__esModule) ? mod : { "default": mod };
32
20
  };
@@ -12,7 +12,6 @@ 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.Daum8iSerial = exports.Daum8iTcp = void 0;
16
15
  const constants_1 = require("../constants");
17
16
  const tcpserial_1 = __importDefault(require("./tcpserial"));
18
17
  const utils_1 = require("./utils");
@@ -408,7 +407,7 @@ class Daum8i {
408
407
  incoming = bufferData;
409
408
  }
410
409
  const response = [...incoming];
411
- this.logger.logEvent({ message: 'sendCommand:RECV', data: (0, utils_1.hexstr)(response) });
410
+ this.logger.logEvent({ message: 'sendCommand:RECV', data: utils_1.hexstr(response) });
412
411
  for (let i = 0; i < incoming.length; i++) {
413
412
  const getRemaining = () => {
414
413
  let remaining = '';
@@ -441,11 +440,11 @@ class Daum8i {
441
440
  }
442
441
  else if (c === 0x17) {
443
442
  const remaining = getRemaining();
444
- this.logger.logEvent({ message: "sendCommand:received:", duration: Date.now() - this.state.sending.tsRequest, port: portName, cmd: `${cmd} [${(0, utils_1.hexstr)(cmd)}]`, remaining: (0, utils_1.hexstr)(remaining) });
443
+ this.logger.logEvent({ message: "sendCommand:received:", duration: Date.now() - this.state.sending.tsRequest, port: portName, cmd: `${cmd} [${utils_1.hexstr(cmd)}]`, remaining: utils_1.hexstr(remaining) });
445
444
  this.state.waitingForEnd = false;
446
445
  const cmdStr = cmd.substring(0, cmd.length - 2);
447
446
  const checksumExtracted = cmd.slice(-2);
448
- const checksumCalculated = (0, utils_1.checkSum)((0, utils_1.getAsciiArrayFromStr)(cmdStr), []);
447
+ const checksumCalculated = utils_1.checkSum(utils_1.getAsciiArrayFromStr(cmdStr), []);
449
448
  if (checksumExtracted === checksumCalculated) {
450
449
  this.sendACK();
451
450
  if (this.state.sending && this.state.sending.responseCheckIv) {
@@ -487,8 +486,8 @@ class Daum8i {
487
486
  this.state.busy = true;
488
487
  }
489
488
  else {
490
- const message = (0, utils_1.buildMessage)(command, payload);
491
- this.logger.logEvent({ message: 'sendCommand:waiting', port: this.portName, cmd: command, hex: (0, utils_1.hexstr)(message) });
489
+ const message = utils_1.buildMessage(command, payload);
490
+ this.logger.logEvent({ message: 'sendCommand:waiting', port: this.portName, cmd: command, hex: utils_1.hexstr(message) });
492
491
  const busyWait = () => {
493
492
  return new Promise((done) => {
494
493
  let start = Date.now();
@@ -509,7 +508,7 @@ class Daum8i {
509
508
  };
510
509
  const res = yield busyWait();
511
510
  if (!res) {
512
- this.logger.logEvent({ message: 'sendCommand:busy timeout', port: this.portName, cmd: command, hex: (0, utils_1.hexstr)(message), duration: Date.now() - tsRequest });
511
+ this.logger.logEvent({ message: 'sendCommand:busy timeout', port: this.portName, cmd: command, hex: utils_1.hexstr(message), duration: Date.now() - tsRequest });
513
512
  return reject(new Error('BUSY timeout'));
514
513
  }
515
514
  this.state.busy = true;
@@ -527,10 +526,10 @@ class Daum8i {
527
526
  const portName = this.portName;
528
527
  this.state.received = [];
529
528
  try {
530
- const message = (0, utils_1.buildMessage)(command, payload);
529
+ const message = utils_1.buildMessage(command, payload);
531
530
  const start = Date.now();
532
531
  const timeout = start + this.getTimeoutValue();
533
- this.logger.logEvent({ message: "sendCommand:sending:", port: this.portName, cmd: command, hex: (0, utils_1.hexstr)(message) });
532
+ this.logger.logEvent({ message: "sendCommand:sending:", port: this.portName, cmd: command, hex: utils_1.hexstr(message) });
534
533
  this.state.writeBusy = true;
535
534
  if (!this.connected || port === undefined) {
536
535
  this.logger.logEvent({ message: "sendCommand:error: not connected", port: this.portName });
@@ -590,10 +589,10 @@ class Daum8i {
590
589
  buffer.writeUInt16LE(0, 2);
591
590
  }
592
591
  const cmdData = Uint8Array.from(buffer);
593
- return this.sendDaum8iCommand('M70', cmdType, (0, utils_1.bin2esc)(cmdData))
592
+ return this.sendDaum8iCommand('M70', cmdType, utils_1.bin2esc(cmdData))
594
593
  .then((res) => {
595
594
  const resData = Uint8Array.from(res, x => x.charCodeAt(0));
596
- const cmd = (0, utils_1.esc2bin)(resData);
595
+ const cmd = utils_1.esc2bin(resData);
597
596
  return cmd;
598
597
  });
599
598
  }
@@ -618,7 +617,7 @@ class Daum8i {
618
617
  else if (str === '7')
619
618
  deviceType = 'lyps';
620
619
  else
621
- throw (new Error(`unknown device type ${typeof str === 'string' ? (0, utils_1.ascii)(str.charAt(0)) : str}`));
620
+ throw (new Error(`unknown device type ${typeof str === 'string' ? utils_1.ascii(str.charAt(0)) : str}`));
622
621
  return deviceType;
623
622
  });
624
623
  }
@@ -633,7 +632,7 @@ class Daum8i {
633
632
  else if (str === '2')
634
633
  deviceType = constants_1.ACTUAL_BIKE_TYPE.MOUNTAIN;
635
634
  else {
636
- throw (new Error(`unknown actual device type ${typeof str === 'string' ? (0, utils_1.ascii)(str.charAt(0)) : str}`));
635
+ throw (new Error(`unknown actual device type ${typeof str === 'string' ? utils_1.ascii(str.charAt(0)) : str}`));
637
636
  }
638
637
  this.state.actualBikeType = deviceType;
639
638
  return deviceType;
@@ -675,12 +674,12 @@ class Daum8i {
675
674
  getTrainingData() {
676
675
  return this.sendDaum8iCommand('X70', 'AF', [])
677
676
  .then((data) => {
678
- const td = (0, utils_1.parseTrainingData)(data);
677
+ const td = utils_1.parseTrainingData(data);
679
678
  return td;
680
679
  });
681
680
  }
682
681
  setLoadControl(enabled) {
683
- const val = enabled ? (0, utils_1.ascii)('1') : (0, utils_1.ascii)('0');
682
+ const val = enabled ? utils_1.ascii('1') : utils_1.ascii('0');
684
683
  return this.sendDaum8iCommand('S20', 'BF', [val])
685
684
  .then((data) => {
686
685
  const res = data === '1';
@@ -714,7 +713,7 @@ class Daum8i {
714
713
  setPerson(person) {
715
714
  const { sex, age, length, weight } = person;
716
715
  this.logger.logEvent({ message: 'setPerson() request', sex, age, length, weight });
717
- return this.sendReservedDaum8iCommand(utils_1.ReservedCommands.PERSON_SET, 'BF', (0, utils_1.getPersonData)(person))
716
+ return this.sendReservedDaum8iCommand(utils_1.ReservedCommands.PERSON_SET, 'BF', utils_1.getPersonData(person))
718
717
  .then((res) => {
719
718
  const buffer = Buffer.from(res);
720
719
  const success = buffer.readInt16LE(0) === utils_1.ReservedCommands.PERSON_SET;
@@ -738,9 +737,9 @@ class Daum8i {
738
737
  }
739
738
  programUploadStart(bikeType, route) {
740
739
  const payload = Buffer.alloc(40);
741
- const epp = route ? (0, utils_1.routeToEpp)(route) : undefined;
740
+ const epp = route ? utils_1.routeToEpp(route) : undefined;
742
741
  const eppLength = epp ? epp.length : 0;
743
- const bikeTypeVal = (0, utils_1.getBikeType)(bikeType);
742
+ const bikeTypeVal = utils_1.getBikeType(bikeType);
744
743
  const wBits = route.lapMode ? DS_BITS_ENDLESS_RACE : DS_BITS_OFF;
745
744
  payload.writeInt32LE(0, 0);
746
745
  payload.writeInt8(bikeTypeVal, 4);
@@ -3,7 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getPersonData = exports.parseTrainingData = exports.routeToEpp = exports.getBikeType = exports.BikeType = exports.ReservedCommands = exports.Int32ToIntArray = exports.Int16ToIntArray = exports.Float32ToIntArray = exports.Float32ToHex = exports.getAsciiArrayFromStr = exports.asciiArrayToString = exports.charArrayToString = exports.ascii = exports.append = exports.getHex = exports.hexstr = exports.getMessageData = exports.buildMessage = exports.checkSum = exports.esc2bin = exports.bin2esc = void 0;
7
6
  const win32filetime_1 = __importDefault(require("win32filetime"));
8
7
  const sum = (arr) => arr.reduce((a, b) => a + b, 0);
9
8
  function bin2esc(arr) {
@@ -43,6 +43,7 @@ export default class KettlerSerialComms<T extends Command> extends EventEmitter
43
43
  _setState(state: SerialCommsState): void;
44
44
  _setSendState(state: SendState): void;
45
45
  _setCurrentCmd(cmd: T): void;
46
+ stopCurrentTimeoutCheck(): void;
46
47
  onPortOpen(): void;
47
48
  onPortClose(): Promise<void>;
48
49
  onPortError(err: any): void;
@@ -12,11 +12,11 @@ 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.SendState = exports.SerialCommsState = void 0;
16
15
  const gd_eventlog_1 = require("gd-eventlog");
17
16
  const utils_1 = require("../utils");
18
17
  const events_1 = __importDefault(require("events"));
19
18
  const DEFAULT_RCV_TIMEOUT = 1500;
19
+ const DEFAULT_OPEN_TIMEOUT = 1500;
20
20
  const DEBUG_LOGGER = {
21
21
  log: (e, ...args) => console.log(e, ...args),
22
22
  logEvent: (event) => console.log(JSON.stringify(event))
@@ -51,6 +51,7 @@ class KettlerSerialComms extends events_1.default {
51
51
  this.sendState = SendState.Idle;
52
52
  this.settings = opts.settings || {};
53
53
  this.currentCmd = undefined;
54
+ this.currentTimeout = undefined;
54
55
  this.protocol = opts.protocol;
55
56
  }
56
57
  getPort() {
@@ -74,10 +75,17 @@ class KettlerSerialComms extends events_1.default {
74
75
  _setCurrentCmd(cmd) {
75
76
  this.currentCmd = cmd;
76
77
  }
78
+ stopCurrentTimeoutCheck() {
79
+ if (this.currentTimeout) {
80
+ clearTimeout(this.currentTimeout);
81
+ this.currentTimeout = undefined;
82
+ }
83
+ }
77
84
  onPortOpen() {
78
85
  this.logger.logEvent({ message: 'port opened', port: this.getPort() });
79
86
  this.state = SerialCommsState.Connected;
80
87
  this.sendState = SendState.Idle;
88
+ this.stopCurrentTimeoutCheck();
81
89
  this.startWorker();
82
90
  this.emit('opened');
83
91
  }
@@ -89,6 +97,7 @@ class KettlerSerialComms extends events_1.default {
89
97
  }
90
98
  this.state = SerialCommsState.Disconnected;
91
99
  this.sendState = SendState.Idle;
100
+ this.stopCurrentTimeoutCheck();
92
101
  this.queue.clear();
93
102
  this.emit('closed');
94
103
  this.sp.removeAllListeners();
@@ -96,14 +105,23 @@ class KettlerSerialComms extends events_1.default {
96
105
  });
97
106
  }
98
107
  onPortError(err) {
108
+ let ignore = false;
99
109
  if (this.stateIn([SerialCommsState.Connected, SerialCommsState.Disconnected]))
100
- return;
110
+ ignore = true;
101
111
  if (this.state === SerialCommsState.Disconnecting && (err.message === 'Port is not open' || err.message === 'Writing to COM port (GetOverlappedResult): Operation aborted'))
102
- return;
112
+ ignore = true;
103
113
  if (this.state === SerialCommsState.Connecting && (err.message === 'Port is already open' || err.message === 'Port is opening'))
104
- return;
105
- this.logger.logEvent({ message: "port error:", port: this.getPort(), error: err.message, stack: err.stack, state: this.state });
106
- this.emit('error', err);
114
+ ignore = true;
115
+ if (!ignore) {
116
+ this.logger.logEvent({ message: "port error:", port: this.getPort(), error: err.message, stack: err.stack, state: this.state });
117
+ this.emit('error', err);
118
+ this.stopCurrentTimeoutCheck();
119
+ if (this.state === SerialCommsState.Connecting || this.state === SerialCommsState.Disconnecting) {
120
+ this.state = SerialCommsState.Error;
121
+ this.sp.removeAllListeners();
122
+ this.sp = undefined;
123
+ }
124
+ }
107
125
  }
108
126
  open() {
109
127
  this.logger.logEvent({ message: "open()", port: this.getPort() });
@@ -122,6 +140,11 @@ class KettlerSerialComms extends events_1.default {
122
140
  const parser = this.sp.pipe(new SerialPort.parsers.Readline({ delimiter: CRLF }));
123
141
  parser.on('data', (data) => { this.onData(data); });
124
142
  this.sp.open();
143
+ const timeout = this.settings.openTimeout || DEFAULT_OPEN_TIMEOUT;
144
+ this.currentTimeout = setTimeout(() => {
145
+ this.logger.logEvent({ message: "open() timeout", port: this.getPort() });
146
+ this.onPortError(new Error("open() timeout"));
147
+ }, timeout);
125
148
  }
126
149
  catch (err) {
127
150
  this.logger.logEvent({ message: "error", fn: 'open()', error: err.message });
@@ -170,7 +193,7 @@ class KettlerSerialComms extends events_1.default {
170
193
  write(cmd) {
171
194
  this.sendState = SendState.Sending;
172
195
  const { logStr, message, timeout = (this.settings.timeout || DEFAULT_RCV_TIMEOUT) } = cmd;
173
- const msg = typeof message === 'string' ? message : (0, utils_1.hexstr)(message);
196
+ const msg = typeof message === 'string' ? message : utils_1.hexstr(message);
174
197
  const onError = (err) => {
175
198
  this.logger.logEvent({ message: "sendCommand:error:", cmd: logStr, error: err.message, port: this.getPort() });
176
199
  if (cmd.onError)
@@ -1,23 +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
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -27,6 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
27
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
28
9
  });
29
10
  };
11
+ var __importStar = (this && this.__importStar) || function (mod) {
12
+ if (mod && mod.__esModule) return mod;
13
+ var result = {};
14
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
15
+ result["default"] = mod;
16
+ return result;
17
+ };
30
18
  var __importDefault = (this && this.__importDefault) || function (mod) {
31
19
  return (mod && mod.__esModule) ? mod : { "default": mod };
32
20
  };
@@ -298,7 +286,7 @@ class KettlerRacerAdapter extends Device_1.default {
298
286
  start(props) {
299
287
  this.logger.logEvent({ message: 'start()' });
300
288
  var info = {};
301
- return (0, utils_1.runWithRetries)(() => __awaiter(this, void 0, void 0, function* () {
289
+ return utils_1.runWithRetries(() => __awaiter(this, void 0, void 0, function* () {
302
290
  try {
303
291
  if (!info.checkDone) {
304
292
  info.checkDone = yield this.check();
@@ -547,7 +535,7 @@ class KettlerRacerAdapter extends Device_1.default {
547
535
  }));
548
536
  }
549
537
  waitForOpened() {
550
- return (0, utils_1.runWithRetries)(() => {
538
+ return utils_1.runWithRetries(() => {
551
539
  return new Promise((resolve, reject) => {
552
540
  try {
553
541
  if (this.comms.isConnected()) {
@@ -1,23 +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
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -27,6 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
27
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
28
9
  });
29
10
  };
11
+ var __importStar = (this && this.__importStar) || function (mod) {
12
+ if (mod && mod.__esModule) return mod;
13
+ var result = {};
14
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
15
+ result["default"] = mod;
16
+ return result;
17
+ };
30
18
  var __importDefault = (this && this.__importDefault) || function (mod) {
31
19
  return (mod && mod.__esModule) ? mod : { "default": mod };
32
20
  };
@@ -1,28 +1,15 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
2
  var __importStar = (this && this.__importStar) || function (mod) {
15
3
  if (mod && mod.__esModule) return mod;
16
4
  var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
5
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
6
+ result["default"] = mod;
19
7
  return result;
20
8
  };
21
9
  var __importDefault = (this && this.__importDefault) || function (mod) {
22
10
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
11
  };
24
12
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.Simulator = void 0;
26
13
  const DeviceProtocol_1 = __importStar(require("../DeviceProtocol"));
27
14
  const DeviceRegistry_1 = __importDefault(require("../DeviceRegistry"));
28
15
  const Device_1 = __importDefault(require("../Device"));
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RouteType = void 0;
4
3
  var RouteType;
5
4
  (function (RouteType) {
6
5
  RouteType["FREE_RIDE"] = "free ride";
package/lib/types/user.js CHANGED
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Gender = void 0;
4
3
  var Gender;
5
4
  (function (Gender) {
6
5
  Gender["MALE"] = "M";
package/lib/utils.js CHANGED
@@ -9,11 +9,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.Queue = exports.hexstr = exports.intVal = exports.floatVal = exports.runWithRetries = exports.sleep = void 0;
13
- const sleep = (ms) => {
12
+ exports.sleep = (ms) => {
14
13
  return new Promise(resolve => setTimeout(resolve, ms));
15
14
  };
16
- exports.sleep = sleep;
17
15
  function runWithRetries(fn, maxRetries, timeBetween) {
18
16
  return new Promise((resolve, reject) => {
19
17
  let retries = 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "incyclist-devices",
3
- "version": "1.4.17",
3
+ "version": "1.4.18",
4
4
  "dependencies": {
5
5
  "@serialport/parser-byte-length": "^9.0.1",
6
6
  "@serialport/parser-delimiter": "^9.0.1",