incyclist-devices 1.4.26 → 1.4.27

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.
Files changed (47) hide show
  1. package/lib/CyclingMode.js +0 -1
  2. package/lib/Device.d.ts +1 -1
  3. package/lib/Device.js +2 -3
  4. package/lib/DeviceProtocol.d.ts +2 -1
  5. package/lib/DeviceProtocol.js +1 -1
  6. package/lib/DeviceSupport.d.ts +6 -1
  7. package/lib/DeviceSupport.js +17 -21
  8. package/lib/ant/AntAdapter.js +0 -1
  9. package/lib/ant/AntScanner.js +7 -20
  10. package/lib/ant/antfe/AntFEAdapter.js +7 -7
  11. package/lib/ant/anthrm/AntHrmAdapter.js +1 -1
  12. package/lib/ant/antpwr/pwr-adapter.js +1 -1
  13. package/lib/ant/utils.js +1 -3
  14. package/lib/ble/ble-device.d.ts +36 -0
  15. package/lib/ble/ble-device.js +174 -0
  16. package/lib/ble/ble-interface.d.ts +51 -0
  17. package/lib/ble/ble-interface.js +330 -0
  18. package/lib/ble/ble.d.ts +81 -0
  19. package/lib/ble/ble.js +51 -0
  20. package/lib/ble/hrm.d.ts +48 -0
  21. package/lib/ble/hrm.js +128 -0
  22. package/lib/ble/incyclist-protocol.d.ts +31 -0
  23. package/lib/ble/incyclist-protocol.js +106 -0
  24. package/lib/ble/pwr.d.ts +32 -0
  25. package/lib/ble/pwr.js +96 -0
  26. package/lib/calculations.js +0 -1
  27. package/lib/daum/DaumAdapter.d.ts +2 -2
  28. package/lib/daum/DaumAdapter.js +13 -25
  29. package/lib/daum/SmartTrainerCyclingMode.js +0 -1
  30. package/lib/daum/classic/DaumClassicAdapter.js +1 -1
  31. package/lib/daum/classic/DaumClassicProtocol.js +7 -19
  32. package/lib/daum/classic/bike.js +26 -26
  33. package/lib/daum/classic/utils.js +0 -1
  34. package/lib/daum/constants.js +0 -1
  35. package/lib/daum/premium/DaumPremiumAdapter.js +1 -1
  36. package/lib/daum/premium/DaumPremiumProtocol.js +7 -19
  37. package/lib/daum/premium/bike.js +17 -18
  38. package/lib/daum/premium/utils.js +0 -1
  39. package/lib/kettler/comms.js +1 -2
  40. package/lib/kettler/ergo-racer/adapter.js +9 -21
  41. package/lib/kettler/ergo-racer/protocol.js +7 -19
  42. package/lib/modes/power-meter.js +0 -1
  43. package/lib/simulator/Simulator.js +7 -20
  44. package/lib/types/route.js +0 -1
  45. package/lib/types/user.js +0 -1
  46. package/lib/utils.js +1 -3
  47. package/package.json +1 -1
@@ -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) {
@@ -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.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"));
@@ -194,7 +193,7 @@ class KettlerSerialComms extends events_1.default {
194
193
  write(cmd) {
195
194
  this.sendState = SendState.Sending;
196
195
  const { logStr, message, timeout = (this.settings.timeout || DEFAULT_RCV_TIMEOUT) } = cmd;
197
- const msg = typeof message === 'string' ? message : (0, utils_1.hexstr)(message);
196
+ const msg = typeof message === 'string' ? message : utils_1.hexstr(message);
198
197
  const onError = (err) => {
199
198
  this.logger.logEvent({ message: "sendCommand:error:", cmd: logStr, error: err.message, port: this.getPort() });
200
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
  };
@@ -300,7 +288,7 @@ class KettlerRacerAdapter extends Device_1.default {
300
288
  this.logger.logEvent({ message: 'start()' });
301
289
  var info = {};
302
290
  yield this.waitForOpened(true);
303
- return (0, utils_1.runWithRetries)(() => __awaiter(this, void 0, void 0, function* () {
291
+ return utils_1.runWithRetries(() => __awaiter(this, void 0, void 0, function* () {
304
292
  try {
305
293
  if (!info.checkDone) {
306
294
  info.checkDone = yield this.check();
@@ -585,7 +573,7 @@ class KettlerRacerAdapter extends Device_1.default {
585
573
  if (!retries) {
586
574
  return new Promise((resolve, reject) => run(resolve, reject));
587
575
  }
588
- return (0, utils_1.runWithRetries)(() => {
576
+ return utils_1.runWithRetries(() => {
589
577
  return new Promise((resolve, reject) => run(resolve, reject));
590
578
  }, 3, 1000);
591
579
  }
@@ -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
  };
@@ -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.config = void 0;
7
6
  const power_base_1 = __importDefault(require("./power-base"));
8
7
  exports.config = {
9
8
  name: 'PowerMeter',
@@ -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.Simulator = void 0;
35
22
  const DeviceProtocol_1 = __importStar(require("../DeviceProtocol"));
36
23
  const DeviceRegistry_1 = __importDefault(require("../DeviceRegistry"));
37
24
  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.26",
3
+ "version": "1.4.27",
4
4
  "dependencies": {
5
5
  "@serialport/parser-byte-length": "^9.0.1",
6
6
  "@serialport/parser-delimiter": "^9.0.1",