@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.
- package/lib/commonjs/modules/bt-management/services/bt-manager.js +2 -2
- package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js +4 -4
- package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js +10 -4
- package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +12 -2
- package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/f4/f4.device.js +31 -2
- package/lib/commonjs/modules/bt-management/services/devices/f4/f4.device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/f4/f4.main-services.js +1 -6
- package/lib/commonjs/modules/bt-management/services/devices/f4/f4.main-services.js.map +1 -1
- package/lib/commonjs/modules/bt-management/types/case-type.js +1 -0
- package/lib/commonjs/modules/bt-management/types/case-type.js.map +1 -1
- package/lib/commonjs/modules/bt-management/types/dependent-result-handler-params.js +6 -0
- package/lib/commonjs/modules/bt-management/types/dependent-result-handler-params.js.map +1 -0
- package/lib/module/modules/bt-management/services/bt-manager.js +2 -2
- package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js +4 -4
- package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-data-processor.js +10 -4
- package/lib/module/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +12 -2
- package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/f4/f4.device.js +31 -2
- package/lib/module/modules/bt-management/services/devices/f4/f4.device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/f4/f4.main-services.js +1 -6
- package/lib/module/modules/bt-management/services/devices/f4/f4.main-services.js.map +1 -1
- package/lib/module/modules/bt-management/types/case-type.js +1 -0
- package/lib/module/modules/bt-management/types/case-type.js.map +1 -1
- package/lib/module/modules/bt-management/types/dependent-result-handler-params.js +4 -0
- package/lib/module/modules/bt-management/types/dependent-result-handler-params.js.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts +8 -7
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts +12 -2
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f4/f4.device.d.ts +15 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f4/f4.device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f4/f4.main-services.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/case-type.d.ts +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/case-type.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/dependent-result-handler-params.d.ts +9 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/dependent-result-handler-params.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts +8 -7
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts +12 -2
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/f4/f4.device.d.ts +15 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/f4/f4.device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/f4/f4.main-services.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/case-type.d.ts +1 -0
- package/lib/typescript/module/src/modules/bt-management/types/case-type.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/dependent-result-handler-params.d.ts +9 -0
- package/lib/typescript/module/src/modules/bt-management/types/dependent-result-handler-params.d.ts.map +1 -0
- 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":";;AAGA,SAASA,YAAY,QAAQ,yCAAsC;
|
|
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
|
|
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","
|
|
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.
|
|
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","
|
|
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":[]}
|
|
@@ -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 @@
|
|
|
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,
|
|
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"}
|
package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts
CHANGED
|
@@ -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 {
|
|
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 {
|
|
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:
|
|
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;
|
|
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"}
|
package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts
CHANGED
|
@@ -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:
|
|
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;
|
|
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"}
|
package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f4/f4.device.d.ts
CHANGED
|
@@ -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;
|
package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f4/f4.device.d.ts.map
CHANGED
|
@@ -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,
|
|
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,
|
|
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"}
|
|
@@ -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"}
|
package/lib/typescript/commonjs/src/modules/bt-management/types/dependent-result-handler-params.d.ts
ADDED
|
@@ -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,
|
|
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"}
|
package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts
CHANGED
|
@@ -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 {
|
|
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 {
|
|
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:
|
|
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;
|
package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts
CHANGED
|
@@ -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:
|
|
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;
|
package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map
CHANGED
|
@@ -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;
|
|
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;
|
package/lib/typescript/module/src/modules/bt-management/services/devices/f4/f4.device.d.ts.map
CHANGED
|
@@ -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,
|
|
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,
|
|
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"}
|
|
@@ -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"}
|
package/lib/typescript/module/src/modules/bt-management/types/dependent-result-handler-params.d.ts
ADDED
|
@@ -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"}
|