@ovok/native 1.16.1-dev.2167 → 1.16.1-dev.2171

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 (37) hide show
  1. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js +40 -11
  2. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js.map +1 -1
  3. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js +1 -1
  4. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  5. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.connect-retry.js +32 -0
  6. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.connect-retry.js.map +1 -0
  7. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.js +33 -4
  8. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.js.map +1 -1
  9. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.identity-gate.js +43 -4
  10. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.identity-gate.js.map +1 -1
  11. package/lib/module/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js +40 -11
  12. package/lib/module/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js.map +1 -1
  13. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js +1 -1
  14. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  15. package/lib/module/modules/bt-management/services/devices/lepu/lepu.connect-retry.js +28 -0
  16. package/lib/module/modules/bt-management/services/devices/lepu/lepu.connect-retry.js.map +1 -0
  17. package/lib/module/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.js +33 -4
  18. package/lib/module/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.js.map +1 -1
  19. package/lib/module/modules/bt-management/services/devices/lepu/lepu.identity-gate.js +43 -4
  20. package/lib/module/modules/bt-management/services/devices/lepu/lepu.identity-gate.js.map +1 -1
  21. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts +9 -2
  22. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts.map +1 -1
  23. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.connect-retry.d.ts +12 -0
  24. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.connect-retry.d.ts.map +1 -0
  25. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.d.ts +7 -1
  26. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.d.ts.map +1 -1
  27. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts +16 -1
  28. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts.map +1 -1
  29. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts +9 -2
  30. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts.map +1 -1
  31. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.connect-retry.d.ts +12 -0
  32. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.connect-retry.d.ts.map +1 -0
  33. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.d.ts +7 -1
  34. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.d.ts.map +1 -1
  35. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts +16 -1
  36. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts.map +1 -1
  37. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["sentryLogger","MeasurementFeedbackKey","CaseType","FrameReadStatus","FrameParser","MeasurementStateMachine","BTDataProcessor","buffers","Map","constructor","device","mainServices","stuckDataTimeoutDuration","callbacks","frameReader","frameParser","measurementState","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","COMPLETE","handleFrame","frame","answerFrame","CORRUPT","reportCorruptFrame","validatePackage","progress","commandProgress","commands","nextCommand","sendCommands","data","parse","frameLength","dependentData","parsingCase","caseType","DEPENDENT","handleDependentResult","isMeasuring","measuring","advance","onError","Error","CORRUPT_FRAME","cause","message","setTimeout","STUCK","cancelConnection","duration","commandTimeoutMs","onCommandTimeout","terminal","COMMAND_TIMEOUT","reason"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-data-processor.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["sentryLogger","MeasurementFeedbackKey","CaseType","FrameReadStatus","FrameParser","MeasurementStateMachine","BTDataProcessor","buffers","Map","constructor","device","mainServices","stuckDataTimeoutDuration","callbacks","frameReader","frameParser","measurementState","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","COMPLETE","handleFrame","frame","answerFrame","CORRUPT","reportCorruptFrame","validatePackage","progress","commandProgress","commands","nextCommand","sendCommands","data","parse","frameLength","dependentData","parsingCase","caseType","DEPENDENT","handleDependentResult","isMeasuring","measuring","advance","onError","Error","CORRUPT_FRAME","cause","message","setTimeout","STUCK","cancelConnection","duration","commandTimeoutMs","onCommandTimeout","terminal","COMMAND_TIMEOUT","reason"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-data-processor.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ /** How long a connect-time command may go unanswered before it is sent again. */
4
+ const LEPU_CONNECT_REPLY_TIMEOUT_MS = 1_000;
5
+
6
+ /** A device just woken can drop its first command, so each connect step gets one more try. */
7
+ const LEPU_CONNECT_ATTEMPTS = 2;
8
+
9
+ /** Counts the tries of one connect-time command. */
10
+ class LepuConnectRetry {
11
+ attempts = 0;
12
+
13
+ /** Marks the first send of the command. */
14
+ started = () => {
15
+ this.attempts = 1;
16
+ };
17
+
18
+ /** Whether the command may be sent again; counts that send when it may. */
19
+ mayRetry = () => {
20
+ if (this.attempts >= LEPU_CONNECT_ATTEMPTS) {
21
+ return false;
22
+ }
23
+ this.attempts++;
24
+ return true;
25
+ };
26
+ }
27
+ export { LEPU_CONNECT_REPLY_TIMEOUT_MS, LepuConnectRetry };
28
+ //# sourceMappingURL=lepu.connect-retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["LEPU_CONNECT_REPLY_TIMEOUT_MS","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,GAAG,KAAK;;AAE3C;AACA,MAAMC,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;AAEA,SAASH,6BAA6B,EAAEE,gBAAgB","ignoreList":[]}
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { getClockParts, isClockSyncEnabled } from "../../../types/clock-sync.js";
4
4
  import { LepuCommand } from "./lepu.commands.js";
5
+ import { LEPU_CONNECT_REPLY_TIMEOUT_MS, LepuConnectRetry } from "./lepu.connect-retry.js";
5
6
  import { LepuFileTransfer } from "./lepu.file-transfer.js";
6
7
  import { lepuCommandOf } from "./lepu.frame.js";
7
8
  import { LepuIdentityGate } from "./lepu.identity-gate.js";
@@ -9,6 +10,7 @@ import { describeLepuResponseType, isLepuSuccess } from "./lepu.response-type.js
9
10
  /** Identifies a recorder, sets its local clock, then downloads its stored files. */
10
11
  class LepuEcgTransferSequencer {
11
12
  phase = "identity";
13
+ clockRetry = new LepuConnectRetry();
12
14
  constructor(params) {
13
15
  this.params = params;
14
16
  this.identity = new LepuIdentityGate({
@@ -24,6 +26,31 @@ class LepuEcgTransferSequencer {
24
26
  }
25
27
  initialCommands = () => this.identity.initialCommands();
26
28
  isHistoryTransfer = () => true;
29
+ commandTimeoutMs = () => {
30
+ if (this.phase === "identity") {
31
+ return this.identity.commandTimeoutMs();
32
+ }
33
+ return this.phase === "clock" ? LEPU_CONNECT_REPLY_TIMEOUT_MS : undefined;
34
+ };
35
+
36
+ /** An unanswered clock is sent once more, then skipped; the stored files don't need it. */
37
+ onCommandTimeout = () => {
38
+ if (this.phase === "identity") {
39
+ return this.identity.onCommandTimeout();
40
+ }
41
+ if (this.phase !== "clock") {
42
+ return {};
43
+ }
44
+ return {
45
+ commands: this.clockRetry.mayRetry() ? [this.setTimeCommand()] : this.startTransfer()
46
+ };
47
+ };
48
+ commandProgress = frame => {
49
+ if (this.phase === "identity") {
50
+ return this.identity.commandProgress(frame);
51
+ }
52
+ return this.phase === "clock" && lepuCommandOf(frame) !== LepuCommand.SET_TIME ? "ignored" : "complete";
53
+ };
27
54
  nextCommand = frame => {
28
55
  if (this.phase === "identity") {
29
56
  return this.identity.nextCommand(frame);
@@ -42,13 +69,15 @@ class LepuEcgTransferSequencer {
42
69
  startClockOrTransfer = () => {
43
70
  if (isClockSyncEnabled(this.params.clockSync)) {
44
71
  this.phase = "clock";
45
- return [{
46
- ...this.params.write,
47
- frame: this.params.builder.build(LepuCommand.SET_TIME, clockPayload(this.params.clockSync))
48
- }];
72
+ this.clockRetry.started();
73
+ return [this.setTimeCommand()];
49
74
  }
50
75
  return this.startTransfer();
51
76
  };
77
+ setTimeCommand = () => ({
78
+ ...this.params.write,
79
+ frame: this.params.builder.build(LepuCommand.SET_TIME, clockPayload(this.params.clockSync))
80
+ });
52
81
  finishClock = frame => {
53
82
  if (lepuCommandOf(frame) !== LepuCommand.SET_TIME) {
54
83
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"names":["getClockParts","isClockSyncEnabled","LepuCommand","LepuFileTransfer","lepuCommandOf","LepuIdentityGate","describeLepuResponseType","isLepuSuccess","LepuEcgTransferSequencer","phase","constructor","params","identity","write","builder","expectedDeviceTypes","manufacturerData","rejectEncryptionAtBytes","onIdentified","onRefused","onAdmitted","startClockOrTransfer","initialCommands","isHistoryTransfer","nextCommand","frame","finishClock","pollCommand","undefined","startTransfer","transfer","clockSync","build","SET_TIME","clockPayload","onError","delayBeforeWriteMs","onFile","skipFiles","acceptFile","afterTransfer","finishTransfer","onProgress","pollIntervalMs","parts","now","Date","timezone","year","month","day","hours","minutes","seconds"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.ecg-transfer.ts"],"mappings":";;AAAA,SAEEA,aAAa,EACbC,kBAAkB,QACb,8BAA2B;AAKlC,SAASC,WAAW,QAAQ,oBAAiB;AAE7C,SAAmBC,gBAAgB,QAAQ,yBAAsB;AACjE,SAASC,aAAa,QAAQ,iBAAc;AAC5C,SAASC,gBAAgB,QAAQ,yBAAsB;AACvD,SAASC,wBAAwB,EAAEC,aAAa,QAAQ,yBAAsB;AA2B9E;AACA,MAAMC,wBAAwB,CAA6B;EACjDC,KAAK,GAAyB,UAAU;EAIzCC,WAAWA,CAAkBC,MAA6B,EAAE;IAAA,KAA/BA,MAA6B,GAA7BA,MAA6B;IAC/D,IAAI,CAACC,QAAQ,GAAG,IAAIP,gBAAgB,CAAC;MACnCQ,KAAK,EAAEF,MAAM,CAACE,KAAK;MACnBC,OAAO,EAAEH,MAAM,CAACG,OAAO;MACvBC,mBAAmB,EAAEJ,MAAM,CAACI,mBAAmB;MAC/CC,gBAAgB,EAAEL,MAAM,CAACK,gBAAgB;MACzCC,uBAAuB,EAAEN,MAAM,CAACM,uBAAuB;MACvDC,YAAY,EAAEP,MAAM,CAACO,YAAY;MACjCC,SAAS,EAAER,MAAM,CAACQ,SAAS;MAC3BC,UAAU,EAAE,IAAI,CAACC;IACnB,CAAC,CAAC;EACJ;EAEOC,eAAe,GAAGA,CAAA,KACvB,IAAI,CAACV,QAAQ,CAACU,eAAe,CAAC,CAAC;EAE1BC,iBAAiB,GAAGA,CAAA,KAAe,IAAI;EAEvCC,WAAW,GAChBC,KAAwB,IACiB;IACzC,IAAI,IAAI,CAAChB,KAAK,KAAK,UAAU,EAAE;MAC7B,OAAO,IAAI,CAACG,QAAQ,CAACY,WAAW,CAACC,KAAK,CAAC;IACzC;IAEA,IAAI,IAAI,CAAChB,KAAK,KAAK,OAAO,EAAE;MAC1B,OAAO,IAAI,CAACiB,WAAW,CAACD,KAAK,CAAC;IAChC;IAEA,IAAI,IAAI,CAAChB,KAAK,KAAK,SAAS,EAAE;MAC5B,IACE,IAAI,CAACE,MAAM,CAACgB,WAAW,KAAKC,SAAS,IACrCxB,aAAa,CAACqB,KAAK,CAAC,KAAK,IAAI,CAACd,MAAM,CAACgB,WAAW,EAChD;QACA,OAAOC,SAAS;MAClB;MAEA,OAAO,IAAI,CAACC,aAAa,CAAC,KAAK,CAAC;IAClC;IAEA,OAAO,IAAI,CAACC,QAAQ,EAAEN,WAAW,CAACC,KAAK,CAAC;EAC1C,CAAC;EAEOJ,oBAAoB,GAAGA,CAAA,KAAgC;IAC7D,IAAIpB,kBAAkB,CAAC,IAAI,CAACU,MAAM,CAACoB,SAAS,CAAC,EAAE;MAC7C,IAAI,CAACtB,KAAK,GAAG,OAAO;MAEpB,OAAO,CACL;QACE,GAAG,IAAI,CAACE,MAAM,CAACE,KAAK;QACpBY,KAAK,EAAE,IAAI,CAACd,MAAM,CAACG,OAAO,CAACkB,KAAK,CAC9B9B,WAAW,CAAC+B,QAAQ,EACpBC,YAAY,CAAC,IAAI,CAACvB,MAAM,CAACoB,SAAS,CACpC;MACF,CAAC,CACF;IACH;IAEA,OAAO,IAAI,CAACF,aAAa,CAAC,CAAC;EAC7B,CAAC;EAEOH,WAAW,GACjBD,KAAwB,IACiB;IACzC,IAAIrB,aAAa,CAACqB,KAAK,CAAC,KAAKvB,WAAW,CAAC+B,QAAQ,EAAE;MACjD,OAAOL,SAAS;IAClB;IAEA,IAAI,CAACrB,aAAa,CAACkB,KAAK,CAAC,EAAE;MACzB,IAAI,CAACd,MAAM,CAACwB,OAAO,CACjB,gCAAgC7B,wBAAwB,CAACmB,KAAK,CAAC,EACjE,CAAC;IACH;IAEA,OAAO,IAAI,CAACI,aAAa,CAAC,CAAC;EAC7B,CAAC;EAEOA,aAAa,GACnBO,kBAA2B,IACE;IAC7B,IAAI,CAAC3B,KAAK,GAAG,OAAO;IACpB,IAAI,CAACqB,QAAQ,GAAG,IAAI3B,gBAAgB,CAAC;MACnCU,KAAK,EAAE,IAAI,CAACF,MAAM,CAACE,KAAK;MACxBC,OAAO,EAAE,IAAI,CAACH,MAAM,CAACG,OAAO;MAC5BuB,MAAM,EAAE,IAAI,CAAC1B,MAAM,CAAC0B,MAAM;MAC1BF,OAAO,EAAE,IAAI,CAACxB,MAAM,CAACwB,OAAO;MAC5BG,SAAS,EAAE,IAAI,CAAC3B,MAAM,CAAC2B,SAAS;MAChCC,UAAU,EAAE,IAAI,CAAC5B,MAAM,CAAC4B,UAAU;MAClCC,aAAa,EAAE,IAAI,CAACC,cAAc;MAClCC,UAAU,EAAE,IAAI,CAAC/B,MAAM,CAAC+B;IAC1B,CAAC,CAAC;IAEF,OAAO,IAAI,CAACZ,QAAQ,CAACR,eAAe,CAACc,kBAAkB,CAAC;EAC1D,CAAC;EAEOK,cAAc,GAAGA,CAAA,KAAgC;IACvD,IAAI,CAACX,QAAQ,GAAGF,SAAS;IAEzB,IAAI,IAAI,CAACjB,MAAM,CAACgB,WAAW,KAAKC,SAAS,EAAE;MACzC,IAAI,CAACnB,KAAK,GAAG,SAAS;MAEtB,OAAO,CAAC,IAAI,CAACkB,WAAW,CAAC,CAAC,CAAC;IAC7B;IAEA,OAAO,IAAI,CAAChB,MAAM,CAAC6B,aAAa,GAAG,CAAC,IAAI,EAAE;EAC5C,CAAC;EAEOb,WAAW,GAAGA,CAAA,MAAsB;IAC1C,GAAG,IAAI,CAAChB,MAAM,CAACE,KAAK;IACpBY,KAAK,EAAE,IAAI,CAACd,MAAM,CAACG,OAAO,CAACkB,KAAK,CAAC,IAAI,CAACrB,MAAM,CAACgB,WAAY,CAAC;IAC1D,IAAI,IAAI,CAAChB,MAAM,CAACgC,cAAc,KAAKf,SAAS,GACxC,CAAC,CAAC,GACF;MAAEQ,kBAAkB,EAAE,IAAI,CAACzB,MAAM,CAACgC;IAAe,CAAC;EACxD,CAAC,CAAC;AACJ;AAEA,MAAMT,YAAY,GAAIH,SAA4B,IAAe;EAC/D,MAAMa,KAAK,GAAG5C,aAAa,CACzB+B,SAAS,EAAEc,GAAG,GAAG,CAAC,IAAI,IAAIC,IAAI,CAAC,CAAC,EAChCf,SAAS,EAAEgB,QACb,CAAC;EAED,OAAO,CACLH,KAAK,CAACI,IAAI,GAAG,IAAI,EAChBJ,KAAK,CAACI,IAAI,IAAI,CAAC,GAAI,IAAI,EACxBJ,KAAK,CAACK,KAAK,EACXL,KAAK,CAACM,GAAG,EACTN,KAAK,CAACO,KAAK,EACXP,KAAK,CAACQ,OAAO,EACbR,KAAK,CAACS,OAAO,CACd;AACH,CAAC;AAED,SAAS7C,wBAAwB,EAAE0B,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["getClockParts","isClockSyncEnabled","LepuCommand","LEPU_CONNECT_REPLY_TIMEOUT_MS","LepuConnectRetry","LepuFileTransfer","lepuCommandOf","LepuIdentityGate","describeLepuResponseType","isLepuSuccess","LepuEcgTransferSequencer","phase","clockRetry","constructor","params","identity","write","builder","expectedDeviceTypes","manufacturerData","rejectEncryptionAtBytes","onIdentified","onRefused","onAdmitted","startClockOrTransfer","initialCommands","isHistoryTransfer","commandTimeoutMs","undefined","onCommandTimeout","commands","mayRetry","setTimeCommand","startTransfer","commandProgress","frame","SET_TIME","nextCommand","finishClock","pollCommand","transfer","clockSync","started","build","clockPayload","onError","delayBeforeWriteMs","onFile","skipFiles","acceptFile","afterTransfer","finishTransfer","onProgress","pollIntervalMs","parts","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":[]}
@@ -6,6 +6,7 @@ import { getClockParts, isClockSyncEnabled } from "../../../types/clock-sync.js"
6
6
  import { hexToByte } from "../../../utils/hex-to-byte.js";
7
7
  import { advertisementRequiresEncryption } from "./lepu.advertisement.js";
8
8
  import { LepuCommand } from "./lepu.commands.js";
9
+ import { LEPU_CONNECT_REPLY_TIMEOUT_MS, LepuConnectRetry } from "./lepu.connect-retry.js";
9
10
  import { parseLepuDeviceInfo } from "./lepu.device-info.js";
10
11
  import { describeLepuResponseType, isLepuSuccess } from "./lepu.response-type.js";
11
12
  const COMMAND_INDEX = 1;
@@ -15,6 +16,7 @@ const VIATOM_OXYGEN_INFO = 0x14;
15
16
  export class LepuIdentityGate {
16
17
  isIdentified = false;
17
18
  isRefused = false;
19
+ connectRetry = new LepuConnectRetry();
18
20
  constructor(params) {
19
21
  this.params = params;
20
22
  }
@@ -38,11 +40,37 @@ export class LepuIdentityGate {
38
40
  const command = this.params.clockSyncProtocol === "bp3" ? 0xc0 : 0xec;
39
41
  this.pendingClockCommand = command;
40
42
  this.pendingCommand = command;
41
- return [this.commandFor(command, clockPayload(this.params.clockSync, this.params.clockSyncProtocol))];
43
+ return [this.awaitConnect(this.commandFor(command, clockPayload(this.params.clockSync, this.params.clockSyncProtocol)))];
42
44
  }
43
- this.pendingCommand = LepuCommand.GET_INFO;
44
- return [this.commandFor(LepuCommand.GET_INFO)];
45
+ return [this.askWhatItIs()];
46
+ };
47
+ commandTimeoutMs = () => this.awaitsConnectReply() ? LEPU_CONNECT_REPLY_TIMEOUT_MS : undefined;
48
+
49
+ /**
50
+ * A device just woken can drop its first command, so an unanswered connect command is sent
51
+ * once more. An unanswered clock is then skipped; an unanswered identity is left to the
52
+ * stuck watchdog, since a device that never says what it is cannot be addressed.
53
+ */
54
+ onCommandTimeout = () => {
55
+ if (!this.awaitsConnectReply() || !this.connectCommand) {
56
+ return {};
57
+ }
58
+ if (this.connectRetry.mayRetry()) {
59
+ return {
60
+ commands: [this.connectCommand]
61
+ };
62
+ }
63
+ if (this.pendingClockCommand !== undefined) {
64
+ this.pendingClockCommand = undefined;
65
+ return {
66
+ commands: [this.askWhatItIs()]
67
+ };
68
+ }
69
+ return {};
45
70
  };
71
+
72
+ /** Only the awaited connect reply settles its command; other frames leave the timeout running. */
73
+ commandProgress = frame => this.awaitsConnectReply() && hexToByte(frame[COMMAND_INDEX] ?? "ff") !== this.pendingCommand ? "ignored" : "complete";
46
74
  nextCommand = frame => {
47
75
  if (this.params.protocol === "viatom-oxygen") {
48
76
  return this.nextViatomOxygenCommand(frame);
@@ -63,9 +91,20 @@ export class LepuIdentityGate {
63
91
  return undefined;
64
92
  }
65
93
  this.pendingClockCommand = undefined;
94
+ return [this.askWhatItIs()];
95
+ };
96
+ askWhatItIs = () => {
66
97
  this.pendingCommand = LepuCommand.GET_INFO;
67
- return [this.commandFor(LepuCommand.GET_INFO)];
98
+ return this.awaitConnect(this.commandFor(LepuCommand.GET_INFO));
68
99
  };
100
+ awaitConnect = command => {
101
+ this.connectCommand = command;
102
+ this.connectRetry.started();
103
+ return command;
104
+ };
105
+
106
+ /** The standard family's clock and identity steps; the oxygen and v2 protocols keep their own pacing. */
107
+ awaitsConnectReply = () => this.params.protocol === undefined && !this.isIdentified && !this.isRefused && this.pendingCommand !== undefined;
69
108
 
70
109
  /** Decides on the reply to the generic `GET_INFO` command. */
71
110
  admit = frame => {
@@ -1 +1 @@
1
- {"version":3,"names":["getClockParts","isClockSyncEnabled","hexToByte","advertisementRequiresEncryption","LepuCommand","parseLepuDeviceInfo","describeLepuResponseType","isLepuSuccess","COMMAND_INDEX","VIATOM_OXYGEN_INFO","LepuIdentityGate","isIdentified","isRefused","constructor","params","initialCommands","manufacturerData","rejectEncryptionAtBytes","refuse","protocol","command","pollCommand","pendingCommand","commandFor","setClock","setClockBeforeInfo","clockSync","oxyClockPayload","clockSyncProtocol","pendingClockCommand","clockPayload","GET_INFO","nextCommand","frame","nextViatomOxygenCommand","undefined","nextClockCommand","poll","admit","info","onIdentified","onAdmitted","isNarrowed","expectedDeviceTypes","length","includes","deviceType","branchCode","reason","onRefused","pollIntervalMs","payload","delayBeforeWriteMs","write","builder","build","writeWithoutResponse","withoutResponse","status","toString","padStart","parseViatomOxygenDeviceInfo","parts","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":["getClockParts","isClockSyncEnabled","hexToByte","advertisementRequiresEncryption","LepuCommand","LEPU_CONNECT_REPLY_TIMEOUT_MS","LepuConnectRetry","parseLepuDeviceInfo","describeLepuResponseType","isLepuSuccess","COMMAND_INDEX","VIATOM_OXYGEN_INFO","LepuIdentityGate","isIdentified","isRefused","connectRetry","constructor","params","initialCommands","manufacturerData","rejectEncryptionAtBytes","refuse","protocol","command","pollCommand","pendingCommand","commandFor","setClock","setClockBeforeInfo","clockSync","oxyClockPayload","clockSyncProtocol","pendingClockCommand","awaitConnect","clockPayload","askWhatItIs","commandTimeoutMs","awaitsConnectReply","undefined","onCommandTimeout","connectCommand","mayRetry","commands","commandProgress","frame","nextCommand","nextViatomOxygenCommand","nextClockCommand","poll","admit","GET_INFO","started","info","onIdentified","onAdmitted","isNarrowed","expectedDeviceTypes","length","includes","deviceType","branchCode","reason","onRefused","pollIntervalMs","payload","delayBeforeWriteMs","write","builder","build","writeWithoutResponse","withoutResponse","status","toString","padStart","parseViatomOxygenDeviceInfo","parts","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":[]}
@@ -23,17 +23,24 @@ declare class BP2HistorySequencer implements CommandSequencer {
23
23
  private lastRunStatusFrameCount;
24
24
  private realtimeEcgActive;
25
25
  private phase;
26
+ private readonly clockRetry;
26
27
  constructor(params: BP2HistorySequencerParams);
27
28
  initialCommands: () => readonly DeviceCommand[];
28
29
  isHistoryTransfer: () => boolean;
29
30
  commandTimeoutMs: () => number | undefined;
30
- /** The BP2 can drop a poll while it starts measuring, so a missing answer is asked for again. */
31
+ /**
32
+ * A BP2 just switched on can drop its first command, and one starting a measurement can
33
+ * drop a poll, so a missing answer is asked for again. The clock is optional: when it is
34
+ * still unanswered, the stored files are read without it.
35
+ */
31
36
  onCommandTimeout: () => CommandTimeoutResult;
32
- /** Only the realtime answer settles a poll; any other frame leaves its timeout running. */
37
+ /** Only the awaited answer settles a command; any other frame leaves its timeout running. */
33
38
  commandProgress: (frame: readonly string[]) => "ignored" | "complete";
34
39
  nextCommand: (frame: readonly string[]) => readonly DeviceCommand[] | undefined;
35
40
  private startTransfer;
36
41
  private finishTransfer;
42
+ private awaitedCommand;
43
+ private setTimeCommand;
37
44
  private isPolling;
38
45
  private pollCommand;
39
46
  private isResultFrame;
@@ -1 +1 @@
1
- {"version":3,"file":"bp2.history-sequencer.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAK9D,OAAO,EAAE,QAAQ,EAAoB,MAAM,4BAA4B,CAAC;AAOxE,QAAA,MAAM,oBAAoB,IAAO,CAAC;AAWlC,UAAU,yBAAyB;IACjC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,mBAAmB,EAAE,MAAM,OAAO,CAAC;IACnC,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAID,0EAA0E;AAC1E,cAAM,mBAAoB,YAAW,gBAAgB;IAQhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAP1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,uBAAuB,CAAK;IACpC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,KAAK,CAA4B;gBAEL,MAAM,EAAE,yBAAyB;IAE9D,eAAe,QAAO,SAAS,aAAa,EAAE,CAgBnD;IAEK,iBAAiB,QAAO,OAAO,CAAS;IAExC,gBAAgB,QAAO,MAAM,GAAG,SAAS,CACY;IAE5D,iGAAiG;IAC1F,gBAAgB,QAAO,oBAAoB,CACW;IAE7D,2FAA2F;IACpF,eAAe,GAAI,OAAO,SAAS,MAAM,EAAE,KAAG,SAAS,GAAG,UAAU,CAG1D;IAEV,WAAW,GAChB,OAAO,SAAS,MAAM,EAAE,KACvB,SAAS,aAAa,EAAE,GAAG,SAAS,CAyCrC;IAEF,OAAO,CAAC,aAAa,CAcnB;IAEF,OAAO,CAAC,cAAc,CAKpB;IAEF,OAAO,CAAC,SAAS,CACuC;IAExD,OAAO,CAAC,WAAW,CAIhB;IAEH,OAAO,CAAC,aAAa,CAEmC;IAExD,OAAO,CAAC,WAAW,CAEmC;IAEtD,OAAO,CAAC,YAAY,CAuBlB;CACH;AAED,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"bp2.history-sequencer.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAS9D,OAAO,EAAE,QAAQ,EAAoB,MAAM,4BAA4B,CAAC;AAOxE,QAAA,MAAM,oBAAoB,IAAO,CAAC;AAWlC,UAAU,yBAAyB;IACjC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,mBAAmB,EAAE,MAAM,OAAO,CAAC;IACnC,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAID,0EAA0E;AAC1E,cAAM,mBAAoB,YAAW,gBAAgB;IAShC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAR1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,uBAAuB,CAAK;IACpC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;gBAEjB,MAAM,EAAE,yBAAyB;IAE9D,eAAe,QAAO,SAAS,aAAa,EAAE,CASnD;IAEK,iBAAiB,QAAO,OAAO,CAAS;IAExC,gBAAgB,QAAO,MAAM,GAAG,SAAS,CAM9C;IAEF;;;;OAIG;IACI,gBAAgB,QAAO,oBAAoB,CAUhD;IAEF,6FAA6F;IACtF,eAAe,GAAI,OAAO,SAAS,MAAM,EAAE,KAAG,SAAS,GAAG,UAAU,CAMzE;IAEK,WAAW,GAChB,OAAO,SAAS,MAAM,EAAE,KACvB,SAAS,aAAa,EAAE,GAAG,SAAS,CAyCrC;IAEF,OAAO,CAAC,aAAa,CAcnB;IAEF,OAAO,CAAC,cAAc,CAKpB;IAEF,OAAO,CAAC,cAAc,CAMpB;IAEF,OAAO,CAAC,cAAc,CAMnB;IAEH,OAAO,CAAC,SAAS,CACuC;IAExD,OAAO,CAAC,WAAW,CAIhB;IAEH,OAAO,CAAC,aAAa,CAEmC;IAExD,OAAO,CAAC,WAAW,CAEmC;IAEtD,OAAO,CAAC,YAAY,CAuBlB;CACH;AAED,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ /** How long a connect-time command may go unanswered before it is sent again. */
2
+ declare const LEPU_CONNECT_REPLY_TIMEOUT_MS = 1000;
3
+ /** Counts the tries of one connect-time command. */
4
+ declare class LepuConnectRetry {
5
+ private attempts;
6
+ /** Marks the first send of the command. */
7
+ started: () => void;
8
+ /** Whether the command may be sent again; counts that send when it may. */
9
+ mayRetry: () => boolean;
10
+ }
11
+ export { LEPU_CONNECT_REPLY_TIMEOUT_MS, LepuConnectRetry };
12
+ //# sourceMappingURL=lepu.connect-retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lepu.connect-retry.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.connect-retry.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,QAAA,MAAM,6BAA6B,OAAQ,CAAC;AAK5C,oDAAoD;AACpD,cAAM,gBAAgB;IACpB,OAAO,CAAC,QAAQ,CAAK;IAErB,2CAA2C;IACpC,OAAO,QAAO,IAAI,CAEvB;IAEF,2EAA2E;IACpE,QAAQ,QAAO,OAAO,CAQ3B;CACH;AAED,OAAO,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { ClockSyncOptions } from "../../../types/clock-sync";
2
- import { CommandSequencer } from "../../../types/command-sequencer";
2
+ import { CommandSequencer, CommandTimeoutResult } from "../../../types/command-sequencer";
3
3
  import { DeviceCommand } from "../../../types/device-command";
4
4
  import { LepuCommandBuilder } from "./lepu.command-builder";
5
5
  import { LepuDeviceInfo } from "./lepu.device-info";
@@ -30,13 +30,19 @@ interface LepuEcgTransferParams {
30
30
  declare class LepuEcgTransferSequencer implements CommandSequencer {
31
31
  private readonly params;
32
32
  private phase;
33
+ private readonly clockRetry;
33
34
  private transfer;
34
35
  private readonly identity;
35
36
  constructor(params: LepuEcgTransferParams);
36
37
  initialCommands: () => readonly DeviceCommand[];
37
38
  isHistoryTransfer: () => boolean;
39
+ commandTimeoutMs: () => number | undefined;
40
+ /** An unanswered clock is sent once more, then skipped; the stored files don't need it. */
41
+ onCommandTimeout: () => CommandTimeoutResult;
42
+ commandProgress: (frame: readonly string[]) => "ignored" | "complete";
38
43
  nextCommand: (frame: readonly string[]) => readonly DeviceCommand[] | undefined;
39
44
  private startClockOrTransfer;
45
+ private setTimeCommand;
40
46
  private finishClock;
41
47
  private startTransfer;
42
48
  private finishTransfer;
@@ -1 +1 @@
1
- {"version":3,"file":"lepu.ecg-transfer.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAGjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAoB,MAAM,sBAAsB,CAAC;AAKlE,UAAU,qBAAqB;IAC7B,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,SAAS,aAAa,EAAE,CAAC;IAC/C,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;KACpB,KAAK,IAAI,CAAC;CACZ;AAID,oFAAoF;AACpF,cAAM,wBAAyB,YAAW,gBAAgB;IAKrC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJ1C,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;gBAER,MAAM,EAAE,qBAAqB;IAa1D,eAAe,QAAO,SAAS,aAAa,EAAE,CACnB;IAE3B,iBAAiB,QAAO,OAAO,CAAS;IAExC,WAAW,GAChB,OAAO,SAAS,MAAM,EAAE,KACvB,SAAS,aAAa,EAAE,GAAG,SAAS,CAqBrC;IAEF,OAAO,CAAC,oBAAoB,CAgB1B;IAEF,OAAO,CAAC,WAAW,CAcjB;IAEF,OAAO,CAAC,aAAa,CAgBnB;IAEF,OAAO,CAAC,cAAc,CAUpB;IAEF,OAAO,CAAC,WAAW,CAMhB;CACJ;AAED,QAAA,MAAM,YAAY,GAAI,YAAY,gBAAgB,KAAG,MAAM,EAe1D,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,CAAC;AAClD,YAAY,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"lepu.ecg-transfer.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAGjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAoB,MAAM,sBAAsB,CAAC;AAKlE,UAAU,qBAAqB;IAC7B,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,SAAS,aAAa,EAAE,CAAC;IAC/C,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;KACpB,KAAK,IAAI,CAAC;CACZ;AAID,oFAAoF;AACpF,cAAM,wBAAyB,YAAW,gBAAgB;IAMrC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAL1C,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IACrD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;gBAER,MAAM,EAAE,qBAAqB;IAa1D,eAAe,QAAO,SAAS,aAAa,EAAE,CACnB;IAE3B,iBAAiB,QAAO,OAAO,CAAS;IAExC,gBAAgB,QAAO,MAAM,GAAG,SAAS,CAM9C;IAEF,2FAA2F;IACpF,gBAAgB,QAAO,oBAAoB,CAchD;IAEK,eAAe,GAAI,OAAO,SAAS,MAAM,EAAE,KAAG,SAAS,GAAG,UAAU,CAQzE;IAEK,WAAW,GAChB,OAAO,SAAS,MAAM,EAAE,KACvB,SAAS,aAAa,EAAE,GAAG,SAAS,CAqBrC;IAEF,OAAO,CAAC,oBAAoB,CAS1B;IAEF,OAAO,CAAC,cAAc,CAMnB;IAEH,OAAO,CAAC,WAAW,CAcjB;IAEF,OAAO,CAAC,aAAa,CAgBnB;IAEF,OAAO,CAAC,cAAc,CAUpB;IAEF,OAAO,CAAC,WAAW,CAMhB;CACJ;AAED,QAAA,MAAM,YAAY,GAAI,YAAY,gBAAgB,KAAG,MAAM,EAe1D,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,CAAC;AAClD,YAAY,EAAE,qBAAqB,EAAE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { ClockSyncOptions } from "../../../types/clock-sync";
2
- import { CommandSequencer } from "../../../types/command-sequencer";
2
+ import { CommandSequencer, CommandTimeoutResult } from "../../../types/command-sequencer";
3
3
  import { DeviceCommand } from "../../../types/device-command";
4
4
  import { LepuCommandBuilder } from "./lepu.command-builder";
5
5
  import { LepuDeviceInfo } from "./lepu.device-info";
@@ -35,10 +35,25 @@ export declare class LepuIdentityGate implements CommandSequencer {
35
35
  private isRefused;
36
36
  private pendingCommand;
37
37
  private pendingClockCommand;
38
+ private connectCommand;
39
+ private readonly connectRetry;
38
40
  constructor(params: LepuIdentityGateParams);
39
41
  initialCommands: () => readonly DeviceCommand[];
42
+ commandTimeoutMs: () => number | undefined;
43
+ /**
44
+ * A device just woken can drop its first command, so an unanswered connect command is sent
45
+ * once more. An unanswered clock is then skipped; an unanswered identity is left to the
46
+ * stuck watchdog, since a device that never says what it is cannot be addressed.
47
+ */
48
+ onCommandTimeout: () => CommandTimeoutResult;
49
+ /** Only the awaited connect reply settles its command; other frames leave the timeout running. */
50
+ commandProgress: (frame: readonly string[]) => "ignored" | "complete";
40
51
  nextCommand: (frame: readonly string[]) => readonly DeviceCommand[] | undefined;
41
52
  private nextClockCommand;
53
+ private askWhatItIs;
54
+ private awaitConnect;
55
+ /** The standard family's clock and identity steps; the oxygen and v2 protocols keep their own pacing. */
56
+ private awaitsConnectReply;
42
57
  /** Decides on the reply to the generic `GET_INFO` command. */
43
58
  private admit;
44
59
  /** Closes the gate for good. There is no state a refused device can be talked back from. */
@@ -1 +1 @@
1
- {"version":3,"file":"lepu.identity-gate.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.identity-gate.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAGjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAI9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAuB,MAAM,oBAAoB,CAAC;AAGzE,UAAU,sBAAsB;IAC9B,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAEpC,uCAAuC;IACvC,OAAO,EAAE,kBAAkB,CAAC;IAE5B,QAAQ,CAAC,EAAE,IAAI,GAAG,eAAe,CAAC;IAElC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE5C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAElC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B,8CAA8C;IAC9C,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAE9C,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,SAAS,aAAa,EAAE,GAAG,SAAS,CAAC;IAExD,iDAAiD;IACjD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAKD,sEAAsE;AACtE,qBAAa,gBAAiB,YAAW,gBAAgB;IAMpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAL1C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,mBAAmB,CAAqB;gBAEZ,MAAM,EAAE,sBAAsB;IAE3D,eAAe,QAAO,SAAS,aAAa,EAAE,CAyDnD;IAEK,WAAW,GAChB,OAAO,SAAS,MAAM,EAAE,KACvB,SAAS,aAAa,EAAE,GAAG,SAAS,CAkBrC;IAEF,OAAO,CAAC,gBAAgB,CAWtB;IAEF,8DAA8D;IAC9D,OAAO,CAAC,KAAK,CA4CX;IAEF,4FAA4F;IAC5F,OAAO,CAAC,MAAM,CAKZ;IAEF,+EAA+E;IAC/E,OAAO,CAAC,IAAI,CASJ;IAER,OAAO,CAAC,UAAU,CASf;IAEH,OAAO,CAAC,uBAAuB,CAyD7B;CACH"}
1
+ {"version":3,"file":"lepu.identity-gate.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.identity-gate.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAGjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAI9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAuB,MAAM,oBAAoB,CAAC;AAGzE,UAAU,sBAAsB;IAC9B,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAEpC,uCAAuC;IACvC,OAAO,EAAE,kBAAkB,CAAC;IAE5B,QAAQ,CAAC,EAAE,IAAI,GAAG,eAAe,CAAC;IAElC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE5C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAElC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B,8CAA8C;IAC9C,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAE9C,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,SAAS,aAAa,EAAE,GAAG,SAAS,CAAC;IAExD,iDAAiD;IACjD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAKD,sEAAsE;AACtE,qBAAa,gBAAiB,YAAW,gBAAgB;IAQpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAP1C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;gBAEnB,MAAM,EAAE,sBAAsB;IAE3D,eAAe,QAAO,SAAS,aAAa,EAAE,CAyDnD;IAEK,gBAAgB,QAAO,MAAM,GAAG,SAAS,CACwB;IAExE;;;;OAIG;IACI,gBAAgB,QAAO,oBAAoB,CAgBhD;IAEF,kGAAkG;IAC3F,eAAe,GAAI,OAAO,SAAS,MAAM,EAAE,KAAG,SAAS,GAAG,UAAU,CAI1D;IAEV,WAAW,GAChB,OAAO,SAAS,MAAM,EAAE,KACvB,SAAS,aAAa,EAAE,GAAG,SAAS,CAkBrC;IAEF,OAAO,CAAC,gBAAgB,CAUtB;IAEF,OAAO,CAAC,WAAW,CAIjB;IAEF,OAAO,CAAC,YAAY,CAKlB;IAEF,yGAAyG;IACzG,OAAO,CAAC,kBAAkB,CAIU;IAEpC,8DAA8D;IAC9D,OAAO,CAAC,KAAK,CA4CX;IAEF,4FAA4F;IAC5F,OAAO,CAAC,MAAM,CAKZ;IAEF,+EAA+E;IAC/E,OAAO,CAAC,IAAI,CASJ;IAER,OAAO,CAAC,UAAU,CASf;IAEH,OAAO,CAAC,uBAAuB,CAyD7B;CACH"}
@@ -23,17 +23,24 @@ declare class BP2HistorySequencer implements CommandSequencer {
23
23
  private lastRunStatusFrameCount;
24
24
  private realtimeEcgActive;
25
25
  private phase;
26
+ private readonly clockRetry;
26
27
  constructor(params: BP2HistorySequencerParams);
27
28
  initialCommands: () => readonly DeviceCommand[];
28
29
  isHistoryTransfer: () => boolean;
29
30
  commandTimeoutMs: () => number | undefined;
30
- /** The BP2 can drop a poll while it starts measuring, so a missing answer is asked for again. */
31
+ /**
32
+ * A BP2 just switched on can drop its first command, and one starting a measurement can
33
+ * drop a poll, so a missing answer is asked for again. The clock is optional: when it is
34
+ * still unanswered, the stored files are read without it.
35
+ */
31
36
  onCommandTimeout: () => CommandTimeoutResult;
32
- /** Only the realtime answer settles a poll; any other frame leaves its timeout running. */
37
+ /** Only the awaited answer settles a command; any other frame leaves its timeout running. */
33
38
  commandProgress: (frame: readonly string[]) => "ignored" | "complete";
34
39
  nextCommand: (frame: readonly string[]) => readonly DeviceCommand[] | undefined;
35
40
  private startTransfer;
36
41
  private finishTransfer;
42
+ private awaitedCommand;
43
+ private setTimeCommand;
37
44
  private isPolling;
38
45
  private pollCommand;
39
46
  private isResultFrame;
@@ -1 +1 @@
1
- {"version":3,"file":"bp2.history-sequencer.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAK9D,OAAO,EAAE,QAAQ,EAAoB,MAAM,4BAA4B,CAAC;AAOxE,QAAA,MAAM,oBAAoB,IAAO,CAAC;AAWlC,UAAU,yBAAyB;IACjC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,mBAAmB,EAAE,MAAM,OAAO,CAAC;IACnC,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAID,0EAA0E;AAC1E,cAAM,mBAAoB,YAAW,gBAAgB;IAQhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAP1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,uBAAuB,CAAK;IACpC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,KAAK,CAA4B;gBAEL,MAAM,EAAE,yBAAyB;IAE9D,eAAe,QAAO,SAAS,aAAa,EAAE,CAgBnD;IAEK,iBAAiB,QAAO,OAAO,CAAS;IAExC,gBAAgB,QAAO,MAAM,GAAG,SAAS,CACY;IAE5D,iGAAiG;IAC1F,gBAAgB,QAAO,oBAAoB,CACW;IAE7D,2FAA2F;IACpF,eAAe,GAAI,OAAO,SAAS,MAAM,EAAE,KAAG,SAAS,GAAG,UAAU,CAG1D;IAEV,WAAW,GAChB,OAAO,SAAS,MAAM,EAAE,KACvB,SAAS,aAAa,EAAE,GAAG,SAAS,CAyCrC;IAEF,OAAO,CAAC,aAAa,CAcnB;IAEF,OAAO,CAAC,cAAc,CAKpB;IAEF,OAAO,CAAC,SAAS,CACuC;IAExD,OAAO,CAAC,WAAW,CAIhB;IAEH,OAAO,CAAC,aAAa,CAEmC;IAExD,OAAO,CAAC,WAAW,CAEmC;IAEtD,OAAO,CAAC,YAAY,CAuBlB;CACH;AAED,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"bp2.history-sequencer.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAS9D,OAAO,EAAE,QAAQ,EAAoB,MAAM,4BAA4B,CAAC;AAOxE,QAAA,MAAM,oBAAoB,IAAO,CAAC;AAWlC,UAAU,yBAAyB;IACjC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,mBAAmB,EAAE,MAAM,OAAO,CAAC;IACnC,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAID,0EAA0E;AAC1E,cAAM,mBAAoB,YAAW,gBAAgB;IAShC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAR1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,uBAAuB,CAAK;IACpC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;gBAEjB,MAAM,EAAE,yBAAyB;IAE9D,eAAe,QAAO,SAAS,aAAa,EAAE,CASnD;IAEK,iBAAiB,QAAO,OAAO,CAAS;IAExC,gBAAgB,QAAO,MAAM,GAAG,SAAS,CAM9C;IAEF;;;;OAIG;IACI,gBAAgB,QAAO,oBAAoB,CAUhD;IAEF,6FAA6F;IACtF,eAAe,GAAI,OAAO,SAAS,MAAM,EAAE,KAAG,SAAS,GAAG,UAAU,CAMzE;IAEK,WAAW,GAChB,OAAO,SAAS,MAAM,EAAE,KACvB,SAAS,aAAa,EAAE,GAAG,SAAS,CAyCrC;IAEF,OAAO,CAAC,aAAa,CAcnB;IAEF,OAAO,CAAC,cAAc,CAKpB;IAEF,OAAO,CAAC,cAAc,CAMpB;IAEF,OAAO,CAAC,cAAc,CAMnB;IAEH,OAAO,CAAC,SAAS,CACuC;IAExD,OAAO,CAAC,WAAW,CAIhB;IAEH,OAAO,CAAC,aAAa,CAEmC;IAExD,OAAO,CAAC,WAAW,CAEmC;IAEtD,OAAO,CAAC,YAAY,CAuBlB;CACH;AAED,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ /** How long a connect-time command may go unanswered before it is sent again. */
2
+ declare const LEPU_CONNECT_REPLY_TIMEOUT_MS = 1000;
3
+ /** Counts the tries of one connect-time command. */
4
+ declare class LepuConnectRetry {
5
+ private attempts;
6
+ /** Marks the first send of the command. */
7
+ started: () => void;
8
+ /** Whether the command may be sent again; counts that send when it may. */
9
+ mayRetry: () => boolean;
10
+ }
11
+ export { LEPU_CONNECT_REPLY_TIMEOUT_MS, LepuConnectRetry };
12
+ //# sourceMappingURL=lepu.connect-retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lepu.connect-retry.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.connect-retry.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,QAAA,MAAM,6BAA6B,OAAQ,CAAC;AAK5C,oDAAoD;AACpD,cAAM,gBAAgB;IACpB,OAAO,CAAC,QAAQ,CAAK;IAErB,2CAA2C;IACpC,OAAO,QAAO,IAAI,CAEvB;IAEF,2EAA2E;IACpE,QAAQ,QAAO,OAAO,CAQ3B;CACH;AAED,OAAO,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { ClockSyncOptions } from "../../../types/clock-sync";
2
- import { CommandSequencer } from "../../../types/command-sequencer";
2
+ import { CommandSequencer, CommandTimeoutResult } from "../../../types/command-sequencer";
3
3
  import { DeviceCommand } from "../../../types/device-command";
4
4
  import { LepuCommandBuilder } from "./lepu.command-builder";
5
5
  import { LepuDeviceInfo } from "./lepu.device-info";
@@ -30,13 +30,19 @@ interface LepuEcgTransferParams {
30
30
  declare class LepuEcgTransferSequencer implements CommandSequencer {
31
31
  private readonly params;
32
32
  private phase;
33
+ private readonly clockRetry;
33
34
  private transfer;
34
35
  private readonly identity;
35
36
  constructor(params: LepuEcgTransferParams);
36
37
  initialCommands: () => readonly DeviceCommand[];
37
38
  isHistoryTransfer: () => boolean;
39
+ commandTimeoutMs: () => number | undefined;
40
+ /** An unanswered clock is sent once more, then skipped; the stored files don't need it. */
41
+ onCommandTimeout: () => CommandTimeoutResult;
42
+ commandProgress: (frame: readonly string[]) => "ignored" | "complete";
38
43
  nextCommand: (frame: readonly string[]) => readonly DeviceCommand[] | undefined;
39
44
  private startClockOrTransfer;
45
+ private setTimeCommand;
40
46
  private finishClock;
41
47
  private startTransfer;
42
48
  private finishTransfer;
@@ -1 +1 @@
1
- {"version":3,"file":"lepu.ecg-transfer.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAGjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAoB,MAAM,sBAAsB,CAAC;AAKlE,UAAU,qBAAqB;IAC7B,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,SAAS,aAAa,EAAE,CAAC;IAC/C,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;KACpB,KAAK,IAAI,CAAC;CACZ;AAID,oFAAoF;AACpF,cAAM,wBAAyB,YAAW,gBAAgB;IAKrC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJ1C,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;gBAER,MAAM,EAAE,qBAAqB;IAa1D,eAAe,QAAO,SAAS,aAAa,EAAE,CACnB;IAE3B,iBAAiB,QAAO,OAAO,CAAS;IAExC,WAAW,GAChB,OAAO,SAAS,MAAM,EAAE,KACvB,SAAS,aAAa,EAAE,GAAG,SAAS,CAqBrC;IAEF,OAAO,CAAC,oBAAoB,CAgB1B;IAEF,OAAO,CAAC,WAAW,CAcjB;IAEF,OAAO,CAAC,aAAa,CAgBnB;IAEF,OAAO,CAAC,cAAc,CAUpB;IAEF,OAAO,CAAC,WAAW,CAMhB;CACJ;AAED,QAAA,MAAM,YAAY,GAAI,YAAY,gBAAgB,KAAG,MAAM,EAe1D,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,CAAC;AAClD,YAAY,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"lepu.ecg-transfer.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAGjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAoB,MAAM,sBAAsB,CAAC;AAKlE,UAAU,qBAAqB;IAC7B,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,SAAS,aAAa,EAAE,CAAC;IAC/C,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;KACpB,KAAK,IAAI,CAAC;CACZ;AAID,oFAAoF;AACpF,cAAM,wBAAyB,YAAW,gBAAgB;IAMrC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAL1C,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IACrD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;gBAER,MAAM,EAAE,qBAAqB;IAa1D,eAAe,QAAO,SAAS,aAAa,EAAE,CACnB;IAE3B,iBAAiB,QAAO,OAAO,CAAS;IAExC,gBAAgB,QAAO,MAAM,GAAG,SAAS,CAM9C;IAEF,2FAA2F;IACpF,gBAAgB,QAAO,oBAAoB,CAchD;IAEK,eAAe,GAAI,OAAO,SAAS,MAAM,EAAE,KAAG,SAAS,GAAG,UAAU,CAQzE;IAEK,WAAW,GAChB,OAAO,SAAS,MAAM,EAAE,KACvB,SAAS,aAAa,EAAE,GAAG,SAAS,CAqBrC;IAEF,OAAO,CAAC,oBAAoB,CAS1B;IAEF,OAAO,CAAC,cAAc,CAMnB;IAEH,OAAO,CAAC,WAAW,CAcjB;IAEF,OAAO,CAAC,aAAa,CAgBnB;IAEF,OAAO,CAAC,cAAc,CAUpB;IAEF,OAAO,CAAC,WAAW,CAMhB;CACJ;AAED,QAAA,MAAM,YAAY,GAAI,YAAY,gBAAgB,KAAG,MAAM,EAe1D,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,CAAC;AAClD,YAAY,EAAE,qBAAqB,EAAE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { ClockSyncOptions } from "../../../types/clock-sync";
2
- import { CommandSequencer } from "../../../types/command-sequencer";
2
+ import { CommandSequencer, CommandTimeoutResult } from "../../../types/command-sequencer";
3
3
  import { DeviceCommand } from "../../../types/device-command";
4
4
  import { LepuCommandBuilder } from "./lepu.command-builder";
5
5
  import { LepuDeviceInfo } from "./lepu.device-info";
@@ -35,10 +35,25 @@ export declare class LepuIdentityGate implements CommandSequencer {
35
35
  private isRefused;
36
36
  private pendingCommand;
37
37
  private pendingClockCommand;
38
+ private connectCommand;
39
+ private readonly connectRetry;
38
40
  constructor(params: LepuIdentityGateParams);
39
41
  initialCommands: () => readonly DeviceCommand[];
42
+ commandTimeoutMs: () => number | undefined;
43
+ /**
44
+ * A device just woken can drop its first command, so an unanswered connect command is sent
45
+ * once more. An unanswered clock is then skipped; an unanswered identity is left to the
46
+ * stuck watchdog, since a device that never says what it is cannot be addressed.
47
+ */
48
+ onCommandTimeout: () => CommandTimeoutResult;
49
+ /** Only the awaited connect reply settles its command; other frames leave the timeout running. */
50
+ commandProgress: (frame: readonly string[]) => "ignored" | "complete";
40
51
  nextCommand: (frame: readonly string[]) => readonly DeviceCommand[] | undefined;
41
52
  private nextClockCommand;
53
+ private askWhatItIs;
54
+ private awaitConnect;
55
+ /** The standard family's clock and identity steps; the oxygen and v2 protocols keep their own pacing. */
56
+ private awaitsConnectReply;
42
57
  /** Decides on the reply to the generic `GET_INFO` command. */
43
58
  private admit;
44
59
  /** Closes the gate for good. There is no state a refused device can be talked back from. */
@@ -1 +1 @@
1
- {"version":3,"file":"lepu.identity-gate.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.identity-gate.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAGjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAI9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAuB,MAAM,oBAAoB,CAAC;AAGzE,UAAU,sBAAsB;IAC9B,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAEpC,uCAAuC;IACvC,OAAO,EAAE,kBAAkB,CAAC;IAE5B,QAAQ,CAAC,EAAE,IAAI,GAAG,eAAe,CAAC;IAElC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE5C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAElC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B,8CAA8C;IAC9C,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAE9C,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,SAAS,aAAa,EAAE,GAAG,SAAS,CAAC;IAExD,iDAAiD;IACjD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAKD,sEAAsE;AACtE,qBAAa,gBAAiB,YAAW,gBAAgB;IAMpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAL1C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,mBAAmB,CAAqB;gBAEZ,MAAM,EAAE,sBAAsB;IAE3D,eAAe,QAAO,SAAS,aAAa,EAAE,CAyDnD;IAEK,WAAW,GAChB,OAAO,SAAS,MAAM,EAAE,KACvB,SAAS,aAAa,EAAE,GAAG,SAAS,CAkBrC;IAEF,OAAO,CAAC,gBAAgB,CAWtB;IAEF,8DAA8D;IAC9D,OAAO,CAAC,KAAK,CA4CX;IAEF,4FAA4F;IAC5F,OAAO,CAAC,MAAM,CAKZ;IAEF,+EAA+E;IAC/E,OAAO,CAAC,IAAI,CASJ;IAER,OAAO,CAAC,UAAU,CASf;IAEH,OAAO,CAAC,uBAAuB,CAyD7B;CACH"}
1
+ {"version":3,"file":"lepu.identity-gate.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.identity-gate.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAGjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAI9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAuB,MAAM,oBAAoB,CAAC;AAGzE,UAAU,sBAAsB;IAC9B,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAEpC,uCAAuC;IACvC,OAAO,EAAE,kBAAkB,CAAC;IAE5B,QAAQ,CAAC,EAAE,IAAI,GAAG,eAAe,CAAC;IAElC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE5C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAElC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B,8CAA8C;IAC9C,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAE9C,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,SAAS,aAAa,EAAE,GAAG,SAAS,CAAC;IAExD,iDAAiD;IACjD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAKD,sEAAsE;AACtE,qBAAa,gBAAiB,YAAW,gBAAgB;IAQpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAP1C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;gBAEnB,MAAM,EAAE,sBAAsB;IAE3D,eAAe,QAAO,SAAS,aAAa,EAAE,CAyDnD;IAEK,gBAAgB,QAAO,MAAM,GAAG,SAAS,CACwB;IAExE;;;;OAIG;IACI,gBAAgB,QAAO,oBAAoB,CAgBhD;IAEF,kGAAkG;IAC3F,eAAe,GAAI,OAAO,SAAS,MAAM,EAAE,KAAG,SAAS,GAAG,UAAU,CAI1D;IAEV,WAAW,GAChB,OAAO,SAAS,MAAM,EAAE,KACvB,SAAS,aAAa,EAAE,GAAG,SAAS,CAkBrC;IAEF,OAAO,CAAC,gBAAgB,CAUtB;IAEF,OAAO,CAAC,WAAW,CAIjB;IAEF,OAAO,CAAC,YAAY,CAKlB;IAEF,yGAAyG;IACzG,OAAO,CAAC,kBAAkB,CAIU;IAEpC,8DAA8D;IAC9D,OAAO,CAAC,KAAK,CA4CX;IAEF,4FAA4F;IAC5F,OAAO,CAAC,MAAM,CAKZ;IAEF,+EAA+E;IAC/E,OAAO,CAAC,IAAI,CASJ;IAER,OAAO,CAAC,UAAU,CASf;IAEH,OAAO,CAAC,uBAAuB,CAyD7B;CACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ovok/native",
3
- "version": "1.16.1-dev.2167+807acd2",
3
+ "version": "1.16.1-dev.2171+92aebf4",
4
4
  "description": "React native component sdk for OVOK",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",