@ovok/native 1.6.26 → 1.6.28

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 (143) hide show
  1. package/lib/commonjs/modules/bt-device/constants/supported-devices.js +1 -2
  2. package/lib/commonjs/modules/bt-device/constants/supported-devices.js.map +1 -1
  3. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +5 -1
  4. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  5. package/lib/commonjs/modules/bt-management/index.js +33 -0
  6. package/lib/commonjs/modules/bt-management/index.js.map +1 -1
  7. package/lib/commonjs/modules/bt-management/services/bt-manager.js +1 -0
  8. package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
  9. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-lepu.js +11 -1
  10. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-lepu.js.map +1 -1
  11. package/lib/commonjs/modules/bt-management/services/device-creator.js +2 -0
  12. package/lib/commonjs/modules/bt-management/services/device-creator.js.map +1 -1
  13. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj.command-sequencer.js +99 -0
  14. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj.command-sequencer.js.map +1 -0
  15. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj.device.js +135 -0
  16. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj.device.js.map +1 -0
  17. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj.frame-reader.js +67 -0
  18. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj.frame-reader.js.map +1 -0
  19. package/lib/commonjs/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js +47 -20
  20. package/lib/commonjs/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js.map +1 -1
  21. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +3 -2
  22. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  23. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.advertisement.js +33 -0
  24. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.advertisement.js.map +1 -0
  25. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.identity-gate.js +10 -0
  26. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.identity-gate.js.map +1 -1
  27. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js +43 -12
  28. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -1
  29. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js +1 -0
  30. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js.map +1 -1
  31. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.oximeters.js +36 -0
  32. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.oximeters.js.map +1 -1
  33. package/lib/commonjs/modules/bt-management/types/clock-sync.js +1 -0
  34. package/lib/commonjs/modules/bt-management/types/clock-sync.js.map +1 -1
  35. package/lib/commonjs/modules/bt-management/types/device-measurement-map.js.map +1 -1
  36. package/lib/module/modules/bt-device/constants/supported-devices.js +1 -2
  37. package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
  38. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +5 -1
  39. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  40. package/lib/module/modules/bt-management/index.js +3 -0
  41. package/lib/module/modules/bt-management/index.js.map +1 -1
  42. package/lib/module/modules/bt-management/services/bt-manager.js +1 -0
  43. package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
  44. package/lib/module/modules/bt-management/services/custom/compile-custom-lepu.js +11 -1
  45. package/lib/module/modules/bt-management/services/custom/compile-custom-lepu.js.map +1 -1
  46. package/lib/module/modules/bt-management/services/device-creator.js +2 -0
  47. package/lib/module/modules/bt-management/services/device-creator.js.map +1 -1
  48. package/lib/module/modules/bt-management/services/devices/aoj/aoj.command-sequencer.js +94 -0
  49. package/lib/module/modules/bt-management/services/devices/aoj/aoj.command-sequencer.js.map +1 -0
  50. package/lib/module/modules/bt-management/services/devices/aoj/aoj.device.js +129 -0
  51. package/lib/module/modules/bt-management/services/devices/aoj/aoj.device.js.map +1 -0
  52. package/lib/module/modules/bt-management/services/devices/aoj/aoj.frame-reader.js +62 -0
  53. package/lib/module/modules/bt-management/services/devices/aoj/aoj.frame-reader.js.map +1 -0
  54. package/lib/module/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js +46 -20
  55. package/lib/module/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js.map +1 -1
  56. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +4 -3
  57. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  58. package/lib/module/modules/bt-management/services/devices/lepu/lepu.advertisement.js +27 -0
  59. package/lib/module/modules/bt-management/services/devices/lepu/lepu.advertisement.js.map +1 -0
  60. package/lib/module/modules/bt-management/services/devices/lepu/lepu.identity-gate.js +10 -0
  61. package/lib/module/modules/bt-management/services/devices/lepu/lepu.identity-gate.js.map +1 -1
  62. package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js +43 -12
  63. package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -1
  64. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js +1 -0
  65. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js.map +1 -1
  66. package/lib/module/modules/bt-management/services/devices/viatom/viatom.oximeters.js +36 -0
  67. package/lib/module/modules/bt-management/services/devices/viatom/viatom.oximeters.js.map +1 -1
  68. package/lib/module/modules/bt-management/types/clock-sync.js +1 -0
  69. package/lib/module/modules/bt-management/types/clock-sync.js.map +1 -1
  70. package/lib/module/modules/bt-management/types/device-measurement-map.js.map +1 -1
  71. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  72. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  73. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +3 -0
  74. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
  75. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts +1 -0
  76. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  77. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts.map +1 -1
  78. package/lib/typescript/commonjs/src/modules/bt-management/services/device-creator.d.ts.map +1 -1
  79. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj.command-sequencer.d.ts +36 -0
  80. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj.command-sequencer.d.ts.map +1 -0
  81. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj.device.d.ts +27 -0
  82. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj.device.d.ts.map +1 -0
  83. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj.frame-reader.d.ts +11 -0
  84. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj.frame-reader.d.ts.map +1 -0
  85. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom-lepu-sequencer.d.ts +3 -2
  86. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom-lepu-sequencer.d.ts.map +1 -1
  87. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  88. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.advertisement.d.ts +7 -0
  89. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.advertisement.d.ts.map +1 -0
  90. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts +2 -0
  91. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts.map +1 -1
  92. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +10 -1
  93. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
  94. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts +0 -1
  95. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts.map +1 -1
  96. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts +0 -1
  97. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts.map +1 -1
  98. package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-children-props.d.ts +2 -0
  99. package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-children-props.d.ts.map +1 -1
  100. package/lib/typescript/commonjs/src/modules/bt-management/types/clock-sync.d.ts.map +1 -1
  101. package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts +2 -0
  102. package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
  103. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-lepu-spec.d.ts +4 -1
  104. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -1
  105. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts +2 -2
  106. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  107. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  108. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  109. package/lib/typescript/module/src/modules/bt-management/index.d.ts +3 -0
  110. package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
  111. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts +1 -0
  112. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  113. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts.map +1 -1
  114. package/lib/typescript/module/src/modules/bt-management/services/device-creator.d.ts.map +1 -1
  115. package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj.command-sequencer.d.ts +36 -0
  116. package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj.command-sequencer.d.ts.map +1 -0
  117. package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj.device.d.ts +27 -0
  118. package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj.device.d.ts.map +1 -0
  119. package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj.frame-reader.d.ts +11 -0
  120. package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj.frame-reader.d.ts.map +1 -0
  121. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom-lepu-sequencer.d.ts +3 -2
  122. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom-lepu-sequencer.d.ts.map +1 -1
  123. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  124. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.advertisement.d.ts +7 -0
  125. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.advertisement.d.ts.map +1 -0
  126. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts +2 -0
  127. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts.map +1 -1
  128. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +10 -1
  129. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
  130. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts +0 -1
  131. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts.map +1 -1
  132. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts +0 -1
  133. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts.map +1 -1
  134. package/lib/typescript/module/src/modules/bt-management/types/btprovider-children-props.d.ts +2 -0
  135. package/lib/typescript/module/src/modules/bt-management/types/btprovider-children-props.d.ts.map +1 -1
  136. package/lib/typescript/module/src/modules/bt-management/types/clock-sync.d.ts.map +1 -1
  137. package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts +2 -0
  138. package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
  139. package/lib/typescript/module/src/modules/bt-management/types/custom-lepu-spec.d.ts +4 -1
  140. package/lib/typescript/module/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -1
  141. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts +2 -2
  142. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  143. package/package.json +1 -1
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.buildAojFrame = exports.AojCommandSequencer = exports.AOJ_RESPONSE = exports.AOJ_COMMAND = void 0;
7
+ var _clockSync = require("../../../types/clock-sync.js");
8
+ var _hexToByte = require("../../../utils/hex-to-byte.js");
9
+ const COMMAND = exports.AOJ_COMMAND = {
10
+ SET_TIME: 0xd2,
11
+ GET_INFO: 0xd5,
12
+ GET_HISTORY: 0xd3,
13
+ CLEAR_HISTORY: 0xd4
14
+ };
15
+ const RESPONSE = exports.AOJ_RESPONSE = {
16
+ SET_TIME: 0xc2,
17
+ GET_INFO: 0xc5,
18
+ HISTORY: 0xc3,
19
+ CLEAR_HISTORY: 0xc4
20
+ };
21
+ const toHex = value => (value & 0xff).toString(16).padStart(2, "0");
22
+ const frameFor = (command, payload = []) => {
23
+ const frame = ["aa", "01", toHex(command), toHex(payload.length), ...payload.map(toHex)];
24
+ let checksum = 0;
25
+ for (let index = 1; index < frame.length; index++) {
26
+ checksum ^= (0, _hexToByte.hexToByte)(frame[index] ?? "00");
27
+ }
28
+ return [...frame, toHex(checksum)];
29
+ };
30
+ exports.buildAojFrame = frameFor;
31
+ /** Walks AOJ's clock, metadata, history and optional clear exchange. */
32
+ class AojCommandSequencer {
33
+ constructor(params) {
34
+ this.params = params;
35
+ this.phase = (0, _clockSync.isClockSyncEnabled)(params.clockSync) ? "clock" : "info";
36
+ }
37
+ initialCommands = () => [this.command(this.phase === "clock" ? COMMAND.SET_TIME : COMMAND.GET_INFO, this.phase === "clock" ? this.clockPayload() : [])];
38
+ isHistoryTransfer = () => true;
39
+ commandProgress = frame => {
40
+ const response = (0, _hexToByte.hexToByte)(frame[2] ?? "00");
41
+ if (this.phase === "clock") {
42
+ return response === RESPONSE.SET_TIME ? "complete" : "ignored";
43
+ }
44
+ if (this.phase === "info") {
45
+ return response === RESPONSE.GET_INFO ? "complete" : "ignored";
46
+ }
47
+ if (this.phase === "history") {
48
+ return response === RESPONSE.HISTORY ? "complete" : "ignored";
49
+ }
50
+ if (this.phase === "clear") {
51
+ return response === RESPONSE.CLEAR_HISTORY ? "complete" : "ignored";
52
+ }
53
+ return "ignored";
54
+ };
55
+ nextCommand = frame => {
56
+ const response = (0, _hexToByte.hexToByte)(frame[2] ?? "00");
57
+ if (this.phase === "clock" && response === RESPONSE.SET_TIME) {
58
+ this.phase = "info";
59
+ return [this.command(COMMAND.GET_INFO)];
60
+ }
61
+ if (this.phase === "info" && response === RESPONSE.GET_INFO) {
62
+ const firmwareVersion = (0, _hexToByte.hexToByte)(frame[6] ?? "00");
63
+ if (firmwareVersion > 0) {
64
+ this.phase = "history";
65
+ return [this.command(COMMAND.GET_HISTORY)];
66
+ }
67
+ return this.finishOrClear();
68
+ }
69
+ if (this.phase === "history" && response === RESPONSE.HISTORY) {
70
+ const payloadLength = (0, _hexToByte.hexToByte)(frame[3] ?? "00");
71
+ if (payloadLength < 7) {
72
+ return this.finishOrClear();
73
+ }
74
+ return [this.command(COMMAND.GET_HISTORY)];
75
+ }
76
+ if (this.phase === "clear" && response === RESPONSE.CLEAR_HISTORY) {
77
+ this.phase = "done";
78
+ }
79
+ return undefined;
80
+ };
81
+ finishOrClear = () => {
82
+ if (this.params.clearHistory) {
83
+ this.phase = "clear";
84
+ return [this.command(COMMAND.CLEAR_HISTORY)];
85
+ }
86
+ this.phase = "done";
87
+ return undefined;
88
+ };
89
+ command = (opcode, payload = []) => ({
90
+ ...this.params.write,
91
+ frame: frameFor(opcode, payload)
92
+ });
93
+ clockPayload = () => {
94
+ const parts = (0, _clockSync.getClockParts)(this.params.clockSync?.now?.() ?? new Date(), this.params.clockSync?.timezone);
95
+ return [parts.year - 2000, parts.month, parts.day, parts.hours, parts.minutes];
96
+ };
97
+ }
98
+ exports.AojCommandSequencer = AojCommandSequencer;
99
+ //# sourceMappingURL=aoj.command-sequencer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_clockSync","require","_hexToByte","COMMAND","exports","AOJ_COMMAND","SET_TIME","GET_INFO","GET_HISTORY","CLEAR_HISTORY","RESPONSE","AOJ_RESPONSE","HISTORY","toHex","value","toString","padStart","frameFor","command","payload","frame","length","map","checksum","index","hexToByte","buildAojFrame","AojCommandSequencer","constructor","params","phase","isClockSyncEnabled","clockSync","initialCommands","clockPayload","isHistoryTransfer","commandProgress","response","nextCommand","firmwareVersion","finishOrClear","payloadLength","undefined","clearHistory","opcode","write","parts","getClockParts","now","Date","timezone","year","month","day","hours","minutes"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/aoj/aoj.command-sequencer.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.parseRecordedAt = exports.decodeAojError = exports.aojMainServices = exports.Aoj20aDevice = void 0;
7
+ var _core = require("@ovok/core");
8
+ var _caseType = require("../../../types/case-type.js");
9
+ var _hexToByte = require("../../../utils/hex-to-byte.js");
10
+ var _btManagedDevice = require("../bt-managed-device.js");
11
+ var _aojCommandSequencer = require("./aoj.command-sequencer.js");
12
+ var _aojFrameReader = require("./aoj.frame-reader.js");
13
+ const BASE_UUID_SUFFIX = "-0000-1000-8000-00805f9b34fb";
14
+ const SERVICE = `0000ffe0${BASE_UUID_SUFFIX}`;
15
+ const NOTIFY = `0000ffe1${BASE_UUID_SUFFIX}`;
16
+ const WRITE = `0000ffe2${BASE_UUID_SUFFIX}`;
17
+ const STUCK_TIMEOUT_MS = 120_000;
18
+ const parseRecordedAt = frame => {
19
+ const year = 2000 + (0, _hexToByte.hexToByte)(frame[5] ?? "00");
20
+ const month = (0, _hexToByte.hexToByte)(frame[6] ?? "00");
21
+ const day = (0, _hexToByte.hexToByte)(frame[7] ?? "00");
22
+ const hours = (0, _hexToByte.hexToByte)(frame[8] ?? "00");
23
+ const minutes = (0, _hexToByte.hexToByte)(frame[9] ?? "00");
24
+ const recordedAt = new Date(year, month - 1, day, hours, minutes);
25
+ if (![year, month, day, hours, minutes].every(Number.isFinite) || recordedAt.getFullYear() !== year || recordedAt.getMonth() !== month - 1 || recordedAt.getDate() !== day || recordedAt.getHours() !== hours || recordedAt.getMinutes() !== minutes) {
26
+ return undefined;
27
+ }
28
+ return recordedAt;
29
+ };
30
+ exports.parseRecordedAt = parseRecordedAt;
31
+ const decodeAojError = code => {
32
+ const messages = {
33
+ 225: "ambient temperature out of range",
34
+ 226: "object temperature below range",
35
+ 227: "object temperature above range",
36
+ 228: "body temperature below range",
37
+ 229: "body temperature above range"
38
+ };
39
+ return messages[code];
40
+ };
41
+ exports.decodeAojError = decodeAojError;
42
+ const acceptEverything = {
43
+ caseValuePosition: [2],
44
+ cases: [{
45
+ caseValue: "c1",
46
+ caseType: _caseType.CaseType.RESULT,
47
+ measurementTypeKey: _core.MeasurementTypeKey.temperature,
48
+ parseDefinitions: [{
49
+ name: "bodyTemp",
50
+ parseType: "number",
51
+ byteIndexes: [4, 5],
52
+ customParserDefinition: value => Number.parseInt(value, 16) / 100
53
+ }]
54
+ }, {
55
+ caseValue: "c3",
56
+ caseType: _caseType.CaseType.RESULT,
57
+ measurementTypeKey: _core.MeasurementTypeKey.temperature,
58
+ minLengthBytes: 12,
59
+ parseDefinitions: [{
60
+ name: "bodyTemp",
61
+ parseType: "number",
62
+ byteIndexes: [10, 11],
63
+ customParserDefinition: value => Number.parseInt(value, 16) / 100
64
+ }]
65
+ }, {
66
+ caseValue: "ce",
67
+ caseType: _caseType.CaseType.RESULT,
68
+ measurementTypeKey: _core.MeasurementTypeKey.temperature,
69
+ parseDefinitions: [{
70
+ name: "errorCode",
71
+ parseType: "number",
72
+ byteIndexes: [4]
73
+ }]
74
+ }, ...["c2", "c4", "c5"].map(caseValue => ({
75
+ caseValue,
76
+ caseType: _caseType.CaseType.OTHER,
77
+ parseDefinitions: []
78
+ }))]
79
+ };
80
+ const aojMainServices = exports.aojMainServices = [{
81
+ uuid: SERVICE,
82
+ monitorUuids: [{
83
+ uuid: NOTIFY,
84
+ parsingModel: acceptEverything
85
+ }],
86
+ writeUuid: {
87
+ uuid: WRITE,
88
+ mainCommandUuid: "aa01d500d4"
89
+ }
90
+ }];
91
+ /** AOJ-20A driver with clock sync, offline history and named device errors. */
92
+ class Aoj20aDevice extends _btManagedDevice.BTManagedDevice {
93
+ mainServices = aojMainServices;
94
+ stuckDataTimeout = STUCK_TIMEOUT_MS;
95
+ onStreamStart = undefined;
96
+ frameReader = new _aojFrameReader.AojFrameReader();
97
+ constructor(device, params) {
98
+ super(device, params);
99
+ this.clearHistory = params.clearDeviceHistory === true;
100
+ this.clockSync = params.clockSync;
101
+ }
102
+ createCommandSequencer = () => new _aojCommandSequencer.AojCommandSequencer({
103
+ write: {
104
+ serviceUuid: SERVICE,
105
+ characteristicUuid: WRITE
106
+ },
107
+ clockSync: this.clockSync,
108
+ clearHistory: this.clearHistory
109
+ });
110
+ handleSuccessResult(successResult, collectedValues) {
111
+ const command = (0, _aojFrameReader.aojCommandByte)(collectedValues);
112
+ if (command === 0xce) {
113
+ const errorCode = successResult.errorCode;
114
+ const message = decodeAojError(errorCode ?? 0);
115
+ this.onError?.(new Error(`AOJ-20A: ${message ?? `device error ${errorCode}`}.`));
116
+ return;
117
+ }
118
+ if (command !== 0xc3) {
119
+ this.onResult?.(successResult);
120
+ return;
121
+ }
122
+ const recordedAt = parseRecordedAt(collectedValues);
123
+ if (!recordedAt) {
124
+ this.onError?.(new Error("AOJ-20A: invalid history timestamp."));
125
+ return;
126
+ }
127
+ this.onResult?.({
128
+ ...successResult,
129
+ recordedAt,
130
+ recordingId: `aoj-${collectedValues[4] ?? "00"}-${recordedAt.getTime()}`
131
+ });
132
+ }
133
+ }
134
+ exports.Aoj20aDevice = Aoj20aDevice;
135
+ //# sourceMappingURL=aoj.device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_core","require","_caseType","_hexToByte","_btManagedDevice","_aojCommandSequencer","_aojFrameReader","BASE_UUID_SUFFIX","SERVICE","NOTIFY","WRITE","STUCK_TIMEOUT_MS","parseRecordedAt","frame","year","hexToByte","month","day","hours","minutes","recordedAt","Date","every","Number","isFinite","getFullYear","getMonth","getDate","getHours","getMinutes","undefined","exports","decodeAojError","code","messages","acceptEverything","caseValuePosition","cases","caseValue","caseType","CaseType","RESULT","measurementTypeKey","MeasurementTypeKey","temperature","parseDefinitions","name","parseType","byteIndexes","customParserDefinition","value","parseInt","minLengthBytes","map","OTHER","aojMainServices","uuid","monitorUuids","parsingModel","writeUuid","mainCommandUuid","Aoj20aDevice","BTManagedDevice","mainServices","stuckDataTimeout","onStreamStart","frameReader","AojFrameReader","constructor","device","params","clearHistory","clearDeviceHistory","clockSync","createCommandSequencer","AojCommandSequencer","write","serviceUuid","characteristicUuid","handleSuccessResult","successResult","collectedValues","command","aojCommandByte","errorCode","message","onError","Error","onResult","recordingId","getTime"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/aoj/aoj.device.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.aojCommandByte = exports.AojFrameReader = void 0;
7
+ var _frameReadStatus = require("../../../types/frame-read-status.js");
8
+ var _hexToByte = require("../../../utils/hex-to-byte.js");
9
+ const START = "aa";
10
+ const DEVICE_TYPE = "01";
11
+ const COMMAND_INDEX = 2;
12
+ const LENGTH_INDEX = 3;
13
+ const HEADER_BYTES = 4;
14
+ const CHECKSUM_BYTES = 1;
15
+
16
+ /** Reads AOJ's `aa 01 command length payload xor` notifications. */
17
+ class AojFrameReader {
18
+ readFrame(buffer) {
19
+ const start = this.findStart(buffer);
20
+ if (start < 0) {
21
+ return {
22
+ status: _frameReadStatus.FrameReadStatus.INCOMPLETE,
23
+ consumedBytes: Math.max(0, buffer.length - 1)
24
+ };
25
+ }
26
+ const payloadLength = (0, _hexToByte.hexToByte)(buffer[start + LENGTH_INDEX] ?? "00");
27
+ const frameLength = HEADER_BYTES + payloadLength + CHECKSUM_BYTES;
28
+ if (start + frameLength > buffer.length) {
29
+ return {
30
+ status: _frameReadStatus.FrameReadStatus.INCOMPLETE,
31
+ consumedBytes: start
32
+ };
33
+ }
34
+ const frame = buffer.slice(start, start + frameLength);
35
+ if (!this.hasValidChecksum(frame)) {
36
+ return {
37
+ status: _frameReadStatus.FrameReadStatus.CORRUPT,
38
+ consumedBytes: start + 2
39
+ };
40
+ }
41
+ return {
42
+ status: _frameReadStatus.FrameReadStatus.COMPLETE,
43
+ consumedBytes: start + frameLength,
44
+ frame
45
+ };
46
+ }
47
+ findStart(buffer) {
48
+ for (let index = 0; index + 1 < buffer.length; index++) {
49
+ if (buffer[index]?.toLowerCase() === START && buffer[index + 1]?.toLowerCase() === DEVICE_TYPE) {
50
+ return index;
51
+ }
52
+ }
53
+ return -1;
54
+ }
55
+ hasValidChecksum(frame) {
56
+ const checksumIndex = frame.length - CHECKSUM_BYTES;
57
+ let checksum = 0;
58
+ for (let index = 1; index < checksumIndex; index++) {
59
+ checksum ^= (0, _hexToByte.hexToByte)(frame[index] ?? "00");
60
+ }
61
+ return checksum === (0, _hexToByte.hexToByte)(frame[checksumIndex] ?? "00");
62
+ }
63
+ }
64
+ exports.AojFrameReader = AojFrameReader;
65
+ const aojCommandByte = frame => (0, _hexToByte.hexToByte)(frame[COMMAND_INDEX] ?? "00");
66
+ exports.aojCommandByte = aojCommandByte;
67
+ //# sourceMappingURL=aoj.frame-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_frameReadStatus","require","_hexToByte","START","DEVICE_TYPE","COMMAND_INDEX","LENGTH_INDEX","HEADER_BYTES","CHECKSUM_BYTES","AojFrameReader","readFrame","buffer","start","findStart","status","FrameReadStatus","INCOMPLETE","consumedBytes","Math","max","length","payloadLength","hexToByte","frameLength","frame","slice","hasValidChecksum","CORRUPT","COMPLETE","index","toLowerCase","checksumIndex","checksum","exports","aojCommandByte"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/aoj/aoj.frame-reader.ts"],"mappings":";;;;;;AACA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAEA,MAAME,KAAK,GAAG,IAAI;AAClB,MAAMC,WAAW,GAAG,IAAI;AACxB,MAAMC,aAAa,GAAG,CAAC;AACvB,MAAMC,YAAY,GAAG,CAAC;AACtB,MAAMC,YAAY,GAAG,CAAC;AACtB,MAAMC,cAAc,GAAG,CAAC;;AAExB;AACA,MAAMC,cAAc,CAAwB;EACnCC,SAASA,CAACC,MAAyB,EAAmB;IAC3D,MAAMC,KAAK,GAAG,IAAI,CAACC,SAAS,CAACF,MAAM,CAAC;IAEpC,IAAIC,KAAK,GAAG,CAAC,EAAE;MACb,OAAO;QACLE,MAAM,EAAEC,gCAAe,CAACC,UAAU;QAClCC,aAAa,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAER,MAAM,CAACS,MAAM,GAAG,CAAC;MAC9C,CAAC;IACH;IAEA,MAAMC,aAAa,GAAG,IAAAC,oBAAS,EAACX,MAAM,CAACC,KAAK,GAAGN,YAAY,CAAC,IAAI,IAAI,CAAC;IACrE,MAAMiB,WAAW,GAAGhB,YAAY,GAAGc,aAAa,GAAGb,cAAc;IAEjE,IAAII,KAAK,GAAGW,WAAW,GAAGZ,MAAM,CAACS,MAAM,EAAE;MACvC,OAAO;QAAEN,MAAM,EAAEC,gCAAe,CAACC,UAAU;QAAEC,aAAa,EAAEL;MAAM,CAAC;IACrE;IAEA,MAAMY,KAAK,GAAGb,MAAM,CAACc,KAAK,CAACb,KAAK,EAAEA,KAAK,GAAGW,WAAW,CAAC;IAEtD,IAAI,CAAC,IAAI,CAACG,gBAAgB,CAACF,KAAK,CAAC,EAAE;MACjC,OAAO;QACLV,MAAM,EAAEC,gCAAe,CAACY,OAAO;QAC/BV,aAAa,EAAEL,KAAK,GAAG;MACzB,CAAC;IACH;IAEA,OAAO;MACLE,MAAM,EAAEC,gCAAe,CAACa,QAAQ;MAChCX,aAAa,EAAEL,KAAK,GAAGW,WAAW;MAClCC;IACF,CAAC;EACH;EAEQX,SAASA,CAACF,MAAyB,EAAU;IACnD,KAAK,IAAIkB,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAG,CAAC,GAAGlB,MAAM,CAACS,MAAM,EAAES,KAAK,EAAE,EAAE;MACtD,IACElB,MAAM,CAACkB,KAAK,CAAC,EAAEC,WAAW,CAAC,CAAC,KAAK3B,KAAK,IACtCQ,MAAM,CAACkB,KAAK,GAAG,CAAC,CAAC,EAAEC,WAAW,CAAC,CAAC,KAAK1B,WAAW,EAChD;QACA,OAAOyB,KAAK;MACd;IACF;IAEA,OAAO,CAAC,CAAC;EACX;EAEQH,gBAAgBA,CAACF,KAAwB,EAAW;IAC1D,MAAMO,aAAa,GAAGP,KAAK,CAACJ,MAAM,GAAGZ,cAAc;IACnD,IAAIwB,QAAQ,GAAG,CAAC;IAEhB,KAAK,IAAIH,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGE,aAAa,EAAEF,KAAK,EAAE,EAAE;MAClDG,QAAQ,IAAI,IAAAV,oBAAS,EAACE,KAAK,CAACK,KAAK,CAAC,IAAI,IAAI,CAAC;IAC7C;IAEA,OAAOG,QAAQ,KAAK,IAAAV,oBAAS,EAACE,KAAK,CAACO,aAAa,CAAC,IAAI,IAAI,CAAC;EAC7D;AACF;AAACE,OAAA,CAAAxB,cAAA,GAAAA,cAAA;AAED,MAAMyB,cAAc,GAAIV,KAAwB,IAC9C,IAAAF,oBAAS,EAACE,KAAK,CAACnB,aAAa,CAAC,IAAI,IAAI,CAAC;AAAC4B,OAAA,CAAAC,cAAA,GAAAA,cAAA","ignoreList":[]}
@@ -3,10 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.recordLepuIdentity = exports.createLepuSequencer = void 0;
6
+ exports.selectLepu = exports.recordLepuIdentity = exports.createLepuSequencer = void 0;
7
7
  var _sentryLogger = require("../../../../helpers/utils/sentry-logger.js");
8
+ var _lepuAdvertisement = require("../lepu/lepu.advertisement.js");
8
9
  var _lepuCommandBuilder = require("../lepu/lepu.command-builder.js");
9
10
  var _lepuIdentityGate = require("../lepu/lepu.identity-gate.js");
11
+ var _lepuTransports = require("../lepu/lepu.transports.js");
10
12
  /** Registration guarantees at least one start byte; this keeps the indexed read total. */
11
13
  const DEFAULT_START_BYTE = "a5";
12
14
  /**
@@ -38,24 +40,49 @@ const recordLepuIdentity = (deviceData, info) => {
38
40
  });
39
41
  };
40
42
  exports.recordLepuIdentity = recordLepuIdentity;
41
- const createLepuSequencer = (lepu, report, clockSync) => new _lepuIdentityGate.LepuIdentityGate({
42
- write: {
43
- serviceUuid: lepu.write.serviceUuid,
44
- characteristicUuid: lepu.write.characteristicUuid
45
- },
46
- builder: new _lepuCommandBuilder.LepuCommandBuilder(lepu.requestStartByte ?? lepu.startBytes[0] ?? DEFAULT_START_BYTE, {
47
- fixedSequence: lepu.protocol === "viatom-oxygen"
48
- }),
49
- protocol: lepu.protocol,
50
- writeWithoutResponse: lepu.writeWithoutResponse,
51
- setClockBeforeInfo: lepu.setClockBeforeInfo,
52
- clockSync,
53
- expectedDeviceTypes: lepu.expectedDeviceTypes,
54
- ...(lepu.pollCommand === undefined ? {} : {
55
- pollCommand: lepu.pollCommand
56
- }),
57
- onIdentified: report.onIdentified,
58
- onRefused: report.onRefused
59
- });
43
+ const createLepuSequencer = (lepu, report, clockSync, manufacturerData) => {
44
+ const selected = selectLepu(lepu, manufacturerData);
45
+ return new _lepuIdentityGate.LepuIdentityGate({
46
+ write: {
47
+ serviceUuid: selected.write.serviceUuid,
48
+ characteristicUuid: selected.write.characteristicUuid
49
+ },
50
+ builder: new _lepuCommandBuilder.LepuCommandBuilder(selected.requestStartByte ?? selected.startBytes[0] ?? DEFAULT_START_BYTE, {
51
+ fixedSequence: selected.protocol === "viatom-oxygen"
52
+ }),
53
+ protocol: selected.protocol,
54
+ writeWithoutResponse: selected.writeWithoutResponse,
55
+ setClockBeforeInfo: selected.setClockBeforeInfo,
56
+ clockSync,
57
+ expectedDeviceTypes: selected.expectedDeviceTypes,
58
+ ...(selected.pollCommand === undefined ? {} : {
59
+ pollCommand: selected.pollCommand
60
+ }),
61
+ manufacturerData,
62
+ rejectEncryptionAtBytes: selected.rejectEncryptionAtBytes,
63
+ onIdentified: report.onIdentified,
64
+ onRefused: report.onRefused
65
+ });
66
+ };
60
67
  exports.createLepuSequencer = createLepuSequencer;
68
+ const selectLepu = (lepu, manufacturerData) => {
69
+ if (lepu.manufacturerDataProtocol !== "viatom-oxygen" || !(0, _lepuAdvertisement.viatomOxygenUsesV2)(manufacturerData)) {
70
+ return lepu;
71
+ }
72
+ const transport = _lepuTransports.lepuTransports.aw1;
73
+ return {
74
+ ...lepu,
75
+ protocol: "v2",
76
+ startBytes: ["a5"],
77
+ requestStartByte: "a5",
78
+ write: {
79
+ serviceUuid: transport.serviceUuid,
80
+ characteristicUuid: transport.writeUuid
81
+ },
82
+ pollCommand: 0x02,
83
+ writeWithoutResponse: true,
84
+ setClockBeforeInfo: false
85
+ };
86
+ };
87
+ exports.selectLepu = selectLepu;
61
88
  //# sourceMappingURL=custom-lepu-sequencer.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_sentryLogger","require","_lepuCommandBuilder","_lepuIdentityGate","DEFAULT_START_BYTE","recordLepuIdentity","deviceData","info","sn","serialNumber","sentryLogger","deviceId","id","deviceName","name","deviceType","branchCode","protocolMaxLength","exports","createLepuSequencer","lepu","report","clockSync","LepuIdentityGate","write","serviceUuid","characteristicUuid","builder","LepuCommandBuilder","requestStartByte","startBytes","fixedSequence","protocol","writeWithoutResponse","setClockBeforeInfo","expectedDeviceTypes","pollCommand","undefined","onIdentified","onRefused"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/custom/custom-lepu-sequencer.ts"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAKA,IAAAC,mBAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AAEA;AACA,MAAMG,kBAAkB,GAAG,IAAI;AAO/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAGA,CACzBC,UAAsB,EACtBC,IAAoB,KACX;EACTD,UAAU,CAACE,EAAE,GAAGD,IAAI,CAACE,YAAY;EAEjC,IAAAC,0BAAY,EAAC,MAAM,EAAE,sCAAsC,EAAE;IAC3DC,QAAQ,EAAEL,UAAU,CAACM,EAAE;IACvBC,UAAU,EAAEP,UAAU,CAACQ,IAAI;IAC3BC,UAAU,EAAER,IAAI,CAACQ,UAAU;IAC3BC,UAAU,EAAET,IAAI,CAACS,UAAU;IAC3BC,iBAAiB,EAAEV,IAAI,CAACU;EAC1B,CAAC,CAAC;AACJ,CAAC;AAACC,OAAA,CAAAb,kBAAA,GAAAA,kBAAA;AAEF,MAAMc,mBAAmB,GAAGA,CAC1BC,IAAoB,EACpBC,MAAsB,EACtBC,SAA4B,KAE5B,IAAIC,kCAAgB,CAAC;EACnBC,KAAK,EAAE;IACLC,WAAW,EAAEL,IAAI,CAACI,KAAK,CAACC,WAAW;IACnCC,kBAAkB,EAAEN,IAAI,CAACI,KAAK,CAACE;EACjC,CAAC;EACDC,OAAO,EAAE,IAAIC,sCAAkB,CAACR,IAAI,CAACS,gBAAgB,IAAIT,IAAI,CAACU,UAAU,CAAC,CAAC,CAAC,IAAI1B,kBAAkB,EAAE;IACjG2B,aAAa,EAAEX,IAAI,CAACY,QAAQ,KAAK;EACnC,CAAC,CAAC;EACFA,QAAQ,EAAEZ,IAAI,CAACY,QAAQ;EACvBC,oBAAoB,EAAEb,IAAI,CAACa,oBAAoB;EAC/CC,kBAAkB,EAAEd,IAAI,CAACc,kBAAkB;EAC3CZ,SAAS;EACTa,mBAAmB,EAAEf,IAAI,CAACe,mBAAmB;EAC7C,IAAIf,IAAI,CAACgB,WAAW,KAAKC,SAAS,GAAG,CAAC,CAAC,GAAG;IAAED,WAAW,EAAEhB,IAAI,CAACgB;EAAY,CAAC,CAAC;EAC5EE,YAAY,EAAEjB,MAAM,CAACiB,YAAY;EACjCC,SAAS,EAAElB,MAAM,CAACkB;AACpB,CAAC,CAAC;AAACrB,OAAA,CAAAC,mBAAA,GAAAA,mBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_sentryLogger","require","_lepuAdvertisement","_lepuCommandBuilder","_lepuIdentityGate","_lepuTransports","DEFAULT_START_BYTE","recordLepuIdentity","deviceData","info","sn","serialNumber","sentryLogger","deviceId","id","deviceName","name","deviceType","branchCode","protocolMaxLength","exports","createLepuSequencer","lepu","report","clockSync","manufacturerData","selected","selectLepu","LepuIdentityGate","write","serviceUuid","characteristicUuid","builder","LepuCommandBuilder","requestStartByte","startBytes","fixedSequence","protocol","writeWithoutResponse","setClockBeforeInfo","expectedDeviceTypes","pollCommand","undefined","rejectEncryptionAtBytes","onIdentified","onRefused","manufacturerDataProtocol","viatomOxygenUsesV2","transport","lepuTransports","aw1","writeUuid"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/custom/custom-lepu-sequencer.ts"],"mappings":"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","ignoreList":[]}
@@ -36,7 +36,8 @@ class CustomDevice extends _btManagedDevice.BTManagedDevice {
36
36
  this.definition = definition;
37
37
  this.deviceData.clockSync = definition.clockSync;
38
38
  this.deliveredEcgFileNames = new Set(params.deliveredEcgFileNames ?? []);
39
- this.mainServices = definition.mainServices;
39
+ const selectedLepu = definition.lepu ? (0, _customLepuSequencer.selectLepu)(definition.lepu, device.manufacturerData ?? undefined) : undefined;
40
+ this.mainServices = selectedLepu?.manufacturerDataProtocol === "viatom-oxygen" ? definition.mainServices.filter(service => service.uuid === selectedLepu.write.serviceUuid) : definition.mainServices;
40
41
  this.stuckDataTimeout = definition.stuckDataTimeout;
41
42
  this.reportsBondedEvent = definition.reportsBondedEvent === true;
42
43
  if (definition.preferredMtu !== undefined) {
@@ -95,7 +96,7 @@ class CustomDevice extends _btManagedDevice.BTManagedDevice {
95
96
  return (0, _customLepuSequencer.createLepuSequencer)(lepu, {
96
97
  onIdentified: this.onIdentified,
97
98
  onRefused: this.onIdentityRefused
98
- }, clockSync);
99
+ }, clockSync, this.device.manufacturerData ?? undefined);
99
100
  };
100
101
  }
101
102
  reportViatomEcgFile = file => {
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","_caseType","_createFrameValidator","_parseMeasurement","_rejectCustomReading","_btManagedDevice","_lepuCommandBuilder","_lepuEcgTransfer","_lepuFrameReader","_viatomEcgFiles","_customLepuSequencer","CustomDevice","BTManagedDevice","validators","Map","constructor","device","params","definition","oneReadingPerConnection","deviceData","clockSync","deliveredEcgFileNames","Set","mainServices","stuckDataTimeout","reportsBondedEvent","preferredMtu","undefined","declareLepuProtocol","frames","forEach","frame","uuid","set","createFrameValidator","lepu","frameReader","LepuFrameReader","startBytes","createCommandSequencer","fileTransfer","LepuEcgTransferSequencer","write","serviceUuid","characteristicUuid","builder","LepuCommandBuilder","expectedDeviceTypes","onIdentified","onRefused","onIdentityRefused","onFile","reportViatomEcgFile","skipFiles","acceptFile","name","ecgFileDecoder","test","afterTransfer","pollCommand","build","onError","reason","Error","onProgress","progress","onConnectionEvent","kind","current","receivedBytes","total","totalBytes","createLepuSequencer","file","decoded","decodeViatomEcgRecording","content","samples","length","onResult","measurementTypeKey","MeasurementTypeKey","ecg","caseType","CaseType","RESULT","diagramPoints","duration","recordedAt","recordedAtFromViatomFileName","recordingId","info","recordLepuIdentity","id","validatePackage","pkg","validate","get","String","toLowerCase","handleDependentResult","data","shouldReportDependentResult","reportFrame","error","parsingCase","OTHER","_data","handleSuccessResult","decorateReading","reading","recordOffset","repeated","repeatedRecords","report","parsedData","records","Math","floor","from","recordBytes","record","parseMeasurement","measurements","discard","measurement","reportMeasurement","discardedReadingError","fieldNames","rejection","map","rejectCustomReading","fields","find","message","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/custom/custom.device.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","_caseType","_createFrameValidator","_parseMeasurement","_rejectCustomReading","_btManagedDevice","_lepuCommandBuilder","_lepuEcgTransfer","_lepuFrameReader","_viatomEcgFiles","_customLepuSequencer","CustomDevice","BTManagedDevice","validators","Map","constructor","device","params","definition","oneReadingPerConnection","deviceData","clockSync","deliveredEcgFileNames","Set","selectedLepu","lepu","selectLepu","manufacturerData","undefined","mainServices","manufacturerDataProtocol","filter","service","uuid","write","serviceUuid","stuckDataTimeout","reportsBondedEvent","preferredMtu","declareLepuProtocol","frames","forEach","frame","set","createFrameValidator","frameReader","LepuFrameReader","startBytes","createCommandSequencer","fileTransfer","LepuEcgTransferSequencer","characteristicUuid","builder","LepuCommandBuilder","expectedDeviceTypes","onIdentified","onRefused","onIdentityRefused","onFile","reportViatomEcgFile","skipFiles","acceptFile","name","ecgFileDecoder","test","afterTransfer","pollCommand","build","onError","reason","Error","onProgress","progress","onConnectionEvent","kind","current","receivedBytes","total","totalBytes","createLepuSequencer","file","decoded","decodeViatomEcgRecording","content","samples","length","onResult","measurementTypeKey","MeasurementTypeKey","ecg","caseType","CaseType","RESULT","diagramPoints","duration","recordedAt","recordedAtFromViatomFileName","recordingId","info","recordLepuIdentity","id","validatePackage","pkg","validate","get","String","toLowerCase","handleDependentResult","data","shouldReportDependentResult","reportFrame","error","parsingCase","OTHER","_data","handleSuccessResult","decorateReading","reading","recordOffset","repeated","repeatedRecords","report","parsedData","records","Math","floor","from","recordBytes","record","parseMeasurement","measurements","discard","measurement","reportMeasurement","discardedReadingError","fieldNames","rejection","map","rejectCustomReading","fields","find","message","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/custom/custom.device.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.viatomOxygenUsesV2 = exports.manufacturerBytes = exports.advertisementRequiresEncryption = void 0;
7
+ var _base64ToHex = require("../../../utils/base-64-to-hex.js");
8
+ var _hexToByte = require("../../../utils/hex-to-byte.js");
9
+ const PROTOCOL_MASK = 0x0f;
10
+ const ENCRYPTION_MASK = 0xf0;
11
+ const ENCRYPTION_REQUIRED = 0x20;
12
+ const VIATOM_OXYGEN_V2_BYTES = [3, 4];
13
+ const manufacturerBytes = manufacturerData => {
14
+ if (!manufacturerData) {
15
+ return [];
16
+ }
17
+ try {
18
+ return (0, _base64ToHex.base64ToHex)(manufacturerData).map(_hexToByte.hexToByte);
19
+ } catch {
20
+ return [];
21
+ }
22
+ };
23
+ exports.manufacturerBytes = manufacturerBytes;
24
+ const manufacturerByte = (manufacturerData, index) => manufacturerBytes(manufacturerData)[index];
25
+
26
+ /** Returns true when the advertised byte says that only encrypted traffic is accepted. */
27
+ const advertisementRequiresEncryption = (manufacturerData, byteIndexes = []) => byteIndexes.some(index => ((manufacturerByte(manufacturerData, index) ?? 0) & ENCRYPTION_MASK) === ENCRYPTION_REQUIRED);
28
+
29
+ /** The vendor uses the low nibble of byte 3 or 4 to select the OxyII service. */
30
+ exports.advertisementRequiresEncryption = advertisementRequiresEncryption;
31
+ const viatomOxygenUsesV2 = manufacturerData => VIATOM_OXYGEN_V2_BYTES.some(index => ((manufacturerByte(manufacturerData, index) ?? 0) & PROTOCOL_MASK) === 2);
32
+ exports.viatomOxygenUsesV2 = viatomOxygenUsesV2;
33
+ //# sourceMappingURL=lepu.advertisement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_base64ToHex","require","_hexToByte","PROTOCOL_MASK","ENCRYPTION_MASK","ENCRYPTION_REQUIRED","VIATOM_OXYGEN_V2_BYTES","manufacturerBytes","manufacturerData","base64ToHex","map","hexToByte","exports","manufacturerByte","index","advertisementRequiresEncryption","byteIndexes","some","viatomOxygenUsesV2"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.advertisement.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,MAAME,aAAa,GAAG,IAAI;AAC1B,MAAMC,eAAe,GAAG,IAAI;AAC5B,MAAMC,mBAAmB,GAAG,IAAI;AAChC,MAAMC,sBAAsB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAU;AAE9C,MAAMC,iBAAiB,GAAIC,gBAAyB,IAAe;EACjE,IAAI,CAACA,gBAAgB,EAAE;IACrB,OAAO,EAAE;EACX;EAEA,IAAI;IACF,OAAO,IAAAC,wBAAW,EAACD,gBAAgB,CAAC,CAACE,GAAG,CAACC,oBAAS,CAAC;EACrD,CAAC,CAAC,MAAM;IACN,OAAO,EAAE;EACX;AACF,CAAC;AAACC,OAAA,CAAAL,iBAAA,GAAAA,iBAAA;AAEF,MAAMM,gBAAgB,GAAGA,CACvBL,gBAAoC,EACpCM,KAAa,KACUP,iBAAiB,CAACC,gBAAgB,CAAC,CAACM,KAAK,CAAC;;AAEnE;AACA,MAAMC,+BAA+B,GAAGA,CACtCP,gBAAoC,EACpCQ,WAA8B,GAAG,EAAE,KAEnCA,WAAW,CAACC,IAAI,CACbH,KAAK,IACJ,CAAC,CAACD,gBAAgB,CAACL,gBAAgB,EAAEM,KAAK,CAAC,IAAI,CAAC,IAAIV,eAAe,MACnEC,mBACJ,CAAC;;AAEH;AAAAO,OAAA,CAAAG,+BAAA,GAAAA,+BAAA;AACA,MAAMG,kBAAkB,GAAIV,gBAAyB,IACnDF,sBAAsB,CAACW,IAAI,CACxBH,KAAK,IACJ,CAAC,CAACD,gBAAgB,CAACL,gBAAgB,EAAEM,KAAK,CAAC,IAAI,CAAC,IAAIX,aAAa,MAAM,CAC3E,CAAC;AAACS,OAAA,CAAAM,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.LepuIdentityGate = void 0;
7
7
  var _clockSync = require("../../../types/clock-sync.js");
8
8
  var _hexToByte = require("../../../utils/hex-to-byte.js");
9
+ var _lepuAdvertisement = require("./lepu.advertisement.js");
9
10
  var _lepuCommands = require("./lepu.commands.js");
10
11
  var _lepuDeviceInfo = require("./lepu.device-info.js");
11
12
  var _lepuResponseType = require("./lepu.response-type.js");
@@ -22,6 +23,15 @@ class LepuIdentityGate {
22
23
  this.params = params;
23
24
  }
24
25
  initialCommands = () => {
26
+ if ((0, _lepuAdvertisement.advertisementRequiresEncryption)(this.params.manufacturerData, this.params.rejectEncryptionAtBytes)) {
27
+ return this.refuse("the advertisement requires encrypted communication, which this SDK does not support") ?? [];
28
+ }
29
+ if (this.params.protocol === "v2") {
30
+ const command = this.params.pollCommand ?? 0x02;
31
+ this.pendingCommand = command;
32
+ this.isIdentified = true;
33
+ return [this.commandFor(command)];
34
+ }
25
35
  if (this.params.protocol === "viatom-oxygen") {
26
36
  const setClock = this.params.setClockBeforeInfo && (0, _clockSync.isClockSyncEnabled)(this.params.clockSync);
27
37
  const command = setClock ? this.commandFor(0x16, oxyClockPayload(this.params.clockSync)) : this.commandFor(VIATOM_OXYGEN_INFO);
@@ -1 +1 @@
1
- {"version":3,"names":["_clockSync","require","_hexToByte","_lepuCommands","_lepuDeviceInfo","_lepuResponseType","COMMAND_INDEX","VIATOM_OXYGEN_INFO","LepuIdentityGate","isIdentified","isRefused","constructor","params","initialCommands","protocol","setClock","setClockBeforeInfo","isClockSyncEnabled","clockSync","command","commandFor","oxyClockPayload","pendingCommand","LepuCommand","GET_INFO","nextCommand","frame","nextViatomOxygenCommand","undefined","poll","admit","hexToByte","isLepuSuccess","refuse","describeLepuResponseType","info","parseLepuDeviceInfo","onIdentified","pollCommand","onAdmitted","isNarrowed","expectedDeviceTypes","length","includes","deviceType","branchCode","reason","onRefused","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","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","_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","LepuCommand","GET_INFO","nextCommand","frame","nextViatomOxygenCommand","undefined","poll","admit","hexToByte","isLepuSuccess","describeLepuResponseType","info","parseLepuDeviceInfo","onIdentified","onAdmitted","isNarrowed","expectedDeviceTypes","length","includes","deviceType","branchCode","reason","onRefused","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","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":[]}