@ovok/native 1.6.55 → 1.7.0

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 (176) hide show
  1. package/lib/commonjs/modules/bt-device/constants/device-instruction-pdfs.js +2 -1
  2. package/lib/commonjs/modules/bt-device/constants/device-instruction-pdfs.js.map +1 -1
  3. package/lib/commonjs/modules/bt-device/constants/device-list-items.js +7 -0
  4. package/lib/commonjs/modules/bt-device/constants/device-list-items.js.map +1 -1
  5. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-assets.js +3 -1
  6. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-assets.js.map +1 -1
  7. package/lib/commonjs/modules/bt-device/constants/supported-devices.js +11 -2
  8. package/lib/commonjs/modules/bt-device/constants/supported-devices.js.map +1 -1
  9. package/lib/commonjs/modules/bt-management/core/resolve-device-key.js +6 -1
  10. package/lib/commonjs/modules/bt-management/core/resolve-device-key.js.map +1 -1
  11. package/lib/commonjs/modules/bt-management/index.js +48 -0
  12. package/lib/commonjs/modules/bt-management/index.js.map +1 -1
  13. package/lib/commonjs/modules/bt-management/services/bt-manager.js +9 -17
  14. package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
  15. package/lib/commonjs/modules/bt-management/services/device-classes.js +3 -1
  16. package/lib/commonjs/modules/bt-management/services/device-classes.js.map +1 -1
  17. package/lib/commonjs/modules/bt-management/services/device-creator.js +9 -7
  18. package/lib/commonjs/modules/bt-management/services/device-creator.js.map +1 -1
  19. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.device.js +1 -7
  20. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.device.js.map +1 -1
  21. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js +1 -5
  22. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js.map +1 -1
  23. package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js +2 -8
  24. package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js.map +1 -1
  25. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js +17 -31
  26. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  27. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js +1 -1
  28. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  29. package/lib/commonjs/modules/bt-management/services/devices/bt-device-information.js +2 -3
  30. package/lib/commonjs/modules/bt-management/services/devices/bt-device-information.js.map +1 -1
  31. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +8 -24
  32. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  33. package/lib/commonjs/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js +0 -3
  34. package/lib/commonjs/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js.map +1 -1
  35. package/lib/commonjs/modules/bt-management/services/devices/trasense/s9-advertisement.js +31 -0
  36. package/lib/commonjs/modules/bt-management/services/devices/trasense/s9-advertisement.js.map +1 -0
  37. package/lib/commonjs/modules/bt-management/services/devices/trasense/s9-frame-reader.js +27 -0
  38. package/lib/commonjs/modules/bt-management/services/devices/trasense/s9-frame-reader.js.map +1 -0
  39. package/lib/commonjs/modules/bt-management/services/devices/trasense/s9.command-sequencer.js +340 -0
  40. package/lib/commonjs/modules/bt-management/services/devices/trasense/s9.command-sequencer.js.map +1 -0
  41. package/lib/commonjs/modules/bt-management/services/devices/trasense/s9.device.js +74 -0
  42. package/lib/commonjs/modules/bt-management/services/devices/trasense/s9.device.js.map +1 -0
  43. package/lib/commonjs/modules/bt-management/types/clock-sync.js +1 -0
  44. package/lib/commonjs/modules/bt-management/types/clock-sync.js.map +1 -1
  45. package/lib/commonjs/modules/bt-management/types/integrated-devices.js +1 -0
  46. package/lib/commonjs/modules/bt-management/types/integrated-devices.js.map +1 -1
  47. package/lib/module/modules/bt-device/constants/device-instruction-pdfs.js +2 -1
  48. package/lib/module/modules/bt-device/constants/device-instruction-pdfs.js.map +1 -1
  49. package/lib/module/modules/bt-device/constants/device-list-items.js +7 -0
  50. package/lib/module/modules/bt-device/constants/device-list-items.js.map +1 -1
  51. package/lib/module/modules/bt-device/constants/supported-device-catalog-assets.js +3 -1
  52. package/lib/module/modules/bt-device/constants/supported-device-catalog-assets.js.map +1 -1
  53. package/lib/module/modules/bt-device/constants/supported-devices.js +12 -3
  54. package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
  55. package/lib/module/modules/bt-management/core/resolve-device-key.js +6 -1
  56. package/lib/module/modules/bt-management/core/resolve-device-key.js.map +1 -1
  57. package/lib/module/modules/bt-management/index.js +4 -0
  58. package/lib/module/modules/bt-management/index.js.map +1 -1
  59. package/lib/module/modules/bt-management/services/bt-manager.js +9 -17
  60. package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
  61. package/lib/module/modules/bt-management/services/device-classes.js +3 -1
  62. package/lib/module/modules/bt-management/services/device-classes.js.map +1 -1
  63. package/lib/module/modules/bt-management/services/device-creator.js +9 -7
  64. package/lib/module/modules/bt-management/services/device-creator.js.map +1 -1
  65. package/lib/module/modules/bt-management/services/devices/bp2/bp2.device.js +1 -7
  66. package/lib/module/modules/bt-management/services/devices/bp2/bp2.device.js.map +1 -1
  67. package/lib/module/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js +1 -5
  68. package/lib/module/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js.map +1 -1
  69. package/lib/module/modules/bt-management/services/devices/bt-command-writer.js +2 -8
  70. package/lib/module/modules/bt-management/services/devices/bt-command-writer.js.map +1 -1
  71. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js +17 -31
  72. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  73. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js +1 -1
  74. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  75. package/lib/module/modules/bt-management/services/devices/bt-device-information.js +2 -3
  76. package/lib/module/modules/bt-management/services/devices/bt-device-information.js.map +1 -1
  77. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +8 -24
  78. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  79. package/lib/module/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js +0 -3
  80. package/lib/module/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js.map +1 -1
  81. package/lib/module/modules/bt-management/services/devices/trasense/s9-advertisement.js +26 -0
  82. package/lib/module/modules/bt-management/services/devices/trasense/s9-advertisement.js.map +1 -0
  83. package/lib/module/modules/bt-management/services/devices/trasense/s9-frame-reader.js +22 -0
  84. package/lib/module/modules/bt-management/services/devices/trasense/s9-frame-reader.js.map +1 -0
  85. package/lib/module/modules/bt-management/services/devices/trasense/s9.command-sequencer.js +336 -0
  86. package/lib/module/modules/bt-management/services/devices/trasense/s9.command-sequencer.js.map +1 -0
  87. package/lib/module/modules/bt-management/services/devices/trasense/s9.device.js +69 -0
  88. package/lib/module/modules/bt-management/services/devices/trasense/s9.device.js.map +1 -0
  89. package/lib/module/modules/bt-management/types/clock-sync.js +1 -0
  90. package/lib/module/modules/bt-management/types/clock-sync.js.map +1 -1
  91. package/lib/module/modules/bt-management/types/device-measurement-map.js.map +1 -1
  92. package/lib/module/modules/bt-management/types/integrated-devices.js +1 -0
  93. package/lib/module/modules/bt-management/types/integrated-devices.js.map +1 -1
  94. package/lib/typescript/commonjs/src/modules/bt-device/constants/device-instruction-pdfs.d.ts.map +1 -1
  95. package/lib/typescript/commonjs/src/modules/bt-device/constants/device-list-items.d.ts.map +1 -1
  96. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts +3 -1
  97. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts.map +1 -1
  98. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts +7 -0
  99. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  100. package/lib/typescript/commonjs/src/modules/bt-management/core/resolve-device-key.d.ts +1 -1
  101. package/lib/typescript/commonjs/src/modules/bt-management/core/resolve-device-key.d.ts.map +1 -1
  102. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +4 -0
  103. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
  104. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  105. package/lib/typescript/commonjs/src/modules/bt-management/services/device-classes.d.ts +2 -0
  106. package/lib/typescript/commonjs/src/modules/bt-management/services/device-classes.d.ts.map +1 -1
  107. package/lib/typescript/commonjs/src/modules/bt-management/services/device-creator.d.ts +1 -1
  108. package/lib/typescript/commonjs/src/modules/bt-management/services/device-creator.d.ts.map +1 -1
  109. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts.map +1 -1
  110. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts.map +1 -1
  111. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-command-writer.d.ts.map +1 -1
  112. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  113. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-device-information.d.ts.map +1 -1
  114. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  115. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom-lepu-sequencer.d.ts.map +1 -1
  116. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/trasense/s9-advertisement.d.ts +8 -0
  117. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/trasense/s9-advertisement.d.ts.map +1 -0
  118. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/trasense/s9-frame-reader.d.ts +7 -0
  119. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/trasense/s9-frame-reader.d.ts.map +1 -0
  120. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/trasense/s9.command-sequencer.d.ts +63 -0
  121. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/trasense/s9.command-sequencer.d.ts.map +1 -0
  122. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/trasense/s9.device.d.ts +18 -0
  123. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/trasense/s9.device.d.ts.map +1 -0
  124. package/lib/typescript/commonjs/src/modules/bt-management/types/clock-sync.d.ts.map +1 -1
  125. package/lib/typescript/commonjs/src/modules/bt-management/types/device-connection-event.d.ts +5 -1
  126. package/lib/typescript/commonjs/src/modules/bt-management/types/device-connection-event.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/src/modules/bt-management/types/device-data.d.ts +2 -0
  128. package/lib/typescript/commonjs/src/modules/bt-management/types/device-data.d.ts.map +1 -1
  129. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts +3 -0
  130. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  131. package/lib/typescript/commonjs/src/modules/bt-management/types/integrated-devices.d.ts +2 -1
  132. package/lib/typescript/commonjs/src/modules/bt-management/types/integrated-devices.d.ts.map +1 -1
  133. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +1 -1
  134. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts +1 -1
  135. package/lib/typescript/module/src/modules/bt-device/constants/device-instruction-pdfs.d.ts.map +1 -1
  136. package/lib/typescript/module/src/modules/bt-device/constants/device-list-items.d.ts.map +1 -1
  137. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts +3 -1
  138. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts.map +1 -1
  139. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts +7 -0
  140. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  141. package/lib/typescript/module/src/modules/bt-management/core/resolve-device-key.d.ts +1 -1
  142. package/lib/typescript/module/src/modules/bt-management/core/resolve-device-key.d.ts.map +1 -1
  143. package/lib/typescript/module/src/modules/bt-management/index.d.ts +4 -0
  144. package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
  145. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  146. package/lib/typescript/module/src/modules/bt-management/services/device-classes.d.ts +2 -0
  147. package/lib/typescript/module/src/modules/bt-management/services/device-classes.d.ts.map +1 -1
  148. package/lib/typescript/module/src/modules/bt-management/services/device-creator.d.ts +1 -1
  149. package/lib/typescript/module/src/modules/bt-management/services/device-creator.d.ts.map +1 -1
  150. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts.map +1 -1
  151. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts.map +1 -1
  152. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-command-writer.d.ts.map +1 -1
  153. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  154. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-device-information.d.ts.map +1 -1
  155. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  156. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom-lepu-sequencer.d.ts.map +1 -1
  157. package/lib/typescript/module/src/modules/bt-management/services/devices/trasense/s9-advertisement.d.ts +8 -0
  158. package/lib/typescript/module/src/modules/bt-management/services/devices/trasense/s9-advertisement.d.ts.map +1 -0
  159. package/lib/typescript/module/src/modules/bt-management/services/devices/trasense/s9-frame-reader.d.ts +7 -0
  160. package/lib/typescript/module/src/modules/bt-management/services/devices/trasense/s9-frame-reader.d.ts.map +1 -0
  161. package/lib/typescript/module/src/modules/bt-management/services/devices/trasense/s9.command-sequencer.d.ts +63 -0
  162. package/lib/typescript/module/src/modules/bt-management/services/devices/trasense/s9.command-sequencer.d.ts.map +1 -0
  163. package/lib/typescript/module/src/modules/bt-management/services/devices/trasense/s9.device.d.ts +18 -0
  164. package/lib/typescript/module/src/modules/bt-management/services/devices/trasense/s9.device.d.ts.map +1 -0
  165. package/lib/typescript/module/src/modules/bt-management/types/clock-sync.d.ts.map +1 -1
  166. package/lib/typescript/module/src/modules/bt-management/types/device-connection-event.d.ts +5 -1
  167. package/lib/typescript/module/src/modules/bt-management/types/device-connection-event.d.ts.map +1 -1
  168. package/lib/typescript/module/src/modules/bt-management/types/device-data.d.ts +2 -0
  169. package/lib/typescript/module/src/modules/bt-management/types/device-data.d.ts.map +1 -1
  170. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts +3 -0
  171. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  172. package/lib/typescript/module/src/modules/bt-management/types/integrated-devices.d.ts +2 -1
  173. package/lib/typescript/module/src/modules/bt-management/types/integrated-devices.d.ts.map +1 -1
  174. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +1 -1
  175. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts +1 -1
  176. package/package.json +1 -1
@@ -0,0 +1,336 @@
1
+ "use strict";
2
+
3
+ /* eslint-disable max-lines */
4
+
5
+ import { MeasurementTypeKey } from "@ovok/core";
6
+ import { CaseType } from "../../../types/case-type.js";
7
+ import { getClockParts } from "../../../types/clock-sync.js";
8
+ import { hexToByte } from "../../../utils/hex-to-byte.js";
9
+ const TRASENSE_S9_SERVICE = "0000fff0-0000-1000-8000-00805f9b34fb";
10
+ const TRASENSE_S9_WRITE = "0000fff1-0000-1000-8000-00805f9b34fb";
11
+ const TRASENSE_S9_NOTIFY = "0000fff2-0000-1000-8000-00805f9b34fb";
12
+ const RESPONSE = {
13
+ identity: 0xf0,
14
+ address: 0x88,
15
+ clock: 0x81,
16
+ historyIndex: 0x90,
17
+ steps: 0x93,
18
+ heartRate: 0xd6,
19
+ battery: 0xb0
20
+ };
21
+ const HISTORY_HOURS = [0x00, 0x06, 0x0c, 0x12];
22
+ const HISTORY_SLOTS = 7;
23
+ const RESPONSE_TIMEOUT_MS = 3_000;
24
+ const MAX_RESPONSE_RETRIES = 1;
25
+ const MAX_HEART_RATE_POLLS = 12;
26
+ const HEART_RATE_POLL_INTERVAL_MS = 1_000;
27
+ const byte = value => (value & 0xff).toString(16).padStart(2, "0");
28
+ const values = frame => frame.map(hexToByte);
29
+ const command = (write, request, delayBeforeWriteMs) => ({
30
+ ...write,
31
+ frame: [...request, ...new Array(20 - request.length).fill(0)].map(byte),
32
+ ...(delayBeforeWriteMs === undefined ? {} : {
33
+ delayBeforeWriteMs
34
+ })
35
+ });
36
+ const decodeFirmware = frame => values(frame).slice(1).filter(value => value !== 0).map(value => String.fromCharCode(value)).join("").trim();
37
+ const buildDateFromFirmware = firmware => {
38
+ const match = /^(\d{4})(\d{2})(\d{2})\.SH09(?:\.|$)/.exec(firmware);
39
+ if (!match) {
40
+ return undefined;
41
+ }
42
+ const date = {
43
+ year: Number(match[1]),
44
+ month: Number(match[2]),
45
+ day: Number(match[3])
46
+ };
47
+ return isValidDate(date) ? date : undefined;
48
+ };
49
+ const isValidDate = ({
50
+ year,
51
+ month,
52
+ day
53
+ }) => {
54
+ const date = new Date(0);
55
+ date.setFullYear(year, month - 1, day);
56
+ return Number.isInteger(year) && Number.isInteger(month) && Number.isInteger(day) && month >= 1 && month <= 12 && day >= 1 && date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day;
57
+ };
58
+ const dateFromReply = frame => {
59
+ if (frame.length < 5) {
60
+ return undefined;
61
+ }
62
+ const date = {
63
+ year: (frame[1] ?? 0) * 100 + (frame[2] ?? 0),
64
+ month: frame[3] ?? 0,
65
+ day: frame[4] ?? 0
66
+ };
67
+ return isValidDate(date) ? date : undefined;
68
+ };
69
+ const isBefore = (left, right) => left.year < right.year || left.year === right.year && left.month < right.month || left.year === right.year && left.month === right.month && left.day < right.day;
70
+ const dateAtHour = (date, hour, timezone) => {
71
+ const result = new Date(0);
72
+ if (timezone === "utc") {
73
+ result.setUTCFullYear(date.year, date.month - 1, date.day);
74
+ result.setUTCHours(hour, 0, 0, 0);
75
+ } else {
76
+ result.setFullYear(date.year, date.month - 1, date.day);
77
+ result.setHours(hour, 0, 0, 0);
78
+ }
79
+ return result;
80
+ };
81
+ const isResponseFor = (phase, frame) => {
82
+ const response = hexToByte(frame[0] ?? "00");
83
+ if (phase === "heart-rate") {
84
+ return response === RESPONSE.heartRate && hexToByte(frame[1] ?? "00") === 0x02;
85
+ }
86
+ switch (phase) {
87
+ case "identity":
88
+ return response === RESPONSE.identity;
89
+ case "address":
90
+ return response === RESPONSE.address;
91
+ case "clock":
92
+ return response === RESPONSE.clock;
93
+ case "history-index":
94
+ return response === RESPONSE.historyIndex;
95
+ case "steps":
96
+ return response === RESPONSE.steps;
97
+ case "battery":
98
+ return response === RESPONSE.battery;
99
+ case "done":
100
+ return false;
101
+ }
102
+ };
103
+
104
+ /** Runs only the SH09 commands verified on firmware image 1. */
105
+ class S9CommandSequencer {
106
+ phase = "identity";
107
+ retries = 0;
108
+ firmware = "";
109
+ historyCount = 0;
110
+ historySlot = 0;
111
+ historyHourIndex = 0;
112
+ heartRatePolls = 0;
113
+ constructor(params) {
114
+ this.params = params;
115
+ }
116
+ initialCommands = () => [this.queue([0x70])];
117
+ isHistoryTransfer = () => true;
118
+ commandTimeoutMs = () => RESPONSE_TIMEOUT_MS;
119
+ commandProgress = frame => isResponseFor(this.phase, frame) ? "complete" : "ignored";
120
+ onCommandTimeout = () => {
121
+ if (this.pendingCommand && this.retries < MAX_RESPONSE_RETRIES) {
122
+ this.retries += 1;
123
+ return {
124
+ commands: [this.pendingCommand]
125
+ };
126
+ }
127
+ return {
128
+ terminal: true
129
+ };
130
+ };
131
+ nextCommand = frame => {
132
+ if (!isResponseFor(this.phase, frame)) {
133
+ return undefined;
134
+ }
135
+ this.pendingCommand = undefined;
136
+ this.retries = 0;
137
+ const response = values(frame);
138
+ switch (this.phase) {
139
+ case "identity":
140
+ return this.handleIdentity(frame);
141
+ case "address":
142
+ return this.handleAddress(response);
143
+ case "clock":
144
+ this.reportClockWrite();
145
+ return this.queueHistoryIndex();
146
+ case "history-index":
147
+ return this.handleHistoryIndex(response);
148
+ case "steps":
149
+ if (!this.handleSteps(response)) {
150
+ return undefined;
151
+ }
152
+ return this.queueNextStepsOrHeartRate();
153
+ case "heart-rate":
154
+ return this.handleHeartRate(response);
155
+ case "battery":
156
+ this.handleBattery(response);
157
+ this.finish();
158
+ return undefined;
159
+ case "done":
160
+ return undefined;
161
+ }
162
+ };
163
+ handleIdentity = frame => {
164
+ const firmware = decodeFirmware(frame);
165
+ if (!/(?:^|\.)SH09(?:\.|$)/.test(firmware)) {
166
+ this.params.onError(new Error("Trasense S9 identity check failed."));
167
+ this.finish();
168
+ return undefined;
169
+ }
170
+ this.firmware = firmware;
171
+ this.firmwareBuildDate = buildDateFromFirmware(firmware);
172
+ this.phase = "address";
173
+ return [this.queue([0x08])];
174
+ };
175
+ handleAddress = response => {
176
+ if (response.length < 7) {
177
+ this.params.onError(new Error("Trasense S9 address reply was incomplete."));
178
+ this.finish();
179
+ return undefined;
180
+ }
181
+ const addressBytes = response.slice(1, 7).reverse();
182
+ if (addressBytes.every(value => value === 0 || value === 0xff)) {
183
+ this.params.onError(new Error("Trasense S9 address reply was invalid."));
184
+ this.finish();
185
+ return undefined;
186
+ }
187
+ const hardwareAddress = addressBytes.map(byte).join(":").toUpperCase();
188
+ this.params.onIdentity(this.firmware, hardwareAddress);
189
+ this.params.onConnectionEvent({
190
+ kind: "device-identified"
191
+ });
192
+ return [this.queueClockOrHistoryIndex()];
193
+ };
194
+ queueClockOrHistoryIndex = () => {
195
+ const options = this.params.clockSync;
196
+ if (options?.enabled === false) {
197
+ return this.queueHistoryIndex()[0];
198
+ }
199
+ this.phase = "clock";
200
+ const now = options?.now?.() ?? new Date();
201
+
202
+ // SH09 has no time-zone setting; its clock and history are local wall time.
203
+ const parts = getClockParts(now, "local");
204
+ return this.queue([0x01, Math.floor(parts.year / 100), parts.year % 100, parts.month, parts.day, parts.hours, parts.minutes, parts.seconds, 0x00, 0x18], undefined, now);
205
+ };
206
+ reportClockWrite = () => {
207
+ const clockAt = this.clockAt ?? new Date();
208
+ this.params.onConnectionEvent({
209
+ kind: "clock-synchronized",
210
+ clockAt,
211
+ phoneUtcOffsetMinutes: -clockAt.getTimezoneOffset()
212
+ });
213
+ };
214
+ queueHistoryIndex = () => {
215
+ this.phase = "history-index";
216
+ return [this.queue([0x10])];
217
+ };
218
+ handleHistoryIndex = response => {
219
+ if (response.length < 7) {
220
+ this.params.onError(new Error("Trasense S9 history index was incomplete."));
221
+ this.finish();
222
+ return undefined;
223
+ }
224
+ const todaySlot = response[1] ?? 0;
225
+ const count = response[2] ?? 0;
226
+ if (count > HISTORY_SLOTS || todaySlot >= Math.max(count, 1)) {
227
+ this.params.onError(new Error("Trasense S9 history index was invalid."));
228
+ this.finish();
229
+ return undefined;
230
+ }
231
+ this.historyCount = count;
232
+ this.historySlot = 0;
233
+ this.historyHourIndex = 0;
234
+ if (count === 0 || !this.firmwareBuildDate) {
235
+ return this.queueHeartRate();
236
+ }
237
+ return this.queueSteps();
238
+ };
239
+ queueSteps = () => {
240
+ this.phase = "steps";
241
+ return [this.queue([0x13, this.historySlot, HISTORY_HOURS[this.historyHourIndex] ?? 0])];
242
+ };
243
+ handleSteps = response => {
244
+ const date = dateFromReply(response);
245
+ const hour = response[5] ?? -1;
246
+ const expectedHour = HISTORY_HOURS[this.historyHourIndex];
247
+ if (response.length < 18 || !date || hour !== expectedHour) {
248
+ this.params.onError(new Error("Trasense S9 steps reply was invalid."));
249
+ this.finish();
250
+ return false;
251
+ }
252
+ if (this.firmwareBuildDate && !isBefore(date, this.firmwareBuildDate)) {
253
+ for (let index = 0; index < 6; index += 1) {
254
+ const high = response[6 + index * 2] ?? 0;
255
+ const low = response[7 + index * 2] ?? 0;
256
+ const stepCount = high * 256 + low;
257
+ if (stepCount === 0xffff) {
258
+ continue;
259
+ }
260
+ const start = dateAtHour(date, hour + index, "local");
261
+ this.params.onResult({
262
+ caseType: CaseType.RESULT,
263
+ measurementTypeKey: MeasurementTypeKey.stepCount,
264
+ stepCount,
265
+ start,
266
+ end: new Date(start.getTime() + 60 * 60 * 1000)
267
+ });
268
+ }
269
+ }
270
+ return true;
271
+ };
272
+ queueNextStepsOrHeartRate = () => {
273
+ this.historyHourIndex += 1;
274
+ if (this.historyHourIndex >= HISTORY_HOURS.length) {
275
+ this.historyHourIndex = 0;
276
+ this.historySlot += 1;
277
+ }
278
+ if (this.historySlot < this.historyCount) {
279
+ return this.queueSteps();
280
+ }
281
+ return this.queueHeartRate();
282
+ };
283
+ queueHeartRate = () => {
284
+ this.phase = "heart-rate";
285
+ this.heartRatePolls = 0;
286
+ return [this.queue([0x56, 0x02])];
287
+ };
288
+ handleHeartRate = response => {
289
+ const heartRate = response[2] ?? 0;
290
+ if (heartRate >= 40 && heartRate <= 200) {
291
+ const recordedAt = this.params.clockSync?.now?.() ?? new Date();
292
+ this.params.onResult({
293
+ caseType: CaseType.RESULT,
294
+ measurementTypeKey: MeasurementTypeKey.heartRate,
295
+ heartRate,
296
+ start: recordedAt,
297
+ end: recordedAt
298
+ });
299
+ return this.queueBattery();
300
+ }
301
+ this.heartRatePolls += 1;
302
+ if (this.heartRatePolls < MAX_HEART_RATE_POLLS) {
303
+ return [this.queue([0x56, 0x02], HEART_RATE_POLL_INTERVAL_MS)];
304
+ }
305
+ return this.queueBattery();
306
+ };
307
+ queueBattery = () => {
308
+ this.phase = "battery";
309
+ return [this.queue([0x30])];
310
+ };
311
+ handleBattery = response => {
312
+ const level = response[1] ?? -1;
313
+ if (level < 0 || level > 5) {
314
+ return;
315
+ }
316
+ this.params.onConnectionEvent({
317
+ kind: "battery",
318
+ batteryLevel: level === 0 ? 5 : level * 20
319
+ });
320
+ };
321
+ queue = (request, delayBeforeWriteMs, clockAt) => {
322
+ this.pendingCommand = command(this.params.write, request, delayBeforeWriteMs);
323
+ this.retries = 0;
324
+ if (clockAt) {
325
+ this.clockAt = clockAt;
326
+ }
327
+ return this.pendingCommand;
328
+ };
329
+ finish = () => {
330
+ this.phase = "done";
331
+ this.pendingCommand = undefined;
332
+ this.params.onComplete();
333
+ };
334
+ }
335
+ export { S9CommandSequencer, TRASENSE_S9_NOTIFY, TRASENSE_S9_SERVICE, TRASENSE_S9_WRITE };
336
+ //# sourceMappingURL=s9.command-sequencer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MeasurementTypeKey","CaseType","getClockParts","hexToByte","TRASENSE_S9_SERVICE","TRASENSE_S9_WRITE","TRASENSE_S9_NOTIFY","RESPONSE","identity","address","clock","historyIndex","steps","heartRate","battery","HISTORY_HOURS","HISTORY_SLOTS","RESPONSE_TIMEOUT_MS","MAX_RESPONSE_RETRIES","MAX_HEART_RATE_POLLS","HEART_RATE_POLL_INTERVAL_MS","byte","value","toString","padStart","values","frame","map","command","write","request","delayBeforeWriteMs","Array","length","fill","undefined","decodeFirmware","slice","filter","String","fromCharCode","join","trim","buildDateFromFirmware","firmware","match","exec","date","year","Number","month","day","isValidDate","Date","setFullYear","isInteger","getFullYear","getMonth","getDate","dateFromReply","isBefore","left","right","dateAtHour","hour","timezone","result","setUTCFullYear","setUTCHours","setHours","isResponseFor","phase","response","S9CommandSequencer","retries","historyCount","historySlot","historyHourIndex","heartRatePolls","constructor","params","initialCommands","queue","isHistoryTransfer","commandTimeoutMs","commandProgress","onCommandTimeout","pendingCommand","commands","terminal","nextCommand","handleIdentity","handleAddress","reportClockWrite","queueHistoryIndex","handleHistoryIndex","handleSteps","queueNextStepsOrHeartRate","handleHeartRate","handleBattery","finish","test","onError","Error","firmwareBuildDate","addressBytes","reverse","every","hardwareAddress","toUpperCase","onIdentity","onConnectionEvent","kind","queueClockOrHistoryIndex","options","clockSync","enabled","now","parts","Math","floor","hours","minutes","seconds","clockAt","phoneUtcOffsetMinutes","getTimezoneOffset","todaySlot","count","max","queueHeartRate","queueSteps","expectedHour","index","high","low","stepCount","start","onResult","caseType","RESULT","measurementTypeKey","end","getTime","recordedAt","queueBattery","level","batteryLevel","onComplete"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/trasense/s9.command-sequencer.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ import { MeasurementTypeKey } from "@ovok/core";
4
+ import { CaseType } from "../../../types/case-type.js";
5
+ import { BTManagedDevice } from "../bt-managed-device.js";
6
+ import { S9FrameReader } from "./s9-frame-reader.js";
7
+ import { S9CommandSequencer, TRASENSE_S9_NOTIFY, TRASENSE_S9_SERVICE, TRASENSE_S9_WRITE } from "./s9.command-sequencer.js";
8
+ const acceptProtocolFrames = {
9
+ caseValuePosition: [],
10
+ cases: [{
11
+ caseValue: "",
12
+ caseType: CaseType.OTHER,
13
+ parseDefinitions: [],
14
+ description: "SH09 protocol frame handled by its command sequencer"
15
+ }]
16
+ };
17
+ const s9Services = [{
18
+ uuid: TRASENSE_S9_SERVICE,
19
+ writeUuid: {
20
+ uuid: TRASENSE_S9_SERVICE,
21
+ mainCommandUuid: TRASENSE_S9_WRITE
22
+ },
23
+ monitorUuids: [{
24
+ uuid: TRASENSE_S9_NOTIFY,
25
+ parsingModel: acceptProtocolFrames
26
+ }]
27
+ }];
28
+ const S9_SUPPORTED_MEASUREMENTS = [MeasurementTypeKey.stepCount, MeasurementTypeKey.heartRate];
29
+
30
+ /** Trasense SH09. Its address and advertisement data are sensitive and never logged. */
31
+ export class TrasenseS9Device extends BTManagedDevice {
32
+ mainServices = s9Services;
33
+ stuckDataTimeout = 120_000;
34
+ onStreamStart = undefined;
35
+ frameReader = new S9FrameReader();
36
+ constructor(device, params) {
37
+ super(device, params);
38
+
39
+ // Manufacturer data contains device health information; do not expose it in callbacks.
40
+ this.deviceData.manufacturerData = "";
41
+ this.createCommandSequencer = () => new S9CommandSequencer({
42
+ clockSync: params.clockSync,
43
+ write: {
44
+ serviceUuid: TRASENSE_S9_SERVICE,
45
+ characteristicUuid: TRASENSE_S9_WRITE
46
+ },
47
+ onResult: result => this.onResult?.(result),
48
+ onConnectionEvent: event => this.onConnectionEvent?.({
49
+ deviceData: this.deviceData,
50
+ ...event
51
+ }),
52
+ onIdentity: (_firmware, hardwareAddress) => {
53
+ this.deviceData.model = "SH09";
54
+ this.deviceData.hardwareAddress = hardwareAddress;
55
+ },
56
+ onError: error => this.onError?.(error),
57
+ onComplete: () => {
58
+ setTimeout(() => void this.disconnect(), 0);
59
+ }
60
+ });
61
+ }
62
+ getSupportedMeasurementTypeKeys() {
63
+ return [...S9_SUPPORTED_MEASUREMENTS];
64
+ }
65
+ handleSuccessResult() {
66
+ return;
67
+ }
68
+ }
69
+ //# sourceMappingURL=s9.device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MeasurementTypeKey","CaseType","BTManagedDevice","S9FrameReader","S9CommandSequencer","TRASENSE_S9_NOTIFY","TRASENSE_S9_SERVICE","TRASENSE_S9_WRITE","acceptProtocolFrames","caseValuePosition","cases","caseValue","caseType","OTHER","parseDefinitions","description","s9Services","uuid","writeUuid","mainCommandUuid","monitorUuids","parsingModel","S9_SUPPORTED_MEASUREMENTS","stepCount","heartRate","TrasenseS9Device","mainServices","stuckDataTimeout","onStreamStart","undefined","frameReader","constructor","device","params","deviceData","manufacturerData","createCommandSequencer","clockSync","write","serviceUuid","characteristicUuid","onResult","result","onConnectionEvent","event","onIdentity","_firmware","hardwareAddress","model","onError","error","onComplete","setTimeout","disconnect","getSupportedMeasurementTypeKeys","handleSuccessResult"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/trasense/s9.device.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,YAAY;AAG/C,SAASC,QAAQ,QAAQ,6BAA0B;AAKnD,SAASC,eAAe,QAAQ,yBAAsB;AAEtD,SAASC,aAAa,QAAQ,sBAAmB;AACjD,SACEC,kBAAkB,EAClBC,kBAAkB,EAClBC,mBAAmB,EACnBC,iBAAiB,QACZ,2BAAwB;AAE/B,MAAMC,oBAAoB,GAAG;EAC3BC,iBAAiB,EAAE,EAAE;EACrBC,KAAK,EAAE,CACL;IACEC,SAAS,EAAE,EAAE;IACbC,QAAQ,EAAEX,QAAQ,CAACY,KAAK;IACxBC,gBAAgB,EAAE,EAAE;IACpBC,WAAW,EAAE;EACf,CAAC;AAEL,CAAC;AAED,MAAMC,UAAsB,GAAG,CAC7B;EACEC,IAAI,EAAEX,mBAAmB;EACzBY,SAAS,EAAE;IACTD,IAAI,EAAEX,mBAAmB;IACzBa,eAAe,EAAEZ;EACnB,CAAC;EACDa,YAAY,EAAE,CACZ;IAAEH,IAAI,EAAEZ,kBAAkB;IAAEgB,YAAY,EAAEb;EAAqB,CAAC;AAEpE,CAAC,CACF;AAED,MAAMc,yBAAyB,GAAG,CAChCtB,kBAAkB,CAACuB,SAAS,EAC5BvB,kBAAkB,CAACwB,SAAS,CAC7B;;AAED;AACA,OAAO,MAAMC,gBAAgB,SAASvB,eAAe,CAAgC;EACzEwB,YAAY,GAAGV,UAAU;EACzBW,gBAAgB,GAAG,OAAO;EAC1BC,aAAa,GAAGC,SAAS;EACzBC,WAAW,GAAG,IAAI3B,aAAa,CAAC,CAAC;EAEpC4B,WAAWA,CAChBC,MAAc,EACdC,MAAyD,EACzD;IACA,KAAK,CAACD,MAAM,EAAEC,MAAM,CAAC;;IAErB;IACA,IAAI,CAACC,UAAU,CAACC,gBAAgB,GAAG,EAAE;IAErC,IAAI,CAACC,sBAAsB,GAAG,MAC5B,IAAIhC,kBAAkB,CAAC;MACrBiC,SAAS,EAAEJ,MAAM,CAACI,SAAS;MAC3BC,KAAK,EAAE;QACLC,WAAW,EAAEjC,mBAAmB;QAChCkC,kBAAkB,EAAEjC;MACtB,CAAC;MACDkC,QAAQ,EAAGC,MAAM,IAAK,IAAI,CAACD,QAAQ,GAAGC,MAAM,CAAC;MAC7CC,iBAAiB,EAAGC,KAAK,IACvB,IAAI,CAACD,iBAAiB,GAAG;QAAET,UAAU,EAAE,IAAI,CAACA,UAAU;QAAE,GAAGU;MAAM,CAAC,CAAC;MACrEC,UAAU,EAAEA,CAACC,SAAS,EAAEC,eAAe,KAAK;QAC1C,IAAI,CAACb,UAAU,CAACc,KAAK,GAAG,MAAM;QAC9B,IAAI,CAACd,UAAU,CAACa,eAAe,GAAGA,eAAe;MACnD,CAAC;MACDE,OAAO,EAAGC,KAAK,IAAK,IAAI,CAACD,OAAO,GAAGC,KAAK,CAAC;MACzCC,UAAU,EAAEA,CAAA,KAAM;QAChBC,UAAU,CAAC,MAAM,KAAK,IAAI,CAACC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;MAC7C;IACF,CAAC,CAAC;EACN;EAEmBC,+BAA+BA,CAAA,EAAyB;IACzE,OAAO,CAAC,GAAGhC,yBAAyB,CAAC;EACvC;EAEUiC,mBAAmBA,CAAA,EAAmB;IAC9C;EACF;AACF","ignoreList":[]}
@@ -38,6 +38,7 @@ export const clockSyncCapabilityForDevice = deviceName => {
38
38
  return "unsupported";
39
39
  case IntegratedDevices.GENIAL_T31:
40
40
  case IntegratedDevices.ZH_SG_A606:
41
+ case IntegratedDevices.TRASENSE_S9:
41
42
  return "supported";
42
43
  default:
43
44
  return "unknown";
@@ -1 +1 @@
1
- {"version":3,"names":["IntegratedDevices","isClockSyncEnabled","options","enabled","getClockParts","date","timezone","year","getUTCFullYear","month","getUTCMonth","day","getUTCDate","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","milliseconds","getUTCMilliseconds","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","clockSyncCapabilityForDevice","deviceName","BC01","MYSENSE","VEROVAL_ECG","AOJ20A","BP2","VIATOM_R20","VIATOM_R200","VIATOM_BBSM_BS1","VEROVAL_ACTIVITY","GENIAL_T31","ZH_SG_A606"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/clock-sync.ts"],"mappings":";;AAAA;;AAEA,SAASA,iBAAiB,QAAQ,yBAAsB;AAkBxD,OAAO,MAAMC,kBAAkB,GAAIC,OAA0B,IAC3DA,OAAO,EAAEC,OAAO,KAAK,KAAK;AAE5B,OAAO,MAAMC,aAAa,GAAGA,CAC3BC,IAAU,EACVC,QAA2B,GAAG,OAAO,KAErCA,QAAQ,KAAK,KAAK,GACd;EACEC,IAAI,EAAEF,IAAI,CAACG,cAAc,CAAC,CAAC;EAC3BC,KAAK,EAAEJ,IAAI,CAACK,WAAW,CAAC,CAAC,GAAG,CAAC;EAC7BC,GAAG,EAAEN,IAAI,CAACO,UAAU,CAAC,CAAC;EACtBC,KAAK,EAAER,IAAI,CAACS,WAAW,CAAC,CAAC;EACzBC,OAAO,EAAEV,IAAI,CAACW,aAAa,CAAC,CAAC;EAC7BC,OAAO,EAAEZ,IAAI,CAACa,aAAa,CAAC,CAAC;EAC7BC,YAAY,EAAEd,IAAI,CAACe,kBAAkB,CAAC;AACxC,CAAC,GACD;EACEb,IAAI,EAAEF,IAAI,CAACgB,WAAW,CAAC,CAAC;EACxBZ,KAAK,EAAEJ,IAAI,CAACiB,QAAQ,CAAC,CAAC,GAAG,CAAC;EAC1BX,GAAG,EAAEN,IAAI,CAACkB,OAAO,CAAC,CAAC;EACnBV,KAAK,EAAER,IAAI,CAACmB,QAAQ,CAAC,CAAC;EACtBT,OAAO,EAAEV,IAAI,CAACoB,UAAU,CAAC,CAAC;EAC1BR,OAAO,EAAEZ,IAAI,CAACqB,UAAU,CAAC,CAAC;EAC1BP,YAAY,EAAEd,IAAI,CAACsB,eAAe,CAAC;AACrC,CAAC;;AAEP;AACA,OAAO,MAAMC,4BAA4B,GACvCC,UAAkB,IACM;EACxB,QAAQA,UAAU;IAChB,KAAK7B,iBAAiB,CAAC8B,IAAI;IAC3B,KAAK9B,iBAAiB,CAAC+B,OAAO;IAC9B,KAAK/B,iBAAiB,CAACgC,WAAW;IAClC,KAAKhC,iBAAiB,CAACiC,MAAM;IAC7B,KAAKjC,iBAAiB,CAACkC,GAAG;IAC1B,KAAKlC,iBAAiB,CAACmC,UAAU;IACjC,KAAKnC,iBAAiB,CAACoC,WAAW;IAClC,KAAKpC,iBAAiB,CAACqC,eAAe;MACpC,OAAO,WAAW;IACpB,KAAKrC,iBAAiB,CAACsC,gBAAgB;MACrC,OAAO,aAAa;IACtB,KAAKtC,iBAAiB,CAACuC,UAAU;IACjC,KAAKvC,iBAAiB,CAACwC,UAAU;MAC/B,OAAO,WAAW;IACpB;MACE,OAAO,SAAS;EACpB;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["IntegratedDevices","isClockSyncEnabled","options","enabled","getClockParts","date","timezone","year","getUTCFullYear","month","getUTCMonth","day","getUTCDate","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","milliseconds","getUTCMilliseconds","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","clockSyncCapabilityForDevice","deviceName","BC01","MYSENSE","VEROVAL_ECG","AOJ20A","BP2","VIATOM_R20","VIATOM_R200","VIATOM_BBSM_BS1","VEROVAL_ACTIVITY","GENIAL_T31","ZH_SG_A606","TRASENSE_S9"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/clock-sync.ts"],"mappings":";;AAAA;;AAEA,SAASA,iBAAiB,QAAQ,yBAAsB;AAkBxD,OAAO,MAAMC,kBAAkB,GAAIC,OAA0B,IAC3DA,OAAO,EAAEC,OAAO,KAAK,KAAK;AAE5B,OAAO,MAAMC,aAAa,GAAGA,CAC3BC,IAAU,EACVC,QAA2B,GAAG,OAAO,KAErCA,QAAQ,KAAK,KAAK,GACd;EACEC,IAAI,EAAEF,IAAI,CAACG,cAAc,CAAC,CAAC;EAC3BC,KAAK,EAAEJ,IAAI,CAACK,WAAW,CAAC,CAAC,GAAG,CAAC;EAC7BC,GAAG,EAAEN,IAAI,CAACO,UAAU,CAAC,CAAC;EACtBC,KAAK,EAAER,IAAI,CAACS,WAAW,CAAC,CAAC;EACzBC,OAAO,EAAEV,IAAI,CAACW,aAAa,CAAC,CAAC;EAC7BC,OAAO,EAAEZ,IAAI,CAACa,aAAa,CAAC,CAAC;EAC7BC,YAAY,EAAEd,IAAI,CAACe,kBAAkB,CAAC;AACxC,CAAC,GACD;EACEb,IAAI,EAAEF,IAAI,CAACgB,WAAW,CAAC,CAAC;EACxBZ,KAAK,EAAEJ,IAAI,CAACiB,QAAQ,CAAC,CAAC,GAAG,CAAC;EAC1BX,GAAG,EAAEN,IAAI,CAACkB,OAAO,CAAC,CAAC;EACnBV,KAAK,EAAER,IAAI,CAACmB,QAAQ,CAAC,CAAC;EACtBT,OAAO,EAAEV,IAAI,CAACoB,UAAU,CAAC,CAAC;EAC1BR,OAAO,EAAEZ,IAAI,CAACqB,UAAU,CAAC,CAAC;EAC1BP,YAAY,EAAEd,IAAI,CAACsB,eAAe,CAAC;AACrC,CAAC;;AAEP;AACA,OAAO,MAAMC,4BAA4B,GACvCC,UAAkB,IACM;EACxB,QAAQA,UAAU;IAChB,KAAK7B,iBAAiB,CAAC8B,IAAI;IAC3B,KAAK9B,iBAAiB,CAAC+B,OAAO;IAC9B,KAAK/B,iBAAiB,CAACgC,WAAW;IAClC,KAAKhC,iBAAiB,CAACiC,MAAM;IAC7B,KAAKjC,iBAAiB,CAACkC,GAAG;IAC1B,KAAKlC,iBAAiB,CAACmC,UAAU;IACjC,KAAKnC,iBAAiB,CAACoC,WAAW;IAClC,KAAKpC,iBAAiB,CAACqC,eAAe;MACpC,OAAO,WAAW;IACpB,KAAKrC,iBAAiB,CAACsC,gBAAgB;MACrC,OAAO,aAAa;IACtB,KAAKtC,iBAAiB,CAACuC,UAAU;IACjC,KAAKvC,iBAAiB,CAACwC,UAAU;IACjC,KAAKxC,iBAAiB,CAACyC,WAAW;MAChC,OAAO,WAAW;IACpB;MACE,OAAO,SAAS;EACpB;AACF,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["IntegratedDevices"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/device-measurement-map.ts"],"mappings":";;AAiBA,SAASA,iBAAiB,QAAQ,yBAAsB;;AA2GxD;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["IntegratedDevices"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/device-measurement-map.ts"],"mappings":";;AAiBA,SAASA,iBAAiB,QAAQ,yBAAsB;;AAkHxD;AACA;AACA;AACA","ignoreList":[]}
@@ -57,6 +57,7 @@ export let IntegratedDevices = /*#__PURE__*/function (IntegratedDevices) {
57
57
  IntegratedDevices["PF10AW_ME"] = "PF10AW-ME";
58
58
  IntegratedDevices["SA10AW_PU"] = "SA10AW-PU";
59
59
  IntegratedDevices["PF10BW_VE"] = "PF10BW-VE";
60
+ IntegratedDevices["TRASENSE_S9"] = "Trasense S9";
60
61
  return IntegratedDevices;
61
62
  }({});
62
63
  //# sourceMappingURL=integrated-devices.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["IntegratedDevices"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/integrated-devices.ts"],"mappings":";;AAAA,WAAYA,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["IntegratedDevices"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/integrated-devices.ts"],"mappings":";;AAAA,WAAYA,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"device-instruction-pdfs.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/device-instruction-pdfs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AAOjF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAyDrE,CAAC"}
1
+ {"version":3,"file":"device-instruction-pdfs.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/device-instruction-pdfs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AAOjF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CA0DrE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"device-list-items.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/device-list-items.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAI3D,eAAO,MAAM,eAAe,EAAE,cAAc,EA8J3C,CAAC"}
1
+ {"version":3,"file":"device-list-items.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/device-list-items.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAO3D,eAAO,MAAM,eAAe,EAAE,cAAc,EAqK3C,CAAC"}
@@ -1,6 +1,8 @@
1
1
  declare const verovalBpu26Image = "https://cdn.hartmann.info/product/40938_43.jpg";
2
2
  declare const verovalBpw26Image = "https://cdn.hartmann.info/product/40385_43.jpg";
3
3
  declare const verovalFusionImage = "https://cdn.hartmann.info/product/130436_43.jpg";
4
+ declare const trasenseS9Illustration: string;
5
+ declare const trasenseS9IllustrationCredit = "Original OVOK SDK illustration; generic smartwatch artwork, not a manufacturer product photo.";
4
6
  declare const verovalActivityImage = "https://image-eo.winudf.com/v2/image/aW5mby52ZXJvdmFsLm1lZGkuY29ubmVjdF9pY29uXzE1MzUwMTcwMDVfMDYx/icon.png?w=360&fakeurl=1";
5
7
  declare const bosoMedicusSystemImage = "https://www.boso.de/fileadmin/_processed_/0/b/csm_medicus_system_1019_9ce057ffcc.png";
6
8
  declare const visomatComfortSoftBtImage = "https://www.visomat.de/wp-content/uploads/2023/10/prd_slider_comfort-soft-BT.jpg";
@@ -39,5 +41,5 @@ declare const cosinussCredit = "cosinuss\u00B0 official product page: https://ww
39
41
  declare const alivecorCredit = "AliveCor official KardiaMobile product page: https://www.alivecor.com/kardiamobile";
40
42
  declare const contecCredit = "Contec official BC401 product page: https://contechealth.com/collections/hot-sales/products/contec-bc401-handheld-urine-analyzer-11-parameter-600pcs-test-strip-bluetooth";
41
43
  declare const transtekCredit = "Transtek official product page: https://www.transtekmed.com/product/transtek-body-scale-gbs-2012-b1";
42
- export { alivecorCredit, aojCredit, bosoMedicusSystemCredit, bosoMedicusSystemImage, bundledAssetCredit, contecCredit, cosinussCredit, cyclotestMySenseCredit, cyclotestMySenseImage, foraCredit, hartmannBpu26Credit, hartmannBpw26Credit, hartmannFusionCredit, hartmannActivityCredit, hartmannDuoControlCredit, hartmannEcgCredit, taidocCredit, transtekCredit, viatomAojImage, viatomBodyScaleCredit, viatomBp2Image, viatomBp3Credit, viatomBp3Image, viatomBloodPressureCredit, viatomCheckmeCredit, viatomCheckmeImage, viatomEcgCredit, viatomEr1Image, viatomF4Image, viatomO2RingImage, viatomR20Credit, viatomR20Image, viatomR200Credit, viatomR200Image, viatomOximeterCredit, verovalBpu26Image, verovalBpw26Image, verovalFusionImage, verovalActivityImage, visomatComfortSoftBtCredit, visomatComfortSoftBtImage, };
44
+ export { alivecorCredit, aojCredit, bosoMedicusSystemCredit, bosoMedicusSystemImage, bundledAssetCredit, contecCredit, cosinussCredit, cyclotestMySenseCredit, cyclotestMySenseImage, foraCredit, hartmannBpu26Credit, hartmannBpw26Credit, hartmannFusionCredit, hartmannActivityCredit, hartmannDuoControlCredit, hartmannEcgCredit, taidocCredit, transtekCredit, trasenseS9Illustration, trasenseS9IllustrationCredit, viatomAojImage, viatomBodyScaleCredit, viatomBp2Image, viatomBp3Credit, viatomBp3Image, viatomBloodPressureCredit, viatomCheckmeCredit, viatomCheckmeImage, viatomEcgCredit, viatomEr1Image, viatomF4Image, viatomO2RingImage, viatomR20Credit, viatomR20Image, viatomR200Credit, viatomR200Image, viatomOximeterCredit, verovalBpu26Image, verovalBpw26Image, verovalFusionImage, verovalActivityImage, visomatComfortSoftBtCredit, visomatComfortSoftBtImage, };
43
45
  //# sourceMappingURL=supported-device-catalog-assets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"supported-device-catalog-assets.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/supported-device-catalog-assets.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB,mDAAmD,CAAC;AAE3E,QAAA,MAAM,iBAAiB,mDAAmD,CAAC;AAE3E,QAAA,MAAM,kBAAkB,oDAAoD,CAAC;AAE7E,QAAA,MAAM,oBAAoB,+HACoG,CAAC;AAE/H,QAAA,MAAM,sBAAsB,yFAC4D,CAAC;AAEzF,QAAA,MAAM,yBAAyB,qFACqD,CAAC;AAErF,QAAA,MAAM,qBAAqB,4GACgF,CAAC;AAE5G,QAAA,MAAM,cAAc,oMAC+K,CAAC;AAEpM,QAAA,MAAM,cAAc,kKAC6I,CAAC;AAElK,QAAA,MAAM,aAAa,oLACgK,CAAC;AAEpL,QAAA,MAAM,iBAAiB,8LACsK,CAAC;AAE9L,QAAA,MAAM,cAAc,yKACoJ,CAAC;AAEzK,QAAA,MAAM,cAAc,yEACoD,CAAC;AAEzE,QAAA,MAAM,eAAe,sEACgD,CAAC;AAEtE,QAAA,MAAM,kBAAkB,6KACoJ,CAAC;AAE7K,QAAA,MAAM,cAAc,2KACsJ,CAAC;AAE3K,QAAA,MAAM,kBAAkB,0FACiE,CAAC;AAE1F,QAAA,MAAM,wBAAwB,+JACgI,CAAC;AAE/J,QAAA,MAAM,iBAAiB,wIACgH,CAAC;AAExI,QAAA,MAAM,mBAAmB,oMAC0K,CAAC;AAEpM,QAAA,MAAM,mBAAmB,4LACkK,CAAC;AAE5L,QAAA,MAAM,oBAAoB,iMACsK,CAAC;AAEjM,QAAA,MAAM,sBAAsB,+MACkL,CAAC;AAE/M,QAAA,MAAM,uBAAuB,+HACiG,CAAC;AAE/H,QAAA,MAAM,0BAA0B,qFACoD,CAAC;AAErF,QAAA,MAAM,sBAAsB,2GAC8E,CAAC;AAE3G,QAAA,MAAM,yBAAyB,qFACqD,CAAC;AAErF,QAAA,MAAM,eAAe,oGAC8E,CAAC;AAEpG,QAAA,MAAM,qBAAqB,wEAC4C,CAAC;AAExE,QAAA,MAAM,oBAAoB,6EACkD,CAAC;AAE7E,QAAA,MAAM,eAAe,8EACwD,CAAC;AAE9E,QAAA,MAAM,eAAe,kKAC4I,CAAC;AAElK,QAAA,MAAM,gBAAgB,sLAC+J,CAAC;AAEtL,QAAA,MAAM,mBAAmB,0FACgE,CAAC;AAE1F,QAAA,MAAM,SAAS,0EAC0D,CAAC;AAE1E,QAAA,MAAM,YAAY,qEACkD,CAAC;AAErE,QAAA,MAAM,UAAU,mEAAmE,CAAC;AAEpF,QAAA,MAAM,cAAc,mGACyE,CAAC;AAE9F,QAAA,MAAM,cAAc,uFACkE,CAAC;AAEvF,QAAA,MAAM,YAAY,8KAC2J,CAAC;AAE9K,QAAA,MAAM,cAAc,wGACmF,CAAC;AAExG,OAAO,EACL,cAAc,EACd,SAAS,EACT,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,GAC1B,CAAC"}
1
+ {"version":3,"file":"supported-device-catalog-assets.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/supported-device-catalog-assets.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB,mDAAmD,CAAC;AAE3E,QAAA,MAAM,iBAAiB,mDAAmD,CAAC;AAE3E,QAAA,MAAM,kBAAkB,oDAAoD,CAAC;AAE7E,QAAA,MAAM,sBAAsB,QAEzB,CAAC;AAEJ,QAAA,MAAM,4BAA4B,kGAC+D,CAAC;AAElG,QAAA,MAAM,oBAAoB,+HACoG,CAAC;AAE/H,QAAA,MAAM,sBAAsB,yFAC4D,CAAC;AAEzF,QAAA,MAAM,yBAAyB,qFACqD,CAAC;AAErF,QAAA,MAAM,qBAAqB,4GACgF,CAAC;AAE5G,QAAA,MAAM,cAAc,oMAC+K,CAAC;AAEpM,QAAA,MAAM,cAAc,kKAC6I,CAAC;AAElK,QAAA,MAAM,aAAa,oLACgK,CAAC;AAEpL,QAAA,MAAM,iBAAiB,8LACsK,CAAC;AAE9L,QAAA,MAAM,cAAc,yKACoJ,CAAC;AAEzK,QAAA,MAAM,cAAc,yEACoD,CAAC;AAEzE,QAAA,MAAM,eAAe,sEACgD,CAAC;AAEtE,QAAA,MAAM,kBAAkB,6KACoJ,CAAC;AAE7K,QAAA,MAAM,cAAc,2KACsJ,CAAC;AAE3K,QAAA,MAAM,kBAAkB,0FACiE,CAAC;AAE1F,QAAA,MAAM,wBAAwB,+JACgI,CAAC;AAE/J,QAAA,MAAM,iBAAiB,wIACgH,CAAC;AAExI,QAAA,MAAM,mBAAmB,oMAC0K,CAAC;AAEpM,QAAA,MAAM,mBAAmB,4LACkK,CAAC;AAE5L,QAAA,MAAM,oBAAoB,iMACsK,CAAC;AAEjM,QAAA,MAAM,sBAAsB,+MACkL,CAAC;AAE/M,QAAA,MAAM,uBAAuB,+HACiG,CAAC;AAE/H,QAAA,MAAM,0BAA0B,qFACoD,CAAC;AAErF,QAAA,MAAM,sBAAsB,2GAC8E,CAAC;AAE3G,QAAA,MAAM,yBAAyB,qFACqD,CAAC;AAErF,QAAA,MAAM,eAAe,oGAC8E,CAAC;AAEpG,QAAA,MAAM,qBAAqB,wEAC4C,CAAC;AAExE,QAAA,MAAM,oBAAoB,6EACkD,CAAC;AAE7E,QAAA,MAAM,eAAe,8EACwD,CAAC;AAE9E,QAAA,MAAM,eAAe,kKAC4I,CAAC;AAElK,QAAA,MAAM,gBAAgB,sLAC+J,CAAC;AAEtL,QAAA,MAAM,mBAAmB,0FACgE,CAAC;AAE1F,QAAA,MAAM,SAAS,0EAC0D,CAAC;AAE1E,QAAA,MAAM,YAAY,qEACkD,CAAC;AAErE,QAAA,MAAM,UAAU,mEAAmE,CAAC;AAEpF,QAAA,MAAM,cAAc,mGACyE,CAAC;AAE9F,QAAA,MAAM,cAAc,uFACkE,CAAC;AAEvF,QAAA,MAAM,YAAY,8KAC2J,CAAC;AAE9K,QAAA,MAAM,cAAc,wGACmF,CAAC;AAExG,OAAO,EACL,cAAc,EACd,SAAS,EACT,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,4BAA4B,EAC5B,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,GAC1B,CAAC"}
@@ -94,6 +94,13 @@ declare const Devices: readonly [{
94
94
  readonly manufacturerKey: "devices.catalog.manufacturers.hartmann";
95
95
  readonly logo: "https://image-eo.winudf.com/v2/image/aW5mby52ZXJvdmFsLm1lZGkuY29ubmVjdF9pY29uXzE1MzUwMTcwMDVfMDYx/icon.png?w=360&fakeurl=1";
96
96
  readonly creditsForImage: "Veroval Medi.Connect app artwork from APKPure: https://apkpure.net/veroval%C2%AE-medi-connect/info.veroval.medi.connect; device and protocol supplied by HARTMANN's Veroval Activity integration materials";
97
+ }, {
98
+ readonly name: "Trasense S9 (SH09)";
99
+ readonly nameKey: "devices.catalog.trasense-s9.name";
100
+ readonly manufacturer: "Trasense / Shenzhen Pucheng Technology";
101
+ readonly manufacturerKey: "devices.catalog.manufacturers.trasense";
102
+ readonly logo: string;
103
+ readonly creditsForImage: "Original OVOK SDK illustration; generic smartwatch artwork, not a manufacturer product photo.";
97
104
  }, {
98
105
  readonly name: "boso medicus system";
99
106
  readonly nameKey: "devices.catalog.boso-medicus-system.name";
@@ -1 +1 @@
1
- {"version":3,"file":"supported-devices.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/supported-devices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AA4FhF,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,IAAI,CAAC;CACxB,CAAC;AAEF,KAAK,yBAAyB,GAAG,eAAe,GAAG;IACjD,EAAE,EAAE,MAAM,CAAC;IAEX,4DAA4D;IAC5D,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,gBAAgB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAeF;;;;;;;GAOG;AACH,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qPA+MkC,CAAC;AAmiBhD,+FAA+F;AAC/F,QAAA,MAAM,gBAAgB,EAAE,SAAS,yBAAyB,EAUH,CAAC;AAExD,QAAA,MAAM,iBAAiB,sCAAmB,CAAC;AAK3C,iFAAiF;AACjF,QAAA,MAAM,0BAA0B,EAAE,SAAS,cAAc,EAMxD,CAAC;AAEF,OAAO,EACL,OAAO,EACP,0BAA0B,EAC1B,iBAAiB,EACjB,gBAAgB,GACjB,CAAC;AACF,YAAY,EAAE,eAAe,EAAE,yBAAyB,EAAE,CAAC"}
1
+ {"version":3,"file":"supported-devices.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/supported-devices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AA8FhF,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,IAAI,CAAC;CACxB,CAAC;AAEF,KAAK,yBAAyB,GAAG,eAAe,GAAG;IACjD,EAAE,EAAE,MAAM,CAAC;IAEX,4DAA4D;IAC5D,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,gBAAgB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAeF;;;;;;;GAOG;AACH,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qPAuNkC,CAAC;AAwiBhD,+FAA+F;AAC/F,QAAA,MAAM,gBAAgB,EAAE,SAAS,yBAAyB,EAUH,CAAC;AAExD,QAAA,MAAM,iBAAiB,sCAAmB,CAAC;AAK3C,iFAAiF;AACjF,QAAA,MAAM,0BAA0B,EAAE,SAAS,cAAc,EAMxD,CAAC;AAEF,OAAO,EACL,OAAO,EACP,0BAA0B,EAC1B,iBAAiB,EACjB,gBAAgB,GACjB,CAAC;AACF,YAAY,EAAE,eAAe,EAAE,yBAAyB,EAAE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { AcceptedDevice } from "../types/accepted-device";
2
2
  import { DeviceKey } from "../types/device-key";
3
3
  /** Resolves a scan result using only the SDK's plain device declarations. */
4
- export declare const resolveDeviceKey: (acceptedDevices: readonly AcceptedDevice[], advertisedName?: string, serviceUUIDs?: readonly string[]) => DeviceKey | undefined;
4
+ export declare const resolveDeviceKey: (acceptedDevices: readonly AcceptedDevice[], advertisedName?: string, serviceUUIDs?: readonly string[], manufacturerData?: string) => DeviceKey | undefined;
5
5
  //# sourceMappingURL=resolve-device-key.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-device-key.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/core/resolve-device-key.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,GAC3B,iBAAiB,SAAS,cAAc,EAAE,EAC1C,uBAAmB,EACnB,eAAc,SAAS,MAAM,EAAO,KACnC,SAAS,GAAG,SAyCd,CAAC"}
1
+ {"version":3,"file":"resolve-device-key.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/core/resolve-device-key.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIhD,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,GAC3B,iBAAiB,SAAS,cAAc,EAAE,EAC1C,uBAAmB,EACnB,eAAc,SAAS,MAAM,EAAO,EACpC,mBAAmB,MAAM,KACxB,SAAS,GAAG,SAkDd,CAAC"}
@@ -54,6 +54,10 @@ export * from "./services/devices/veroval/veroval.fusion";
54
54
  export * from "./services/devices/veroval/veroval.duo-control-device";
55
55
  export * from "./services/devices/veroval/veroval.ecg-device";
56
56
  export * from "./services/devices/veroval/veroval.activity-device";
57
+ export * from "./services/devices/trasense/s9-advertisement";
58
+ export * from "./services/devices/trasense/s9-frame-reader";
59
+ export * from "./services/devices/trasense/s9.command-sequencer";
60
+ export * from "./services/devices/trasense/s9.device";
57
61
  export * from "./services/devices/veroval/veroval-activity-sequencer";
58
62
  export * from "./services/devices/veroval/veroval.ecg-samples";
59
63
  export * from "./services/devices/lepu/lepu.transports";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/bt-management/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/bt-management/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,sCAAsC,CAAC;AACrD,cAAc,uDAAuD,CAAC;AACtE,cAAc,yCAAyC,CAAC;AACxD,cAAc,uBAAuB,CAAC;AACtC,cAAc,mDAAmD,CAAC;AAClE,cAAc,wDAAwD,CAAC;AACvE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qDAAqD,CAAC;AACpE,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,wCAAwC,CAAC;AACvD,cAAc,wDAAwD,CAAC;AACvE,cAAc,sCAAsC,CAAC;AACrD,cAAc,iDAAiD,CAAC;AAChE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,uDAAuD,CAAC;AACtE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,oDAAoD,CAAC;AACnE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,uDAAuD,CAAC;AACtE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,iDAAiD,CAAC;AAChE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,uDAAuD,CAAC;AACtE,cAAc,qCAAqC,CAAC;AACpD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,iDAAiD,CAAC;AAChE,cAAc,kDAAkD,CAAC;AACjE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAE3D,cAAc,uCAAuC,CAAC;AAEtD,cAAc,0BAA0B,CAAC;AACzC,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAE5C,8EAA8E;AAC9E,OAAO,EACL,eAAe,GAChB,MAAM,sCAAsC,CAAC;AAE9C,kFAAkF;AAClF,YAAY,EACV,mBAAmB,GACpB,MAAM,sCAAsC,CAAC;AAC9C,cAAc,0BAA0B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bt-manager.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/bt-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bt-manager.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/bt-manager.ts"],"names":[],"mappings":"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"}