@ovok/native 0.3.13 → 0.3.14

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 (57) hide show
  1. package/lib/commonjs/modules/bt-management/services/bt-manager.js +2 -2
  2. package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
  3. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js +4 -4
  4. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  5. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js +10 -4
  6. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  7. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +12 -2
  8. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  9. package/lib/commonjs/modules/bt-management/services/devices/f4/f4.device.js +31 -2
  10. package/lib/commonjs/modules/bt-management/services/devices/f4/f4.device.js.map +1 -1
  11. package/lib/commonjs/modules/bt-management/services/devices/f4/f4.main-services.js +1 -6
  12. package/lib/commonjs/modules/bt-management/services/devices/f4/f4.main-services.js.map +1 -1
  13. package/lib/commonjs/modules/bt-management/types/case-type.js +1 -0
  14. package/lib/commonjs/modules/bt-management/types/case-type.js.map +1 -1
  15. package/lib/commonjs/modules/bt-management/types/dependent-result-handler-params.js +6 -0
  16. package/lib/commonjs/modules/bt-management/types/dependent-result-handler-params.js.map +1 -0
  17. package/lib/module/modules/bt-management/services/bt-manager.js +2 -2
  18. package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
  19. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js +4 -4
  20. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  21. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js +10 -4
  22. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  23. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +12 -2
  24. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  25. package/lib/module/modules/bt-management/services/devices/f4/f4.device.js +31 -2
  26. package/lib/module/modules/bt-management/services/devices/f4/f4.device.js.map +1 -1
  27. package/lib/module/modules/bt-management/services/devices/f4/f4.main-services.js +1 -6
  28. package/lib/module/modules/bt-management/services/devices/f4/f4.main-services.js.map +1 -1
  29. package/lib/module/modules/bt-management/types/case-type.js +1 -0
  30. package/lib/module/modules/bt-management/types/case-type.js.map +1 -1
  31. package/lib/module/modules/bt-management/types/dependent-result-handler-params.js +4 -0
  32. package/lib/module/modules/bt-management/types/dependent-result-handler-params.js.map +1 -0
  33. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  34. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts +8 -7
  35. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  36. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts +12 -2
  37. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  38. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f4/f4.device.d.ts +15 -1
  39. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f4/f4.device.d.ts.map +1 -1
  40. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f4/f4.main-services.d.ts.map +1 -1
  41. package/lib/typescript/commonjs/src/modules/bt-management/types/case-type.d.ts +1 -0
  42. package/lib/typescript/commonjs/src/modules/bt-management/types/case-type.d.ts.map +1 -1
  43. package/lib/typescript/commonjs/src/modules/bt-management/types/dependent-result-handler-params.d.ts +9 -0
  44. package/lib/typescript/commonjs/src/modules/bt-management/types/dependent-result-handler-params.d.ts.map +1 -0
  45. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  46. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts +8 -7
  47. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  48. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts +12 -2
  49. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  50. package/lib/typescript/module/src/modules/bt-management/services/devices/f4/f4.device.d.ts +15 -1
  51. package/lib/typescript/module/src/modules/bt-management/services/devices/f4/f4.device.d.ts.map +1 -1
  52. package/lib/typescript/module/src/modules/bt-management/services/devices/f4/f4.main-services.d.ts.map +1 -1
  53. package/lib/typescript/module/src/modules/bt-management/types/case-type.d.ts +1 -0
  54. package/lib/typescript/module/src/modules/bt-management/types/case-type.d.ts.map +1 -1
  55. package/lib/typescript/module/src/modules/bt-management/types/dependent-result-handler-params.d.ts +9 -0
  56. package/lib/typescript/module/src/modules/bt-management/types/dependent-result-handler-params.d.ts.map +1 -0
  57. package/package.json +1 -1
@@ -9,6 +9,15 @@ export class BTManagedDevice {
9
9
  * The timeout in milliseconds for the stuck data.
10
10
  */
11
11
 
12
+ /**
13
+ * The function to handle the dependent result on dependent case. This is generic and can be overridden by the device to handle the result based on the device logic.
14
+ * If the case is dependent, this function will be called to handle the result and return the new result based on the device logic.
15
+ * If the case is not dependent, this function will not be called.
16
+ *
17
+ * @param data - The data to handle the result.
18
+ * @returns The handled data.
19
+ */
20
+
12
21
  constructor(device, {
13
22
  deviceName,
14
23
  onError: onErrorCallback,
@@ -46,7 +55,7 @@ export class BTManagedDevice {
46
55
  };
47
56
  this.onError = error => {
48
57
  sentryLogger("error", "BT_MANAGER: Calling onError callback", {
49
- error,
58
+ error: error instanceof Error ? error.message : error,
50
59
  deviceData: this.deviceData,
51
60
  deviceName: this.deviceData.name
52
61
  });
@@ -113,7 +122,8 @@ export class BTManagedDevice {
113
122
  }
114
123
  },
115
124
  onSendCommandToDevice: this.connectionHandler?.sendCommandToDevice?.bind(this),
116
- onError: this.onError?.bind(this)
125
+ onError: this.onError?.bind(this),
126
+ handleDependentResult: this.handleDependentResult?.bind(this)
117
127
  });
118
128
  await this.connectionHandler.connect();
119
129
  };
@@ -1 +1 @@
1
- {"version":3,"names":["sentryLogger","DeviceStatus","BTConnectionHandler","BTDataProcessor","BTManagedDevice","constructor","device","deviceName","onError","onErrorCallback","onDeviceStatusChanged","onDeviceStatusChangedCallback","onResult","onResultCallback","onDeviceDisconnected","onDeviceDisconnectedCallback","deviceId","id","deviceData","name","localName","manufacturerData","sn","measurementTypes","status","measurementTypeKey","error","caseType","_","data","diagramPoints","length","undefined","destroy","connectionHandler","dataProcessor","connect","getSupportedMeasurementTypeKeys","mainServices","onStatusChanged","bind","DISCONNECTED","onDataReceived","uuid","hexValue","processData","stuckDataTimeout","onStreamStart","validatePackage","parsedData","collectedValues","handleSuccessResult","onSendCommandToDevice","sendCommandToDevice","flatMap","service","monitorUuids","parsingModel","cases","map","c","filter","type","uniqueMeasurementTypes","Set","flat"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-managed-device.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["sentryLogger","DeviceStatus","BTConnectionHandler","BTDataProcessor","BTManagedDevice","constructor","device","deviceName","onError","onErrorCallback","onDeviceStatusChanged","onDeviceStatusChangedCallback","onResult","onResultCallback","onDeviceDisconnected","onDeviceDisconnectedCallback","deviceId","id","deviceData","name","localName","manufacturerData","sn","measurementTypes","status","measurementTypeKey","error","Error","message","caseType","_","data","diagramPoints","length","undefined","destroy","connectionHandler","dataProcessor","connect","getSupportedMeasurementTypeKeys","mainServices","onStatusChanged","bind","DISCONNECTED","onDataReceived","uuid","hexValue","processData","stuckDataTimeout","onStreamStart","validatePackage","parsedData","collectedValues","handleSuccessResult","onSendCommandToDevice","sendCommandToDevice","handleDependentResult","flatMap","service","monitorUuids","parsingModel","cases","map","c","filter","type","uniqueMeasurementTypes","Set","flat"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-managed-device.ts"],"mappings":"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","ignoreList":[]}
@@ -4,13 +4,42 @@ import { CaseType } from "../../../types/case-type.js";
4
4
  import { BTManagedDevice } from "../bt-managed-device.js";
5
5
  import { f4MainServices } from "./f4.main-services.js";
6
6
  export class F4Device extends BTManagedDevice {
7
- stuckDataTimeout = 30_000;
8
7
  mainServices = f4MainServices;
9
8
  validatePackage = () => {
10
9
  return true;
11
10
  };
11
+
12
+ /**Add a comment on line R19Add diff commentMarkdown input: edit mode selected.WritePreviewAdd a suggestionHeadingBoldItalicQuoteCodeLinkUnordered listNumbered listTask listMentionReferenceSaved repliesAdd FilesPaste, drop, or click to add filesCancelCommentStart a reviewReturn to code
13
+ * The function to handle the dependent result on dependent case. This is specific to the F4 device and can be overridden by the device to handle the result based on the device logic.
14
+ * if the body weight is 0, we need to return the other case type. That means there is no one on the scale
15
+ * if the body weight is not 0, we need to return the stream case type.
16
+ *
17
+ * @param data - The data to handle the result.
18
+ * @returns The handled data.
19
+ */
20
+ handleDependentResult = ({
21
+ parsingCase,
22
+ measurementTypeKey,
23
+ parsedData
24
+ }) => {
25
+ const caseType = parsedData.bodyWeight === 0 ? CaseType.OTHER : CaseType.STREAM;
26
+ return {
27
+ parsingCase: {
28
+ ...parsingCase,
29
+ caseType
30
+ },
31
+ measurementTypeKey,
32
+ parsedData
33
+ };
34
+ };
35
+
36
+ /**
37
+ * This is too long on purpose to avoid the stuck data error.
38
+ * This is because the F4 device can stop sending data when its sleeping but still connected to the device.
39
+ */
40
+ stuckDataTimeout = 60_00_000;
12
41
  handleSuccessResult(successResult) {
13
- if (successResult.caseType === CaseType.STREAM) {
42
+ if (successResult.caseType !== CaseType.RESULT) {
14
43
  return;
15
44
  }
16
45
  if (!successResult.measurementTypeKey) {
@@ -1 +1 @@
1
- {"version":3,"names":["CaseType","BTManagedDevice","f4MainServices","F4Device","stuckDataTimeout","mainServices","validatePackage","handleSuccessResult","successResult","caseType","STREAM","measurementTypeKey","onError","Error","handleBodyWeightResult","error","checkIfHasError","onResult","bodyWeight","undefined"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/f4/f4.device.ts"],"mappings":";;AAEA,SAASA,QAAQ,QAAQ,6BAA0B;AAKnD,SAASC,eAAe,QAAQ,yBAAsB;AAEtD,SAASC,cAAc,QAAQ,uBAAoB;AAEnD,OAAO,MAAMC,QAAQ,SAASF,eAAe,CAAuB;EACxDG,gBAAgB,GAAW,MAAM;EACjCC,YAAY,GAAeH,cAAc;EAGzCI,eAAe,GAA6CA,CAAA,KAAM;IAC1E,OAAO,IAAI;EACb,CAAC;EAESC,mBAAmBA,CAC3BC,aAEC,EACe;IAChB,IAAIA,aAAa,CAACC,QAAQ,KAAKT,QAAQ,CAACU,MAAM,EAAE;MAC9C;IACF;IAEA,IAAI,CAACF,aAAa,CAACG,kBAAkB,EAAE;MACrC,IAAI,CAACC,OAAO,GACV,IAAIC,KAAK,CACP,0CAA0CL,aAAa,CAACC,QAAQ,EAClE,CACF,CAAC;MAED;IACF;IAEA,IAAI,CAACK,sBAAsB,CAACN,aAAa,CAAC;EAC5C;EAEQM,sBAAsBA,CAC5BN,aAA6D,EACvD;IACN,MAAMO,KAAK,GAAG,IAAI,CAACC,eAAe,CAACR,aAAa,CAAC;IAEjD,IAAIO,KAAK,EAAE;MACT,IAAI,CAACH,OAAO,GAAGG,KAAK,CAAC;MAErB;IACF;IAEA,IAAI,CAACE,QAAQ,GAAGT,aAAa,CAAC;EAChC;EAEQQ,eAAeA,CACrBR,aAA6D,EACzC;IACpB,IAAIA,aAAa,CAACU,UAAU,KAAK,CAAC,EAAE;MAClC,OAAO,kDAAkD;IAC3D;IAEA,IAAIV,aAAa,CAACU,UAAU,KAAKC,SAAS,EAAE;MAC1C,OAAO,4CAA4C;IACrD;IAEA,IAAIX,aAAa,CAACU,UAAU,GAAG,GAAG,EAAE;MAClC,OAAO,4CAA4C;IACrD;IAEA,OAAOC,SAAS;EAClB;AACF","ignoreList":[]}
1
+ {"version":3,"names":["CaseType","BTManagedDevice","f4MainServices","F4Device","mainServices","validatePackage","handleDependentResult","parsingCase","measurementTypeKey","parsedData","caseType","bodyWeight","OTHER","STREAM","stuckDataTimeout","handleSuccessResult","successResult","RESULT","onError","Error","handleBodyWeightResult","error","checkIfHasError","onResult","undefined"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/f4/f4.device.ts"],"mappings":";;AAEA,SAASA,QAAQ,QAAQ,6BAA0B;AAMnD,SAASC,eAAe,QAAQ,yBAAsB;AAEtD,SAASC,cAAc,QAAQ,uBAAoB;AAEnD,OAAO,MAAMC,QAAQ,SAASF,eAAe,CAAuB;EACxDG,YAAY,GAAeF,cAAc;EAGzCG,eAAe,GAA6CA,CAAA,KAAM;IAC1E,OAAO,IAAI;EACb,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACYC,qBAAqB,GAM3BA,CAAC;IAAEC,WAAW;IAAEC,kBAAkB;IAAEC;EAAW,CAAC,KAAK;IACvD,MAAMC,QAAQ,GACZD,UAAU,CAACE,UAAU,KAAK,CAAC,GAAGX,QAAQ,CAACY,KAAK,GAAGZ,QAAQ,CAACa,MAAM;IAEhE,OAAO;MACLN,WAAW,EAAE;QACX,GAAGA,WAAW;QACdG;MACF,CAAC;MACDF,kBAAkB;MAClBC;IACF,CAAC;EACH,CAAC;;EAED;AACF;AACA;AACA;EACYK,gBAAgB,GAAW,SAAS;EAEpCC,mBAAmBA,CAC3BC,aAEC,EACe;IAChB,IAAIA,aAAa,CAACN,QAAQ,KAAKV,QAAQ,CAACiB,MAAM,EAAE;MAC9C;IACF;IAEA,IAAI,CAACD,aAAa,CAACR,kBAAkB,EAAE;MACrC,IAAI,CAACU,OAAO,GACV,IAAIC,KAAK,CACP,0CAA0CH,aAAa,CAACN,QAAQ,EAClE,CACF,CAAC;MAED;IACF;IAEA,IAAI,CAACU,sBAAsB,CAACJ,aAAa,CAAC;EAC5C;EAEQI,sBAAsBA,CAC5BJ,aAA6D,EACvD;IACN,MAAMK,KAAK,GAAG,IAAI,CAACC,eAAe,CAACN,aAAa,CAAC;IAEjD,IAAIK,KAAK,EAAE;MACT,IAAI,CAACH,OAAO,GAAGG,KAAK,CAAC;MAErB;IACF;IAEA,IAAI,CAACE,QAAQ,GAAGP,aAAa,CAAC;EAChC;EAEQM,eAAeA,CACrBN,aAA6D,EACzC;IACpB,IAAIA,aAAa,CAACL,UAAU,KAAK,CAAC,EAAE;MAClC,OAAO,kDAAkD;IAC3D;IAEA,IAAIK,aAAa,CAACL,UAAU,KAAKa,SAAS,EAAE;MAC1C,OAAO,4CAA4C;IACrD;IAEA,IAAIR,aAAa,CAACL,UAAU,GAAG,GAAG,EAAE;MAClC,OAAO,4CAA4C;IACrD;IAEA,OAAOa,SAAS;EAClB;AACF","ignoreList":[]}
@@ -11,7 +11,7 @@ export const f4MainServices = [{
11
11
  cases: [{
12
12
  measurementTypeKey: MeasurementTypeKey.bodyWeight,
13
13
  caseValue: "01",
14
- caseType: CaseType.STREAM,
14
+ caseType: CaseType.DEPENDENT,
15
15
  parseDefinitions: [{
16
16
  name: "bodyWeight",
17
17
  byteIndexes: [5, 6, 7, 8],
@@ -48,11 +48,6 @@ export const f4MainServices = [{
48
48
  parseReference: 16,
49
49
  customParserDefinition: a => parseInt(a, 16) / 1000
50
50
  }]
51
- }, {
52
- caseValue: "a1",
53
- caseType: CaseType.STREAM,
54
- parseDefinitions: [],
55
- description: "When scales started measurement, but notifications comes earlier then this case"
56
51
  }]
57
52
  }
58
53
  }]
@@ -1 +1 @@
1
- {"version":3,"names":["MeasurementTypeKey","CaseType","f4MainServices","uuid","monitorUuids","parsingModel","caseValuePosition","cases","measurementTypeKey","bodyWeight","caseValue","caseType","STREAM","parseDefinitions","name","byteIndexes","parseType","parseReference","customParserDefinition","a","parseInt","RESULT","description"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/f4/f4.main-services.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,YAAY;AAE/C,SAASC,QAAQ,QAAQ,6BAA0B;AAGnD,OAAO,MAAMC,cAA0B,GAAG,CACxC;EACEC,IAAI,EAAE,sCAAsC;EAC5CC,YAAY,EAAE,CACZ;IACED,IAAI,EAAE,sCAAsC;IAC5CE,YAAY,EAAE;MACZC,iBAAiB,EAAE,CAAC,CAAC,CAAC;MACtBC,KAAK,EAAE,CACL;QACEC,kBAAkB,EAAER,kBAAkB,CAACS,UAAU;QACjDC,SAAS,EAAE,IAAI;QACfC,QAAQ,EAAEV,QAAQ,CAACW,MAAM;QACzBC,gBAAgB,EAAE,CAChB;UACEC,IAAI,EAAE,YAAY;UAClBC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;UACzBC,SAAS,EAAE,QAAQ;UACnBC,cAAc,EAAE,EAAE;UAClBC,sBAAsB,EAAGC,CAAS,IAChCC,QAAQ,CAACD,CAAC,EAAE,EAAE,CAAC,GAAG;QACtB,CAAC;MAEL,CAAC,EACD;QACET,SAAS,EAAE,IAAI;QACfC,QAAQ,EAAEV,QAAQ,CAACW,MAAM;QACzBC,gBAAgB,EAAE;MACpB,CAAC,EACD;QACEH,SAAS,EAAE,IAAI;QACfC,QAAQ,EAAEV,QAAQ,CAACW,MAAM;QACzBC,gBAAgB,EAAE;MACpB,CAAC,EACD;QACEH,SAAS,EAAE,IAAI;QACfC,QAAQ,EAAEV,QAAQ,CAACW,MAAM;QACzBC,gBAAgB,EAAE;MACpB,CAAC;IAEL;EACF,CAAC,EACD;IACEV,IAAI,EAAE,sCAAsC;IAC5CE,YAAY,EAAE;MACZC,iBAAiB,EAAE,CAAC,CAAC,CAAC;MACtBC,KAAK,EAAE,CACL;QACEC,kBAAkB,EAAER,kBAAkB,CAACS,UAAU;QACjDC,SAAS,EAAE,IAAI;QACfC,QAAQ,EAAEV,QAAQ,CAACoB,MAAM;QACzBR,gBAAgB,EAAE,CAChB;UACEC,IAAI,EAAE,YAAY;UAClBC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;UACtBC,SAAS,EAAE,QAAQ;UACnBC,cAAc,EAAE,EAAE;UAClBC,sBAAsB,EAAGC,CAAS,IAChCC,QAAQ,CAACD,CAAC,EAAE,EAAE,CAAC,GAAG;QACtB,CAAC;MAEL,CAAC,EACD;QACET,SAAS,EAAE,IAAI;QACfC,QAAQ,EAAEV,QAAQ,CAACW,MAAM;QACzBC,gBAAgB,EAAE,EAAE;QACpBS,WAAW,EACT;MACJ,CAAC;IAEL;EACF,CAAC;AAEL,CAAC,CACF","ignoreList":[]}
1
+ {"version":3,"names":["MeasurementTypeKey","CaseType","f4MainServices","uuid","monitorUuids","parsingModel","caseValuePosition","cases","measurementTypeKey","bodyWeight","caseValue","caseType","DEPENDENT","parseDefinitions","name","byteIndexes","parseType","parseReference","customParserDefinition","a","parseInt","STREAM","RESULT"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/f4/f4.main-services.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,YAAY;AAE/C,SAASC,QAAQ,QAAQ,6BAA0B;AAGnD,OAAO,MAAMC,cAA0B,GAAG,CACxC;EACEC,IAAI,EAAE,sCAAsC;EAC5CC,YAAY,EAAE,CACZ;IACED,IAAI,EAAE,sCAAsC;IAC5CE,YAAY,EAAE;MACZC,iBAAiB,EAAE,CAAC,CAAC,CAAC;MACtBC,KAAK,EAAE,CACL;QACEC,kBAAkB,EAAER,kBAAkB,CAACS,UAAU;QACjDC,SAAS,EAAE,IAAI;QACfC,QAAQ,EAAEV,QAAQ,CAACW,SAAS;QAC5BC,gBAAgB,EAAE,CAChB;UACEC,IAAI,EAAE,YAAY;UAClBC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;UACzBC,SAAS,EAAE,QAAQ;UACnBC,cAAc,EAAE,EAAE;UAClBC,sBAAsB,EAAGC,CAAS,IAChCC,QAAQ,CAACD,CAAC,EAAE,EAAE,CAAC,GAAG;QACtB,CAAC;MAEL,CAAC,EACD;QACET,SAAS,EAAE,IAAI;QACfC,QAAQ,EAAEV,QAAQ,CAACoB,MAAM;QACzBR,gBAAgB,EAAE;MACpB,CAAC,EACD;QACEH,SAAS,EAAE,IAAI;QACfC,QAAQ,EAAEV,QAAQ,CAACoB,MAAM;QACzBR,gBAAgB,EAAE;MACpB,CAAC,EACD;QACEH,SAAS,EAAE,IAAI;QACfC,QAAQ,EAAEV,QAAQ,CAACoB,MAAM;QACzBR,gBAAgB,EAAE;MACpB,CAAC;IAEL;EACF,CAAC,EACD;IACEV,IAAI,EAAE,sCAAsC;IAC5CE,YAAY,EAAE;MACZC,iBAAiB,EAAE,CAAC,CAAC,CAAC;MACtBC,KAAK,EAAE,CACL;QACEC,kBAAkB,EAAER,kBAAkB,CAACS,UAAU;QACjDC,SAAS,EAAE,IAAI;QACfC,QAAQ,EAAEV,QAAQ,CAACqB,MAAM;QACzBT,gBAAgB,EAAE,CAChB;UACEC,IAAI,EAAE,YAAY;UAClBC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;UACtBC,SAAS,EAAE,QAAQ;UACnBC,cAAc,EAAE,EAAE;UAClBC,sBAAsB,EAAGC,CAAS,IAChCC,QAAQ,CAACD,CAAC,EAAE,EAAE,CAAC,GAAG;QACtB,CAAC;MAEL,CAAC;IAEL;EACF,CAAC;AAEL,CAAC,CACF","ignoreList":[]}
@@ -4,6 +4,7 @@ export let CaseType = /*#__PURE__*/function (CaseType) {
4
4
  CaseType["RESULT"] = "result";
5
5
  CaseType["STREAM"] = "stream";
6
6
  CaseType["OTHER"] = "other";
7
+ CaseType["DEPENDENT"] = "dependent";
7
8
  CaseType["SN"] = "sn";
8
9
  CaseType["ERROR"] = "error";
9
10
  return CaseType;
@@ -1 +1 @@
1
- {"version":3,"names":["CaseType"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/case-type.ts"],"mappings":";;AAAA,WAAYA,QAAQ,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["CaseType"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/case-type.ts"],"mappings":";;AAAA,WAAYA,QAAQ,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=dependent-result-handler-params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/dependent-result-handler-params.ts"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"bt-manager.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/bt-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,UAAU,EAKX,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS,iBAAiB,EAAE;IAWzD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAXlC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAM;IACzC,OAAO,CAAC,OAAO,CAAiD;IAEhE,OAAO,CAAC,mBAAmB,CAA2B;IACtD,OAAO,CAAC,kBAAkB,CAAsB;IAEhD,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,iBAAiB,CAAa;gBAGnB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,CAAC;IAK9B,OAAO,aAyBZ;IAEK,SAAS,aA0Dd;IAEK,QAAQ,aAmBb;IAEK,aAAa,GAClB,WAAW,CACT,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAClC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAClB,OAAO,CAAC,IAAI,CAAC,UAIlB;IAEK,OAAO,GAAI,WAAW,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,UAGxD;IAEK,qBAAqB,GAC1B,WAAW,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,UAIrD;IAEK,QAAQ,GAAI,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,UAGrE;IAGF,OAAO,CAAC,gBAAgB,CAAC,CAA4C;IACrE,OAAO,CAAC,eAAe,CAAC,CAAgC;IACxD,OAAO,CAAC,qBAAqB,CAAC,CAGX;IACnB,OAAO,CAAC,6BAA6B,CAAC,CAE5B;IAEV,OAAO,CAAC,YAAY,CAoElB;IAEF,OAAO,CAAC,8BAA8B,CAUpC;CACH"}
1
+ {"version":3,"file":"bt-manager.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/bt-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,UAAU,EAKX,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS,iBAAiB,EAAE;IAWzD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAXlC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAM;IACzC,OAAO,CAAC,OAAO,CAAiD;IAEhE,OAAO,CAAC,mBAAmB,CAA2B;IACtD,OAAO,CAAC,kBAAkB,CAAsB;IAEhD,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,iBAAiB,CAAa;gBAGnB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,CAAC;IAK9B,OAAO,aAyBZ;IAEK,SAAS,aA0Dd;IAEK,QAAQ,aAmBb;IAEK,aAAa,GAClB,WAAW,CACT,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAClC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAClB,OAAO,CAAC,IAAI,CAAC,UAIlB;IAEK,OAAO,GAAI,WAAW,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,UAGxD;IAEK,qBAAqB,GAC1B,WAAW,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,UAIrD;IAEK,QAAQ,GAAI,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,UAGrE;IAGF,OAAO,CAAC,gBAAgB,CAAC,CAA4C;IACrE,OAAO,CAAC,eAAe,CAAC,CAAgC;IACxD,OAAO,CAAC,qBAAqB,CAAC,CAGX;IACnB,OAAO,CAAC,6BAA6B,CAAC,CAE5B;IAEV,OAAO,CAAC,YAAY,CAsElB;IAEF,OAAO,CAAC,8BAA8B,CAUpC;CACH"}
@@ -1,18 +1,19 @@
1
- import { MeasurementTypeKey } from "@ovok/core";
1
+ import { Measurement, MeasurementTypeKey } from "@ovok/core";
2
2
  import { Device } from "react-native-ble-plx";
3
- import { MeasurementTypeForDevices } from "../../types/device-measurement-map";
3
+ import { DependentResultHandlerParams } from "../../types/dependent-result-handler-params";
4
4
  import { DeviceStatus } from "../../types/device-status";
5
5
  import { IMedicalDevice } from "../../types/i-medical-device";
6
- import { IntegratedDevices } from "../../types/integrated-devices";
7
- interface DataProcessorCallbacks {
6
+ import { MeasurementWithCaseType } from "../../types/measurement-with-case-type";
7
+ interface DataProcessorCallbacks<T extends Measurement> {
8
8
  validatePackage: (pkg: string[], uuid: string) => boolean;
9
9
  onStatusChanged?: (status: DeviceStatus, measurementTypeKey?: MeasurementTypeKey) => void;
10
10
  onStreamStart?: () => void;
11
- onResult?: (parsedData: Omit<MeasurementTypeForDevices<[IntegratedDevices]>, "caseType">, collectedValues: string[]) => boolean | void;
11
+ onResult?: (parsedData: MeasurementWithCaseType<Measurement>, collectedValues: string[]) => boolean | void;
12
12
  onSendCommandToDevice?: () => void;
13
13
  onError?: (error: Error) => void;
14
+ handleDependentResult?: (data: DependentResultHandlerParams<T>) => DependentResultHandlerParams<T>;
14
15
  }
15
- export declare class BTDataProcessor {
16
+ export declare class BTDataProcessor<T extends Measurement> {
16
17
  private readonly device;
17
18
  private readonly mainServices;
18
19
  private readonly stuckDataTimeoutDuration;
@@ -20,7 +21,7 @@ export declare class BTDataProcessor {
20
21
  private collectedValues;
21
22
  private isMeasuring;
22
23
  private stuckDataTimeout;
23
- constructor(device: Device, mainServices: IMedicalDevice["mainService"], stuckDataTimeoutDuration: number, callbacks: DataProcessorCallbacks);
24
+ constructor(device: Device, mainServices: IMedicalDevice["mainService"], stuckDataTimeoutDuration: number, callbacks: DataProcessorCallbacks<T>);
24
25
  destroy: () => void;
25
26
  processData: (uuid: string, hexValue: string[]) => void;
26
27
  private extractData;
@@ -1 +1 @@
1
- {"version":3,"file":"bt-data-processor.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-data-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAKnE,UAAU,sBAAsB;IAC9B,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1D,eAAe,CAAC,EAAE,CAChB,MAAM,EAAE,YAAY,EACpB,kBAAkB,CAAC,EAAE,kBAAkB,KACpC,IAAI,CAAC;IACV,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,CACT,UAAU,EAAE,IAAI,CACd,yBAAyB,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAC9C,UAAU,CACX,EACD,eAAe,EAAE,MAAM,EAAE,KACtB,OAAO,GAAG,IAAI,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,qBAAa,eAAe;IAKxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAP5B,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,gBAAgB,CAA4C;gBAEjD,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,cAAc,CAAC,aAAa,CAAC,EAC3C,wBAAwB,EAAE,MAAM,EAChC,SAAS,EAAE,sBAAsB;IAG7C,OAAO,aAKZ;IAEK,WAAW,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,EAAE,UAuBpD;IAEF,OAAO,CAAC,WAAW;IA6BnB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,mBAAmB;IAkD3B,OAAO,CAAC,+BAA+B,CAGrC;IAEF,OAAO,CAAC,iBAAiB,CAevB;CACH"}
1
+ {"version":3,"file":"bt-data-processor.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-data-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAKjF,UAAU,sBAAsB,CAAC,CAAC,SAAS,WAAW;IACpD,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1D,eAAe,CAAC,EAAE,CAChB,MAAM,EAAE,YAAY,EACpB,kBAAkB,CAAC,EAAE,kBAAkB,KACpC,IAAI,CAAC;IACV,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,CACT,UAAU,EAAE,uBAAuB,CAAC,WAAW,CAAC,EAChD,eAAe,EAAE,MAAM,EAAE,KACtB,OAAO,GAAG,IAAI,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,qBAAqB,CAAC,EAAE,CACtB,IAAI,EAAE,4BAA4B,CAAC,CAAC,CAAC,KAClC,4BAA4B,CAAC,CAAC,CAAC,CAAC;CACtC;AAED,qBAAa,eAAe,CAAC,CAAC,SAAS,WAAW;IAK9C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAP5B,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,gBAAgB,CAA4C;gBAEjD,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,cAAc,CAAC,aAAa,CAAC,EAC3C,wBAAwB,EAAE,MAAM,EAChC,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAGhD,OAAO,aAKZ;IAEK,WAAW,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,EAAE,UA+BpD;IAEF,OAAO,CAAC,WAAW;IAmCnB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,mBAAmB;IA2C3B,OAAO,CAAC,+BAA+B,CAGrC;IAEF,OAAO,CAAC,iBAAiB,CAevB;CACH"}
@@ -1,6 +1,7 @@
1
- import { MeasurementTypeKey } from "@ovok/core";
1
+ import { Measurement, MeasurementTypeKey } from "@ovok/core";
2
2
  import { BleError, Device } from "react-native-ble-plx";
3
3
  import { CreateDeviceParams } from "../../types/create-device-params";
4
+ import { DependentResultHandlerParams } from "../../types/dependent-result-handler-params";
4
5
  import { DeviceData } from "../../types/device-data";
5
6
  import { MeasurementTypeForDevices } from "../../types/device-measurement-map";
6
7
  import { DeviceStatus } from "../../types/device-status";
@@ -18,10 +19,19 @@ export declare abstract class BTManagedDevice<T extends IntegratedDevices = Inte
18
19
  * The timeout in milliseconds for the stuck data.
19
20
  */
20
21
  protected abstract stuckDataTimeout: number;
22
+ /**
23
+ * The function to handle the dependent result on dependent case. This is generic and can be overridden by the device to handle the result based on the device logic.
24
+ * If the case is dependent, this function will be called to handle the result and return the new result based on the device logic.
25
+ * If the case is not dependent, this function will not be called.
26
+ *
27
+ * @param data - The data to handle the result.
28
+ * @returns The handled data.
29
+ */
30
+ protected handleDependentResult?: (data: DependentResultHandlerParams<MeasurementTypeForDevices<[T]>>) => DependentResultHandlerParams<MeasurementTypeForDevices<[T]>>;
21
31
  protected abstract mainServices: IMedicalDevice["mainService"];
22
32
  protected abstract validatePackage: (pkg: string[], uuid: string) => boolean;
23
33
  protected abstract onStreamStart?: () => void;
24
- protected abstract handleSuccessResult(successResult: Omit<MeasurementTypeForDevices<[IntegratedDevices]>, "caseType">, collectedValues: string[]): void | boolean;
34
+ protected abstract handleSuccessResult(successResult: MeasurementWithCaseType<Measurement>, collectedValues: string[]): void | boolean;
25
35
  onError?: (error: BleError | Error | string) => void;
26
36
  onDeviceStatusChanged?: (status: DeviceStatus, measurementTypeKey?: MeasurementTypeKey) => void;
27
37
  onResult?: (data: MeasurementWithCaseType<MeasurementTypeForDevices<[T]>>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"bt-managed-device.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-managed-device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAKjF,8BAAsB,eAAe,CACnC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,CACnD,YAAW,gBAAgB;aAmCT,MAAM,EAAE,MAAM;IAjCzB,EAAE,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,aAAa,CAA8B;IAC5C,UAAU,EAAE,UAAU,CAAC;IAE9B;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAE5C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IAE/D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7E,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CACpC,aAAa,EAAE,IAAI,CACjB,yBAAyB,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAC9C,UAAU,CACX,EACD,eAAe,EAAE,MAAM,EAAE,GACxB,IAAI,GAAG,OAAO;IAEV,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;IACrD,qBAAqB,CAAC,EAAE,CAC7B,MAAM,EAAE,YAAY,EACpB,kBAAkB,CAAC,EAAE,kBAAkB,KACpC,IAAI,CAAC;IACH,QAAQ,CAAC,EAAE,CAChB,IAAI,EAAE,uBAAuB,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAC1D,IAAI,CAAC;IACH,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;gBAEvB,MAAM,EAAE,MAAM,EAE9B,EACE,UAAU,EACV,OAAO,EAAE,eAAe,EACxB,qBAAqB,EAAE,6BAA6B,EACpD,QAAQ,EAAE,gBAAgB,EAC1B,oBAAoB,EAAE,4BAA4B,GACnD,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAsEnB,OAAO,aAUZ;IAEK,OAAO,sBA+CZ;IAEF,OAAO,CAAC,+BAA+B,CAarC;CACH"}
1
+ {"version":3,"file":"bt-managed-device.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-managed-device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAKjF,8BAAsB,eAAe,CACnC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,CACnD,YAAW,gBAAgB;aA8CT,MAAM,EAAE,MAAM;IA5CzB,EAAE,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,aAAa,CAEP;IACP,UAAU,EAAE,UAAU,CAAC;IAE9B;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAE5C;;;;;;;OAOG;IACH,SAAS,CAAC,qBAAqB,CAAC,EAAE,CAChC,IAAI,EAAE,4BAA4B,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAC/D,4BAA4B,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAElE,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IAE/D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7E,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CACpC,aAAa,EAAE,uBAAuB,CAAC,WAAW,CAAC,EACnD,eAAe,EAAE,MAAM,EAAE,GACxB,IAAI,GAAG,OAAO;IAEV,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;IACrD,qBAAqB,CAAC,EAAE,CAC7B,MAAM,EAAE,YAAY,EACpB,kBAAkB,CAAC,EAAE,kBAAkB,KACpC,IAAI,CAAC;IACH,QAAQ,CAAC,EAAE,CAChB,IAAI,EAAE,uBAAuB,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAC1D,IAAI,CAAC;IACH,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;gBAEvB,MAAM,EAAE,MAAM,EAE9B,EACE,UAAU,EACV,OAAO,EAAE,eAAe,EACxB,qBAAqB,EAAE,6BAA6B,EACpD,QAAQ,EAAE,gBAAgB,EAC1B,oBAAoB,EAAE,4BAA4B,GACnD,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAsEnB,OAAO,aAUZ;IAEK,OAAO,sBAgDZ;IAEF,OAAO,CAAC,+BAA+B,CAarC;CACH"}
@@ -1,13 +1,27 @@
1
+ import { DependentResultHandlerParams } from "../../../types/dependent-result-handler-params";
1
2
  import { MeasurementTypeForDevices } from "../../../types/device-measurement-map";
2
3
  import { IntegratedDevices } from "../../../types/integrated-devices";
3
4
  import { MeasurementWithCaseType } from "../../../types/measurement-with-case-type";
4
5
  import { IService } from "../../../types/service.type";
5
6
  import { BTManagedDevice } from "../bt-managed-device";
6
7
  export declare class F4Device extends BTManagedDevice<IntegratedDevices.F4> {
7
- protected stuckDataTimeout: number;
8
8
  protected mainServices: IService[];
9
9
  protected onStreamStart?: (() => void) | undefined;
10
10
  protected validatePackage: (pkg: string[], uuid: string) => boolean;
11
+ /**Add a comment on line R19Add diff commentMarkdown input: edit mode selected.WritePreviewAdd a suggestionHeadingBoldItalicQuoteCodeLinkUnordered listNumbered listTask listMentionReferenceSaved repliesAdd FilesPaste, drop, or click to add filesCancelCommentStart a reviewReturn to code
12
+ * The function to handle the dependent result on dependent case. This is specific to the F4 device and can be overridden by the device to handle the result based on the device logic.
13
+ * if the body weight is 0, we need to return the other case type. That means there is no one on the scale
14
+ * if the body weight is not 0, we need to return the stream case type.
15
+ *
16
+ * @param data - The data to handle the result.
17
+ * @returns The handled data.
18
+ */
19
+ protected handleDependentResult: (data: DependentResultHandlerParams<MeasurementTypeForDevices<[IntegratedDevices.F4]>>) => DependentResultHandlerParams<MeasurementTypeForDevices<[IntegratedDevices.F4]>>;
20
+ /**
21
+ * This is too long on purpose to avoid the stuck data error.
22
+ * This is because the F4 device can stop sending data when its sleeping but still connected to the device.
23
+ */
24
+ protected stuckDataTimeout: number;
11
25
  protected handleSuccessResult(successResult: MeasurementWithCaseType<MeasurementTypeForDevices<[IntegratedDevices.F4]>>): void | boolean;
12
26
  private handleBodyWeightResult;
13
27
  private checkIfHasError;
@@ -1 +1 @@
1
- {"version":3,"file":"f4.device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/f4/f4.device.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD,qBAAa,QAAS,SAAQ,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC;IACjE,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAU;IAC5C,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAkB;IACpD,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAEnD,SAAS,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAEjE;IAEF,SAAS,CAAC,mBAAmB,CAC3B,aAAa,EAAE,uBAAuB,CACpC,yBAAyB,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAClD,GACA,IAAI,GAAG,OAAO;IAkBjB,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,eAAe;CAiBxB"}
1
+ {"version":3,"file":"f4.device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/f4/f4.device.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD,qBAAa,QAAS,SAAQ,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC;IACjE,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAkB;IACpD,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAEnD,SAAS,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAEjE;IAEF;;;;;;;OAOG;IACH,SAAS,CAAC,qBAAqB,EAAE,CAC/B,IAAI,EAAE,4BAA4B,CAChC,yBAAyB,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAClD,KACE,4BAA4B,CAC/B,yBAAyB,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAClD,CAYC;IAEF;;;OAGG;IACH,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAa;IAE/C,SAAS,CAAC,mBAAmB,CAC3B,aAAa,EAAE,uBAAuB,CACpC,yBAAyB,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAClD,GACA,IAAI,GAAG,OAAO;IAkBjB,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,eAAe;CAiBxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"f4.main-services.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/f4/f4.main-services.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,eAAO,MAAM,cAAc,EAAE,QAAQ,EA0EpC,CAAC"}
1
+ {"version":3,"file":"f4.main-services.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/f4/f4.main-services.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,eAAO,MAAM,cAAc,EAAE,QAAQ,EAmEpC,CAAC"}
@@ -2,6 +2,7 @@ export declare enum CaseType {
2
2
  RESULT = "result",
3
3
  STREAM = "stream",
4
4
  OTHER = "other",
5
+ DEPENDENT = "dependent",
5
6
  SN = "sn",
6
7
  ERROR = "error"
7
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"case-type.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/case-type.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,EAAE,OAAO;IACT,KAAK,UAAU;CAChB"}
1
+ {"version":3,"file":"case-type.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/case-type.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,EAAE,OAAO;IACT,KAAK,UAAU;CAChB"}
@@ -0,0 +1,9 @@
1
+ import { Measurement, MeasurementTypeKey } from "@ovok/core";
2
+ import { MeasurementWithCaseType } from "./measurement-with-case-type";
3
+ import { ParsingCase } from "./parsing-case";
4
+ export interface DependentResultHandlerParams<T extends Measurement = Measurement> {
5
+ parsingCase: ParsingCase;
6
+ measurementTypeKey: MeasurementTypeKey | undefined;
7
+ parsedData: MeasurementWithCaseType<T>;
8
+ }
9
+ //# sourceMappingURL=dependent-result-handler-params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependent-result-handler-params.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/dependent-result-handler-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,WAAW,4BAA4B,CAC3C,CAAC,SAAS,WAAW,GAAG,WAAW;IAEnC,WAAW,EAAE,WAAW,CAAC;IACzB,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACnD,UAAU,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;CACxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bt-manager.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/bt-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,UAAU,EAKX,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS,iBAAiB,EAAE;IAWzD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAXlC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAM;IACzC,OAAO,CAAC,OAAO,CAAiD;IAEhE,OAAO,CAAC,mBAAmB,CAA2B;IACtD,OAAO,CAAC,kBAAkB,CAAsB;IAEhD,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,iBAAiB,CAAa;gBAGnB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,CAAC;IAK9B,OAAO,aAyBZ;IAEK,SAAS,aA0Dd;IAEK,QAAQ,aAmBb;IAEK,aAAa,GAClB,WAAW,CACT,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAClC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAClB,OAAO,CAAC,IAAI,CAAC,UAIlB;IAEK,OAAO,GAAI,WAAW,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,UAGxD;IAEK,qBAAqB,GAC1B,WAAW,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,UAIrD;IAEK,QAAQ,GAAI,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,UAGrE;IAGF,OAAO,CAAC,gBAAgB,CAAC,CAA4C;IACrE,OAAO,CAAC,eAAe,CAAC,CAAgC;IACxD,OAAO,CAAC,qBAAqB,CAAC,CAGX;IACnB,OAAO,CAAC,6BAA6B,CAAC,CAE5B;IAEV,OAAO,CAAC,YAAY,CAoElB;IAEF,OAAO,CAAC,8BAA8B,CAUpC;CACH"}
1
+ {"version":3,"file":"bt-manager.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/bt-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,UAAU,EAKX,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS,iBAAiB,EAAE;IAWzD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAXlC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAM;IACzC,OAAO,CAAC,OAAO,CAAiD;IAEhE,OAAO,CAAC,mBAAmB,CAA2B;IACtD,OAAO,CAAC,kBAAkB,CAAsB;IAEhD,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,iBAAiB,CAAa;gBAGnB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,CAAC;IAK9B,OAAO,aAyBZ;IAEK,SAAS,aA0Dd;IAEK,QAAQ,aAmBb;IAEK,aAAa,GAClB,WAAW,CACT,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAClC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAClB,OAAO,CAAC,IAAI,CAAC,UAIlB;IAEK,OAAO,GAAI,WAAW,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,UAGxD;IAEK,qBAAqB,GAC1B,WAAW,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,UAIrD;IAEK,QAAQ,GAAI,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,UAGrE;IAGF,OAAO,CAAC,gBAAgB,CAAC,CAA4C;IACrE,OAAO,CAAC,eAAe,CAAC,CAAgC;IACxD,OAAO,CAAC,qBAAqB,CAAC,CAGX;IACnB,OAAO,CAAC,6BAA6B,CAAC,CAE5B;IAEV,OAAO,CAAC,YAAY,CAsElB;IAEF,OAAO,CAAC,8BAA8B,CAUpC;CACH"}
@@ -1,18 +1,19 @@
1
- import { MeasurementTypeKey } from "@ovok/core";
1
+ import { Measurement, MeasurementTypeKey } from "@ovok/core";
2
2
  import { Device } from "react-native-ble-plx";
3
- import { MeasurementTypeForDevices } from "../../types/device-measurement-map";
3
+ import { DependentResultHandlerParams } from "../../types/dependent-result-handler-params";
4
4
  import { DeviceStatus } from "../../types/device-status";
5
5
  import { IMedicalDevice } from "../../types/i-medical-device";
6
- import { IntegratedDevices } from "../../types/integrated-devices";
7
- interface DataProcessorCallbacks {
6
+ import { MeasurementWithCaseType } from "../../types/measurement-with-case-type";
7
+ interface DataProcessorCallbacks<T extends Measurement> {
8
8
  validatePackage: (pkg: string[], uuid: string) => boolean;
9
9
  onStatusChanged?: (status: DeviceStatus, measurementTypeKey?: MeasurementTypeKey) => void;
10
10
  onStreamStart?: () => void;
11
- onResult?: (parsedData: Omit<MeasurementTypeForDevices<[IntegratedDevices]>, "caseType">, collectedValues: string[]) => boolean | void;
11
+ onResult?: (parsedData: MeasurementWithCaseType<Measurement>, collectedValues: string[]) => boolean | void;
12
12
  onSendCommandToDevice?: () => void;
13
13
  onError?: (error: Error) => void;
14
+ handleDependentResult?: (data: DependentResultHandlerParams<T>) => DependentResultHandlerParams<T>;
14
15
  }
15
- export declare class BTDataProcessor {
16
+ export declare class BTDataProcessor<T extends Measurement> {
16
17
  private readonly device;
17
18
  private readonly mainServices;
18
19
  private readonly stuckDataTimeoutDuration;
@@ -20,7 +21,7 @@ export declare class BTDataProcessor {
20
21
  private collectedValues;
21
22
  private isMeasuring;
22
23
  private stuckDataTimeout;
23
- constructor(device: Device, mainServices: IMedicalDevice["mainService"], stuckDataTimeoutDuration: number, callbacks: DataProcessorCallbacks);
24
+ constructor(device: Device, mainServices: IMedicalDevice["mainService"], stuckDataTimeoutDuration: number, callbacks: DataProcessorCallbacks<T>);
24
25
  destroy: () => void;
25
26
  processData: (uuid: string, hexValue: string[]) => void;
26
27
  private extractData;
@@ -1 +1 @@
1
- {"version":3,"file":"bt-data-processor.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-data-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAKnE,UAAU,sBAAsB;IAC9B,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1D,eAAe,CAAC,EAAE,CAChB,MAAM,EAAE,YAAY,EACpB,kBAAkB,CAAC,EAAE,kBAAkB,KACpC,IAAI,CAAC;IACV,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,CACT,UAAU,EAAE,IAAI,CACd,yBAAyB,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAC9C,UAAU,CACX,EACD,eAAe,EAAE,MAAM,EAAE,KACtB,OAAO,GAAG,IAAI,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,qBAAa,eAAe;IAKxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAP5B,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,gBAAgB,CAA4C;gBAEjD,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,cAAc,CAAC,aAAa,CAAC,EAC3C,wBAAwB,EAAE,MAAM,EAChC,SAAS,EAAE,sBAAsB;IAG7C,OAAO,aAKZ;IAEK,WAAW,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,EAAE,UAuBpD;IAEF,OAAO,CAAC,WAAW;IA6BnB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,mBAAmB;IAkD3B,OAAO,CAAC,+BAA+B,CAGrC;IAEF,OAAO,CAAC,iBAAiB,CAevB;CACH"}
1
+ {"version":3,"file":"bt-data-processor.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-data-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAKjF,UAAU,sBAAsB,CAAC,CAAC,SAAS,WAAW;IACpD,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1D,eAAe,CAAC,EAAE,CAChB,MAAM,EAAE,YAAY,EACpB,kBAAkB,CAAC,EAAE,kBAAkB,KACpC,IAAI,CAAC;IACV,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,CACT,UAAU,EAAE,uBAAuB,CAAC,WAAW,CAAC,EAChD,eAAe,EAAE,MAAM,EAAE,KACtB,OAAO,GAAG,IAAI,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,qBAAqB,CAAC,EAAE,CACtB,IAAI,EAAE,4BAA4B,CAAC,CAAC,CAAC,KAClC,4BAA4B,CAAC,CAAC,CAAC,CAAC;CACtC;AAED,qBAAa,eAAe,CAAC,CAAC,SAAS,WAAW;IAK9C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAP5B,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,gBAAgB,CAA4C;gBAEjD,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,cAAc,CAAC,aAAa,CAAC,EAC3C,wBAAwB,EAAE,MAAM,EAChC,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAGhD,OAAO,aAKZ;IAEK,WAAW,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,EAAE,UA+BpD;IAEF,OAAO,CAAC,WAAW;IAmCnB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,mBAAmB;IA2C3B,OAAO,CAAC,+BAA+B,CAGrC;IAEF,OAAO,CAAC,iBAAiB,CAevB;CACH"}
@@ -1,6 +1,7 @@
1
- import { MeasurementTypeKey } from "@ovok/core";
1
+ import { Measurement, MeasurementTypeKey } from "@ovok/core";
2
2
  import { BleError, Device } from "react-native-ble-plx";
3
3
  import { CreateDeviceParams } from "../../types/create-device-params";
4
+ import { DependentResultHandlerParams } from "../../types/dependent-result-handler-params";
4
5
  import { DeviceData } from "../../types/device-data";
5
6
  import { MeasurementTypeForDevices } from "../../types/device-measurement-map";
6
7
  import { DeviceStatus } from "../../types/device-status";
@@ -18,10 +19,19 @@ export declare abstract class BTManagedDevice<T extends IntegratedDevices = Inte
18
19
  * The timeout in milliseconds for the stuck data.
19
20
  */
20
21
  protected abstract stuckDataTimeout: number;
22
+ /**
23
+ * The function to handle the dependent result on dependent case. This is generic and can be overridden by the device to handle the result based on the device logic.
24
+ * If the case is dependent, this function will be called to handle the result and return the new result based on the device logic.
25
+ * If the case is not dependent, this function will not be called.
26
+ *
27
+ * @param data - The data to handle the result.
28
+ * @returns The handled data.
29
+ */
30
+ protected handleDependentResult?: (data: DependentResultHandlerParams<MeasurementTypeForDevices<[T]>>) => DependentResultHandlerParams<MeasurementTypeForDevices<[T]>>;
21
31
  protected abstract mainServices: IMedicalDevice["mainService"];
22
32
  protected abstract validatePackage: (pkg: string[], uuid: string) => boolean;
23
33
  protected abstract onStreamStart?: () => void;
24
- protected abstract handleSuccessResult(successResult: Omit<MeasurementTypeForDevices<[IntegratedDevices]>, "caseType">, collectedValues: string[]): void | boolean;
34
+ protected abstract handleSuccessResult(successResult: MeasurementWithCaseType<Measurement>, collectedValues: string[]): void | boolean;
25
35
  onError?: (error: BleError | Error | string) => void;
26
36
  onDeviceStatusChanged?: (status: DeviceStatus, measurementTypeKey?: MeasurementTypeKey) => void;
27
37
  onResult?: (data: MeasurementWithCaseType<MeasurementTypeForDevices<[T]>>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"bt-managed-device.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-managed-device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAKjF,8BAAsB,eAAe,CACnC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,CACnD,YAAW,gBAAgB;aAmCT,MAAM,EAAE,MAAM;IAjCzB,EAAE,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,aAAa,CAA8B;IAC5C,UAAU,EAAE,UAAU,CAAC;IAE9B;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAE5C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IAE/D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7E,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CACpC,aAAa,EAAE,IAAI,CACjB,yBAAyB,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAC9C,UAAU,CACX,EACD,eAAe,EAAE,MAAM,EAAE,GACxB,IAAI,GAAG,OAAO;IAEV,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;IACrD,qBAAqB,CAAC,EAAE,CAC7B,MAAM,EAAE,YAAY,EACpB,kBAAkB,CAAC,EAAE,kBAAkB,KACpC,IAAI,CAAC;IACH,QAAQ,CAAC,EAAE,CAChB,IAAI,EAAE,uBAAuB,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAC1D,IAAI,CAAC;IACH,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;gBAEvB,MAAM,EAAE,MAAM,EAE9B,EACE,UAAU,EACV,OAAO,EAAE,eAAe,EACxB,qBAAqB,EAAE,6BAA6B,EACpD,QAAQ,EAAE,gBAAgB,EAC1B,oBAAoB,EAAE,4BAA4B,GACnD,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAsEnB,OAAO,aAUZ;IAEK,OAAO,sBA+CZ;IAEF,OAAO,CAAC,+BAA+B,CAarC;CACH"}
1
+ {"version":3,"file":"bt-managed-device.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-managed-device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAKjF,8BAAsB,eAAe,CACnC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,CACnD,YAAW,gBAAgB;aA8CT,MAAM,EAAE,MAAM;IA5CzB,EAAE,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,aAAa,CAEP;IACP,UAAU,EAAE,UAAU,CAAC;IAE9B;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAE5C;;;;;;;OAOG;IACH,SAAS,CAAC,qBAAqB,CAAC,EAAE,CAChC,IAAI,EAAE,4BAA4B,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAC/D,4BAA4B,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAElE,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IAE/D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7E,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CACpC,aAAa,EAAE,uBAAuB,CAAC,WAAW,CAAC,EACnD,eAAe,EAAE,MAAM,EAAE,GACxB,IAAI,GAAG,OAAO;IAEV,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;IACrD,qBAAqB,CAAC,EAAE,CAC7B,MAAM,EAAE,YAAY,EACpB,kBAAkB,CAAC,EAAE,kBAAkB,KACpC,IAAI,CAAC;IACH,QAAQ,CAAC,EAAE,CAChB,IAAI,EAAE,uBAAuB,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAC1D,IAAI,CAAC;IACH,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;gBAEvB,MAAM,EAAE,MAAM,EAE9B,EACE,UAAU,EACV,OAAO,EAAE,eAAe,EACxB,qBAAqB,EAAE,6BAA6B,EACpD,QAAQ,EAAE,gBAAgB,EAC1B,oBAAoB,EAAE,4BAA4B,GACnD,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAsEnB,OAAO,aAUZ;IAEK,OAAO,sBAgDZ;IAEF,OAAO,CAAC,+BAA+B,CAarC;CACH"}
@@ -1,13 +1,27 @@
1
+ import { DependentResultHandlerParams } from "../../../types/dependent-result-handler-params";
1
2
  import { MeasurementTypeForDevices } from "../../../types/device-measurement-map";
2
3
  import { IntegratedDevices } from "../../../types/integrated-devices";
3
4
  import { MeasurementWithCaseType } from "../../../types/measurement-with-case-type";
4
5
  import { IService } from "../../../types/service.type";
5
6
  import { BTManagedDevice } from "../bt-managed-device";
6
7
  export declare class F4Device extends BTManagedDevice<IntegratedDevices.F4> {
7
- protected stuckDataTimeout: number;
8
8
  protected mainServices: IService[];
9
9
  protected onStreamStart?: (() => void) | undefined;
10
10
  protected validatePackage: (pkg: string[], uuid: string) => boolean;
11
+ /**Add a comment on line R19Add diff commentMarkdown input: edit mode selected.WritePreviewAdd a suggestionHeadingBoldItalicQuoteCodeLinkUnordered listNumbered listTask listMentionReferenceSaved repliesAdd FilesPaste, drop, or click to add filesCancelCommentStart a reviewReturn to code
12
+ * The function to handle the dependent result on dependent case. This is specific to the F4 device and can be overridden by the device to handle the result based on the device logic.
13
+ * if the body weight is 0, we need to return the other case type. That means there is no one on the scale
14
+ * if the body weight is not 0, we need to return the stream case type.
15
+ *
16
+ * @param data - The data to handle the result.
17
+ * @returns The handled data.
18
+ */
19
+ protected handleDependentResult: (data: DependentResultHandlerParams<MeasurementTypeForDevices<[IntegratedDevices.F4]>>) => DependentResultHandlerParams<MeasurementTypeForDevices<[IntegratedDevices.F4]>>;
20
+ /**
21
+ * This is too long on purpose to avoid the stuck data error.
22
+ * This is because the F4 device can stop sending data when its sleeping but still connected to the device.
23
+ */
24
+ protected stuckDataTimeout: number;
11
25
  protected handleSuccessResult(successResult: MeasurementWithCaseType<MeasurementTypeForDevices<[IntegratedDevices.F4]>>): void | boolean;
12
26
  private handleBodyWeightResult;
13
27
  private checkIfHasError;
@@ -1 +1 @@
1
- {"version":3,"file":"f4.device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/f4/f4.device.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD,qBAAa,QAAS,SAAQ,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC;IACjE,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAU;IAC5C,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAkB;IACpD,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAEnD,SAAS,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAEjE;IAEF,SAAS,CAAC,mBAAmB,CAC3B,aAAa,EAAE,uBAAuB,CACpC,yBAAyB,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAClD,GACA,IAAI,GAAG,OAAO;IAkBjB,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,eAAe;CAiBxB"}
1
+ {"version":3,"file":"f4.device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/f4/f4.device.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD,qBAAa,QAAS,SAAQ,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC;IACjE,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAkB;IACpD,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAEnD,SAAS,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAEjE;IAEF;;;;;;;OAOG;IACH,SAAS,CAAC,qBAAqB,EAAE,CAC/B,IAAI,EAAE,4BAA4B,CAChC,yBAAyB,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAClD,KACE,4BAA4B,CAC/B,yBAAyB,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAClD,CAYC;IAEF;;;OAGG;IACH,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAa;IAE/C,SAAS,CAAC,mBAAmB,CAC3B,aAAa,EAAE,uBAAuB,CACpC,yBAAyB,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAClD,GACA,IAAI,GAAG,OAAO;IAkBjB,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,eAAe;CAiBxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"f4.main-services.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/f4/f4.main-services.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,eAAO,MAAM,cAAc,EAAE,QAAQ,EA0EpC,CAAC"}
1
+ {"version":3,"file":"f4.main-services.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/f4/f4.main-services.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,eAAO,MAAM,cAAc,EAAE,QAAQ,EAmEpC,CAAC"}
@@ -2,6 +2,7 @@ export declare enum CaseType {
2
2
  RESULT = "result",
3
3
  STREAM = "stream",
4
4
  OTHER = "other",
5
+ DEPENDENT = "dependent",
5
6
  SN = "sn",
6
7
  ERROR = "error"
7
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"case-type.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/case-type.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,EAAE,OAAO;IACT,KAAK,UAAU;CAChB"}
1
+ {"version":3,"file":"case-type.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/case-type.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,EAAE,OAAO;IACT,KAAK,UAAU;CAChB"}
@@ -0,0 +1,9 @@
1
+ import { Measurement, MeasurementTypeKey } from "@ovok/core";
2
+ import { MeasurementWithCaseType } from "./measurement-with-case-type";
3
+ import { ParsingCase } from "./parsing-case";
4
+ export interface DependentResultHandlerParams<T extends Measurement = Measurement> {
5
+ parsingCase: ParsingCase;
6
+ measurementTypeKey: MeasurementTypeKey | undefined;
7
+ parsedData: MeasurementWithCaseType<T>;
8
+ }
9
+ //# sourceMappingURL=dependent-result-handler-params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependent-result-handler-params.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/dependent-result-handler-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,WAAW,4BAA4B,CAC3C,CAAC,SAAS,WAAW,GAAG,WAAW;IAEnC,WAAW,EAAE,WAAW,CAAC;IACzB,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACnD,UAAU,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;CACxC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ovok/native",
3
- "version": "0.3.13",
3
+ "version": "0.3.14",
4
4
  "description": "React native component sdk for OVOK",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",