@ovok/native 1.16.1-dev.2167 → 1.16.1-dev.2173
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/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js +40 -11
- package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.connect-retry.js +32 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.connect-retry.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.js +33 -4
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.identity-gate.js +43 -4
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.identity-gate.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/default-health-coding.js +12 -7
- package/lib/commonjs/modules/data-sync/utils/default-health-coding.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js +40 -11
- package/lib/module/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-data-processor.js +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.connect-retry.js +28 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.connect-retry.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.js +33 -4
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.identity-gate.js +43 -4
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.identity-gate.js.map +1 -1
- package/lib/module/modules/data-sync/utils/default-health-coding.js +12 -7
- package/lib/module/modules/data-sync/utils/default-health-coding.js.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts +9 -2
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.connect-retry.d.ts +12 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.connect-retry.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.d.ts +7 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts +16 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/default-health-coding.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts +9 -2
- package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.connect-retry.d.ts +12 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.connect-retry.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.d.ts +7 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts +16 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/default-health-coding.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -9,6 +9,7 @@ var _clockSync = require("../../../types/clock-sync.js");
|
|
|
9
9
|
var _hexToByte = require("../../../utils/hex-to-byte.js");
|
|
10
10
|
var _lepuCommandBuilder = require("../lepu/lepu.command-builder.js");
|
|
11
11
|
var _lepuCommands = require("../lepu/lepu.commands.js");
|
|
12
|
+
var _lepuConnectRetry = require("../lepu/lepu.connect-retry.js");
|
|
12
13
|
var _lepuEcgTransfer = require("../lepu/lepu.ecg-transfer.js");
|
|
13
14
|
var _lepuFileTransfer = require("../lepu/lepu.file-transfer.js");
|
|
14
15
|
var _lepuFrame = require("../lepu/lepu.frame.js");
|
|
@@ -29,29 +30,47 @@ class BP2HistorySequencer {
|
|
|
29
30
|
lastRunStatusFrameCount = 0;
|
|
30
31
|
realtimeEcgActive = false;
|
|
31
32
|
phase = "files";
|
|
33
|
+
clockRetry = new _lepuConnectRetry.LepuConnectRetry();
|
|
32
34
|
constructor(params) {
|
|
33
35
|
this.params = params;
|
|
34
36
|
}
|
|
35
37
|
initialCommands = () => {
|
|
36
38
|
if ((0, _clockSync.isClockSyncEnabled)(this.params.clockSync)) {
|
|
37
39
|
this.phase = "clock";
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
frame: this.builder.build(_lepuCommands.LepuCommand.SET_TIME, (0, _lepuEcgTransfer.clockPayload)(this.params.clockSync))
|
|
41
|
-
}];
|
|
40
|
+
this.clockRetry.started();
|
|
41
|
+
return [this.setTimeCommand()];
|
|
42
42
|
}
|
|
43
43
|
return this.startTransfer();
|
|
44
44
|
};
|
|
45
45
|
isHistoryTransfer = () => true;
|
|
46
|
-
commandTimeoutMs = () =>
|
|
46
|
+
commandTimeoutMs = () => {
|
|
47
|
+
if (this.phase === "clock") {
|
|
48
|
+
return _lepuConnectRetry.LEPU_CONNECT_REPLY_TIMEOUT_MS;
|
|
49
|
+
}
|
|
50
|
+
return this.isPolling() ? BP2_POLL_ANSWER_TIMEOUT_MS : undefined;
|
|
51
|
+
};
|
|
47
52
|
|
|
48
|
-
/**
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
53
|
+
/**
|
|
54
|
+
* A BP2 just switched on can drop its first command, and one starting a measurement can
|
|
55
|
+
* drop a poll, so a missing answer is asked for again. The clock is optional: when it is
|
|
56
|
+
* still unanswered, the stored files are read without it.
|
|
57
|
+
*/
|
|
58
|
+
onCommandTimeout = () => {
|
|
59
|
+
if (this.phase === "clock") {
|
|
60
|
+
return {
|
|
61
|
+
commands: this.clockRetry.mayRetry() ? [this.setTimeCommand()] : this.startTransfer()
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
return this.isPolling() ? {
|
|
65
|
+
commands: [this.pollCommand()]
|
|
66
|
+
} : {};
|
|
67
|
+
};
|
|
52
68
|
|
|
53
|
-
/** Only the
|
|
54
|
-
commandProgress = frame =>
|
|
69
|
+
/** Only the awaited answer settles a command; any other frame leaves its timeout running. */
|
|
70
|
+
commandProgress = frame => {
|
|
71
|
+
const awaited = this.awaitedCommand();
|
|
72
|
+
return awaited === undefined || (0, _lepuFrame.lepuCommandOf)(frame) === awaited ? "complete" : "ignored";
|
|
73
|
+
};
|
|
55
74
|
nextCommand = frame => {
|
|
56
75
|
if (this.phase === "clock") {
|
|
57
76
|
if ((0, _lepuFrame.lepuCommandOf)(frame) !== _lepuCommands.LepuCommand.SET_TIME) {
|
|
@@ -99,6 +118,16 @@ class BP2HistorySequencer {
|
|
|
99
118
|
this.params.onTransferFinished();
|
|
100
119
|
return [this.pollCommand()];
|
|
101
120
|
};
|
|
121
|
+
awaitedCommand = () => {
|
|
122
|
+
if (this.phase === "clock") {
|
|
123
|
+
return _lepuCommands.LepuCommand.SET_TIME;
|
|
124
|
+
}
|
|
125
|
+
return this.isPolling() ? BP2_REALTIME_COMMAND : undefined;
|
|
126
|
+
};
|
|
127
|
+
setTimeCommand = () => ({
|
|
128
|
+
...this.params.write,
|
|
129
|
+
frame: this.builder.build(_lepuCommands.LepuCommand.SET_TIME, (0, _lepuEcgTransfer.clockPayload)(this.params.clockSync))
|
|
130
|
+
});
|
|
102
131
|
isPolling = () => this.phase === "files" && this.transfer === undefined;
|
|
103
132
|
pollCommand = () => ({
|
|
104
133
|
...this.params.write,
|
package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_sentryLogger","require","_clockSync","_hexToByte","_lepuCommandBuilder","_lepuCommands","_lepuEcgTransfer","_lepuFileTransfer","_lepuFrame","_lepuResponseType","BP2_REALTIME_COMMAND","exports","BP2_RESULT_STATES","Set","BP2_ECG_STATE","BP2_IDLE_STATES","BP2_POLL_INTERVAL_MS","BP2_POLL_ANSWER_TIMEOUT_MS","BP2HistorySequencer","builder","LepuCommandBuilder","lastRunStatusFrameCount","realtimeEcgActive","phase","constructor","params","initialCommands","isClockSyncEnabled","clockSync","
|
|
1
|
+
{"version":3,"names":["_sentryLogger","require","_clockSync","_hexToByte","_lepuCommandBuilder","_lepuCommands","_lepuConnectRetry","_lepuEcgTransfer","_lepuFileTransfer","_lepuFrame","_lepuResponseType","BP2_REALTIME_COMMAND","exports","BP2_RESULT_STATES","Set","BP2_ECG_STATE","BP2_IDLE_STATES","BP2_POLL_INTERVAL_MS","BP2_POLL_ANSWER_TIMEOUT_MS","BP2HistorySequencer","builder","LepuCommandBuilder","lastRunStatusFrameCount","realtimeEcgActive","phase","clockRetry","LepuConnectRetry","constructor","params","initialCommands","isClockSyncEnabled","clockSync","started","setTimeCommand","startTransfer","isHistoryTransfer","commandTimeoutMs","LEPU_CONNECT_REPLY_TIMEOUT_MS","isPolling","undefined","onCommandTimeout","commands","mayRetry","pollCommand","commandProgress","frame","awaited","awaitedCommand","lepuCommandOf","nextCommand","LepuCommand","SET_TIME","isLepuSuccess","onError","describeLepuResponseType","transfer","logRunStatus","isResult","isResultFrame","endedWithoutResult","isIdleFrame","onOrphanStreamEnd","shouldStartTransfer","onTransferRequested","delayBeforeWriteMs","LepuFileTransfer","write","onFile","skipFiles","afterTransfer","finishTransfer","onTransferFinished","build","clockPayload","hexToByte","has","toLowerCase","runStatus","lastRunStatus","sentryLogger"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bp2/bp2.history-sequencer.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -133,7 +133,7 @@ class BTDataProcessor {
|
|
|
133
133
|
handleFrame = (uuid, frame) => {
|
|
134
134
|
const data = this.frameParser.parse(uuid, frame);
|
|
135
135
|
if (!data) {
|
|
136
|
-
(0, _sentryLogger.sentryLogger)("
|
|
136
|
+
(0, _sentryLogger.sentryLogger)("debug", "BT_MANAGER: Frame matched no declared case", {
|
|
137
137
|
uuid,
|
|
138
138
|
frameLength: frame.length
|
|
139
139
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_sentryLogger","require","_measurementFeedback","_caseType","_frameReadStatus","_frameParser","_measurementStateMachine","BTDataProcessor","buffers","Map","constructor","device","mainServices","stuckDataTimeoutDuration","callbacks","frameReader","frameParser","FrameParser","measurementState","MeasurementStateMachine","onStatusChanged","onStreamStart","onMeasurementEnd","onResult","currentUuid","destroy","clear","reset","clearTimeout","stuckDataTimeout","undefined","commandTimeout","processData","uuid","hexValue","String","toLowerCase","buffer","get","push","set","startStuckTimeout","readFramesFromBuffer","readWholeBuffer","armStuckTimeout","armCommandTimeout","startCommandTimeout","reader","length","result","readFrame","hasProgressed","consumedBytes","splice","status","FrameReadStatus","COMPLETE","handleFrame","frame","answerFrame","CORRUPT","reportCorruptFrame","validatePackage","progress","commandProgress","commands","nextCommand","sendCommands","data","parse","sentryLogger","frameLength","dependentData","parsingCase","caseType","CaseType","DEPENDENT","handleDependentResult","isMeasuring","measuring","advance","onError","Error","MeasurementFeedbackKey","CORRUPT_FRAME","cause","message","setTimeout","STUCK","cancelConnection","duration","commandTimeoutMs","onCommandTimeout","terminal","COMMAND_TIMEOUT","reason","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-data-processor.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_sentryLogger","require","_measurementFeedback","_caseType","_frameReadStatus","_frameParser","_measurementStateMachine","BTDataProcessor","buffers","Map","constructor","device","mainServices","stuckDataTimeoutDuration","callbacks","frameReader","frameParser","FrameParser","measurementState","MeasurementStateMachine","onStatusChanged","onStreamStart","onMeasurementEnd","onResult","currentUuid","destroy","clear","reset","clearTimeout","stuckDataTimeout","undefined","commandTimeout","processData","uuid","hexValue","String","toLowerCase","buffer","get","push","set","startStuckTimeout","readFramesFromBuffer","readWholeBuffer","armStuckTimeout","armCommandTimeout","startCommandTimeout","reader","length","result","readFrame","hasProgressed","consumedBytes","splice","status","FrameReadStatus","COMPLETE","handleFrame","frame","answerFrame","CORRUPT","reportCorruptFrame","validatePackage","progress","commandProgress","commands","nextCommand","sendCommands","data","parse","sentryLogger","frameLength","dependentData","parsingCase","caseType","CaseType","DEPENDENT","handleDependentResult","isMeasuring","measuring","advance","onError","Error","MeasurementFeedbackKey","CORRUPT_FRAME","cause","message","setTimeout","STUCK","cancelConnection","duration","commandTimeoutMs","onCommandTimeout","terminal","COMMAND_TIMEOUT","reason","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-data-processor.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.LepuConnectRetry = exports.LEPU_CONNECT_REPLY_TIMEOUT_MS = void 0;
|
|
7
|
+
/** How long a connect-time command may go unanswered before it is sent again. */
|
|
8
|
+
const LEPU_CONNECT_REPLY_TIMEOUT_MS = exports.LEPU_CONNECT_REPLY_TIMEOUT_MS = 1_000;
|
|
9
|
+
|
|
10
|
+
/** A device just woken can drop its first command, so each connect step gets one more try. */
|
|
11
|
+
const LEPU_CONNECT_ATTEMPTS = 2;
|
|
12
|
+
|
|
13
|
+
/** Counts the tries of one connect-time command. */
|
|
14
|
+
class LepuConnectRetry {
|
|
15
|
+
attempts = 0;
|
|
16
|
+
|
|
17
|
+
/** Marks the first send of the command. */
|
|
18
|
+
started = () => {
|
|
19
|
+
this.attempts = 1;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
/** Whether the command may be sent again; counts that send when it may. */
|
|
23
|
+
mayRetry = () => {
|
|
24
|
+
if (this.attempts >= LEPU_CONNECT_ATTEMPTS) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
this.attempts++;
|
|
28
|
+
return true;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
exports.LepuConnectRetry = LepuConnectRetry;
|
|
32
|
+
//# sourceMappingURL=lepu.connect-retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["LEPU_CONNECT_REPLY_TIMEOUT_MS","exports","LEPU_CONNECT_ATTEMPTS","LepuConnectRetry","attempts","started","mayRetry"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.connect-retry.ts"],"mappings":";;;;;;AAAA;AACA,MAAMA,6BAA6B,GAAAC,OAAA,CAAAD,6BAAA,GAAG,KAAK;;AAE3C;AACA,MAAME,qBAAqB,GAAG,CAAC;;AAE/B;AACA,MAAMC,gBAAgB,CAAC;EACbC,QAAQ,GAAG,CAAC;;EAEpB;EACOC,OAAO,GAAGA,CAAA,KAAY;IAC3B,IAAI,CAACD,QAAQ,GAAG,CAAC;EACnB,CAAC;;EAED;EACOE,QAAQ,GAAGA,CAAA,KAAe;IAC/B,IAAI,IAAI,CAACF,QAAQ,IAAIF,qBAAqB,EAAE;MAC1C,OAAO,KAAK;IACd;IAEA,IAAI,CAACE,QAAQ,EAAE;IAEf,OAAO,IAAI;EACb,CAAC;AACH;AAACH,OAAA,CAAAE,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.clockPayload = exports.LepuEcgTransferSequencer = void 0;
|
|
7
7
|
var _clockSync = require("../../../types/clock-sync.js");
|
|
8
8
|
var _lepuCommands = require("./lepu.commands.js");
|
|
9
|
+
var _lepuConnectRetry = require("./lepu.connect-retry.js");
|
|
9
10
|
var _lepuFileTransfer = require("./lepu.file-transfer.js");
|
|
10
11
|
var _lepuFrame = require("./lepu.frame.js");
|
|
11
12
|
var _lepuIdentityGate = require("./lepu.identity-gate.js");
|
|
@@ -13,6 +14,7 @@ var _lepuResponseType = require("./lepu.response-type.js");
|
|
|
13
14
|
/** Identifies a recorder, sets its local clock, then downloads its stored files. */
|
|
14
15
|
class LepuEcgTransferSequencer {
|
|
15
16
|
phase = "identity";
|
|
17
|
+
clockRetry = new _lepuConnectRetry.LepuConnectRetry();
|
|
16
18
|
constructor(params) {
|
|
17
19
|
this.params = params;
|
|
18
20
|
this.identity = new _lepuIdentityGate.LepuIdentityGate({
|
|
@@ -28,6 +30,31 @@ class LepuEcgTransferSequencer {
|
|
|
28
30
|
}
|
|
29
31
|
initialCommands = () => this.identity.initialCommands();
|
|
30
32
|
isHistoryTransfer = () => true;
|
|
33
|
+
commandTimeoutMs = () => {
|
|
34
|
+
if (this.phase === "identity") {
|
|
35
|
+
return this.identity.commandTimeoutMs();
|
|
36
|
+
}
|
|
37
|
+
return this.phase === "clock" ? _lepuConnectRetry.LEPU_CONNECT_REPLY_TIMEOUT_MS : undefined;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/** An unanswered clock is sent once more, then skipped; the stored files don't need it. */
|
|
41
|
+
onCommandTimeout = () => {
|
|
42
|
+
if (this.phase === "identity") {
|
|
43
|
+
return this.identity.onCommandTimeout();
|
|
44
|
+
}
|
|
45
|
+
if (this.phase !== "clock") {
|
|
46
|
+
return {};
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
commands: this.clockRetry.mayRetry() ? [this.setTimeCommand()] : this.startTransfer()
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
commandProgress = frame => {
|
|
53
|
+
if (this.phase === "identity") {
|
|
54
|
+
return this.identity.commandProgress(frame);
|
|
55
|
+
}
|
|
56
|
+
return this.phase === "clock" && (0, _lepuFrame.lepuCommandOf)(frame) !== _lepuCommands.LepuCommand.SET_TIME ? "ignored" : "complete";
|
|
57
|
+
};
|
|
31
58
|
nextCommand = frame => {
|
|
32
59
|
if (this.phase === "identity") {
|
|
33
60
|
return this.identity.nextCommand(frame);
|
|
@@ -46,13 +73,15 @@ class LepuEcgTransferSequencer {
|
|
|
46
73
|
startClockOrTransfer = () => {
|
|
47
74
|
if ((0, _clockSync.isClockSyncEnabled)(this.params.clockSync)) {
|
|
48
75
|
this.phase = "clock";
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
frame: this.params.builder.build(_lepuCommands.LepuCommand.SET_TIME, clockPayload(this.params.clockSync))
|
|
52
|
-
}];
|
|
76
|
+
this.clockRetry.started();
|
|
77
|
+
return [this.setTimeCommand()];
|
|
53
78
|
}
|
|
54
79
|
return this.startTransfer();
|
|
55
80
|
};
|
|
81
|
+
setTimeCommand = () => ({
|
|
82
|
+
...this.params.write,
|
|
83
|
+
frame: this.params.builder.build(_lepuCommands.LepuCommand.SET_TIME, clockPayload(this.params.clockSync))
|
|
84
|
+
});
|
|
56
85
|
finishClock = frame => {
|
|
57
86
|
if ((0, _lepuFrame.lepuCommandOf)(frame) !== _lepuCommands.LepuCommand.SET_TIME) {
|
|
58
87
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clockSync","require","_lepuCommands","_lepuFileTransfer","_lepuFrame","_lepuIdentityGate","_lepuResponseType","LepuEcgTransferSequencer","phase","constructor","params","identity","LepuIdentityGate","write","builder","expectedDeviceTypes","manufacturerData","rejectEncryptionAtBytes","onIdentified","onRefused","onAdmitted","startClockOrTransfer","initialCommands","isHistoryTransfer","
|
|
1
|
+
{"version":3,"names":["_clockSync","require","_lepuCommands","_lepuConnectRetry","_lepuFileTransfer","_lepuFrame","_lepuIdentityGate","_lepuResponseType","LepuEcgTransferSequencer","phase","clockRetry","LepuConnectRetry","constructor","params","identity","LepuIdentityGate","write","builder","expectedDeviceTypes","manufacturerData","rejectEncryptionAtBytes","onIdentified","onRefused","onAdmitted","startClockOrTransfer","initialCommands","isHistoryTransfer","commandTimeoutMs","LEPU_CONNECT_REPLY_TIMEOUT_MS","undefined","onCommandTimeout","commands","mayRetry","setTimeCommand","startTransfer","commandProgress","frame","lepuCommandOf","LepuCommand","SET_TIME","nextCommand","finishClock","pollCommand","transfer","isClockSyncEnabled","clockSync","started","build","clockPayload","isLepuSuccess","onError","describeLepuResponseType","delayBeforeWriteMs","LepuFileTransfer","onFile","skipFiles","acceptFile","afterTransfer","finishTransfer","onProgress","pollIntervalMs","exports","parts","getClockParts","now","Date","timezone","year","month","day","hours","minutes","seconds"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.ecg-transfer.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@ var _clockSync = require("../../../types/clock-sync.js");
|
|
|
8
8
|
var _hexToByte = require("../../../utils/hex-to-byte.js");
|
|
9
9
|
var _lepuAdvertisement = require("./lepu.advertisement.js");
|
|
10
10
|
var _lepuCommands = require("./lepu.commands.js");
|
|
11
|
+
var _lepuConnectRetry = require("./lepu.connect-retry.js");
|
|
11
12
|
var _lepuDeviceInfo = require("./lepu.device-info.js");
|
|
12
13
|
var _lepuResponseType = require("./lepu.response-type.js");
|
|
13
14
|
/* eslint-disable max-lines */
|
|
@@ -19,6 +20,7 @@ const VIATOM_OXYGEN_INFO = 0x14;
|
|
|
19
20
|
class LepuIdentityGate {
|
|
20
21
|
isIdentified = false;
|
|
21
22
|
isRefused = false;
|
|
23
|
+
connectRetry = new _lepuConnectRetry.LepuConnectRetry();
|
|
22
24
|
constructor(params) {
|
|
23
25
|
this.params = params;
|
|
24
26
|
}
|
|
@@ -42,11 +44,37 @@ class LepuIdentityGate {
|
|
|
42
44
|
const command = this.params.clockSyncProtocol === "bp3" ? 0xc0 : 0xec;
|
|
43
45
|
this.pendingClockCommand = command;
|
|
44
46
|
this.pendingCommand = command;
|
|
45
|
-
return [this.commandFor(command, clockPayload(this.params.clockSync, this.params.clockSyncProtocol))];
|
|
47
|
+
return [this.awaitConnect(this.commandFor(command, clockPayload(this.params.clockSync, this.params.clockSyncProtocol)))];
|
|
46
48
|
}
|
|
47
|
-
this.
|
|
48
|
-
|
|
49
|
+
return [this.askWhatItIs()];
|
|
50
|
+
};
|
|
51
|
+
commandTimeoutMs = () => this.awaitsConnectReply() ? _lepuConnectRetry.LEPU_CONNECT_REPLY_TIMEOUT_MS : undefined;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* A device just woken can drop its first command, so an unanswered connect command is sent
|
|
55
|
+
* once more. An unanswered clock is then skipped; an unanswered identity is left to the
|
|
56
|
+
* stuck watchdog, since a device that never says what it is cannot be addressed.
|
|
57
|
+
*/
|
|
58
|
+
onCommandTimeout = () => {
|
|
59
|
+
if (!this.awaitsConnectReply() || !this.connectCommand) {
|
|
60
|
+
return {};
|
|
61
|
+
}
|
|
62
|
+
if (this.connectRetry.mayRetry()) {
|
|
63
|
+
return {
|
|
64
|
+
commands: [this.connectCommand]
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
if (this.pendingClockCommand !== undefined) {
|
|
68
|
+
this.pendingClockCommand = undefined;
|
|
69
|
+
return {
|
|
70
|
+
commands: [this.askWhatItIs()]
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return {};
|
|
49
74
|
};
|
|
75
|
+
|
|
76
|
+
/** Only the awaited connect reply settles its command; other frames leave the timeout running. */
|
|
77
|
+
commandProgress = frame => this.awaitsConnectReply() && (0, _hexToByte.hexToByte)(frame[COMMAND_INDEX] ?? "ff") !== this.pendingCommand ? "ignored" : "complete";
|
|
50
78
|
nextCommand = frame => {
|
|
51
79
|
if (this.params.protocol === "viatom-oxygen") {
|
|
52
80
|
return this.nextViatomOxygenCommand(frame);
|
|
@@ -67,9 +95,20 @@ class LepuIdentityGate {
|
|
|
67
95
|
return undefined;
|
|
68
96
|
}
|
|
69
97
|
this.pendingClockCommand = undefined;
|
|
98
|
+
return [this.askWhatItIs()];
|
|
99
|
+
};
|
|
100
|
+
askWhatItIs = () => {
|
|
70
101
|
this.pendingCommand = _lepuCommands.LepuCommand.GET_INFO;
|
|
71
|
-
return
|
|
102
|
+
return this.awaitConnect(this.commandFor(_lepuCommands.LepuCommand.GET_INFO));
|
|
72
103
|
};
|
|
104
|
+
awaitConnect = command => {
|
|
105
|
+
this.connectCommand = command;
|
|
106
|
+
this.connectRetry.started();
|
|
107
|
+
return command;
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
/** The standard family's clock and identity steps; the oxygen and v2 protocols keep their own pacing. */
|
|
111
|
+
awaitsConnectReply = () => this.params.protocol === undefined && !this.isIdentified && !this.isRefused && this.pendingCommand !== undefined;
|
|
73
112
|
|
|
74
113
|
/** Decides on the reply to the generic `GET_INFO` command. */
|
|
75
114
|
admit = frame => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clockSync","require","_hexToByte","_lepuAdvertisement","_lepuCommands","_lepuDeviceInfo","_lepuResponseType","COMMAND_INDEX","VIATOM_OXYGEN_INFO","LepuIdentityGate","isIdentified","isRefused","constructor","params","initialCommands","advertisementRequiresEncryption","manufacturerData","rejectEncryptionAtBytes","refuse","protocol","command","pollCommand","pendingCommand","commandFor","setClock","setClockBeforeInfo","isClockSyncEnabled","clockSync","oxyClockPayload","clockSyncProtocol","pendingClockCommand","clockPayload","LepuCommand","GET_INFO","nextCommand","frame","nextViatomOxygenCommand","undefined","nextClockCommand","poll","admit","hexToByte","isLepuSuccess","describeLepuResponseType","info","parseLepuDeviceInfo","onIdentified","onAdmitted","isNarrowed","expectedDeviceTypes","length","includes","deviceType","branchCode","reason","onRefused","pollIntervalMs","payload","delayBeforeWriteMs","write","builder","build","writeWithoutResponse","withoutResponse","status","toString","padStart","parseViatomOxygenDeviceInfo","exports","parts","getClockParts","now","Date","timezone","pad","value","String","JSON","stringify","SetTIME","year","month","day","hours","minutes","seconds","Array","from","TextEncoder","encode","date","tenthsOfHour","getTimezoneOffset","push","text","slice","map","byte","fromCharCode","join","replace","parse","Number","Model","isInteger","protocolMaxLength","Branch","serialNumber","SN","SerialNumber"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.identity-gate.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clockSync","require","_hexToByte","_lepuAdvertisement","_lepuCommands","_lepuConnectRetry","_lepuDeviceInfo","_lepuResponseType","COMMAND_INDEX","VIATOM_OXYGEN_INFO","LepuIdentityGate","isIdentified","isRefused","connectRetry","LepuConnectRetry","constructor","params","initialCommands","advertisementRequiresEncryption","manufacturerData","rejectEncryptionAtBytes","refuse","protocol","command","pollCommand","pendingCommand","commandFor","setClock","setClockBeforeInfo","isClockSyncEnabled","clockSync","oxyClockPayload","clockSyncProtocol","pendingClockCommand","awaitConnect","clockPayload","askWhatItIs","commandTimeoutMs","awaitsConnectReply","LEPU_CONNECT_REPLY_TIMEOUT_MS","undefined","onCommandTimeout","connectCommand","mayRetry","commands","commandProgress","frame","hexToByte","nextCommand","nextViatomOxygenCommand","nextClockCommand","poll","admit","LepuCommand","GET_INFO","started","isLepuSuccess","describeLepuResponseType","info","parseLepuDeviceInfo","onIdentified","onAdmitted","isNarrowed","expectedDeviceTypes","length","includes","deviceType","branchCode","reason","onRefused","pollIntervalMs","payload","delayBeforeWriteMs","write","builder","build","writeWithoutResponse","withoutResponse","status","toString","padStart","parseViatomOxygenDeviceInfo","exports","parts","getClockParts","now","Date","timezone","pad","value","String","JSON","stringify","SetTIME","year","month","day","hours","minutes","seconds","Array","from","TextEncoder","encode","date","tenthsOfHour","getTimezoneOffset","push","text","slice","map","byte","fromCharCode","join","replace","parse","Number","Model","isInteger","protocolMaxLength","Branch","serialNumber","SN","SerialNumber"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.identity-gate.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -36,10 +36,15 @@ const CORE_MEASUREMENT_CODES = {
|
|
|
36
36
|
Vo2Max: _next.ObservationCode.VO2_MAX
|
|
37
37
|
};
|
|
38
38
|
|
|
39
|
-
/** Health Connect
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
/** Health Connect records that feed more than one data type: each type is coded by the record field it reads. */
|
|
40
|
+
const SHARED_RECORD_FIELDS = {
|
|
41
|
+
Nutrition: {
|
|
42
|
+
[_healthSyncKeys.HealthDataType.carbohydrates]: "totalCarbohydrate",
|
|
43
|
+
[_healthSyncKeys.HealthDataType.caloriesEaten]: "energy"
|
|
44
|
+
},
|
|
45
|
+
ExerciseSession: {
|
|
46
|
+
[_healthSyncKeys.HealthDataType.exerciseMinutes]: "duration"
|
|
47
|
+
}
|
|
43
48
|
};
|
|
44
49
|
|
|
45
50
|
/** The coding a type is saved under when the app names none: core's own code for a core measurement, else the catalog's. */
|
|
@@ -52,9 +57,9 @@ const getDefaultHealthCoding = (provider, key, identifier, mode) => {
|
|
|
52
57
|
};
|
|
53
58
|
}
|
|
54
59
|
const coding = (0, _healthDataCatalog.getHealthDataCoding)(provider, identifier, mode);
|
|
55
|
-
const
|
|
56
|
-
return
|
|
57
|
-
code: `${coding.code}.${
|
|
60
|
+
const field = SHARED_RECORD_FIELDS[identifier]?.[key];
|
|
61
|
+
return field ? {
|
|
62
|
+
code: `${coding.code}.${field}`,
|
|
58
63
|
system: coding.system
|
|
59
64
|
} : coding;
|
|
60
65
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_next","require","_healthSyncKeys","_fhirSystems","_healthDataCatalog","_toCoreHealthObservations","CORE_MEASUREMENT_CODES","HKQuantityTypeIdentifierBloodPressureSystolic","ObservationCode","SYSTOLIC_BLOOD_PRESSURE","HKQuantityTypeIdentifierBloodPressureDiastolic","DIASTOLIC_BLOOD_PRESSURE","HKQuantityTypeIdentifierHeartRate","HEART_RATE","HKQuantityTypeIdentifierBloodGlucose","BLOOD_GLUCOSE","HKQuantityTypeIdentifierBodyMass","BODY_WEIGHT","HKQuantityTypeIdentifierOxygenSaturation","OXYGEN_SATURATION","HKQuantityTypeIdentifierRespiratoryRate","RESPIRATORY_RATE","HKQuantityTypeIdentifierBodyTemperature","BODY_TEMPERATURE","HKQuantityTypeIdentifierStepCount","STEPS","HKQuantityTypeIdentifierHeartRateVariabilitySDNN","HEART_RATE_VARIABILITY","HKQuantityTypeIdentifierRestingHeartRate","RESTING_HEART_RATE","HKQuantityTypeIdentifierWalkingHeartRateAverage","WALKING_HEART_RATE_AVERAGE","HKQuantityTypeIdentifierVO2Max","VO2_MAX","BloodPressure","HeartRate","BloodGlucose","Weight","OxygenSaturation","RespiratoryRate","BodyTemperature","Steps","RestingHeartRate","Vo2Max","
|
|
1
|
+
{"version":3,"names":["_next","require","_healthSyncKeys","_fhirSystems","_healthDataCatalog","_toCoreHealthObservations","CORE_MEASUREMENT_CODES","HKQuantityTypeIdentifierBloodPressureSystolic","ObservationCode","SYSTOLIC_BLOOD_PRESSURE","HKQuantityTypeIdentifierBloodPressureDiastolic","DIASTOLIC_BLOOD_PRESSURE","HKQuantityTypeIdentifierHeartRate","HEART_RATE","HKQuantityTypeIdentifierBloodGlucose","BLOOD_GLUCOSE","HKQuantityTypeIdentifierBodyMass","BODY_WEIGHT","HKQuantityTypeIdentifierOxygenSaturation","OXYGEN_SATURATION","HKQuantityTypeIdentifierRespiratoryRate","RESPIRATORY_RATE","HKQuantityTypeIdentifierBodyTemperature","BODY_TEMPERATURE","HKQuantityTypeIdentifierStepCount","STEPS","HKQuantityTypeIdentifierHeartRateVariabilitySDNN","HEART_RATE_VARIABILITY","HKQuantityTypeIdentifierRestingHeartRate","RESTING_HEART_RATE","HKQuantityTypeIdentifierWalkingHeartRateAverage","WALKING_HEART_RATE_AVERAGE","HKQuantityTypeIdentifierVO2Max","VO2_MAX","BloodPressure","HeartRate","BloodGlucose","Weight","OxygenSaturation","RespiratoryRate","BodyTemperature","Steps","RestingHeartRate","Vo2Max","SHARED_RECORD_FIELDS","Nutrition","HealthDataType","carbohydrates","caloriesEaten","ExerciseSession","exerciseMinutes","getDefaultHealthCoding","provider","key","identifier","mode","coreCode","isCoreMeasurementTypeKey","undefined","code","system","LOINC_SYSTEM","coding","getHealthDataCoding","field","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/default-health-coding.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AACA,IAAAI,yBAAA,GAAAJ,OAAA;AAEA;AACA,MAAMK,sBAA0E,GAAG;EACjFC,6CAA6C,EAAEC,qBAAe,CAACC,uBAAuB;EACtFC,8CAA8C,EAAEF,qBAAe,CAACG,wBAAwB;EACxFC,iCAAiC,EAAEJ,qBAAe,CAACK,UAAU;EAC7DC,oCAAoC,EAAEN,qBAAe,CAACO,aAAa;EACnEC,gCAAgC,EAAER,qBAAe,CAACS,WAAW;EAC7DC,wCAAwC,EAAEV,qBAAe,CAACW,iBAAiB;EAC3EC,uCAAuC,EAAEZ,qBAAe,CAACa,gBAAgB;EACzEC,uCAAuC,EAAEd,qBAAe,CAACe,gBAAgB;EACzEC,iCAAiC,EAAEhB,qBAAe,CAACiB,KAAK;EACxDC,gDAAgD,EAAElB,qBAAe,CAACmB,sBAAsB;EACxFC,wCAAwC,EAAEpB,qBAAe,CAACqB,kBAAkB;EAC5EC,+CAA+C,EAAEtB,qBAAe,CAACuB,0BAA0B;EAC3FC,8BAA8B,EAAExB,qBAAe,CAACyB,OAAO;EACvDC,aAAa,EAAE1B,qBAAe,CAACC,uBAAuB;EACtD0B,SAAS,EAAE3B,qBAAe,CAACK,UAAU;EACrCuB,YAAY,EAAE5B,qBAAe,CAACO,aAAa;EAC3CsB,MAAM,EAAE7B,qBAAe,CAACS,WAAW;EACnCqB,gBAAgB,EAAE9B,qBAAe,CAACW,iBAAiB;EACnDoB,eAAe,EAAE/B,qBAAe,CAACa,gBAAgB;EACjDmB,eAAe,EAAEhC,qBAAe,CAACe,gBAAgB;EACjDkB,KAAK,EAAEjC,qBAAe,CAACiB,KAAK;EAC5BiB,gBAAgB,EAAElC,qBAAe,CAACqB,kBAAkB;EACpDc,MAAM,EAAEnC,qBAAe,CAACyB;AAC1B,CAAC;;AAED;AACA,MAAMW,oBAA+F,GAAG;EACtGC,SAAS,EAAE;IACT,CAACC,8BAAc,CAACC,aAAa,GAAG,mBAAmB;IACnD,CAACD,8BAAc,CAACE,aAAa,GAAG;EAClC,CAAC;EACDC,eAAe,EAAE;IAAE,CAACH,8BAAc,CAACI,eAAe,GAAG;EAAW;AAClE,CAAC;;AAED;AACA,MAAMC,sBAAsB,GAAGA,CAC7BC,QAAwB,EACxBC,GAAkB,EAClBC,UAAkB,EAClBC,IAAoB,KACmC;EACvD,MAAMC,QAAQ,GAAG,IAAAC,kDAAwB,EAACJ,GAAG,CAAC,GAAG/C,sBAAsB,CAACgD,UAAU,CAAC,GAAGI,SAAS;EAE/F,IAAIF,QAAQ,EAAE;IACZ,OAAO;MAAEG,IAAI,EAAEH,QAAQ;MAAEI,MAAM,EAAEC;IAAa,CAAC;EACjD;EAEA,MAAMC,MAAM,GAAG,IAAAC,sCAAmB,EAACX,QAAQ,EAAEE,UAAU,EAAEC,IAAI,CAAC;EAC9D,MAAMS,KAAK,GAAGpB,oBAAoB,CAACU,UAAU,CAAC,GAAGD,GAAG,CAAC;EAErD,OAAOW,KAAK,GAAG;IAAEL,IAAI,EAAE,GAAGG,MAAM,CAACH,IAAI,IAAIK,KAAK,EAAE;IAAEJ,MAAM,EAAEE,MAAM,CAACF;EAAO,CAAC,GAAGE,MAAM;AACpF,CAAC;AAACG,OAAA,CAAAd,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ import { isClockSyncEnabled } from "../../../types/clock-sync.js";
|
|
|
5
5
|
import { hexToByte } from "../../../utils/hex-to-byte.js";
|
|
6
6
|
import { LepuCommandBuilder } from "../lepu/lepu.command-builder.js";
|
|
7
7
|
import { LepuCommand } from "../lepu/lepu.commands.js";
|
|
8
|
+
import { LEPU_CONNECT_REPLY_TIMEOUT_MS, LepuConnectRetry } from "../lepu/lepu.connect-retry.js";
|
|
8
9
|
import { clockPayload } from "../lepu/lepu.ecg-transfer.js";
|
|
9
10
|
import { LepuFileTransfer } from "../lepu/lepu.file-transfer.js";
|
|
10
11
|
import { lepuCommandOf } from "../lepu/lepu.frame.js";
|
|
@@ -25,29 +26,47 @@ class BP2HistorySequencer {
|
|
|
25
26
|
lastRunStatusFrameCount = 0;
|
|
26
27
|
realtimeEcgActive = false;
|
|
27
28
|
phase = "files";
|
|
29
|
+
clockRetry = new LepuConnectRetry();
|
|
28
30
|
constructor(params) {
|
|
29
31
|
this.params = params;
|
|
30
32
|
}
|
|
31
33
|
initialCommands = () => {
|
|
32
34
|
if (isClockSyncEnabled(this.params.clockSync)) {
|
|
33
35
|
this.phase = "clock";
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
frame: this.builder.build(LepuCommand.SET_TIME, clockPayload(this.params.clockSync))
|
|
37
|
-
}];
|
|
36
|
+
this.clockRetry.started();
|
|
37
|
+
return [this.setTimeCommand()];
|
|
38
38
|
}
|
|
39
39
|
return this.startTransfer();
|
|
40
40
|
};
|
|
41
41
|
isHistoryTransfer = () => true;
|
|
42
|
-
commandTimeoutMs = () =>
|
|
42
|
+
commandTimeoutMs = () => {
|
|
43
|
+
if (this.phase === "clock") {
|
|
44
|
+
return LEPU_CONNECT_REPLY_TIMEOUT_MS;
|
|
45
|
+
}
|
|
46
|
+
return this.isPolling() ? BP2_POLL_ANSWER_TIMEOUT_MS : undefined;
|
|
47
|
+
};
|
|
43
48
|
|
|
44
|
-
/**
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
49
|
+
/**
|
|
50
|
+
* A BP2 just switched on can drop its first command, and one starting a measurement can
|
|
51
|
+
* drop a poll, so a missing answer is asked for again. The clock is optional: when it is
|
|
52
|
+
* still unanswered, the stored files are read without it.
|
|
53
|
+
*/
|
|
54
|
+
onCommandTimeout = () => {
|
|
55
|
+
if (this.phase === "clock") {
|
|
56
|
+
return {
|
|
57
|
+
commands: this.clockRetry.mayRetry() ? [this.setTimeCommand()] : this.startTransfer()
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return this.isPolling() ? {
|
|
61
|
+
commands: [this.pollCommand()]
|
|
62
|
+
} : {};
|
|
63
|
+
};
|
|
48
64
|
|
|
49
|
-
/** Only the
|
|
50
|
-
commandProgress = frame =>
|
|
65
|
+
/** Only the awaited answer settles a command; any other frame leaves its timeout running. */
|
|
66
|
+
commandProgress = frame => {
|
|
67
|
+
const awaited = this.awaitedCommand();
|
|
68
|
+
return awaited === undefined || lepuCommandOf(frame) === awaited ? "complete" : "ignored";
|
|
69
|
+
};
|
|
51
70
|
nextCommand = frame => {
|
|
52
71
|
if (this.phase === "clock") {
|
|
53
72
|
if (lepuCommandOf(frame) !== LepuCommand.SET_TIME) {
|
|
@@ -95,6 +114,16 @@ class BP2HistorySequencer {
|
|
|
95
114
|
this.params.onTransferFinished();
|
|
96
115
|
return [this.pollCommand()];
|
|
97
116
|
};
|
|
117
|
+
awaitedCommand = () => {
|
|
118
|
+
if (this.phase === "clock") {
|
|
119
|
+
return LepuCommand.SET_TIME;
|
|
120
|
+
}
|
|
121
|
+
return this.isPolling() ? BP2_REALTIME_COMMAND : undefined;
|
|
122
|
+
};
|
|
123
|
+
setTimeCommand = () => ({
|
|
124
|
+
...this.params.write,
|
|
125
|
+
frame: this.builder.build(LepuCommand.SET_TIME, clockPayload(this.params.clockSync))
|
|
126
|
+
});
|
|
98
127
|
isPolling = () => this.phase === "files" && this.transfer === undefined;
|
|
99
128
|
pollCommand = () => ({
|
|
100
129
|
...this.params.write,
|