incyclist-devices 1.4.97 → 1.4.100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +0 -0
- package/lib/CyclingMode.d.ts +76 -76
- package/lib/CyclingMode.js +79 -79
- package/lib/Device.d.ts +92 -92
- package/lib/Device.js +71 -71
- package/lib/DeviceProtocol.d.ts +74 -74
- package/lib/DeviceProtocol.js +41 -41
- package/lib/DeviceRegistry.d.ts +8 -8
- package/lib/DeviceRegistry.js +33 -33
- package/lib/DeviceSupport.d.ts +34 -34
- package/lib/DeviceSupport.js +78 -78
- package/lib/ant/AntAdapter.d.ts +50 -50
- package/lib/ant/AntAdapter.js +109 -109
- package/lib/ant/AntScanner.d.ts +60 -60
- package/lib/ant/AntScanner.js +651 -651
- package/lib/ant/antfe/AntFEAdapter.d.ts +83 -78
- package/lib/ant/antfe/AntFEAdapter.js +652 -611
- package/lib/ant/antfe/ant-fe-adv-st-mode.d.ts +9 -9
- package/lib/ant/antfe/ant-fe-adv-st-mode.js +51 -51
- package/lib/ant/antfe/ant-fe-erg-mode.d.ts +6 -6
- package/lib/ant/antfe/ant-fe-erg-mode.js +14 -14
- package/lib/ant/antfe/ant-fe-st-mode.d.ts +5 -5
- package/lib/ant/antfe/ant-fe-st-mode.js +13 -13
- package/lib/ant/anthrm/AntHrmAdapter.d.ts +16 -16
- package/lib/ant/anthrm/AntHrmAdapter.js +130 -130
- package/lib/ant/antpwr/pwr-adapter.d.ts +49 -49
- package/lib/ant/antpwr/pwr-adapter.js +251 -251
- package/lib/ant/utils.d.ts +1 -1
- package/lib/ant/utils.js +23 -23
- package/lib/ble/ble-device.d.ts +63 -63
- package/lib/ble/ble-device.js +442 -442
- package/lib/ble/ble-erg-mode.d.ts +18 -18
- package/lib/ble/ble-erg-mode.js +132 -127
- package/lib/ble/ble-interface.d.ts +100 -99
- package/lib/ble/ble-interface.js +717 -712
- package/lib/ble/ble-peripheral.d.ts +36 -36
- package/lib/ble/ble-peripheral.js +200 -200
- package/lib/ble/ble-st-mode.d.ts +15 -15
- package/lib/ble/ble-st-mode.js +102 -102
- package/lib/ble/ble.d.ts +129 -129
- package/lib/ble/ble.js +86 -86
- package/lib/ble/consts.d.ts +14 -14
- package/lib/ble/consts.js +17 -17
- package/lib/ble/fm.d.ts +125 -125
- package/lib/ble/fm.js +739 -739
- package/lib/ble/hrm.d.ts +48 -48
- package/lib/ble/hrm.js +134 -134
- package/lib/ble/incyclist-protocol.d.ts +31 -31
- package/lib/ble/incyclist-protocol.js +147 -147
- package/lib/ble/pwr.d.ts +89 -89
- package/lib/ble/pwr.js +321 -321
- package/lib/ble/tacx.d.ts +90 -90
- package/lib/ble/tacx.js +731 -730
- package/lib/ble/wahoo-kickr.d.ts +98 -98
- package/lib/ble/wahoo-kickr.js +496 -496
- package/lib/calculations.d.ts +13 -13
- package/lib/calculations.js +150 -150
- package/lib/daum/DaumAdapter.d.ts +66 -66
- package/lib/daum/DaumAdapter.js +396 -396
- package/lib/daum/DaumPowerMeterCyclingMode.d.ts +8 -8
- package/lib/daum/DaumPowerMeterCyclingMode.js +21 -21
- package/lib/daum/ERGCyclingMode.d.ts +26 -26
- package/lib/daum/ERGCyclingMode.js +201 -201
- package/lib/daum/SmartTrainerCyclingMode.d.ts +41 -41
- package/lib/daum/SmartTrainerCyclingMode.js +344 -344
- package/lib/daum/classic/DaumClassicAdapter.d.ts +18 -18
- package/lib/daum/classic/DaumClassicAdapter.js +146 -146
- package/lib/daum/classic/DaumClassicCyclingMode.d.ts +13 -13
- package/lib/daum/classic/DaumClassicCyclingMode.js +97 -97
- package/lib/daum/classic/DaumClassicProtocol.d.ts +27 -27
- package/lib/daum/classic/DaumClassicProtocol.js +185 -185
- package/lib/daum/classic/bike.d.ts +64 -64
- package/lib/daum/classic/bike.js +456 -456
- package/lib/daum/classic/utils.d.ts +13 -13
- package/lib/daum/classic/utils.js +143 -143
- package/lib/daum/constants.d.ts +19 -19
- package/lib/daum/constants.js +22 -22
- package/lib/daum/premium/DaumClassicCyclingMode.d.ts +14 -14
- package/lib/daum/premium/DaumClassicCyclingMode.js +86 -86
- package/lib/daum/premium/DaumPremiumAdapter.d.ts +12 -12
- package/lib/daum/premium/DaumPremiumAdapter.js +131 -131
- package/lib/daum/premium/DaumPremiumProtocol.d.ts +32 -32
- package/lib/daum/premium/DaumPremiumProtocol.js +207 -207
- package/lib/daum/premium/bike.d.ts +123 -123
- package/lib/daum/premium/bike.js +894 -894
- package/lib/daum/premium/tcpserial.d.ts +33 -33
- package/lib/daum/premium/tcpserial.js +123 -123
- package/lib/daum/premium/utils.d.ts +62 -62
- package/lib/daum/premium/utils.js +376 -376
- package/lib/kettler/comms.d.ts +59 -59
- package/lib/kettler/comms.js +242 -242
- package/lib/kettler/ergo-racer/ERGCyclingMode.d.ts +25 -25
- package/lib/kettler/ergo-racer/ERGCyclingMode.js +144 -145
- package/lib/kettler/ergo-racer/adapter.d.ts +101 -101
- package/lib/kettler/ergo-racer/adapter.js +639 -639
- package/lib/kettler/ergo-racer/protocol.d.ts +41 -41
- package/lib/kettler/ergo-racer/protocol.js +203 -203
- package/lib/modes/power-base.d.ts +20 -20
- package/lib/modes/power-base.js +70 -70
- package/lib/modes/power-meter.d.ts +20 -20
- package/lib/modes/power-meter.js +78 -78
- package/lib/modes/simulator.d.ts +29 -29
- package/lib/modes/simulator.js +140 -140
- package/lib/simulator/Simulator.d.ts +69 -69
- package/lib/simulator/Simulator.js +288 -288
- package/lib/types/command.d.ts +8 -8
- package/lib/types/command.js +2 -2
- package/lib/types/route.d.ts +24 -24
- package/lib/types/route.js +9 -9
- package/lib/types/user.d.ts +11 -11
- package/lib/types/user.js +9 -9
- package/lib/utils.d.ts +14 -14
- package/lib/utils.js +114 -114
- package/package.json +46 -46
- package/lib/ant/antfe/ant-fe-st-mode copy.d.ts +0 -7
- package/lib/ant/antfe/ant-fe-st-mode copy.js +0 -54
- package/lib/ant/antpwr/AntPWRAdapter.d.ts +0 -24
- package/lib/ant/antpwr/AntPWRAdapter.js +0 -252
- package/lib/daum/PowerMeterCyclingMode.d.ts +0 -18
- package/lib/daum/PowerMeterCyclingMode.js +0 -78
- package/lib/daum/classic/ERGCyclingMode.d.ts +0 -23
- package/lib/daum/classic/ERGCyclingMode.js +0 -171
- package/lib/daum/indoorbike.d.ts +0 -24
- package/lib/daum/indoorbike.js +0 -178
- package/lib/kettler/ergo-racer/modes/power-meter.d.ts +0 -18
- package/lib/kettler/ergo-racer/modes/power-meter.js +0 -86
- package/lib/simulator/simulator-mode.d.ts +0 -28
- package/lib/simulator/simulator-mode.js +0 -120
package/lib/types/user.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export declare enum Gender {
|
|
2
|
-
MALE = "M",
|
|
3
|
-
FEMALE = "F",
|
|
4
|
-
OTHERS = "o"
|
|
5
|
-
}
|
|
6
|
-
export declare type User = {
|
|
7
|
-
weight?: number;
|
|
8
|
-
length?: number;
|
|
9
|
-
age?: number;
|
|
10
|
-
sex?: Gender;
|
|
11
|
-
};
|
|
1
|
+
export declare enum Gender {
|
|
2
|
+
MALE = "M",
|
|
3
|
+
FEMALE = "F",
|
|
4
|
+
OTHERS = "o"
|
|
5
|
+
}
|
|
6
|
+
export declare type User = {
|
|
7
|
+
weight?: number;
|
|
8
|
+
length?: number;
|
|
9
|
+
age?: number;
|
|
10
|
+
sex?: Gender;
|
|
11
|
+
};
|
package/lib/types/user.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Gender = void 0;
|
|
4
|
-
var Gender;
|
|
5
|
-
(function (Gender) {
|
|
6
|
-
Gender["MALE"] = "M";
|
|
7
|
-
Gender["FEMALE"] = "F";
|
|
8
|
-
Gender["OTHERS"] = "o";
|
|
9
|
-
})(Gender = exports.Gender || (exports.Gender = {}));
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Gender = void 0;
|
|
4
|
+
var Gender;
|
|
5
|
+
(function (Gender) {
|
|
6
|
+
Gender["MALE"] = "M";
|
|
7
|
+
Gender["FEMALE"] = "F";
|
|
8
|
+
Gender["OTHERS"] = "o";
|
|
9
|
+
})(Gender = exports.Gender || (exports.Gender = {}));
|
package/lib/utils.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
export declare const sleep: (ms: any) => Promise<unknown>;
|
|
2
|
-
export declare function runWithRetries(fn: any, maxRetries: any, timeBetween: any): Promise<unknown>;
|
|
3
|
-
export declare function floatVal(d?: number | string): number;
|
|
4
|
-
export declare function intVal(d?: number | string): number;
|
|
5
|
-
export declare function hexstr(arr: any, start?: any, len?: any): string;
|
|
6
|
-
export declare class Queue<T> {
|
|
7
|
-
data: Array<T>;
|
|
8
|
-
constructor(values?: Array<T>);
|
|
9
|
-
size(): number;
|
|
10
|
-
clear(): void;
|
|
11
|
-
isEmpty(): boolean;
|
|
12
|
-
dequeue(): T;
|
|
13
|
-
enqueue(value: T): void;
|
|
14
|
-
}
|
|
1
|
+
export declare const sleep: (ms: any) => Promise<unknown>;
|
|
2
|
+
export declare function runWithRetries(fn: any, maxRetries: any, timeBetween: any): Promise<unknown>;
|
|
3
|
+
export declare function floatVal(d?: number | string): number;
|
|
4
|
+
export declare function intVal(d?: number | string): number;
|
|
5
|
+
export declare function hexstr(arr: any, start?: any, len?: any): string;
|
|
6
|
+
export declare class Queue<T> {
|
|
7
|
+
data: Array<T>;
|
|
8
|
+
constructor(values?: Array<T>);
|
|
9
|
+
size(): number;
|
|
10
|
+
clear(): void;
|
|
11
|
+
isEmpty(): boolean;
|
|
12
|
+
dequeue(): T;
|
|
13
|
+
enqueue(value: T): void;
|
|
14
|
+
}
|
package/lib/utils.js
CHANGED
|
@@ -1,114 +1,114 @@
|
|
|
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
|
-
exports.Queue = exports.hexstr = exports.intVal = exports.floatVal = exports.runWithRetries = exports.sleep = void 0;
|
|
13
|
-
const sleep = (ms) => {
|
|
14
|
-
return new Promise(resolve => setTimeout(resolve, ms));
|
|
15
|
-
};
|
|
16
|
-
exports.sleep = sleep;
|
|
17
|
-
function runWithRetries(fn, maxRetries, timeBetween) {
|
|
18
|
-
return new Promise((resolve, reject) => {
|
|
19
|
-
let retries = 0;
|
|
20
|
-
let tLastFailure = undefined;
|
|
21
|
-
let busy = false;
|
|
22
|
-
let iv = setInterval(() => __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
const tNow = Date.now();
|
|
24
|
-
if (busy) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
if (tLastFailure === undefined || tNow - tLastFailure > timeBetween) {
|
|
28
|
-
try {
|
|
29
|
-
busy = true;
|
|
30
|
-
const data = yield fn();
|
|
31
|
-
clearInterval(iv);
|
|
32
|
-
iv = undefined;
|
|
33
|
-
busy = false;
|
|
34
|
-
return resolve(data);
|
|
35
|
-
}
|
|
36
|
-
catch (err) {
|
|
37
|
-
tLastFailure = Date.now();
|
|
38
|
-
retries++;
|
|
39
|
-
if (retries >= maxRetries) {
|
|
40
|
-
clearInterval(iv);
|
|
41
|
-
iv = undefined;
|
|
42
|
-
busy = false;
|
|
43
|
-
return reject(err);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
busy = false;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}), 50);
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
exports.runWithRetries = runWithRetries;
|
|
54
|
-
function floatVal(d) {
|
|
55
|
-
if (d === undefined)
|
|
56
|
-
return;
|
|
57
|
-
if (typeof d === 'number')
|
|
58
|
-
return d;
|
|
59
|
-
const res = parseFloat(d);
|
|
60
|
-
return isNaN(res) ? undefined : res;
|
|
61
|
-
}
|
|
62
|
-
exports.floatVal = floatVal;
|
|
63
|
-
function intVal(d) {
|
|
64
|
-
if (d === undefined)
|
|
65
|
-
return;
|
|
66
|
-
if (typeof d === 'number')
|
|
67
|
-
return Math.floor(d);
|
|
68
|
-
const res = parseInt(d);
|
|
69
|
-
return isNaN(res) ? undefined : res;
|
|
70
|
-
}
|
|
71
|
-
exports.intVal = intVal;
|
|
72
|
-
function hexstr(arr, start, len) {
|
|
73
|
-
let str = "";
|
|
74
|
-
const startIdx = start || 0;
|
|
75
|
-
const length = len || arr.length;
|
|
76
|
-
let endIdx = startIdx + length;
|
|
77
|
-
if (endIdx >= arr.length) {
|
|
78
|
-
endIdx = arr.length;
|
|
79
|
-
}
|
|
80
|
-
let added = 0;
|
|
81
|
-
for (var i = startIdx; i < endIdx; i++) {
|
|
82
|
-
const hex = Math.abs(arr[i]).toString(16).toUpperCase();
|
|
83
|
-
if (added !== 0)
|
|
84
|
-
str += ' ';
|
|
85
|
-
str += hex;
|
|
86
|
-
added++;
|
|
87
|
-
}
|
|
88
|
-
return str;
|
|
89
|
-
}
|
|
90
|
-
exports.hexstr = hexstr;
|
|
91
|
-
class Queue {
|
|
92
|
-
constructor(values) {
|
|
93
|
-
this.data = [];
|
|
94
|
-
if (values)
|
|
95
|
-
this.data = values;
|
|
96
|
-
}
|
|
97
|
-
size() {
|
|
98
|
-
return this.data ? this.data.length : 0;
|
|
99
|
-
}
|
|
100
|
-
clear() {
|
|
101
|
-
this.data = [];
|
|
102
|
-
}
|
|
103
|
-
isEmpty() {
|
|
104
|
-
return this.data === undefined || this.data.length === 0;
|
|
105
|
-
}
|
|
106
|
-
dequeue() {
|
|
107
|
-
const removed = this.data.splice(0, 1);
|
|
108
|
-
return removed[0];
|
|
109
|
-
}
|
|
110
|
-
enqueue(value) {
|
|
111
|
-
this.data.push(value);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
exports.Queue = Queue;
|
|
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
|
+
exports.Queue = exports.hexstr = exports.intVal = exports.floatVal = exports.runWithRetries = exports.sleep = void 0;
|
|
13
|
+
const sleep = (ms) => {
|
|
14
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
15
|
+
};
|
|
16
|
+
exports.sleep = sleep;
|
|
17
|
+
function runWithRetries(fn, maxRetries, timeBetween) {
|
|
18
|
+
return new Promise((resolve, reject) => {
|
|
19
|
+
let retries = 0;
|
|
20
|
+
let tLastFailure = undefined;
|
|
21
|
+
let busy = false;
|
|
22
|
+
let iv = setInterval(() => __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
const tNow = Date.now();
|
|
24
|
+
if (busy) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (tLastFailure === undefined || tNow - tLastFailure > timeBetween) {
|
|
28
|
+
try {
|
|
29
|
+
busy = true;
|
|
30
|
+
const data = yield fn();
|
|
31
|
+
clearInterval(iv);
|
|
32
|
+
iv = undefined;
|
|
33
|
+
busy = false;
|
|
34
|
+
return resolve(data);
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
tLastFailure = Date.now();
|
|
38
|
+
retries++;
|
|
39
|
+
if (retries >= maxRetries) {
|
|
40
|
+
clearInterval(iv);
|
|
41
|
+
iv = undefined;
|
|
42
|
+
busy = false;
|
|
43
|
+
return reject(err);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
busy = false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}), 50);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
exports.runWithRetries = runWithRetries;
|
|
54
|
+
function floatVal(d) {
|
|
55
|
+
if (d === undefined)
|
|
56
|
+
return;
|
|
57
|
+
if (typeof d === 'number')
|
|
58
|
+
return d;
|
|
59
|
+
const res = parseFloat(d);
|
|
60
|
+
return isNaN(res) ? undefined : res;
|
|
61
|
+
}
|
|
62
|
+
exports.floatVal = floatVal;
|
|
63
|
+
function intVal(d) {
|
|
64
|
+
if (d === undefined)
|
|
65
|
+
return;
|
|
66
|
+
if (typeof d === 'number')
|
|
67
|
+
return Math.floor(d);
|
|
68
|
+
const res = parseInt(d);
|
|
69
|
+
return isNaN(res) ? undefined : res;
|
|
70
|
+
}
|
|
71
|
+
exports.intVal = intVal;
|
|
72
|
+
function hexstr(arr, start, len) {
|
|
73
|
+
let str = "";
|
|
74
|
+
const startIdx = start || 0;
|
|
75
|
+
const length = len || arr.length;
|
|
76
|
+
let endIdx = startIdx + length;
|
|
77
|
+
if (endIdx >= arr.length) {
|
|
78
|
+
endIdx = arr.length;
|
|
79
|
+
}
|
|
80
|
+
let added = 0;
|
|
81
|
+
for (var i = startIdx; i < endIdx; i++) {
|
|
82
|
+
const hex = Math.abs(arr[i]).toString(16).toUpperCase();
|
|
83
|
+
if (added !== 0)
|
|
84
|
+
str += ' ';
|
|
85
|
+
str += hex;
|
|
86
|
+
added++;
|
|
87
|
+
}
|
|
88
|
+
return str;
|
|
89
|
+
}
|
|
90
|
+
exports.hexstr = hexstr;
|
|
91
|
+
class Queue {
|
|
92
|
+
constructor(values) {
|
|
93
|
+
this.data = [];
|
|
94
|
+
if (values)
|
|
95
|
+
this.data = values;
|
|
96
|
+
}
|
|
97
|
+
size() {
|
|
98
|
+
return this.data ? this.data.length : 0;
|
|
99
|
+
}
|
|
100
|
+
clear() {
|
|
101
|
+
this.data = [];
|
|
102
|
+
}
|
|
103
|
+
isEmpty() {
|
|
104
|
+
return this.data === undefined || this.data.length === 0;
|
|
105
|
+
}
|
|
106
|
+
dequeue() {
|
|
107
|
+
const removed = this.data.splice(0, 1);
|
|
108
|
+
return removed[0];
|
|
109
|
+
}
|
|
110
|
+
enqueue(value) {
|
|
111
|
+
this.data.push(value);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.Queue = Queue;
|
package/package.json
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "incyclist-devices",
|
|
3
|
-
"version": "1.4.
|
|
4
|
-
"dependencies": {
|
|
5
|
-
"@serialport/parser-byte-length": "^9.0.1",
|
|
6
|
-
"@serialport/parser-delimiter": "^9.0.1",
|
|
7
|
-
"@types/serialport": "^8.0.1",
|
|
8
|
-
"gd-ant-plus": "^0.0.33",
|
|
9
|
-
"win32filetime": "^1.0.2"
|
|
10
|
-
},
|
|
11
|
-
"peerDependencies": {
|
|
12
|
-
"gd-eventlog": "^0.1.22"
|
|
13
|
-
},
|
|
14
|
-
"devDependencies": {
|
|
15
|
-
"@types/jest": "^27.0.3",
|
|
16
|
-
"@types/node": "^10.17.58",
|
|
17
|
-
"eslint": "^7.32.0",
|
|
18
|
-
"eslint-config-react-app": "^6.0.0",
|
|
19
|
-
"eslint-loader": "^4.0.2",
|
|
20
|
-
"jest": "^27.4.3",
|
|
21
|
-
"ts-jest": "^27.1.0",
|
|
22
|
-
"typescript": "^4.5.2"
|
|
23
|
-
},
|
|
24
|
-
"scripts": {
|
|
25
|
-
"lint": "eslint . --ext .ts",
|
|
26
|
-
"build": "tsc",
|
|
27
|
-
"test": "jest --coverage",
|
|
28
|
-
"dev": "nodemon --watch src -e ts,js --exec npm run build"
|
|
29
|
-
},
|
|
30
|
-
"files": [
|
|
31
|
-
"lib/"
|
|
32
|
-
],
|
|
33
|
-
"main": "lib/DeviceSupport.js",
|
|
34
|
-
"directories": {
|
|
35
|
-
"example": "./sample",
|
|
36
|
-
"lib": "./src"
|
|
37
|
-
},
|
|
38
|
-
"eslintConfig": {
|
|
39
|
-
"extends": "react-app",
|
|
40
|
-
"rules": {
|
|
41
|
-
"jsx-a11y/anchor-is-valid": [
|
|
42
|
-
"off"
|
|
43
|
-
]
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "incyclist-devices",
|
|
3
|
+
"version": "1.4.100",
|
|
4
|
+
"dependencies": {
|
|
5
|
+
"@serialport/parser-byte-length": "^9.0.1",
|
|
6
|
+
"@serialport/parser-delimiter": "^9.0.1",
|
|
7
|
+
"@types/serialport": "^8.0.1",
|
|
8
|
+
"gd-ant-plus": "^0.0.33",
|
|
9
|
+
"win32filetime": "^1.0.2"
|
|
10
|
+
},
|
|
11
|
+
"peerDependencies": {
|
|
12
|
+
"gd-eventlog": "^0.1.22"
|
|
13
|
+
},
|
|
14
|
+
"devDependencies": {
|
|
15
|
+
"@types/jest": "^27.0.3",
|
|
16
|
+
"@types/node": "^10.17.58",
|
|
17
|
+
"eslint": "^7.32.0",
|
|
18
|
+
"eslint-config-react-app": "^6.0.0",
|
|
19
|
+
"eslint-loader": "^4.0.2",
|
|
20
|
+
"jest": "^27.4.3",
|
|
21
|
+
"ts-jest": "^27.1.0",
|
|
22
|
+
"typescript": "^4.5.2"
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"lint": "eslint . --ext .ts",
|
|
26
|
+
"build": "tsc",
|
|
27
|
+
"test": "jest --coverage",
|
|
28
|
+
"dev": "nodemon --watch src -e ts,js --exec npm run build"
|
|
29
|
+
},
|
|
30
|
+
"files": [
|
|
31
|
+
"lib/"
|
|
32
|
+
],
|
|
33
|
+
"main": "lib/DeviceSupport.js",
|
|
34
|
+
"directories": {
|
|
35
|
+
"example": "./sample",
|
|
36
|
+
"lib": "./src"
|
|
37
|
+
},
|
|
38
|
+
"eslintConfig": {
|
|
39
|
+
"extends": "react-app",
|
|
40
|
+
"rules": {
|
|
41
|
+
"jsx-a11y/anchor-is-valid": [
|
|
42
|
+
"off"
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import FtmsCyclingMode from "../../ble/ble-st-mode";
|
|
2
|
-
import { UpdateRequest } from "../../CyclingMode";
|
|
3
|
-
import { DeviceAdapter } from "../../Device";
|
|
4
|
-
export default class AntStCyclingMode extends FtmsCyclingMode {
|
|
5
|
-
constructor(adapter: DeviceAdapter, props?: any);
|
|
6
|
-
sendBikeUpdate(request: UpdateRequest): UpdateRequest;
|
|
7
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const ble_st_mode_1 = __importDefault(require("../../ble/ble-st-mode"));
|
|
7
|
-
class AntStCyclingMode extends ble_st_mode_1.default {
|
|
8
|
-
constructor(adapter, props) {
|
|
9
|
-
super(adapter, props);
|
|
10
|
-
this.initLogger('AntSTMode');
|
|
11
|
-
}
|
|
12
|
-
sendBikeUpdate(request) {
|
|
13
|
-
console.log('~~~ SIMMode:sendBikeUpdate reuqest', request);
|
|
14
|
-
const getData = () => {
|
|
15
|
-
if (!this.data)
|
|
16
|
-
return {};
|
|
17
|
-
const { gear, pedalRpm, slope, power, speed } = this.data;
|
|
18
|
-
return { gear, pedalRpm, slope, power, speed };
|
|
19
|
-
};
|
|
20
|
-
const event = {};
|
|
21
|
-
if (this.data === undefined)
|
|
22
|
-
event.noData = true;
|
|
23
|
-
if (request.slope !== undefined && (event.noData || Math.abs(request.slope - this.data.slope) >= 0.1))
|
|
24
|
-
event.slopeUpdate = true;
|
|
25
|
-
if (this.prevRequest === undefined)
|
|
26
|
-
event.initialCall = true;
|
|
27
|
-
this.logger.logEvent({ message: "processing update request", request, prev: this.prevRequest, data: getData(), event });
|
|
28
|
-
let newRequest = {};
|
|
29
|
-
if (request.slope === undefined && request.targetPower === undefined && request.refresh && this.prevRequest) {
|
|
30
|
-
return this.prevRequest;
|
|
31
|
-
}
|
|
32
|
-
if (request.slope !== undefined) {
|
|
33
|
-
newRequest.slope = parseFloat(request.slope.toFixed(1));
|
|
34
|
-
this.data.slope = newRequest.slope;
|
|
35
|
-
}
|
|
36
|
-
if (request.targetPower !== undefined) {
|
|
37
|
-
newRequest.targetPower = request.targetPower;
|
|
38
|
-
}
|
|
39
|
-
if (request.minPower && request.maxPower && request.minPower === request.maxPower) {
|
|
40
|
-
newRequest.targetPower = request.minPower;
|
|
41
|
-
}
|
|
42
|
-
const prevData = this.data;
|
|
43
|
-
if (newRequest.targetPower === undefined && prevData && prevData.power) {
|
|
44
|
-
if (request.minPower !== undefined && prevData.power < request.minPower)
|
|
45
|
-
newRequest.targetPower = request.minPower;
|
|
46
|
-
if (request.maxPower !== undefined && prevData.power > request.maxPower)
|
|
47
|
-
newRequest.targetPower = request.maxPower;
|
|
48
|
-
}
|
|
49
|
-
this.prevRequest = JSON.parse(JSON.stringify(newRequest));
|
|
50
|
-
console.log('~~~ SimMode:sendBikeUpdate result', newRequest);
|
|
51
|
-
return newRequest;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
exports.default = AntStCyclingMode;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import AntAdapter from '../AntAdapter';
|
|
2
|
-
export default class AntFEAdapter extends AntAdapter {
|
|
3
|
-
started: boolean;
|
|
4
|
-
starting: boolean;
|
|
5
|
-
connected: boolean;
|
|
6
|
-
distanceInternal?: number;
|
|
7
|
-
workerId?: any;
|
|
8
|
-
currentCmd?: any;
|
|
9
|
-
constructor(DeviceID: any, port: any, stick: any, protocol: any);
|
|
10
|
-
isBike(): boolean;
|
|
11
|
-
isHrm(): boolean;
|
|
12
|
-
isPower(): boolean;
|
|
13
|
-
getProfile(): string;
|
|
14
|
-
getName(): string;
|
|
15
|
-
getDisplayName(): string;
|
|
16
|
-
onAttached(): void;
|
|
17
|
-
getLogData(data: any, excludeList: any): any;
|
|
18
|
-
onDeviceData(deviceData: any): void;
|
|
19
|
-
onDeviceEvent(data: any): void;
|
|
20
|
-
updateData(data: any, deviceData: any): any;
|
|
21
|
-
transformData(bikeData: any): any;
|
|
22
|
-
start(props?: any): Promise<any>;
|
|
23
|
-
stop(): Promise<boolean>;
|
|
24
|
-
}
|