incyclist-devices 1.1.0 → 1.3.25

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 (70) hide show
  1. package/LICENSE +21 -0
  2. package/lib/CyclingMode.d.ts +72 -0
  3. package/lib/CyclingMode.js +66 -0
  4. package/lib/Device.d.ts +48 -10
  5. package/lib/Device.js +9 -8
  6. package/lib/DeviceProtocol.d.ts +40 -12
  7. package/lib/DeviceProtocol.js +16 -16
  8. package/lib/DeviceRegistry.d.ts +4 -4
  9. package/lib/DeviceRegistry.js +10 -10
  10. package/lib/DeviceSupport.d.ts +4 -3
  11. package/lib/DeviceSupport.js +32 -8
  12. package/lib/ant/AntAdapter.d.ts +11 -2
  13. package/lib/ant/AntAdapter.js +30 -1
  14. package/lib/ant/AntScanner.d.ts +17 -6
  15. package/lib/ant/AntScanner.js +406 -135
  16. package/lib/ant/antfe/AntFEAdapter.d.ts +12 -8
  17. package/lib/ant/antfe/AntFEAdapter.js +404 -182
  18. package/lib/ant/anthrm/AntHrmAdapter.d.ts +4 -2
  19. package/lib/ant/anthrm/AntHrmAdapter.js +72 -25
  20. package/lib/ant/utils.js +2 -1
  21. package/lib/calculations.d.ts +12 -13
  22. package/lib/calculations.js +88 -125
  23. package/lib/daum/DaumAdapter.d.ts +29 -6
  24. package/lib/daum/DaumAdapter.js +219 -96
  25. package/lib/daum/ERGCyclingMode.d.ts +28 -0
  26. package/lib/daum/ERGCyclingMode.js +207 -0
  27. package/lib/daum/PowerMeterCyclingMode.d.ts +18 -0
  28. package/lib/daum/PowerMeterCyclingMode.js +79 -0
  29. package/lib/daum/SmartTrainerCyclingMode.d.ts +41 -0
  30. package/lib/daum/SmartTrainerCyclingMode.js +344 -0
  31. package/lib/daum/classic/DaumClassicAdapter.d.ts +3 -1
  32. package/lib/daum/classic/DaumClassicAdapter.js +46 -32
  33. package/lib/daum/classic/DaumClassicCyclingMode.d.ts +13 -0
  34. package/lib/daum/classic/DaumClassicCyclingMode.js +98 -0
  35. package/lib/daum/classic/DaumClassicProtocol.d.ts +5 -3
  36. package/lib/daum/classic/DaumClassicProtocol.js +39 -6
  37. package/lib/daum/classic/ERGCyclingMode.d.ts +23 -0
  38. package/lib/daum/classic/ERGCyclingMode.js +171 -0
  39. package/lib/daum/classic/bike.d.ts +41 -37
  40. package/lib/daum/classic/bike.js +86 -53
  41. package/lib/daum/classic/utils.d.ts +3 -3
  42. package/lib/daum/classic/utils.js +16 -10
  43. package/lib/daum/indoorbike.d.ts +2 -1
  44. package/lib/daum/indoorbike.js +23 -21
  45. package/lib/daum/premium/DaumPremiumAdapter.d.ts +2 -2
  46. package/lib/daum/premium/DaumPremiumAdapter.js +30 -20
  47. package/lib/daum/premium/DaumPremiumProtocol.d.ts +11 -2
  48. package/lib/daum/premium/DaumPremiumProtocol.js +49 -8
  49. package/lib/daum/premium/bike.d.ts +63 -52
  50. package/lib/daum/premium/bike.js +258 -207
  51. package/lib/daum/premium/tcpserial.d.ts +18 -14
  52. package/lib/daum/premium/tcpserial.js +50 -20
  53. package/lib/daum/premium/utils.d.ts +2 -2
  54. package/lib/simulator/Simulator.d.ts +13 -7
  55. package/lib/simulator/Simulator.js +62 -21
  56. package/lib/utils.d.ts +3 -1
  57. package/lib/utils.js +39 -18
  58. package/package.json +12 -11
  59. package/lib/ant/AntScanner.unit.tests.d.ts +0 -1
  60. package/lib/ant/AntScanner.unit.tests.js +0 -25
  61. package/lib/ant/antfe/AntFEProcessor.d.ts +0 -40
  62. package/lib/ant/antfe/AntFEProcessor.js +0 -238
  63. package/lib/ant/antfe/AntHrmProtocol.d.ts +0 -9
  64. package/lib/ant/antfe/AntHrmProtocol.js +0 -30
  65. package/lib/ant/antfe/bike.d.ts +0 -47
  66. package/lib/ant/antfe/bike.js +0 -602
  67. package/lib/ant/anthrm/anthrm.d.ts +0 -33
  68. package/lib/ant/anthrm/anthrm.js +0 -523
  69. package/lib/simulator/Simulator.unit.tests.d.ts +0 -1
  70. package/lib/simulator/Simulator.unit.tests.js +0 -79
@@ -1,523 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const hrm_js_1 = require("../../hrm.js");
4
- const { EventLogger } = require('gd-eventlog');
5
- var Ant = undefined;
6
- let Logger = new EventLogger('Ant+Hrm', 'Incyclist');
7
- var stick = undefined;
8
- var sensor = undefined;
9
- const MAX_SPAN_NO_DATA = 5000;
10
- class AntHrmSensor extends hrm_js_1.default {
11
- static setAnt(antClass) {
12
- Ant = antClass;
13
- }
14
- static getClassName() {
15
- return "Ant+Hrm";
16
- }
17
- constructor(opts) {
18
- super(opts);
19
- this.logger = new EventLogger('Ant+Hrm');
20
- this.manufacturer = undefined;
21
- this.deviceID = undefined;
22
- this.prevHrmTime = undefined;
23
- this.bike = undefined;
24
- this.mode = "idle";
25
- this.shareStick = false;
26
- this.stick = undefined;
27
- this.scanMode = false;
28
- this.isScanning = false;
29
- this.isAttached = false;
30
- if (opts !== undefined) {
31
- this.bike = opts.bike;
32
- this.processor = opts.processor;
33
- }
34
- if (this.bike !== undefined) {
35
- this.bike.hrm = this;
36
- }
37
- if (opts.mode === "scan") {
38
- this.scanMode = true;
39
- }
40
- else {
41
- if (opts.deviceID !== undefined) {
42
- this.deviceID = opts.deviceID;
43
- }
44
- else {
45
- this.deviceID = 0;
46
- }
47
- }
48
- if (this.stick === undefined) {
49
- if (opts.stick === undefined) {
50
- this.stick = new Ant.GarminStick3();
51
- }
52
- else {
53
- this.stick = opts.stick;
54
- this.shareStick = true;
55
- }
56
- return;
57
- }
58
- }
59
- static getStick() {
60
- Logger.log('checking GarminStick2');
61
- let stick2 = new Ant.GarminStick2();
62
- if (stick2.is_present() && stick2.open()) {
63
- this.logEvent({ message: 'found GarminStick2' });
64
- return stick2;
65
- }
66
- Logger.log('checking GarminStick3');
67
- let stick3 = new Ant.GarminStick3();
68
- if (stick3.is_present() && stick3.open()) {
69
- this.logEvent({ message: 'found GarminStick3' });
70
- return stick3;
71
- }
72
- this.logEvent({ message: 'no stick found' });
73
- return undefined;
74
- }
75
- static scan(scanId, callbacks, timeout, scanOpts) {
76
- Logger.log("scanning for devices...");
77
- AntHrmSensor.isScanning = true;
78
- let stick = undefined;
79
- if (scanOpts !== undefined && scanOpts.ant !== undefined)
80
- stick = scanOpts.ant.stick;
81
- var hrm = undefined;
82
- if (stick === undefined) {
83
- stick = this.getStick();
84
- if (stick !== undefined) {
85
- stick.createdForHrmScan = true;
86
- if (scanOpts === undefined)
87
- scanOpts = {};
88
- if (scanOpts.ant === undefined)
89
- scanOpts.ant = {};
90
- scanOpts.ant.stick = stick;
91
- }
92
- }
93
- if (stick === undefined) {
94
- if (callbacks !== undefined && callbacks.end !== undefined) {
95
- callbacks.end(scanId);
96
- }
97
- return;
98
- }
99
- stick.hrmScanId = scanId;
100
- if (stick.createdForHrmScan) {
101
- stick.on('startup', function () {
102
- if (hrm !== undefined)
103
- hrm.startScanning(callbacks, timeout);
104
- });
105
- if (stick.is_present()) {
106
- if (!stick.open()) {
107
- Logger.log('Stick could not be opened!');
108
- if (callbacks !== undefined && callbacks.end !== undefined) {
109
- callbacks.end(stick.hrmScanId);
110
- }
111
- return;
112
- }
113
- else {
114
- hrm = new AntHrmSensor({ stick: stick });
115
- hrm.isFirstScanner = (stick.cntScanners === undefined);
116
- }
117
- }
118
- else {
119
- Logger.log('Stick not found');
120
- if (callbacks !== undefined && callbacks.end !== undefined) {
121
- callbacks.end(stick.hrmScanId);
122
- }
123
- return;
124
- }
125
- }
126
- else {
127
- if (!stick.opened) {
128
- if (callbacks !== undefined && callbacks.end !== undefined) {
129
- callbacks.end(stick.hrmScanId);
130
- }
131
- return;
132
- }
133
- hrm = new AntHrmSensor({ stick: stick, mode: "scan" });
134
- hrm.isFirstScanner = (stick.cntScanners === undefined);
135
- hrm.startScanning(callbacks, timeout);
136
- }
137
- if (stick.cntScanners === undefined)
138
- stick.cntScanners = 1;
139
- else
140
- stick.cntScanners++;
141
- }
142
- static log(str, args) {
143
- Logger.log(str, ...args);
144
- }
145
- static logEvent(event, level) {
146
- Logger.logEvent(event, level);
147
- }
148
- startScanning(callbacks, timeout) {
149
- let self = this;
150
- let stick = this.stick;
151
- this.initScanner(callbacks);
152
- this.stick.hrmScanningInterval = setInterval(() => {
153
- if (self.stick.startHrmScan === undefined) {
154
- if (self.isFirstScanner || self.stick.scannerAttached) {
155
- this.logger.log('starting scanner...');
156
- self.stick.startHrmScan = Date.now();
157
- try {
158
- self.scanner.scan();
159
- self.stick.antScanners = [];
160
- }
161
- catch (e) {
162
- this.logger.logEvent({ message: "Error", fn: 'startScanning->setInterval', error: e });
163
- }
164
- }
165
- }
166
- if (stick.startHrmScan !== undefined) {
167
- let ts = Date.now();
168
- if (ts - stick.startHrmScan < timeout) {
169
- return;
170
- }
171
- else {
172
- let cb = callbacks === undefined ? undefined : callbacks.end;
173
- self.stopScanning(cb);
174
- }
175
- }
176
- return;
177
- }, 100);
178
- }
179
- initScanner(callbacks, obj) {
180
- var self = obj;
181
- if (obj === undefined)
182
- self = this;
183
- try {
184
- if (self.scanner !== undefined) {
185
- if (self.isFirstScanner) {
186
- self.scanner.detach(0);
187
- setTimeout(self.initScanner, 500, callbacks, self);
188
- }
189
- else {
190
- self.scanner.removeAllListeners();
191
- self.scanner = undefined;
192
- }
193
- }
194
- self.scanner = new Ant.HeartRateScanner(self.stick);
195
- self.scanner.on('hbData', (data) => {
196
- if (self.stick.anthrm === undefined) {
197
- self.stick.anthrm = [];
198
- }
199
- if (data.DeviceID === undefined)
200
- return;
201
- var foundHrm = false;
202
- for (var i = 0; i < self.stick.anthrm.length; i++) {
203
- if (self.stick.anthrm[i] === data.DeviceID) {
204
- foundHrm = true;
205
- }
206
- }
207
- if (!foundHrm) {
208
- self.stick.anthrm.push(data.DeviceID);
209
- if (callbacks !== undefined && callbacks.found !== undefined) {
210
- this.logger.logEvent({ message: "adding device ", deviceID: data.DeviceID });
211
- var name = "ANT+Hrm";
212
- if (data.ManId !== undefined) {
213
- switch (data.ManId) {
214
- case 1:
215
- name = "Garmin";
216
- break;
217
- case 16:
218
- name = "Timex";
219
- break;
220
- case 23:
221
- name = "Suunto";
222
- break;
223
- case 52:
224
- name = "Seiko";
225
- break;
226
- case 53:
227
- name = "Seiko";
228
- break;
229
- case 70:
230
- name = "Sigma";
231
- break;
232
- case 123:
233
- name = "Polar";
234
- break;
235
- case 287:
236
- name = "VDO";
237
- break;
238
- case 32:
239
- name = "Wahoo";
240
- break;
241
- case 86:
242
- name = "Elite";
243
- break;
244
- case 89:
245
- name = "Tacx";
246
- break;
247
- default:
248
- name = 'Other:' + data.ManId;
249
- }
250
- }
251
- callbacks.found(AntHrmSensor, { profile: "hrm", name: name + " " + data.DeviceID, type: "ANT+Hrm", deviceID: data.DeviceID, options: { stick: self.stick, deviceID: data.DeviceID } });
252
- }
253
- }
254
- });
255
- self.scanner.on('attached', () => {
256
- this.logger.log('scanner attached');
257
- self.isScanning = true;
258
- self.stick.cntHrmScanners = 1;
259
- if (self.isFirstScanner) {
260
- self.stick.scannerAttached = true;
261
- for (var i in self.stick.antScanners) {
262
- self.stick.antScanners[i].scan();
263
- }
264
- }
265
- });
266
- self.scanner.on('detached', () => {
267
- this.logger.log('scanner detached');
268
- self.isScanning = false;
269
- AntHrmSensor.isScanning = false;
270
- if (self.isFirstScanner) {
271
- self.stick.scannerAttached = undefined;
272
- }
273
- self.stick.cntHrmScanners = undefined;
274
- self.scanner.removeAllListeners();
275
- self.scanner = undefined;
276
- });
277
- }
278
- catch (error) {
279
- this.logger.logEvent({ message: "Error ", fn: 'initScanner()', error });
280
- }
281
- }
282
- stopScanning(callback) {
283
- let self = this;
284
- if (self.scanner === undefined) {
285
- if (self.stick.startHrmScan !== undefined) {
286
- this.logger.log("scan stopped");
287
- if (self.stick.hrmScanningInterval !== undefined)
288
- clearInterval(self.stick.hrmScanningInterval);
289
- self.stick.startHrmScan = undefined;
290
- self.stick.hrmScanningInterval = undefined;
291
- if (callback !== undefined) {
292
- callback(self.stick.hrmScanId);
293
- }
294
- }
295
- return;
296
- }
297
- this.logger.log("stopping scan ...");
298
- try {
299
- if (self.isFirstScanner) {
300
- self.logger.log("detaching channel " + self.scanner.channel + " ...");
301
- self.scanner.detach(0);
302
- }
303
- else {
304
- self.scanner.removeAllListeners();
305
- self.scanner = undefined;
306
- }
307
- if (self.stick.hrmScanningInterval !== undefined)
308
- clearInterval(self.stick.hrmScanningInterval);
309
- self.stick.startHrmScan = undefined;
310
- self.stick.hrmScanningInterval = undefined;
311
- self.stopScanningStart = Date.now();
312
- self.stopScanningIv = setInterval(function () {
313
- let duration = Date.now() - self.stopScanningStart;
314
- if (duration > 2000 || self.scanner === undefined) {
315
- self.logger.log("scan stopped");
316
- if (callback !== undefined) {
317
- callback(self.stick.hrmScanId);
318
- }
319
- clearInterval(self.stopScanningIv);
320
- self.stopScanningIv = undefined;
321
- }
322
- }, 100);
323
- }
324
- catch (error) {
325
- self.logger.logEvent({ messsage: 'Error', fn: 'stopScanning()', error });
326
- }
327
- }
328
- connect(callback) {
329
- let self = this;
330
- if (self.stick !== undefined) {
331
- self.channel = self.stick.inUse === undefined ? 0 : self.stick.inUse;
332
- self.stick.inUse = self.channel + 1;
333
- }
334
- this.logger.logEvent({ message: "connect()", scanMode: this.scanMode, stick: this.stick === undefined ? '' : `${this.stick.idVendor}-${this.stick.idProduct}`, channel: self.channel });
335
- let cb = callback || function (str) { };
336
- if (this.scanMode) {
337
- return;
338
- }
339
- if (this.stick === undefined) {
340
- try {
341
- this.stick = new Ant.GarminStick3();
342
- if (this.stick.is_present()) {
343
- this.initSensor();
344
- this.stick.open();
345
- }
346
- else {
347
- this.logger.log("connect():no stick found");
348
- cb(503, { message: "no stick found" });
349
- return;
350
- }
351
- }
352
- catch (error) {
353
- this.logger.logEvent({ message: "Error ", fn: 'connect()', error });
354
- }
355
- }
356
- else {
357
- if (self.scanner !== undefined) {
358
- self.logger.log('scan still ongoing. Stopping...');
359
- self.stopScanning(() => { self.initSensor(); });
360
- }
361
- else if (self.channel !== 0) {
362
- setTimeout(() => { self.initSensor(); }, 2000);
363
- }
364
- else
365
- return self.initSensor();
366
- }
367
- return cb(200, {});
368
- }
369
- waitforDetached() {
370
- let self = this;
371
- this.logger.log("Waiting for scanners to be detached ... ");
372
- if (self.stick.cntHrmScanners !== undefined) {
373
- return;
374
- }
375
- else {
376
- clearInterval(self.waitStopScanIv);
377
- self.waitStopScanIv = undefined;
378
- self.initSensor();
379
- }
380
- }
381
- initSensor() {
382
- let self = this;
383
- this.logger.logEvent({ message: 'initSensor', devideID: this.deviceID, channel: this.channel });
384
- try {
385
- if (self.stick.cntHrmScanners !== undefined) {
386
- self.waitStopScanIv = setInterval(function () { self.waitforDetached(); }, 1000);
387
- return;
388
- }
389
- if (self.stick === undefined) {
390
- self.stick = new Ant.GarminStick3();
391
- self.stick.on('startup', onStickStartup);
392
- self.stick.on('shutdown', onStickShutdown);
393
- }
394
- self.sensor = new Ant.HeartRateSensor(self.stick);
395
- self.stick.hrmSensor = this;
396
- if (self.channel === undefined) {
397
- self.channel = self.stick.inUse === undefined ? 0 : self.stick.inUse;
398
- self.stick.inUse = self.channel + 1;
399
- }
400
- self.sensor.on('hbData', function (data) { self.onHrmSensorData(data); });
401
- self.sensor.on('attached', () => { self.onSensorAttached(); });
402
- self.sensor.on('detached', function () { self.onSensorDetached(); });
403
- self.sensor.deviceID = this.deviceID;
404
- self.sensor.attach(self.channel, self.deviceID);
405
- }
406
- catch (error) {
407
- self.ogger.logEvent({ message: "Error: ", fn: 'initSensor()', error });
408
- }
409
- return;
410
- }
411
- getData(callback) {
412
- let cb = callback || function (str) { };
413
- this.logger.logEvent({ message: "getData():" });
414
- if (this.data === undefined || this.data.heartrate === undefined)
415
- cb(404, {});
416
- else
417
- cb(200, this.data);
418
- }
419
- disconnect() {
420
- this.logger.log("disconnect()");
421
- try {
422
- this.sensor.detach(this.sensor.channel);
423
- }
424
- catch (error) {
425
- this.logger.logEvent({ message: "error ", fn: 'disconnect()', error });
426
- }
427
- }
428
- onHrmSensorData(data) {
429
- let self = this;
430
- try {
431
- let hrm = data.ComputedHeartRate;
432
- if (data.ComputedHeartRate !== undefined && data.BeatTime !== undefined) {
433
- let prevBeatTime = self.beatTime;
434
- let prevHrmTime = self.prevHrmTime;
435
- if (prevBeatTime === undefined || data.BeatTime !== prevBeatTime) {
436
- if (hrm === 0)
437
- hrm = undefined;
438
- self.beatTime = data.BeatTime;
439
- self.prevHrmTime = Date.now();
440
- self.data.heartrate = hrm;
441
- if (self.bike !== undefined && self.bike.data !== undefined)
442
- self.bike.data.heartrate = hrm;
443
- if (self.processor !== undefined) {
444
- try {
445
- self.processor.update({ heartrate: hrm });
446
- }
447
- catch (error) {
448
- self.logger.logEvent({ message: 'Error', fn: 'onHrmSensorData()', error });
449
- }
450
- }
451
- if (hrm !== undefined) {
452
- self.logger.logEvent({ message: "hrm data", hrm });
453
- if (!self.timeoutCheck) {
454
- self.timeoutCheck = setInterval(1000, function () { self.checkTimeout(); });
455
- }
456
- }
457
- }
458
- else {
459
- if (prevHrmTime !== undefined) {
460
- let ts = Date.now();
461
- let duration = ts - prevHrmTime;
462
- if (duration > MAX_SPAN_NO_DATA) {
463
- self.logger.log("no new hrm data received");
464
- self.bike.data.heartrate = undefined;
465
- self.prevHrmTime = undefined;
466
- }
467
- }
468
- }
469
- }
470
- }
471
- catch (error) {
472
- this.logger.logEvent({ message: 'Error', fn: 'onHrmSensorData()', data, error });
473
- }
474
- }
475
- checkTimeout() {
476
- if (this.prevHrmTime === undefined)
477
- return;
478
- let ts = Date.now();
479
- if (ts - this.prevHrmTime > MAX_SPAN_NO_DATA) {
480
- this.logger.log("no data received");
481
- this.prevHrmTime = undefined;
482
- this.bike.data.heartrate = undefined;
483
- }
484
- }
485
- onSensorAttached() {
486
- if (!this.isAttached)
487
- this.logger.logEvent({ message: "sensor attached", channel: this.channel });
488
- this.isAttached = true;
489
- }
490
- onSensorDetached() {
491
- if (this.isAttached)
492
- this.logger.log("sensor detached");
493
- this.isAttached = false;
494
- this.sensor.removeAllListeners();
495
- if (this.stick.bikeSensor === undefined) {
496
- this.stick.close();
497
- }
498
- }
499
- }
500
- exports.default = AntHrmSensor;
501
- function onStickStartup() {
502
- try {
503
- if (stick.link !== undefined) {
504
- let stickinfo = {
505
- idProduct: stick.idProduct,
506
- idVendor: stick.idVendor,
507
- maxChannels: stick.maxChannels,
508
- usedChannels: stick.usedChannels
509
- };
510
- Logger.log("ANT Stick: connected to stick:" + JSON.stringify(stickinfo));
511
- Logger.log("ANT Stick: scanning for HRM Sensor ...");
512
- }
513
- sensor.scan();
514
- }
515
- catch (error) {
516
- Logger.logEvent({ message: 'Error', error });
517
- }
518
- }
519
- function onStickShutdown() {
520
- if (stick.link !== undefined) {
521
- Logger.log("ANT Stick: stick is correctly closed. ");
522
- }
523
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,79 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const Simulator_1 = require("./Simulator");
13
- if (process.env.DEBUG === undefined)
14
- console.log = jest.fn();
15
- describe('Simulator', () => {
16
- describe('Constructor', () => {
17
- test('empty constructor', () => {
18
- let s = new Simulator_1.Simulator();
19
- expect(s).toMatchObject({ speed: 0, power: 0, cadence: 90, slope: 0 });
20
- expect(s).toMatchObject({ detected: false, selected: false });
21
- expect(s.started).toBe(false);
22
- expect(s.paused).toBeUndefined();
23
- expect(s.time).toBeUndefined();
24
- expect(s.iv).toBeUndefined();
25
- expect(s.getProtocolName()).toBe(Simulator_1.default.NAME);
26
- });
27
- });
28
- test('getName', () => {
29
- let s = new Simulator_1.Simulator();
30
- expect(s.getName()).toBe(Simulator_1.Simulator.NAME);
31
- });
32
- test('getPort', () => {
33
- let s = new Simulator_1.Simulator();
34
- expect(s.getPort()).toBe('local');
35
- });
36
- describe('start', () => {
37
- let s;
38
- beforeEach(() => {
39
- s = new Simulator_1.Simulator();
40
- });
41
- afterEach(() => {
42
- s.stop();
43
- });
44
- test('promise: normal start', () => __awaiter(void 0, void 0, void 0, function* () {
45
- const res = yield s.start();
46
- expect(res.error).toBeUndefined();
47
- expect(s.iv).toBeDefined();
48
- expect(s.started).toBe(true);
49
- expect(s.paused).toBe(true);
50
- }));
51
- test('promise: repetative start', () => __awaiter(void 0, void 0, void 0, function* () {
52
- yield s.start();
53
- const iv = s.iv;
54
- const res = s.start();
55
- expect(res.error).toBeUndefined();
56
- expect(s.iv).toEqual(iv);
57
- expect(s.started).toBe(true);
58
- expect(s.paused).toBe(true);
59
- }));
60
- test('callback: normal start', () => {
61
- s.start(res => {
62
- expect(res.error).toBeUndefined();
63
- expect(s.iv).toBeDefined();
64
- expect(s.started).toBe(true);
65
- expect(s.paused).toBe(true);
66
- });
67
- });
68
- test('callback: repetative start', () => __awaiter(void 0, void 0, void 0, function* () {
69
- yield s.start();
70
- const iv = s.iv;
71
- s.start(res => {
72
- expect(res.error).toBeUndefined();
73
- expect(s.iv).toEqual(iv);
74
- expect(s.started).toBe(true);
75
- expect(s.paused).toBe(true);
76
- });
77
- }));
78
- });
79
- });