@ovok/native 1.6.14 → 1.6.15

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 (17) hide show
  1. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.duo-control-device.js +9 -8
  2. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.duo-control-device.js.map +1 -1
  3. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.duo-control-sequencer.js +4 -1
  4. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.duo-control-sequencer.js.map +1 -1
  5. package/lib/module/modules/bt-management/services/devices/veroval/veroval.duo-control-device.js +9 -8
  6. package/lib/module/modules/bt-management/services/devices/veroval/veroval.duo-control-device.js.map +1 -1
  7. package/lib/module/modules/bt-management/services/devices/veroval/veroval.duo-control-sequencer.js +4 -1
  8. package/lib/module/modules/bt-management/services/devices/veroval/veroval.duo-control-sequencer.js.map +1 -1
  9. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.duo-control-device.d.ts +2 -1
  10. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.duo-control-device.d.ts.map +1 -1
  11. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.duo-control-sequencer.d.ts +2 -0
  12. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.duo-control-sequencer.d.ts.map +1 -1
  13. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.duo-control-device.d.ts +2 -1
  14. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.duo-control-device.d.ts.map +1 -1
  15. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.duo-control-sequencer.d.ts +2 -0
  16. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.duo-control-sequencer.d.ts.map +1 -1
  17. package/package.json +1 -1
@@ -35,13 +35,11 @@ const MAX_REPLY_BYTES = 8_192;
35
35
  /** The device sleeps between measurements, so it is given a while to answer. */
36
36
  const STUCK_TIMEOUT_MS = 120_000;
37
37
  const RECORD_TIMESTAMP_BYTES = 10;
38
- const RECORD_MEMORY_SLOT_OFFSET = RECORD_TIMESTAMP_BYTES;
39
38
  const asciiFromFrame = (frame, from, count) => frame.slice(from, from + count).map(byte => String.fromCharCode(Number.parseInt(byte, 16))).join("");
40
39
  const parseVerovalDuoControlRecordMetadata = (frame, recordOffset) => {
41
40
  const timestamp = asciiFromFrame(frame, recordOffset, RECORD_TIMESTAMP_BYTES);
42
41
  const [year, month, day, hour, minute] = [Number(timestamp.slice(0, 2)), Number(timestamp.slice(2, 4)), Number(timestamp.slice(4, 6)), Number(timestamp.slice(6, 8)), Number(timestamp.slice(8, 10))];
43
- const memorySlot = asciiFromFrame(frame, recordOffset + RECORD_MEMORY_SLOT_OFFSET, 1);
44
- if (!/^\d{10}$/.test(timestamp) || ![year, month, day, hour, minute].every(Number.isFinite) || memorySlot !== "1" && memorySlot !== "2") {
42
+ if (!/^\d{10}$/.test(timestamp) || ![year, month, day, hour, minute].every(Number.isFinite)) {
45
43
  return undefined;
46
44
  }
47
45
  const recordedAt = new Date(2000 + year, month - 1, day, hour, minute);
@@ -49,7 +47,6 @@ const parseVerovalDuoControlRecordMetadata = (frame, recordOffset) => {
49
47
  return undefined;
50
48
  }
51
49
  return {
52
- memorySlot: Number(memorySlot),
53
50
  recordedAt
54
51
  };
55
52
  };
@@ -65,9 +62,8 @@ const asciiField = (name, from, unit) => ({
65
62
  * The record layout, read from HARTMANN's own application.
66
63
  *
67
64
  * Offsets are relative to a record, and every field is decimal digits written as text. The
68
- * timestamp at the front of each record is not declared: the SDK stamps a reading when it
69
- * arrives, and a stored record's own clock would need the device's timezone to be
70
- * meaningful.
65
+ * The timestamp at the front of each record is decoded by the device class. Byte 10 is a
66
+ * measurement flag; the memory slot comes from the command that selected the record set.
71
67
  */
72
68
  const duoControlDefinition = (0, _defineCustomDevice.defineCustomDevice)({
73
69
  id: "veroval-duo-control",
@@ -112,6 +108,7 @@ const duoControlDefinition = (0, _defineCustomDevice.defineCustomDevice)({
112
108
  * asked, so what arrives was taken before the connection and may be days old.
113
109
  */
114
110
  class VerovalDuoControlDevice extends _customDevice.CustomDevice {
111
+ memorySlot = 1;
115
112
  constructor(device, params) {
116
113
  super(device, params, duoControlDefinition);
117
114
  this.frameReader = new _sentinelFrameReader.SentinelFrameReader({
@@ -125,6 +122,9 @@ class VerovalDuoControlDevice extends _customDevice.CustomDevice {
125
122
  serviceUuid: SERVICE,
126
123
  characteristicUuid: WRITE
127
124
  },
125
+ onMemorySlot: memorySlot => {
126
+ this.memorySlot = memorySlot;
127
+ },
128
128
  onRefused: reason => this.onError?.(new Error(`Veroval duo control: ${reason}.`))
129
129
  });
130
130
  }
@@ -132,7 +132,8 @@ class VerovalDuoControlDevice extends _customDevice.CustomDevice {
132
132
  const metadata = frame && recordOffset !== undefined ? parseVerovalDuoControlRecordMetadata(frame, recordOffset) : undefined;
133
133
  return metadata ? {
134
134
  ...reading,
135
- ...metadata
135
+ ...metadata,
136
+ memorySlot: this.memorySlot
136
137
  } : reading;
137
138
  };
138
139
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","_defineCustomDevice","_customDevice","_sentinelFrameReader","_verovalDuoControlSequencer","SERVICE","NOTIFY","WRITE","STX","ETX","ACK","NAK","RECORD_BYTES","TAG_BYTES","DATA_REPLY","COUNT_REPLY","MAX_REPLY_BYTES","STUCK_TIMEOUT_MS","RECORD_TIMESTAMP_BYTES","RECORD_MEMORY_SLOT_OFFSET","asciiFromFrame","frame","from","count","slice","map","byte","String","fromCharCode","Number","parseInt","join","parseVerovalDuoControlRecordMetadata","recordOffset","timestamp","year","month","day","hour","minute","memorySlot","test","every","isFinite","undefined","recordedAt","Date","getFullYear","getMonth","getDate","getHours","getMinutes","exports","asciiField","name","unit","byteIndexes","encoding","duoControlDefinition","defineCustomDevice","id","nameMatch","stuckDataTimeoutMs","services","uuid","monitor","minLengthBytes","caseSelectorBytes","cases","selector","kind","measurementTypeKey","MeasurementTypeKey","bloodPressure","description","repeatedRecords","recordBytes","fields","VerovalDuoControlDevice","CustomDevice","constructor","device","params","frameReader","SentinelFrameReader","start","terminator","maxFrameBytes","standaloneBytes","createCommandSequencer","VerovalDuoControlSequencer","write","serviceUuid","characteristicUuid","onRefused","reason","onError","Error","decorateReading","reading","metadata"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/veroval/veroval.duo-control-device.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","_defineCustomDevice","_customDevice","_sentinelFrameReader","_verovalDuoControlSequencer","SERVICE","NOTIFY","WRITE","STX","ETX","ACK","NAK","RECORD_BYTES","TAG_BYTES","DATA_REPLY","COUNT_REPLY","MAX_REPLY_BYTES","STUCK_TIMEOUT_MS","RECORD_TIMESTAMP_BYTES","asciiFromFrame","frame","from","count","slice","map","byte","String","fromCharCode","Number","parseInt","join","parseVerovalDuoControlRecordMetadata","recordOffset","timestamp","year","month","day","hour","minute","test","every","isFinite","undefined","recordedAt","Date","getFullYear","getMonth","getDate","getHours","getMinutes","exports","asciiField","name","unit","byteIndexes","encoding","duoControlDefinition","defineCustomDevice","id","nameMatch","stuckDataTimeoutMs","services","uuid","monitor","minLengthBytes","caseSelectorBytes","cases","selector","kind","measurementTypeKey","MeasurementTypeKey","bloodPressure","description","repeatedRecords","recordBytes","fields","VerovalDuoControlDevice","CustomDevice","memorySlot","constructor","device","params","frameReader","SentinelFrameReader","start","terminator","maxFrameBytes","standaloneBytes","createCommandSequencer","VerovalDuoControlSequencer","write","serviceUuid","characteristicUuid","onMemorySlot","onRefused","reason","onError","Error","decorateReading","reading","metadata"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/veroval/veroval.duo-control-device.ts"],"mappings":"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","ignoreList":[]}
@@ -109,7 +109,10 @@ class VerovalDuoControlSequencer {
109
109
  this.params.onRefused(reason);
110
110
  return undefined;
111
111
  };
112
- commandFor = step => asciiCommand(this.params.write, STEPS[step] ?? "");
112
+ commandFor = step => {
113
+ this.params.onMemorySlot?.(step < 2 ? 1 : 2);
114
+ return asciiCommand(this.params.write, STEPS[step] ?? "");
115
+ };
113
116
  }
114
117
  exports.VerovalDuoControlSequencer = VerovalDuoControlSequencer;
115
118
  const asciiCommandFromHex = (write, hex) => ({
@@ -1 +1 @@
1
- {"version":3,"names":["_hexToByte","require","ACK","NAK","ENQ","STEPS","TAG_FROM","TAG_BYTES","COUNT_BYTES","ASCII_ZERO","ASCII_NINE","asciiOf","frame","from","count","slice","map","byte","String","fromCharCode","hexToByte","join","asciiNumberOf","codes","length","some","code","undefined","Number","asciiCommand","write","text","character","charCodeAt","toString","padStart","withoutResponse","VerovalDuoControlSequencer","step","isDone","constructor","params","initialCommands","commandFor","nextCommand","answerControlByte","tag","answerCount","advance","asciiCommandFromHex","stop","skipMemory","reason","onRefused","exports","hex"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/veroval/veroval.duo-control-sequencer.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_hexToByte","require","ACK","NAK","ENQ","STEPS","TAG_FROM","TAG_BYTES","COUNT_BYTES","ASCII_ZERO","ASCII_NINE","asciiOf","frame","from","count","slice","map","byte","String","fromCharCode","hexToByte","join","asciiNumberOf","codes","length","some","code","undefined","Number","asciiCommand","write","text","character","charCodeAt","toString","padStart","withoutResponse","VerovalDuoControlSequencer","step","isDone","constructor","params","initialCommands","commandFor","nextCommand","answerControlByte","tag","answerCount","advance","asciiCommandFromHex","stop","skipMemory","reason","onRefused","onMemorySlot","exports","hex"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/veroval/veroval.duo-control-sequencer.ts"],"mappings":"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","ignoreList":[]}
@@ -31,13 +31,11 @@ const MAX_REPLY_BYTES = 8_192;
31
31
  /** The device sleeps between measurements, so it is given a while to answer. */
32
32
  const STUCK_TIMEOUT_MS = 120_000;
33
33
  const RECORD_TIMESTAMP_BYTES = 10;
34
- const RECORD_MEMORY_SLOT_OFFSET = RECORD_TIMESTAMP_BYTES;
35
34
  const asciiFromFrame = (frame, from, count) => frame.slice(from, from + count).map(byte => String.fromCharCode(Number.parseInt(byte, 16))).join("");
36
35
  const parseVerovalDuoControlRecordMetadata = (frame, recordOffset) => {
37
36
  const timestamp = asciiFromFrame(frame, recordOffset, RECORD_TIMESTAMP_BYTES);
38
37
  const [year, month, day, hour, minute] = [Number(timestamp.slice(0, 2)), Number(timestamp.slice(2, 4)), Number(timestamp.slice(4, 6)), Number(timestamp.slice(6, 8)), Number(timestamp.slice(8, 10))];
39
- const memorySlot = asciiFromFrame(frame, recordOffset + RECORD_MEMORY_SLOT_OFFSET, 1);
40
- if (!/^\d{10}$/.test(timestamp) || ![year, month, day, hour, minute].every(Number.isFinite) || memorySlot !== "1" && memorySlot !== "2") {
38
+ if (!/^\d{10}$/.test(timestamp) || ![year, month, day, hour, minute].every(Number.isFinite)) {
41
39
  return undefined;
42
40
  }
43
41
  const recordedAt = new Date(2000 + year, month - 1, day, hour, minute);
@@ -45,7 +43,6 @@ const parseVerovalDuoControlRecordMetadata = (frame, recordOffset) => {
45
43
  return undefined;
46
44
  }
47
45
  return {
48
- memorySlot: Number(memorySlot),
49
46
  recordedAt
50
47
  };
51
48
  };
@@ -60,9 +57,8 @@ const asciiField = (name, from, unit) => ({
60
57
  * The record layout, read from HARTMANN's own application.
61
58
  *
62
59
  * Offsets are relative to a record, and every field is decimal digits written as text. The
63
- * timestamp at the front of each record is not declared: the SDK stamps a reading when it
64
- * arrives, and a stored record's own clock would need the device's timezone to be
65
- * meaningful.
60
+ * The timestamp at the front of each record is decoded by the device class. Byte 10 is a
61
+ * measurement flag; the memory slot comes from the command that selected the record set.
66
62
  */
67
63
  const duoControlDefinition = defineCustomDevice({
68
64
  id: "veroval-duo-control",
@@ -107,6 +103,7 @@ const duoControlDefinition = defineCustomDevice({
107
103
  * asked, so what arrives was taken before the connection and may be days old.
108
104
  */
109
105
  class VerovalDuoControlDevice extends CustomDevice {
106
+ memorySlot = 1;
110
107
  constructor(device, params) {
111
108
  super(device, params, duoControlDefinition);
112
109
  this.frameReader = new SentinelFrameReader({
@@ -120,6 +117,9 @@ class VerovalDuoControlDevice extends CustomDevice {
120
117
  serviceUuid: SERVICE,
121
118
  characteristicUuid: WRITE
122
119
  },
120
+ onMemorySlot: memorySlot => {
121
+ this.memorySlot = memorySlot;
122
+ },
123
123
  onRefused: reason => this.onError?.(new Error(`Veroval duo control: ${reason}.`))
124
124
  });
125
125
  }
@@ -127,7 +127,8 @@ class VerovalDuoControlDevice extends CustomDevice {
127
127
  const metadata = frame && recordOffset !== undefined ? parseVerovalDuoControlRecordMetadata(frame, recordOffset) : undefined;
128
128
  return metadata ? {
129
129
  ...reading,
130
- ...metadata
130
+ ...metadata,
131
+ memorySlot: this.memorySlot
131
132
  } : reading;
132
133
  };
133
134
  }
@@ -1 +1 @@
1
- {"version":3,"names":["MeasurementTypeKey","defineCustomDevice","CustomDevice","SentinelFrameReader","VerovalDuoControlSequencer","SERVICE","NOTIFY","WRITE","STX","ETX","ACK","NAK","RECORD_BYTES","TAG_BYTES","DATA_REPLY","COUNT_REPLY","MAX_REPLY_BYTES","STUCK_TIMEOUT_MS","RECORD_TIMESTAMP_BYTES","RECORD_MEMORY_SLOT_OFFSET","asciiFromFrame","frame","from","count","slice","map","byte","String","fromCharCode","Number","parseInt","join","parseVerovalDuoControlRecordMetadata","recordOffset","timestamp","year","month","day","hour","minute","memorySlot","test","every","isFinite","undefined","recordedAt","Date","getFullYear","getMonth","getDate","getHours","getMinutes","asciiField","name","unit","byteIndexes","encoding","duoControlDefinition","id","nameMatch","stuckDataTimeoutMs","services","uuid","monitor","minLengthBytes","caseSelectorBytes","cases","selector","kind","measurementTypeKey","bloodPressure","description","repeatedRecords","recordBytes","fields","VerovalDuoControlDevice","constructor","device","params","frameReader","start","terminator","maxFrameBytes","standaloneBytes","createCommandSequencer","write","serviceUuid","characteristicUuid","onRefused","reason","onError","Error","decorateReading","reading","metadata"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/veroval/veroval.duo-control-device.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["MeasurementTypeKey","defineCustomDevice","CustomDevice","SentinelFrameReader","VerovalDuoControlSequencer","SERVICE","NOTIFY","WRITE","STX","ETX","ACK","NAK","RECORD_BYTES","TAG_BYTES","DATA_REPLY","COUNT_REPLY","MAX_REPLY_BYTES","STUCK_TIMEOUT_MS","RECORD_TIMESTAMP_BYTES","asciiFromFrame","frame","from","count","slice","map","byte","String","fromCharCode","Number","parseInt","join","parseVerovalDuoControlRecordMetadata","recordOffset","timestamp","year","month","day","hour","minute","test","every","isFinite","undefined","recordedAt","Date","getFullYear","getMonth","getDate","getHours","getMinutes","asciiField","name","unit","byteIndexes","encoding","duoControlDefinition","id","nameMatch","stuckDataTimeoutMs","services","uuid","monitor","minLengthBytes","caseSelectorBytes","cases","selector","kind","measurementTypeKey","bloodPressure","description","repeatedRecords","recordBytes","fields","VerovalDuoControlDevice","memorySlot","constructor","device","params","frameReader","start","terminator","maxFrameBytes","standaloneBytes","createCommandSequencer","write","serviceUuid","characteristicUuid","onMemorySlot","onRefused","reason","onError","Error","decorateReading","reading","metadata"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/veroval/veroval.duo-control-device.ts"],"mappings":"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","ignoreList":[]}
@@ -106,7 +106,10 @@ export class VerovalDuoControlSequencer {
106
106
  this.params.onRefused(reason);
107
107
  return undefined;
108
108
  };
109
- commandFor = step => asciiCommand(this.params.write, STEPS[step] ?? "");
109
+ commandFor = step => {
110
+ this.params.onMemorySlot?.(step < 2 ? 1 : 2);
111
+ return asciiCommand(this.params.write, STEPS[step] ?? "");
112
+ };
110
113
  }
111
114
  const asciiCommandFromHex = (write, hex) => ({
112
115
  ...write,
@@ -1 +1 @@
1
- {"version":3,"names":["hexToByte","ACK","NAK","ENQ","STEPS","TAG_FROM","TAG_BYTES","COUNT_BYTES","ASCII_ZERO","ASCII_NINE","asciiOf","frame","from","count","slice","map","byte","String","fromCharCode","join","asciiNumberOf","codes","length","some","code","undefined","Number","asciiCommand","write","text","character","charCodeAt","toString","padStart","withoutResponse","VerovalDuoControlSequencer","step","isDone","constructor","params","initialCommands","commandFor","nextCommand","answerControlByte","tag","answerCount","advance","asciiCommandFromHex","stop","skipMemory","reason","onRefused","hex"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/veroval/veroval.duo-control-sequencer.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["hexToByte","ACK","NAK","ENQ","STEPS","TAG_FROM","TAG_BYTES","COUNT_BYTES","ASCII_ZERO","ASCII_NINE","asciiOf","frame","from","count","slice","map","byte","String","fromCharCode","join","asciiNumberOf","codes","length","some","code","undefined","Number","asciiCommand","write","text","character","charCodeAt","toString","padStart","withoutResponse","VerovalDuoControlSequencer","step","isDone","constructor","params","initialCommands","commandFor","nextCommand","answerControlByte","tag","answerCount","advance","asciiCommandFromHex","stop","skipMemory","reason","onRefused","onMemorySlot","hex"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/veroval/veroval.duo-control-sequencer.ts"],"mappings":"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","ignoreList":[]}
@@ -9,7 +9,7 @@ type VerovalDuoControlMeasurement = BloodPressureMeasurement & {
9
9
  /** The timestamp stored in the monitor, rather than the download time. */
10
10
  recordedAt: Date;
11
11
  };
12
- declare const parseVerovalDuoControlRecordMetadata: (frame: readonly string[], recordOffset: number) => Pick<VerovalDuoControlMeasurement, "memorySlot" | "recordedAt"> | undefined;
12
+ declare const parseVerovalDuoControlRecordMetadata: (frame: readonly string[], recordOffset: number) => Pick<VerovalDuoControlMeasurement, "recordedAt"> | undefined;
13
13
  /**
14
14
  * The Veroval duo control.
15
15
  *
@@ -22,6 +22,7 @@ declare const parseVerovalDuoControlRecordMetadata: (frame: readonly string[], r
22
22
  * asked, so what arrives was taken before the connection and may be days old.
23
23
  */
24
24
  declare class VerovalDuoControlDevice extends CustomDevice {
25
+ private memorySlot;
25
26
  constructor(device: Device, params: CreateDeviceParams<CustomDeviceId>);
26
27
  protected decorateReading: (reading: Parameters<CustomDevice["decorateReading"]>[0], frame?: readonly string[], recordOffset?: number) => import("../../..").CustomMeasurement & {
27
28
  caseType: import("../../../types/case-type").CaseType;
@@ -1 +1 @@
1
- {"version":3,"file":"veroval.duo-control-device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/veroval/veroval.duo-control-device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAsB,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAmCvD,KAAK,4BAA4B,GAAG,wBAAwB,GAAG;IAE7D,oDAAoD;IACpD,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;IAElB,0EAA0E;IAC1E,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAYF,QAAA,MAAM,oCAAoC,GACxC,OAAO,SAAS,MAAM,EAAE,EACxB,cAAc,MAAM,KACnB,IAAI,CAAC,4BAA4B,EAAE,YAAY,GAAG,YAAY,CAAC,GAAG,SAsCpE,CAAC;AAsDF;;;;;;;;;;GAUG;AACH,cAAM,uBAAwB,SAAQ,YAAY;gBAE9C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC;IAmB5C,SAAS,CAAC,eAAe,GACvB,SAAS,UAAU,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EACvD,QAAQ,SAAS,MAAM,EAAE,EACzB,eAAe,MAAM;;;;MAUrB;CACH;AAED,OAAO,EACL,oCAAoC,EACpC,uBAAuB,GACxB,CAAC;AACF,YAAY,EAAE,4BAA4B,EAAE,CAAC"}
1
+ {"version":3,"file":"veroval.duo-control-device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/veroval/veroval.duo-control-device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAsB,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAkCvD,KAAK,4BAA4B,GAAG,wBAAwB,GAAG;IAE7D,oDAAoD;IACpD,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;IAElB,0EAA0E;IAC1E,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAYF,QAAA,MAAM,oCAAoC,GACxC,OAAO,SAAS,MAAM,EAAE,EACxB,cAAc,MAAM,KACnB,IAAI,CAAC,4BAA4B,EAAE,YAAY,CAAC,GAAG,SA+BrD,CAAC;AAqDF;;;;;;;;;;GAUG;AACH,cAAM,uBAAwB,SAAQ,YAAY;IAChD,OAAO,CAAC,UAAU,CAAY;gBAG5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC;IAsB5C,SAAS,CAAC,eAAe,GACvB,SAAS,UAAU,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EACvD,QAAQ,SAAS,MAAM,EAAE,EACzB,eAAe,MAAM;;;;MAUrB;CACH;AAED,OAAO,EACL,oCAAoC,EACpC,uBAAuB,GACxB,CAAC;AACF,YAAY,EAAE,4BAA4B,EAAE,CAAC"}
@@ -5,6 +5,8 @@ interface DuoControlSequencerParams {
5
5
  write: Omit<DeviceCommand, "frame">;
6
6
  /** Called with why the exchange stopped early. Required, so a refusal is not lost. */
7
7
  onRefused: (reason: string) => void;
8
+ /** Called when a command selects one of the monitor's two user memories. */
9
+ onMemorySlot?: (memorySlot: 1 | 2) => void;
8
10
  }
9
11
  /**
10
12
  * Walks the Veroval duo control through its stored history.
@@ -1 +1 @@
1
- {"version":3,"file":"veroval.duo-control-sequencer.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/veroval/veroval.duo-control-sequencer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAyC9D,UAAU,yBAAyB;IAEjC,2EAA2E;IAC3E,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAEpC,sFAAsF;IACtF,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAaD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,0BAA2B,YAAW,gBAAgB;IAI9C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAH1C,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAS;gBAEa,MAAM,EAAE,yBAAyB;IAE9D,eAAe,QAAO,SAAS,aAAa,EAAE,CAAyB;IAEvE,WAAW,GAChB,OAAO,SAAS,MAAM,EAAE,KACvB,SAAS,aAAa,EAAE,GAAG,SAAS,CAgBrC;IAEF,OAAO,CAAC,iBAAiB,CAYvB;IAEF;;;OAGG;IACH,OAAO,CAAC,WAAW,CAUjB;IAEF,mEAAmE;IACnE,OAAO,CAAC,UAAU,CAIhB;IAEF,OAAO,CAAC,OAAO,CAUb;IAEF,OAAO,CAAC,IAAI,CAKV;IAEF,OAAO,CAAC,UAAU,CACmC;CACtD"}
1
+ {"version":3,"file":"veroval.duo-control-sequencer.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/veroval/veroval.duo-control-sequencer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAyC9D,UAAU,yBAAyB;IAEjC,2EAA2E;IAC3E,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAEpC,sFAAsF;IACtF,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpC,4EAA4E;IAC5E,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;CAC5C;AAaD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,0BAA2B,YAAW,gBAAgB;IAI9C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAH1C,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAS;gBAEa,MAAM,EAAE,yBAAyB;IAE9D,eAAe,QAAO,SAAS,aAAa,EAAE,CAAyB;IAEvE,WAAW,GAChB,OAAO,SAAS,MAAM,EAAE,KACvB,SAAS,aAAa,EAAE,GAAG,SAAS,CAgBrC;IAEF,OAAO,CAAC,iBAAiB,CAYvB;IAEF;;;OAGG;IACH,OAAO,CAAC,WAAW,CAUjB;IAEF,mEAAmE;IACnE,OAAO,CAAC,UAAU,CAIhB;IAEF,OAAO,CAAC,OAAO,CAUb;IAEF,OAAO,CAAC,IAAI,CAKV;IAEF,OAAO,CAAC,UAAU,CAIhB;CACH"}
@@ -9,7 +9,7 @@ type VerovalDuoControlMeasurement = BloodPressureMeasurement & {
9
9
  /** The timestamp stored in the monitor, rather than the download time. */
10
10
  recordedAt: Date;
11
11
  };
12
- declare const parseVerovalDuoControlRecordMetadata: (frame: readonly string[], recordOffset: number) => Pick<VerovalDuoControlMeasurement, "memorySlot" | "recordedAt"> | undefined;
12
+ declare const parseVerovalDuoControlRecordMetadata: (frame: readonly string[], recordOffset: number) => Pick<VerovalDuoControlMeasurement, "recordedAt"> | undefined;
13
13
  /**
14
14
  * The Veroval duo control.
15
15
  *
@@ -22,6 +22,7 @@ declare const parseVerovalDuoControlRecordMetadata: (frame: readonly string[], r
22
22
  * asked, so what arrives was taken before the connection and may be days old.
23
23
  */
24
24
  declare class VerovalDuoControlDevice extends CustomDevice {
25
+ private memorySlot;
25
26
  constructor(device: Device, params: CreateDeviceParams<CustomDeviceId>);
26
27
  protected decorateReading: (reading: Parameters<CustomDevice["decorateReading"]>[0], frame?: readonly string[], recordOffset?: number) => import("../../..").CustomMeasurement & {
27
28
  caseType: import("../../../types/case-type").CaseType;
@@ -1 +1 @@
1
- {"version":3,"file":"veroval.duo-control-device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/veroval/veroval.duo-control-device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAsB,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAmCvD,KAAK,4BAA4B,GAAG,wBAAwB,GAAG;IAE7D,oDAAoD;IACpD,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;IAElB,0EAA0E;IAC1E,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAYF,QAAA,MAAM,oCAAoC,GACxC,OAAO,SAAS,MAAM,EAAE,EACxB,cAAc,MAAM,KACnB,IAAI,CAAC,4BAA4B,EAAE,YAAY,GAAG,YAAY,CAAC,GAAG,SAsCpE,CAAC;AAsDF;;;;;;;;;;GAUG;AACH,cAAM,uBAAwB,SAAQ,YAAY;gBAE9C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC;IAmB5C,SAAS,CAAC,eAAe,GACvB,SAAS,UAAU,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EACvD,QAAQ,SAAS,MAAM,EAAE,EACzB,eAAe,MAAM;;;;MAUrB;CACH;AAED,OAAO,EACL,oCAAoC,EACpC,uBAAuB,GACxB,CAAC;AACF,YAAY,EAAE,4BAA4B,EAAE,CAAC"}
1
+ {"version":3,"file":"veroval.duo-control-device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/veroval/veroval.duo-control-device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAsB,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAkCvD,KAAK,4BAA4B,GAAG,wBAAwB,GAAG;IAE7D,oDAAoD;IACpD,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;IAElB,0EAA0E;IAC1E,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAYF,QAAA,MAAM,oCAAoC,GACxC,OAAO,SAAS,MAAM,EAAE,EACxB,cAAc,MAAM,KACnB,IAAI,CAAC,4BAA4B,EAAE,YAAY,CAAC,GAAG,SA+BrD,CAAC;AAqDF;;;;;;;;;;GAUG;AACH,cAAM,uBAAwB,SAAQ,YAAY;IAChD,OAAO,CAAC,UAAU,CAAY;gBAG5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC;IAsB5C,SAAS,CAAC,eAAe,GACvB,SAAS,UAAU,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EACvD,QAAQ,SAAS,MAAM,EAAE,EACzB,eAAe,MAAM;;;;MAUrB;CACH;AAED,OAAO,EACL,oCAAoC,EACpC,uBAAuB,GACxB,CAAC;AACF,YAAY,EAAE,4BAA4B,EAAE,CAAC"}
@@ -5,6 +5,8 @@ interface DuoControlSequencerParams {
5
5
  write: Omit<DeviceCommand, "frame">;
6
6
  /** Called with why the exchange stopped early. Required, so a refusal is not lost. */
7
7
  onRefused: (reason: string) => void;
8
+ /** Called when a command selects one of the monitor's two user memories. */
9
+ onMemorySlot?: (memorySlot: 1 | 2) => void;
8
10
  }
9
11
  /**
10
12
  * Walks the Veroval duo control through its stored history.
@@ -1 +1 @@
1
- {"version":3,"file":"veroval.duo-control-sequencer.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/veroval/veroval.duo-control-sequencer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAyC9D,UAAU,yBAAyB;IAEjC,2EAA2E;IAC3E,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAEpC,sFAAsF;IACtF,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAaD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,0BAA2B,YAAW,gBAAgB;IAI9C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAH1C,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAS;gBAEa,MAAM,EAAE,yBAAyB;IAE9D,eAAe,QAAO,SAAS,aAAa,EAAE,CAAyB;IAEvE,WAAW,GAChB,OAAO,SAAS,MAAM,EAAE,KACvB,SAAS,aAAa,EAAE,GAAG,SAAS,CAgBrC;IAEF,OAAO,CAAC,iBAAiB,CAYvB;IAEF;;;OAGG;IACH,OAAO,CAAC,WAAW,CAUjB;IAEF,mEAAmE;IACnE,OAAO,CAAC,UAAU,CAIhB;IAEF,OAAO,CAAC,OAAO,CAUb;IAEF,OAAO,CAAC,IAAI,CAKV;IAEF,OAAO,CAAC,UAAU,CACmC;CACtD"}
1
+ {"version":3,"file":"veroval.duo-control-sequencer.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/veroval/veroval.duo-control-sequencer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAyC9D,UAAU,yBAAyB;IAEjC,2EAA2E;IAC3E,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAEpC,sFAAsF;IACtF,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpC,4EAA4E;IAC5E,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;CAC5C;AAaD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,0BAA2B,YAAW,gBAAgB;IAI9C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAH1C,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAS;gBAEa,MAAM,EAAE,yBAAyB;IAE9D,eAAe,QAAO,SAAS,aAAa,EAAE,CAAyB;IAEvE,WAAW,GAChB,OAAO,SAAS,MAAM,EAAE,KACvB,SAAS,aAAa,EAAE,GAAG,SAAS,CAgBrC;IAEF,OAAO,CAAC,iBAAiB,CAYvB;IAEF;;;OAGG;IACH,OAAO,CAAC,WAAW,CAUjB;IAEF,mEAAmE;IACnE,OAAO,CAAC,UAAU,CAIhB;IAEF,OAAO,CAAC,OAAO,CAUb;IAEF,OAAO,CAAC,IAAI,CAKV;IAEF,OAAO,CAAC,UAAU,CAIhB;CACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ovok/native",
3
- "version": "1.6.14",
3
+ "version": "1.6.15",
4
4
  "description": "React native component sdk for OVOK",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",