@ovok/native 0.3.9 → 0.3.11

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 (73) hide show
  1. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +16 -2
  2. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  3. package/lib/commonjs/modules/bt-management/hooks/use-request-permissions.js +20 -16
  4. package/lib/commonjs/modules/bt-management/hooks/use-request-permissions.js.map +1 -1
  5. package/lib/commonjs/modules/bt-management/services/bt-manager.js +36 -4
  6. package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
  7. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.device.js +9 -3
  8. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.device.js.map +1 -1
  9. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js +31 -10
  10. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  11. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js +19 -1
  12. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  13. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +6 -2
  14. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  15. package/lib/commonjs/modules/bt-management/services/devices/f4/f4.device.js +1 -0
  16. package/lib/commonjs/modules/bt-management/services/devices/f4/f4.device.js.map +1 -1
  17. package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.device.js +1 -0
  18. package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.device.js.map +1 -1
  19. package/lib/commonjs/modules/helpers/utils/s-log.js +1 -1
  20. package/lib/commonjs/modules/helpers/utils/s-log.js.map +1 -1
  21. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +16 -2
  22. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  23. package/lib/module/modules/bt-management/hooks/use-request-permissions.js +20 -16
  24. package/lib/module/modules/bt-management/hooks/use-request-permissions.js.map +1 -1
  25. package/lib/module/modules/bt-management/services/bt-manager.js +35 -4
  26. package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
  27. package/lib/module/modules/bt-management/services/devices/bp2/bp2.device.js +9 -3
  28. package/lib/module/modules/bt-management/services/devices/bp2/bp2.device.js.map +1 -1
  29. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js +31 -10
  30. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  31. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js +19 -1
  32. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  33. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +6 -2
  34. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  35. package/lib/module/modules/bt-management/services/devices/f4/f4.device.js +1 -0
  36. package/lib/module/modules/bt-management/services/devices/f4/f4.device.js.map +1 -1
  37. package/lib/module/modules/bt-management/services/devices/spo/spo2.device.js +1 -0
  38. package/lib/module/modules/bt-management/services/devices/spo/spo2.device.js.map +1 -1
  39. package/lib/module/modules/helpers/utils/s-log.js +1 -1
  40. package/lib/module/modules/helpers/utils/s-log.js.map +1 -1
  41. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  42. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-request-permissions.d.ts.map +1 -1
  43. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts +1 -0
  44. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  45. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts +1 -0
  46. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts.map +1 -1
  47. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +2 -0
  48. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  49. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts +6 -1
  50. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  51. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts +4 -0
  52. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  53. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f4/f4.device.d.ts +1 -0
  54. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f4/f4.device.d.ts.map +1 -1
  55. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/spo2.device.d.ts +1 -0
  56. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/spo2.device.d.ts.map +1 -1
  57. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  58. package/lib/typescript/module/src/modules/bt-management/hooks/use-request-permissions.d.ts.map +1 -1
  59. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts +1 -0
  60. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  61. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts +1 -0
  62. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts.map +1 -1
  63. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +2 -0
  64. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  65. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts +6 -1
  66. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  67. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts +4 -0
  68. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  69. package/lib/typescript/module/src/modules/bt-management/services/devices/f4/f4.device.d.ts +1 -0
  70. package/lib/typescript/module/src/modules/bt-management/services/devices/f4/f4.device.d.ts.map +1 -1
  71. package/lib/typescript/module/src/modules/bt-management/services/devices/spo/spo2.device.d.ts +1 -0
  72. package/lib/typescript/module/src/modules/bt-management/services/devices/spo/spo2.device.d.ts.map +1 -1
  73. package/package.json +4 -4
@@ -10,6 +10,7 @@ var _spo2MainServices = require("./spo2.main-services.js");
10
10
  class SPO2Device extends _btManagedDevice.BTManagedDevice {
11
11
  onStreamStart = () => {};
12
12
  mainServices = _spo2MainServices.spo2MainServices;
13
+ stuckDataTimeout = 30_000;
13
14
  validatePackage = pkg => {
14
15
  pkg = pkg.map(b => b.toLowerCase());
15
16
  let headIndex = -1;
@@ -1 +1 @@
1
- {"version":3,"names":["_caseType","require","_btManagedDevice","_spo2MainServices","SPO2Device","BTManagedDevice","onStreamStart","mainServices","spo2MainServices","validatePackage","pkg","map","b","toLowerCase","headIndex","i","length","slice","toNum","hex","parseInt","lengthByte","totalLen","handleSuccessResult","successResult","collectedValues","caseType","CaseType","STREAM","OTHER","measurementTypeKey","onError","Error","handlePulseOximeterResult","error","checkIfHasError","onResult","bloodOxygen","undefined","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/spo/spo2.device.ts"],"mappings":";;;;;;AAEA,IAAAA,SAAA,GAAAC,OAAA;AAKA,IAAAC,gBAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AAEO,MAAMG,UAAU,SAASC,gCAAe,CAA2B;EAC9DC,aAAa,GAAeA,CAAA,KAAM,CAAC,CAAC;EAEpCC,YAAY,GAAeC,kCAAgB;EAE3CC,eAAe,GAAgCC,GAAG,IAAK;IAC/DA,GAAG,GAAGA,GAAG,CAACC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,WAAW,CAAC,CAAC,CAAC;IAErC,IAAIC,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,GAAG,CAACM,MAAM,GAAG,CAAC,EAAED,CAAC,EAAE,EAAE;MACvC,IAAIL,GAAG,CAACK,CAAC,CAAC,KAAK,IAAI,IAAIL,GAAG,CAACK,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;QAC1CD,SAAS,GAAGC,CAAC;QACb;MACF;IACF;IAEA,IAAID,SAAS,KAAK,CAAC,CAAC,EAAE;MACpB,OAAO,KAAK;IACd;IAEA,IAAIA,SAAS,GAAG,CAAC,EAAE;MACjBJ,GAAG,GAAGA,GAAG,CAACO,KAAK,CAACH,SAAS,CAAC;IAC5B;IAEA,IAAIJ,GAAG,CAACM,MAAM,GAAG,CAAC,EAAE;MAClB,OAAO,KAAK;IACd;IAEA,MAAME,KAAK,GAAIC,GAAY,IAAKC,QAAQ,CAACD,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC;IAE7D,MAAME,UAAU,GAAGH,KAAK,CAACR,GAAG,CAAC,CAAC,CAAC,CAAC;IAEhC,MAAMY,QAAQ,GAAG,CAAC,GAAGD,UAAU;IAE/B,IAAIX,GAAG,CAACM,MAAM,GAAGM,QAAQ,EAAE;MACzB,OAAO,KAAK;IACd;IAEA,OAAO,IAAI;EACb,CAAC;EAESC,mBAAmBA,CAC3BC,aAEC,EACDC,eAAyB,EACT;IAChB,IACED,aAAa,CAACE,QAAQ,KAAKC,kBAAQ,CAACC,MAAM,IAC1CJ,aAAa,CAACE,QAAQ,KAAKC,kBAAQ,CAACE,KAAK,EACzC;MACA;IACF;IAEA,IAAI,CAACJ,eAAe,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,IAAI,EAAE;MACxC,OAAO,IAAI;IACb;IAEA,IAAI,CAACD,aAAa,CAACM,kBAAkB,EAAE;MACrC,IAAI,CAACC,OAAO,GACV,IAAIC,KAAK,CACP,0CAA0CR,aAAa,CAACE,QAAQ,EAClE,CACF,CAAC;MAED;IACF;IAEA,IAAI,CAACO,yBAAyB,CAACT,aAAa,CAAC;EAC/C;EAEQS,yBAAyBA,CAC/BT,aAAgE,EAC1D;IACN,MAAMU,KAAK,GAAG,IAAI,CAACC,eAAe,CAACX,aAAa,CAAC;IAEjD,IAAIU,KAAK,EAAE;MACT,IAAI,CAACH,OAAO,GAAGG,KAAK,CAAC;MAErB;IACF;IAEA,IAAI,CAACE,QAAQ,GAAGZ,aAAa,CAAC;EAChC;EAEQW,eAAeA,CACrBX,aAAgE,EAC5C;IACpB,IAAI,CAACA,aAAa,CAACa,WAAW,EAAE;MAC9B,OAAO,sDAAsD;IAC/D;IAEA,OAAOC,SAAS;EAClB;AACF;AAACC,OAAA,CAAAnC,UAAA,GAAAA,UAAA","ignoreList":[]}
1
+ {"version":3,"names":["_caseType","require","_btManagedDevice","_spo2MainServices","SPO2Device","BTManagedDevice","onStreamStart","mainServices","spo2MainServices","stuckDataTimeout","validatePackage","pkg","map","b","toLowerCase","headIndex","i","length","slice","toNum","hex","parseInt","lengthByte","totalLen","handleSuccessResult","successResult","collectedValues","caseType","CaseType","STREAM","OTHER","measurementTypeKey","onError","Error","handlePulseOximeterResult","error","checkIfHasError","onResult","bloodOxygen","undefined","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/spo/spo2.device.ts"],"mappings":";;;;;;AAEA,IAAAA,SAAA,GAAAC,OAAA;AAKA,IAAAC,gBAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AAEO,MAAMG,UAAU,SAASC,gCAAe,CAA2B;EAC9DC,aAAa,GAAeA,CAAA,KAAM,CAAC,CAAC;EAEpCC,YAAY,GAAeC,kCAAgB;EAC3CC,gBAAgB,GAAG,MAAM;EAEzBC,eAAe,GAAgCC,GAAG,IAAK;IAC/DA,GAAG,GAAGA,GAAG,CAACC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,WAAW,CAAC,CAAC,CAAC;IAErC,IAAIC,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,GAAG,CAACM,MAAM,GAAG,CAAC,EAAED,CAAC,EAAE,EAAE;MACvC,IAAIL,GAAG,CAACK,CAAC,CAAC,KAAK,IAAI,IAAIL,GAAG,CAACK,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;QAC1CD,SAAS,GAAGC,CAAC;QACb;MACF;IACF;IAEA,IAAID,SAAS,KAAK,CAAC,CAAC,EAAE;MACpB,OAAO,KAAK;IACd;IAEA,IAAIA,SAAS,GAAG,CAAC,EAAE;MACjBJ,GAAG,GAAGA,GAAG,CAACO,KAAK,CAACH,SAAS,CAAC;IAC5B;IAEA,IAAIJ,GAAG,CAACM,MAAM,GAAG,CAAC,EAAE;MAClB,OAAO,KAAK;IACd;IAEA,MAAME,KAAK,GAAIC,GAAY,IAAKC,QAAQ,CAACD,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC;IAE7D,MAAME,UAAU,GAAGH,KAAK,CAACR,GAAG,CAAC,CAAC,CAAC,CAAC;IAEhC,MAAMY,QAAQ,GAAG,CAAC,GAAGD,UAAU;IAE/B,IAAIX,GAAG,CAACM,MAAM,GAAGM,QAAQ,EAAE;MACzB,OAAO,KAAK;IACd;IAEA,OAAO,IAAI;EACb,CAAC;EAESC,mBAAmBA,CAC3BC,aAEC,EACDC,eAAyB,EACT;IAChB,IACED,aAAa,CAACE,QAAQ,KAAKC,kBAAQ,CAACC,MAAM,IAC1CJ,aAAa,CAACE,QAAQ,KAAKC,kBAAQ,CAACE,KAAK,EACzC;MACA;IACF;IAEA,IAAI,CAACJ,eAAe,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,IAAI,EAAE;MACxC,OAAO,IAAI;IACb;IAEA,IAAI,CAACD,aAAa,CAACM,kBAAkB,EAAE;MACrC,IAAI,CAACC,OAAO,GACV,IAAIC,KAAK,CACP,0CAA0CR,aAAa,CAACE,QAAQ,EAClE,CACF,CAAC;MAED;IACF;IAEA,IAAI,CAACO,yBAAyB,CAACT,aAAa,CAAC;EAC/C;EAEQS,yBAAyBA,CAC/BT,aAAgE,EAC1D;IACN,MAAMU,KAAK,GAAG,IAAI,CAACC,eAAe,CAACX,aAAa,CAAC;IAEjD,IAAIU,KAAK,EAAE;MACT,IAAI,CAACH,OAAO,GAAGG,KAAK,CAAC;MAErB;IACF;IAEA,IAAI,CAACE,QAAQ,GAAGZ,aAAa,CAAC;EAChC;EAEQW,eAAeA,CACrBX,aAAgE,EAC5C;IACpB,IAAI,CAACA,aAAa,CAACa,WAAW,EAAE;MAC9B,OAAO,sDAAsD;IAC/D;IAEA,OAAOC,SAAS;EAClB;AACF;AAACC,OAAA,CAAApC,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -11,7 +11,7 @@ const slog = (error, scope,
11
11
  additionalData = {}, level = "error") => {
12
12
  if (__DEV__) {
13
13
  // eslint-disable-next-line no-console
14
- console.log(error, scope, additionalData, level);
14
+ console.log(error, scope, JSON.stringify(additionalData, null, 2), level);
15
15
  return;
16
16
  }
17
17
  Sentry.captureException(error, {
@@ -1 +1 @@
1
- {"version":3,"names":["Sentry","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","slog","error","scope","additionalData","level","__DEV__","console","log","captureException","extra","exports"],"sourceRoot":"../../../../../src","sources":["modules/helpers/utils/s-log.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA+C,SAAAD,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAExC,MAAMkB,IAAI,GAAGA,CAElBC,KAAU,EACVC,KAAa;AACb;AACAC,cAAmC,GAAG,CAAC,CAAC,EACxCC,KAA6C,GAAG,OAAO,KACpD;EACH,IAAIC,OAAO,EAAE;IACX;IACAC,OAAO,CAACC,GAAG,CAACN,KAAK,EAAEC,KAAK,EAAEC,cAAc,EAAEC,KAAK,CAAC;IAEhD;EACF;EAEA1B,MAAM,CAAC8B,gBAAgB,CAACP,KAAK,EAAE;IAC7BQ,KAAK,EAAE;MACLP,KAAK;MACLC;IACF,CAAC;IACDC;EACF,CAAC,CAAC;AACJ,CAAC;AAACM,OAAA,CAAAV,IAAA,GAAAA,IAAA","ignoreList":[]}
1
+ {"version":3,"names":["Sentry","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","slog","error","scope","additionalData","level","__DEV__","console","log","JSON","stringify","captureException","extra","exports"],"sourceRoot":"../../../../../src","sources":["modules/helpers/utils/s-log.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA+C,SAAAD,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAExC,MAAMkB,IAAI,GAAGA,CAElBC,KAAU,EACVC,KAAa;AACb;AACAC,cAAmC,GAAG,CAAC,CAAC,EACxCC,KAA6C,GAAG,OAAO,KACpD;EACH,IAAIC,OAAO,EAAE;IACX;IACAC,OAAO,CAACC,GAAG,CAACN,KAAK,EAAEC,KAAK,EAAEM,IAAI,CAACC,SAAS,CAACN,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,EAAEC,KAAK,CAAC;IAEzE;EACF;EAEA1B,MAAM,CAACgC,gBAAgB,CAACT,KAAK,EAAE;IAC7BU,KAAK,EAAE;MACLT,KAAK;MACLC;IACF,CAAC;IACDC;EACF,CAAC,CAAC;AACJ,CAAC;AAACQ,OAAA,CAAAZ,IAAA,GAAAA,IAAA","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import * as React from "react";
4
+ import { AppState } from "react-native";
4
5
  import { useDeviceList } from "../../bt-device/components/hooks/use-device-list.js";
5
6
  import { sentryLogger } from "../../helpers/utils/sentry-logger.js";
6
7
  import { BTManager } from "../services/bt-manager.js";
@@ -39,7 +40,8 @@ export const BTProviderChildWrapper = /*#__PURE__*/React.memo(({
39
40
  return () => {
40
41
  btManagerRef.current?.onDeviceFound(undefined);
41
42
  };
42
- }, [onDeviceFound, acceptedDevices]), React.useEffect(() => {
43
+ }, [onDeviceFound, acceptedDevices]);
44
+ React.useEffect(() => {
43
45
  if (!onError || !acceptedDevices.length) {
44
46
  return;
45
47
  }
@@ -47,7 +49,8 @@ export const BTProviderChildWrapper = /*#__PURE__*/React.memo(({
47
49
  return () => {
48
50
  btManagerRef.current?.onError(undefined);
49
51
  };
50
- }, [onError, acceptedDevices]), React.useEffect(() => {
52
+ }, [onError, acceptedDevices]);
53
+ React.useEffect(() => {
51
54
  if (!onResult || !acceptedDevices.length) {
52
55
  return;
53
56
  }
@@ -87,6 +90,17 @@ export const BTProviderChildWrapper = /*#__PURE__*/React.memo(({
87
90
  btManagerRef.current?.onDeviceStatusChanged(undefined);
88
91
  };
89
92
  }, [onDeviceStatusChanged, acceptedDevices, setDeviceListItems]);
93
+ React.useEffect(() => {
94
+ const listener = AppState.addEventListener("change", state => {
95
+ if (state !== "active") {
96
+ return;
97
+ }
98
+ btManagerRef.current?.startScan();
99
+ });
100
+ return () => {
101
+ listener.remove();
102
+ };
103
+ }, []);
90
104
  return /*#__PURE__*/_jsx(_Fragment, {
91
105
  children: children
92
106
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","useDeviceList","sentryLogger","BTManager","Fragment","_Fragment","jsx","_jsx","BTProviderChildWrapper","memo","bleManager","acceptedDevices","children","onDeviceFound","onError","onDeviceStatusChanged","onResult","btManagerRef","useRef","setDeviceListItems","useEffect","length","btManager","current","startScan","destroy","undefined","status","deviceData","measurementTypeKey","prev","newList","index","findIndex","item","deviceType","name"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/components/bt-provider-child-wrapper.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","AppState","useDeviceList","sentryLogger","BTManager","Fragment","_Fragment","jsx","_jsx","BTProviderChildWrapper","memo","bleManager","acceptedDevices","children","onDeviceFound","onError","onDeviceStatusChanged","onResult","btManagerRef","useRef","setDeviceListItems","useEffect","length","btManager","current","startScan","destroy","undefined","status","deviceData","measurementTypeKey","prev","newList","index","findIndex","item","deviceType","name","listener","addEventListener","state","remove"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/components/bt-provider-child-wrapper.tsx"],"mappings":"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","ignoreList":[]}
@@ -14,27 +14,31 @@ export const useRequestPermissions = ({
14
14
  Linking.openSettings();
15
15
  }, []);
16
16
  React.useEffect(() => {
17
+ const requestPermissions = async () => {
18
+ const permissions = Platform.select({
19
+ android: [PERMISSIONS.ANDROID.BLUETOOTH_CONNECT, PERMISSIONS.ANDROID.BLUETOOTH_SCAN, PERMISSIONS.ANDROID.ACCESS_FINE_LOCATION],
20
+ ios: [PERMISSIONS.IOS.BLUETOOTH]
21
+ });
22
+ sentryLogger("info", "BT_PROVIDER: Permissions requesting", {
23
+ permissions
24
+ });
25
+ requestMultiple(permissions).then(permissions => {
26
+ const allGranted = Object.values(permissions).some(permission => permission === "granted");
27
+ sentryLogger("info", "BT_PROVIDER: Permissions requested", {
28
+ permissions,
29
+ allGranted
30
+ });
31
+ onChangeRef.current?.(allGranted);
32
+ setAccessPermission(allGranted);
33
+ }).catch(error => slog(error, "bt permission request error"));
34
+ };
17
35
  const listener = AppState.addEventListener("change", state => {
18
36
  if (state !== "active") {
19
37
  return;
20
38
  }
39
+ requestPermissions();
21
40
  });
22
- const permissions = Platform.select({
23
- android: [PERMISSIONS.ANDROID.BLUETOOTH_CONNECT, PERMISSIONS.ANDROID.BLUETOOTH_SCAN, PERMISSIONS.ANDROID.ACCESS_FINE_LOCATION],
24
- ios: [PERMISSIONS.IOS.BLUETOOTH]
25
- });
26
- sentryLogger("info", "BT_PROVIDER: Permissions requesting", {
27
- permissions
28
- });
29
- requestMultiple(permissions).then(permissions => {
30
- const allGranted = Object.values(permissions).some(permission => permission === "granted");
31
- sentryLogger("info", "BT_PROVIDER: Permissions requested", {
32
- permissions,
33
- allGranted
34
- });
35
- onChangeRef.current?.(allGranted);
36
- setAccessPermission(allGranted);
37
- }).catch(error => slog(error, "bt permission request error"));
41
+ requestPermissions();
38
42
  return () => {
39
43
  listener.remove();
40
44
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","AppState","Linking","Platform","PERMISSIONS","requestMultiple","slog","sentryLogger","useRequestPermissions","onAccessPermissionChanged","onChangeRef","useRef","accessPermission","setAccessPermission","useState","undefined","openBleSetting","useCallback","openSettings","useEffect","listener","addEventListener","state","permissions","select","android","ANDROID","BLUETOOTH_CONNECT","BLUETOOTH_SCAN","ACCESS_FINE_LOCATION","ios","IOS","BLUETOOTH","then","allGranted","Object","values","some","permission","current","catch","error","remove"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-request-permissions.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,cAAc;AAC1D,SAEEC,WAAW,EACXC,eAAe,QACV,0BAA0B;AAEjC,SAASC,IAAI,QAAQ,wBAAe;AACpC,SAASC,YAAY,QAAQ,sCAAmC;AAIhE,OAAO,MAAMC,qBAAqB,GAAGA,CAAC;EACpCC;AACuE,CAAC,KAAK;EAC7E,MAAMC,WAAW,GAAGV,KAAK,CAACW,MAAM,CAC9BF,yBACF,CAAC;EAED,MAAM,CAACG,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGb,KAAK,CAACc,QAAQ,CAE5DC,SAAS,CAAC;EAEZ,MAAMC,cAAc,GAAGhB,KAAK,CAACiB,WAAW,CAAC,MAAM;IAC7Cf,OAAO,CAACgB,YAAY,CAAC,CAAC;EACxB,CAAC,EAAE,EAAE,CAAC;EAENlB,KAAK,CAACmB,SAAS,CAAC,MAAM;IACpB,MAAMC,QAAQ,GAAGnB,QAAQ,CAACoB,gBAAgB,CAAC,QAAQ,EAAGC,KAAK,IAAK;MAC9D,IAAIA,KAAK,KAAK,QAAQ,EAAE;QACtB;MACF;IACF,CAAC,CAAC;IAEF,MAAMC,WAAW,GAAGpB,QAAQ,CAACqB,MAAM,CAAC;MAClCC,OAAO,EAAE,CACPrB,WAAW,CAACsB,OAAO,CAACC,iBAAiB,EACrCvB,WAAW,CAACsB,OAAO,CAACE,cAAc,EAClCxB,WAAW,CAACsB,OAAO,CAACG,oBAAoB,CACzC;MACDC,GAAG,EAAE,CAAC1B,WAAW,CAAC2B,GAAG,CAACC,SAAS;IACjC,CAAC,CAAiB;IAElBzB,YAAY,CAAC,MAAM,EAAE,qCAAqC,EAAE;MAC1DgB;IACF,CAAC,CAAC;IAEFlB,eAAe,CAACkB,WAAW,CAAC,CACzBU,IAAI,CAAEV,WAAW,IAAK;MACrB,MAAMW,UAAU,GAAGC,MAAM,CAACC,MAAM,CAACb,WAAW,CAAC,CAACc,IAAI,CAC/CC,UAAU,IAAKA,UAAU,KAAK,SACjC,CAAC;MAED/B,YAAY,CAAC,MAAM,EAAE,oCAAoC,EAAE;QACzDgB,WAAW;QACXW;MACF,CAAC,CAAC;MACFxB,WAAW,CAAC6B,OAAO,GAAGL,UAAU,CAAC;MACjCrB,mBAAmB,CAACqB,UAAU,CAAC;IACjC,CAAC,CAAC,CACDM,KAAK,CAAEC,KAAK,IAAKnC,IAAI,CAACmC,KAAK,EAAE,6BAA6B,CAAC,CAAC;IAE/D,OAAO,MAAM;MACXrB,QAAQ,CAACsB,MAAM,CAAC,CAAC;IACnB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN1C,KAAK,CAACmB,SAAS,CAAC,MAAM;IACpBT,WAAW,CAAC6B,OAAO,GAAG9B,yBAAyB;EACjD,CAAC,EAAE,CAACA,yBAAyB,CAAC,CAAC;EAE/B,OAAO;IACLG,gBAAgB;IAChBI;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","AppState","Linking","Platform","PERMISSIONS","requestMultiple","slog","sentryLogger","useRequestPermissions","onAccessPermissionChanged","onChangeRef","useRef","accessPermission","setAccessPermission","useState","undefined","openBleSetting","useCallback","openSettings","useEffect","requestPermissions","permissions","select","android","ANDROID","BLUETOOTH_CONNECT","BLUETOOTH_SCAN","ACCESS_FINE_LOCATION","ios","IOS","BLUETOOTH","then","allGranted","Object","values","some","permission","current","catch","error","listener","addEventListener","state","remove"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-request-permissions.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,cAAc;AAC1D,SAEEC,WAAW,EACXC,eAAe,QACV,0BAA0B;AAEjC,SAASC,IAAI,QAAQ,wBAAe;AACpC,SAASC,YAAY,QAAQ,sCAAmC;AAIhE,OAAO,MAAMC,qBAAqB,GAAGA,CAAC;EACpCC;AACuE,CAAC,KAAK;EAC7E,MAAMC,WAAW,GAAGV,KAAK,CAACW,MAAM,CAC9BF,yBACF,CAAC;EAED,MAAM,CAACG,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGb,KAAK,CAACc,QAAQ,CAE5DC,SAAS,CAAC;EAEZ,MAAMC,cAAc,GAAGhB,KAAK,CAACiB,WAAW,CAAC,MAAM;IAC7Cf,OAAO,CAACgB,YAAY,CAAC,CAAC;EACxB,CAAC,EAAE,EAAE,CAAC;EAENlB,KAAK,CAACmB,SAAS,CAAC,MAAM;IACpB,MAAMC,kBAAkB,GAAG,MAAAA,CAAA,KAAY;MACrC,MAAMC,WAAW,GAAGlB,QAAQ,CAACmB,MAAM,CAAC;QAClCC,OAAO,EAAE,CACPnB,WAAW,CAACoB,OAAO,CAACC,iBAAiB,EACrCrB,WAAW,CAACoB,OAAO,CAACE,cAAc,EAClCtB,WAAW,CAACoB,OAAO,CAACG,oBAAoB,CACzC;QACDC,GAAG,EAAE,CAACxB,WAAW,CAACyB,GAAG,CAACC,SAAS;MACjC,CAAC,CAAiB;MAElBvB,YAAY,CAAC,MAAM,EAAE,qCAAqC,EAAE;QAC1Dc;MACF,CAAC,CAAC;MAEFhB,eAAe,CAACgB,WAAW,CAAC,CACzBU,IAAI,CAAEV,WAAW,IAAK;QACrB,MAAMW,UAAU,GAAGC,MAAM,CAACC,MAAM,CAACb,WAAW,CAAC,CAACc,IAAI,CAC/CC,UAAU,IAAKA,UAAU,KAAK,SACjC,CAAC;QAED7B,YAAY,CAAC,MAAM,EAAE,oCAAoC,EAAE;UACzDc,WAAW;UACXW;QACF,CAAC,CAAC;QACFtB,WAAW,CAAC2B,OAAO,GAAGL,UAAU,CAAC;QACjCnB,mBAAmB,CAACmB,UAAU,CAAC;MACjC,CAAC,CAAC,CACDM,KAAK,CAAEC,KAAK,IAAKjC,IAAI,CAACiC,KAAK,EAAE,6BAA6B,CAAC,CAAC;IACjE,CAAC;IAED,MAAMC,QAAQ,GAAGvC,QAAQ,CAACwC,gBAAgB,CAAC,QAAQ,EAAGC,KAAK,IAAK;MAC9D,IAAIA,KAAK,KAAK,QAAQ,EAAE;QACtB;MACF;MACAtB,kBAAkB,CAAC,CAAC;IACtB,CAAC,CAAC;IAEFA,kBAAkB,CAAC,CAAC;IAEpB,OAAO,MAAM;MACXoB,QAAQ,CAACG,MAAM,CAAC,CAAC;IACnB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN3C,KAAK,CAACmB,SAAS,CAAC,MAAM;IACpBT,WAAW,CAAC2B,OAAO,GAAG5B,yBAAyB;EACjD,CAAC,EAAE,CAACA,yBAAyB,CAAC,CAAC;EAE/B,OAAO;IACLG,gBAAgB;IAChBI;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,13 +1,16 @@
1
1
  "use strict";
2
2
 
3
+ /* eslint-disable max-lines */
3
4
  import { Linking, Platform } from "react-native";
4
5
  import { ScanMode, State } from "react-native-ble-plx";
6
+ import { slog } from "../../helpers/index.js";
5
7
  import { sentryLogger } from "../../helpers/utils/sentry-logger.js";
6
8
  import { DeviceCreator } from "./device-creator.js";
7
9
  export class BTManager {
8
10
  static MAX_DEVICES = 15; // Safety limit to prevent unbounded growth
9
11
  devices = new Map();
10
12
  eventSubscriptions = [];
13
+ lastScanTimestamp = 0;
11
14
  constructor(bleManager, acceptedDevices) {
12
15
  this.bleManager = bleManager;
13
16
  this.acceptedDevices = acceptedDevices;
@@ -22,6 +25,7 @@ export class BTManager {
22
25
  this.stateChangeListener.remove();
23
26
  this.stateChangeListener = undefined;
24
27
  }
28
+ this.lastScanTimestamp = 0;
25
29
 
26
30
  // Then clear all callbacks
27
31
  this.onErrorCallback = undefined;
@@ -35,6 +39,12 @@ export class BTManager {
35
39
  this.deviceCreator.destroy();
36
40
  };
37
41
  startScan = () => {
42
+ if (Date.now() - this.lastScanTimestamp < 60_000) {
43
+ sentryLogger("warning", "BT_MANAGER: startScan called too frequently, skipping (within 1 min window)");
44
+ return;
45
+ }
46
+ this.lastScanTimestamp = Date.now();
47
+
38
48
  // Remove previous state change listener to prevent accumulation
39
49
  if (this.stateChangeListener) {
40
50
  this.stateChangeListener.remove();
@@ -77,6 +87,16 @@ export class BTManager {
77
87
  // Remove all event subscriptions to prevent memory leaks
78
88
  this.eventSubscriptions.forEach(sub => sub.remove());
79
89
  this.eventSubscriptions = [];
90
+
91
+ // Clear all callbacks
92
+ this.onErrorCallback = undefined;
93
+ this.onDeviceFoundCallback = undefined;
94
+ this.onResultCallback = undefined;
95
+ this.onDeviceStatusChangedCallback = undefined;
96
+ this.devices.forEach(device => {
97
+ device.destroy();
98
+ });
99
+ this.devices.clear();
80
100
  };
81
101
  onDeviceFound = callback => {
82
102
  sentryLogger("info", "BT_MANAGER: Setting onDeviceFound callback");
@@ -106,6 +126,9 @@ export class BTManager {
106
126
  sentryLogger("error", "BT_MANAGER: Scan result error", {
107
127
  error
108
128
  });
129
+ slog(error, "BT_MANAGER: Scan result error", {
130
+ error
131
+ });
109
132
  return;
110
133
  }
111
134
  if (!device || !device.name) {
@@ -131,10 +154,13 @@ export class BTManager {
131
154
  const deviceClass = this.deviceCreator.createDevice({
132
155
  device,
133
156
  deviceName,
134
- onError: this.onErrorCallback,
135
- onDeviceStatusChanged: this.onDeviceStatusChangedCallback,
136
- onResult: this.onResultCallback,
137
- onDeviceDisconnected: () => this.removeDeviceFromFoundedDevices?.bind(this)(device.id)
157
+ onError: this.onErrorCallback?.bind(this),
158
+ onDeviceStatusChanged: this.onDeviceStatusChangedCallback?.bind(this),
159
+ onResult: this.onResultCallback?.bind(this),
160
+ onDeviceDisconnected: () => {
161
+ this.startScan();
162
+ this.removeDeviceFromFoundedDevices?.bind(this)(device.id);
163
+ }
138
164
  });
139
165
  this.devices.set(device.id, deviceClass);
140
166
  this.onDeviceFoundCallback?.(deviceClass, this);
@@ -144,6 +170,11 @@ export class BTManager {
144
170
  deviceId: device?.id,
145
171
  deviceName: device?.name
146
172
  });
173
+ slog(error, "BT_MANAGER: Error creating device", {
174
+ error,
175
+ deviceId: device?.id,
176
+ deviceName: device?.name
177
+ });
147
178
  }
148
179
  };
149
180
  removeDeviceFromFoundedDevices = deviceId => {
@@ -1 +1 @@
1
- {"version":3,"names":["Linking","Platform","ScanMode","State","sentryLogger","DeviceCreator","BTManager","MAX_DEVICES","devices","Map","eventSubscriptions","constructor","bleManager","acceptedDevices","deviceCreator","destroy","stopScan","stateChangeListener","remove","undefined","onErrorCallback","onDeviceFoundCallback","onResultCallback","onDeviceStatusChangedCallback","forEach","device","clear","startScan","onStateChange","state","PoweredOn","index","indexOf","splice","startDeviceScan","scanMode","Balanced","onScanResult","OS","sendIntent","enable","push","stopDeviceScan","sub","onDeviceFound","callback","onError","onDeviceStatusChanged","onResult","error","name","has","id","deviceName","getDeviceName","size","deviceId","currentSize","deviceClass","createDevice","onDeviceDisconnected","removeDeviceFromFoundedDevices","bind","set","get","delete"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/bt-manager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Linking","Platform","ScanMode","State","slog","sentryLogger","DeviceCreator","BTManager","MAX_DEVICES","devices","Map","eventSubscriptions","lastScanTimestamp","constructor","bleManager","acceptedDevices","deviceCreator","destroy","stopScan","stateChangeListener","remove","undefined","onErrorCallback","onDeviceFoundCallback","onResultCallback","onDeviceStatusChangedCallback","forEach","device","clear","startScan","Date","now","onStateChange","state","PoweredOn","index","indexOf","splice","startDeviceScan","scanMode","Balanced","onScanResult","OS","sendIntent","enable","push","stopDeviceScan","sub","onDeviceFound","callback","onError","onDeviceStatusChanged","onResult","error","name","has","id","deviceName","getDeviceName","size","deviceId","currentSize","deviceClass","createDevice","bind","onDeviceDisconnected","removeDeviceFromFoundedDevices","set","get","delete"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/bt-manager.ts"],"mappings":"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","ignoreList":[]}
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { MeasurementTypeKey, EcgDiagnosticFlag } from "@ovok/core";
4
4
  import { BloodPressureStates } from "@ovok/core/dist/client/observation/types/measurement/BloodPressureStates";
5
+ import { sentryLogger } from "../../../../helpers/utils/sentry-logger.js";
5
6
  import { bloodPressureTranslatedExceptionMap } from "../../../constants/blood-pressure-translated-exception-map.js";
6
7
  import { CaseType } from "../../../types/case-type.js";
7
8
  import { hexToByte } from "../../../utils/hex-to-byte.js";
@@ -15,17 +16,22 @@ export class BP2Device extends BTManagedDevice {
15
16
  diagramPoints = [];
16
17
  duration = 0;
17
18
  mainServices = bp2MainServices;
19
+ stuckDataTimeout = 5_000;
18
20
  onStreamStart = () => {
19
21
  this.collectedValues = [];
20
22
  this.diagramPoints = [];
21
23
  this.duration = 0;
22
24
  };
23
25
  validatePackage = pkg => {
24
- const headIndex = pkg.indexOf("a5");
25
- if (headIndex > 0) {
26
- pkg = pkg.slice(headIndex);
26
+ if (pkg[0] !== "a5") {
27
+ sentryLogger("info", "BP2_DEVICE: Package does not start with a5");
28
+ const headIndex = pkg.indexOf("a5");
29
+ if (headIndex > 0) {
30
+ pkg = pkg.slice(headIndex);
31
+ }
27
32
  }
28
33
  if (pkg.length < 7) {
34
+ sentryLogger("info", "BP2_DEVICE: Package is shorter than 7 bytes");
29
35
  return false;
30
36
  }
31
37
  const toNum = hex => parseInt(hex, 16);
@@ -1 +1 @@
1
- {"version":3,"names":["MeasurementTypeKey","EcgDiagnosticFlag","BloodPressureStates","bloodPressureTranslatedExceptionMap","CaseType","hexToByte","i16FromHex","le16FromHex","le32FromHex","BTManagedDevice","bp2MainServices","BP2Device","collectedValues","diagramPoints","duration","mainServices","onStreamStart","validatePackage","pkg","headIndex","indexOf","slice","length","toNum","hex","parseInt","lenL","lenH","dataLen","totalLen","handleSuccessResult","successResult","measurementTypeKey","caseType","onError","Error","ecg","handleEcgResult","bloodPressure","handleBloodPressureResult","RESULT","error","checkIfHasErrorForEcg","onResult","handleEcgStream","dataStart","dataEnd","data","samplingNum","samplesStart","i","byteIndexInData","sampleVal","push","checkIfHasErrorForBloodPressure","bpMeasurement","status","undefined","diastolic","systolic","heartRate","REGULAR","errorString","get","DEVICE_ERROR","ecgMeasurement","diagnosticResult","POOR_WAVEFORM","LEAD_OFF"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bp2/bp2.device.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["MeasurementTypeKey","EcgDiagnosticFlag","BloodPressureStates","sentryLogger","bloodPressureTranslatedExceptionMap","CaseType","hexToByte","i16FromHex","le16FromHex","le32FromHex","BTManagedDevice","bp2MainServices","BP2Device","collectedValues","diagramPoints","duration","mainServices","stuckDataTimeout","onStreamStart","validatePackage","pkg","headIndex","indexOf","slice","length","toNum","hex","parseInt","lenL","lenH","dataLen","totalLen","handleSuccessResult","successResult","measurementTypeKey","caseType","onError","Error","ecg","handleEcgResult","bloodPressure","handleBloodPressureResult","RESULT","error","checkIfHasErrorForEcg","onResult","handleEcgStream","dataStart","dataEnd","data","samplingNum","samplesStart","i","byteIndexInData","sampleVal","push","checkIfHasErrorForBloodPressure","bpMeasurement","status","undefined","diastolic","systolic","heartRate","REGULAR","errorString","get","DEVICE_ERROR","ecgMeasurement","diagnosticResult","POOR_WAVEFORM","LEAD_OFF"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bp2/bp2.device.ts"],"mappings":";;AAAA,SACEA,kBAAkB,EAGlBC,iBAAiB,QACZ,YAAY;AACnB,SAASC,mBAAmB,QAAQ,0EAA0E;AAE9G,SAASC,YAAY,QAAQ,4CAAyC;AACtE,SAASC,mCAAmC,QAAQ,+DAA4D;AAChH,SAASC,QAAQ,QAAQ,6BAA0B;AAKnD,SAASC,SAAS,QAAQ,+BAA4B;AACtD,SAASC,UAAU,QAAQ,iCAA8B;AACzD,SAASC,WAAW,QAAQ,kCAA+B;AAC3D,SAASC,WAAW,QAAQ,kCAA+B;AAC3D,SAASC,eAAe,QAAQ,yBAAsB;AAEtD,SAASC,eAAe,QAAQ,wBAAqB;AAErD,OAAO,MAAMC,SAAS,SAASF,eAAe,CAAwB;EAC5DG,eAAe,GAAa,EAAE;EAC9BC,aAAa,GAAa,EAAE;EAC5BC,QAAQ,GAAW,CAAC;EAElBC,YAAY,GAAeL,eAAe;EAC1CM,gBAAgB,GAAW,KAAK;EAEhCC,aAAa,GAAeA,CAAA,KAAM;IAC1C,IAAI,CAACL,eAAe,GAAG,EAAE;IACzB,IAAI,CAACC,aAAa,GAAG,EAAE;IACvB,IAAI,CAACC,QAAQ,GAAG,CAAC;EACnB,CAAC;EAESI,eAAe,GAAgCC,GAAG,IAAK;IAC/D,IAAIA,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;MACnBjB,YAAY,CAAC,MAAM,EAAE,4CAA4C,CAAC;MAClE,MAAMkB,SAAS,GAAGD,GAAG,CAACE,OAAO,CAAC,IAAI,CAAC;MAEnC,IAAID,SAAS,GAAG,CAAC,EAAE;QACjBD,GAAG,GAAGA,GAAG,CAACG,KAAK,CAACF,SAAS,CAAC;MAC5B;IACF;IAEA,IAAID,GAAG,CAACI,MAAM,GAAG,CAAC,EAAE;MAClBrB,YAAY,CAAC,MAAM,EAAE,6CAA6C,CAAC;MAEnE,OAAO,KAAK;IACd;IAEA,MAAMsB,KAAK,GAAIC,GAAW,IAAKC,QAAQ,CAACD,GAAG,EAAE,EAAE,CAAC;IAChD,MAAME,IAAI,GAAGH,KAAK,CAACL,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IACjC,MAAMS,IAAI,GAAGJ,KAAK,CAACL,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IAEjC,MAAMU,OAAO,GAAGF,IAAI,GAAIC,IAAI,IAAI,CAAE;IAClC,MAAME,QAAQ,GAAG,CAAC,GAAGD,OAAO,GAAG,CAAC;IAEhC,IAAIV,GAAG,CAACI,MAAM,GAAGO,QAAQ,EAAE;MACzB,OAAO,KAAK;IACd;IAEA,OAAO,IAAI;EACb,CAAC;EAESC,mBAAmBA,CAC3BC,aAEC,EACDpB,eAAyB,EACT;IAChB,IAAI,CAACA,eAAe,GAAGA,eAAe;IAEtC,IAAI,CAACoB,aAAa,CAACC,kBAAkB,IAAI,CAACD,aAAa,CAACE,QAAQ,EAAE;MAChE,IAAI,CAACC,OAAO,GACV,IAAIC,KAAK,CACP,0CAA0CJ,aAAa,CAACE,QAAQ,EAClE,CACF,CAAC;MAED;IACF;IAEA,IAAIF,aAAa,CAACC,kBAAkB,KAAKlC,kBAAkB,CAACsC,GAAG,EAAE;MAC/D,OAAO,IAAI,CAACC,eAAe,CAACN,aAAa,CAAC;IAC5C;IAEA,IAAIA,aAAa,CAACC,kBAAkB,KAAKlC,kBAAkB,CAACwC,aAAa,EAAE;MACzE,OAAO,IAAI,CAACC,yBAAyB,CACnCR,aACF,CAAC;IACH;IAEA;EACF;EAEQM,eAAeA,CACrBN,aAAsD,EAChD;IACN,IAAIA,aAAa,CAACE,QAAQ,KAAK9B,QAAQ,CAACqC,MAAM,EAAE;MAC9CT,aAAa,CAACnB,aAAa,GAAG,IAAI,CAACA,aAAa;MAChDmB,aAAa,CAAClB,QAAQ,GAAG,IAAI,CAACA,QAAQ;MAEtC,MAAM4B,KAAK,GAAG,IAAI,CAACC,qBAAqB,CAACX,aAAa,CAAC;MAEvD,IAAIU,KAAK,EAAE;QACT,IAAI,CAACP,OAAO,GAAGO,KAAK,CAAC;QAErB;MACF;MAEA,IAAI,CAACE,QAAQ,GAAGZ,aAAa,CAAC;MAE9B;IACF;IAEA,IAAI,CAACa,eAAe,CAAC,CAAC;EACxB;EAEQA,eAAeA,CAAA,EAAS;IAC9B;IACA,MAAMlB,IAAI,GAAGtB,SAAS,CAAC,IAAI,CAACO,eAAe,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;IACzD,MAAMgB,IAAI,GAAGvB,SAAS,CAAC,IAAI,CAACO,eAAe,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;IACzD,MAAMiB,OAAO,GAAGF,IAAI,GAAIC,IAAI,IAAI,CAAE;;IAElC;IACA,MAAMkB,SAAS,GAAG,IAAI;IACtB,MAAMC,OAAO,GAAGD,SAAS,GAAGjB,OAAO;IACnC,MAAMmB,IAAI,GAAG,IAAI,CAACpC,eAAe,CAACU,KAAK,CAACwB,SAAS,EAAEC,OAAO,CAAC;;IAE3D;IACA,IAAI,CAACjC,QAAQ,GAAGN,WAAW,CAACwC,IAAI,EAAE,IAAI,CAAC;;IAEvC;IACA,MAAMC,WAAW,GAAG1C,WAAW,CAACyC,IAAI,EAAE,IAAI,CAAC;;IAE3C;IACA,MAAME,YAAY,GAAG,IAAI;IAEzB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,WAAW,EAAEE,CAAC,EAAE,EAAE;MACpC,MAAMC,eAAe,GAAGF,YAAY,GAAGC,CAAC,GAAG,CAAC;MAC5C,MAAME,SAAS,GAAG/C,UAAU,CAAC0C,IAAI,EAAEI,eAAe,CAAC;MAEnD,IAAI,CAACvC,aAAa,CAACyC,IAAI,CAACD,SAAS,CAAC;IACpC;EACF;EAEQb,yBAAyBA,CAC/BR,aAAgE,EAC1D;IACN,IAAIA,aAAa,CAACE,QAAQ,KAAK9B,QAAQ,CAACqC,MAAM,EAAE;MAC9C;IACF;IACA,MAAMC,KAAK,GAAG,IAAI,CAACa,+BAA+B,CAACvB,aAAa,CAAC;IAEjE,IAAIU,KAAK,EAAE;MACT,IAAI,CAACP,OAAO,GAAGO,KAAK,CAAC;MAErB;IACF;IACA,IAAI,CAACE,QAAQ,GAAGZ,aAAa,CAAC;EAChC;EAEQuB,+BAA+BA,CACrCvB,aAAgE,EAC5C;IACpB,MAAMwB,aAAa,GAAGxB,aAAa;;IAEnC;IACA,IACEwB,aAAa,CAACC,MAAM,KAAKC,SAAS,IAClCF,aAAa,CAACG,SAAS,KAAKD,SAAS,IACrCF,aAAa,CAACI,QAAQ,KAAKF,SAAS,IACpCF,aAAa,CAACK,SAAS,KAAKH,SAAS,EACrC;MACA,OAAO,4CAA4C;IACrD;;IAEA;IACA,IAAIF,aAAa,CAACC,MAAM,KAAKxD,mBAAmB,CAAC6D,OAAO,EAAE;MACxD,MAAMC,WAAW,GAAG5D,mCAAmC,CAAC6D,GAAG,CACzDR,aAAa,CAACC,MAAM,IAAIxD,mBAAmB,CAACgE,YAC9C,CAAC;MAED,IAAIF,WAAW,KAAKL,SAAS,EAAE;QAC7B,OAAOK,WAAW;MACpB,CAAC,MAAM;QACL,OAAO,4CAA4C;MACrD;IACF;;IAEA;IACA,IACEP,aAAa,CAACK,SAAS,KAAK,CAAC,IAC7BL,aAAa,CAACG,SAAS,KAAK,CAAC,IAC7BH,aAAa,CAACI,QAAQ,KAAK,CAAC,EAC5B;MACA,OAAO,kDAAkD;IAC3D;IAEA,OAAOF,SAAS;EAClB;EAEQf,qBAAqBA,CAC3BX,aAAsD,EAClC;IACpB,MAAMkC,cAAc,GAAGlC,aAAa;IAEpC,IAAIkC,cAAc,CAACC,gBAAgB,KAAKnE,iBAAiB,CAACoE,aAAa,EAAE;MACvE,OAAO,mDAAmD;IAC5D;IACA,IAAIF,cAAc,CAACC,gBAAgB,KAAKnE,iBAAiB,CAACqE,QAAQ,EAAE;MAClE,OAAO,8CAA8C;IACvD;;IAEA;IACA,IACEH,cAAc,CAACC,gBAAgB,KAAKT,SAAS,IAC7CQ,cAAc,CAACL,SAAS,KAAKH,SAAS,IACtCQ,cAAc,CAACrD,aAAa,KAAK6C,SAAS,EAC1C;MACA,OAAO,4CAA4C;IACrD;;IAEA;IACA,IAAIQ,cAAc,CAACL,SAAS,KAAK,CAAC,EAAE;MAClC,OAAO,kDAAkD;IAC3D;IAEA,IAAIK,cAAc,CAACpD,QAAQ,KAAK4C,SAAS,IAAIQ,cAAc,CAACpD,QAAQ,GAAG,EAAE,EAAE;MACzE,OAAO,wDAAwD;IACjE;IAEA,IACEoD,cAAc,CAACrD,aAAa,CAACU,MAAM,KAAK,CAAC,IACzC2C,cAAc,CAACrD,aAAa,CAACU,MAAM,GAAG,IAAI,EAC1C;MACA,OAAO,wDAAwD;IACjE;IAEA,OAAOmC,SAAS;EAClB;AACF","ignoreList":[]}
@@ -1,11 +1,14 @@
1
1
  "use strict";
2
2
 
3
+ import { slog } from "../../../helpers/index.js";
3
4
  import { sentryLogger } from "../../../helpers/utils/sentry-logger.js";
4
5
  import { DeviceStatus } from "../../types/device-status.js";
5
6
  import { base64ToHex } from "../../utils/base-64-to-hex.js";
6
7
  import { hexToBase64 } from "../../utils/hex-to-base-64.js";
7
8
  export class BTConnectionHandler {
8
9
  characteristicSubscriptions = [];
10
+ isSendingCommand = false;
11
+ retryCount = 0;
9
12
  constructor(device, mainServices, callbacks) {
10
13
  this.device = device;
11
14
  this.mainServices = mainServices;
@@ -30,18 +33,22 @@ export class BTConnectionHandler {
30
33
  destroy = () => {
31
34
  this.characteristicSubscriptions.forEach(sub => sub?.remove());
32
35
  this.characteristicSubscriptions = [];
36
+ this.isSendingCommand = false;
37
+ this.retryCount = 0;
33
38
  this.onDisconnectSubscription?.remove();
34
39
  };
35
40
  sendCommandToDevice = async () => {
36
- const isConnected = await this.device.isConnected();
37
- if (!isConnected) {
41
+ if (this.isSendingCommand) {
38
42
  return;
39
43
  }
44
+ this.isSendingCommand = true;
40
45
  for (const mainService of this.mainServices) {
41
46
  if (mainService.writeUuid) {
42
47
  await this.sendCommand(mainService);
43
48
  }
44
49
  }
50
+ this.isSendingCommand = false;
51
+ this.retryCount = 0;
45
52
  };
46
53
  connectWithRetries = async () => {
47
54
  const maxRetries = 5;
@@ -124,14 +131,28 @@ export class BTConnectionHandler {
124
131
  if (!mainService.writeUuid) {
125
132
  return;
126
133
  }
127
- try {
128
- const command = hexToBase64(mainService.writeUuid.mainCommandUuid);
129
- await this.device.writeCharacteristicWithoutResponseForService(mainService.uuid, mainService.writeUuid.uuid, command);
130
- } catch (error) {
131
- sentryLogger("error", "DEVICE: Error sending command", {
132
- error,
133
- deviceName: this.device.name
134
- });
134
+ while (this.retryCount < 3) {
135
+ try {
136
+ const isConnected = await this.device.isConnected();
137
+ if (!isConnected) {
138
+ return;
139
+ }
140
+ const command = hexToBase64(mainService.writeUuid.mainCommandUuid);
141
+ await this.device.writeCharacteristicWithResponseForService(mainService.uuid, mainService.writeUuid.uuid, command);
142
+ this.retryCount = 0;
143
+ break;
144
+ } catch (error) {
145
+ this.retryCount++;
146
+ sentryLogger("error", "DEVICE: Error sending command", {
147
+ error,
148
+ deviceName: this.device.name
149
+ });
150
+ if (this.retryCount === 3) {
151
+ slog(error, "BT_CONNECTION_HANDLER: Error sending command", {
152
+ deviceName: this.device.name
153
+ });
154
+ }
155
+ }
135
156
  }
136
157
  };
137
158
  }
@@ -1 +1 @@
1
- {"version":3,"names":["sentryLogger","DeviceStatus","base64ToHex","hexToBase64","BTConnectionHandler","characteristicSubscriptions","constructor","device","mainServices","callbacks","connect","connectWithRetries","onStatusChanged","CONNECTED","discoverAllServicesAndCharacteristics","onDisconnectSubscription","onDisconnected","onDeviceDisconnected","subscribeToAllCharacteristics","error","deviceName","name","onError","DISCONNECTED","destroy","forEach","sub","remove","sendCommandToDevice","isConnected","mainService","writeUuid","sendCommand","maxRetries","retryDelay","maxDelay","connected","retryCount","deviceId","id","Error","message","String","errorCode","willRetry","Promise","resolve","setTimeout","Math","min","pow","monitorUuid","monitorUuids","subscription","monitorCharacteristicForService","uuid","result","value","hexValue","onDataReceived","push","command","mainCommandUuid","writeCharacteristicWithoutResponseForService"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-connection-handler.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["slog","sentryLogger","DeviceStatus","base64ToHex","hexToBase64","BTConnectionHandler","characteristicSubscriptions","isSendingCommand","retryCount","constructor","device","mainServices","callbacks","connect","connectWithRetries","onStatusChanged","CONNECTED","discoverAllServicesAndCharacteristics","onDisconnectSubscription","onDisconnected","onDeviceDisconnected","subscribeToAllCharacteristics","error","deviceName","name","onError","DISCONNECTED","destroy","forEach","sub","remove","sendCommandToDevice","mainService","writeUuid","sendCommand","maxRetries","retryDelay","maxDelay","connected","isConnected","deviceId","id","Error","message","String","errorCode","willRetry","Promise","resolve","setTimeout","Math","min","pow","monitorUuid","monitorUuids","subscription","monitorCharacteristicForService","uuid","result","value","hexValue","onDataReceived","push","command","mainCommandUuid","writeCharacteristicWithResponseForService"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-connection-handler.ts"],"mappings":";;AAEA,SAASA,IAAI,QAAQ,2BAAkB;AACvC,SAASC,YAAY,QAAQ,yCAAsC;AACnE,SAASC,YAAY,QAAQ,8BAA2B;AAGxD,SAASC,WAAW,QAAQ,+BAA4B;AACxD,SAASC,WAAW,QAAQ,+BAA4B;AAQxD,OAAO,MAAMC,mBAAmB,CAAC;EAEvBC,2BAA2B,GAAmB,EAAE;EAChDC,gBAAgB,GAAY,KAAK;EACjCC,UAAU,GAAW,CAAC;EAE9BC,WAAWA,CACQC,MAAc,EACdC,YAA2C,EAC3CC,SAAqC,EACtD;IAAA,KAHiBF,MAAc,GAAdA,MAAc;IAAA,KACdC,YAA2C,GAA3CA,YAA2C;IAAA,KAC3CC,SAAqC,GAArCA,SAAqC;EACrD;EAEIC,OAAO,GAAG,MAAAA,CAAA,KAAY;IAC3B,IAAI;MACF,MAAM,IAAI,CAACC,kBAAkB,CAAC,CAAC;MAE/B,IAAI,CAACF,SAAS,CAACG,eAAe,GAAGb,YAAY,CAACc,SAAS,CAAC;MAExD,MAAM,IAAI,CAACN,MAAM,CAACO,qCAAqC,CAAC,CAAC;MAEzD,IAAI,CAACC,wBAAwB,GAAG,IAAI,CAACR,MAAM,CAACS,cAAc,CACxD,IAAI,CAACC,oBACP,CAAC;MAED,IAAI,CAACC,6BAA6B,CAAC,CAAC;IACtC,CAAC,CAAC,OAAOC,KAAK,EAAE;MACdrB,YAAY,CAAC,OAAO,EAAE,wCAAwC,EAAE;QAC9DqB,KAAK;QACLC,UAAU,EAAE,IAAI,CAACb,MAAM,CAACc;MAC1B,CAAC,CAAC;MACF,IAAI,CAACZ,SAAS,CAACa,OAAO,GAAGH,KAAyB,CAAC;MACnD,IAAI,CAACV,SAAS,CAACG,eAAe,GAAGb,YAAY,CAACwB,YAAY,CAAC;IAC7D;EACF,CAAC;EAEMC,OAAO,GAAGA,CAAA,KAAM;IACrB,IAAI,CAACrB,2BAA2B,CAACsB,OAAO,CAAEC,GAAG,IAAKA,GAAG,EAAEC,MAAM,CAAC,CAAC,CAAC;IAChE,IAAI,CAACxB,2BAA2B,GAAG,EAAE;IACrC,IAAI,CAACC,gBAAgB,GAAG,KAAK;IAC7B,IAAI,CAACC,UAAU,GAAG,CAAC;IAEnB,IAAI,CAACU,wBAAwB,EAAEY,MAAM,CAAC,CAAC;EACzC,CAAC;EAEMC,mBAAmB,GAAG,MAAAA,CAAA,KAA2B;IACtD,IAAI,IAAI,CAACxB,gBAAgB,EAAE;MACzB;IACF;IAEA,IAAI,CAACA,gBAAgB,GAAG,IAAI;IAE5B,KAAK,MAAMyB,WAAW,IAAI,IAAI,CAACrB,YAAY,EAAE;MAC3C,IAAIqB,WAAW,CAACC,SAAS,EAAE;QACzB,MAAM,IAAI,CAACC,WAAW,CAACF,WAAW,CAAC;MACrC;IACF;IAEA,IAAI,CAACzB,gBAAgB,GAAG,KAAK;IAC7B,IAAI,CAACC,UAAU,GAAG,CAAC;EACrB,CAAC;EAEOM,kBAAkB,GAAG,MAAAA,CAAA,KAAY;IACvC,MAAMqB,UAAU,GAAG,CAAC;IACpB,MAAMC,UAAU,GAAG,IAAI;IACvB,MAAMC,QAAQ,GAAG,KAAK;IACtB,IAAIC,SAAS,GAAG,KAAK;IACrB,IAAI9B,UAAU,GAAG,CAAC;IAElB,OAAO,CAAC8B,SAAS,IAAI9B,UAAU,GAAG2B,UAAU,EAAE;MAC5CG,SAAS,GAAG,MAAM,IAAI,CAAC5B,MAAM,CAAC6B,WAAW,CAAC,CAAC;MAC3C,IAAID,SAAS,EAAE;QACb;MACF;MACA,IAAI;QACF,MAAM,IAAI,CAAC5B,MAAM,CAACG,OAAO,CAAC,CAAC;QAC3ByB,SAAS,GAAG,IAAI;MAClB,CAAC,CAAC,OAAOhB,KAAK,EAAE;QACdd,UAAU,EAAE;QACZP,YAAY,CAAC,OAAO,EAAE,2BAA2B,EAAE;UACjDuC,QAAQ,EAAE,IAAI,CAAC9B,MAAM,CAAC+B,EAAE;UACxBlB,UAAU,EAAE,IAAI,CAACb,MAAM,CAACc,IAAI;UAC5BF,KAAK,EAAEA,KAAK,YAAYoB,KAAK,GAAGpB,KAAK,CAACqB,OAAO,GAAGC,MAAM,CAACtB,KAAK,CAAC;UAC7DuB,SAAS,EAAGvB,KAAK,EAAeuB,SAAS;UACzCrC;QACF,CAAC,CAAC;QACF,IAAIA,UAAU,IAAI2B,UAAU,EAAE;UAC5BlC,YAAY,CAAC,OAAO,EAAE,6CAA6C,EAAE;YACnEuC,QAAQ,EAAE,IAAI,CAAC9B,MAAM,CAAC+B,EAAE;YACxBlB,UAAU,EAAE,IAAI,CAACb,MAAM,CAACc,IAAI;YAC5BF,KAAK,EAAEA,KAAK,YAAYoB,KAAK,GAAGpB,KAAK,CAACqB,OAAO,GAAGC,MAAM,CAACtB,KAAK,CAAC;YAC7DuB,SAAS,EAAGvB,KAAK,EAAeuB,SAAS;YACzCC,SAAS,EAAEtC,UAAU,GAAG2B;UAC1B,CAAC,CAAC;UACF,MAAMb,KAAK;QACb;QAEA,MAAM,IAAIyB,OAAO,CAAEC,OAAO,IACxBC,UAAU,CACRD,OAAO,EACPE,IAAI,CAACC,GAAG,CAACf,UAAU,GAAGc,IAAI,CAACE,GAAG,CAAC,CAAC,EAAE5C,UAAU,GAAG,CAAC,CAAC,EAAE6B,QAAQ,CAC7D,CACF,CAAC;MACH;IACF;EACF,CAAC;EAEOjB,oBAAoB,GAAIE,KAAsB,IAAK;IACzDrB,YAAY,CAAC,MAAM,EAAE,oCAAoC,EAAE;MACzDqB,KAAK;MACLC,UAAU,EAAE,IAAI,CAACb,MAAM,CAACc;IAC1B,CAAC,CAAC;IACF,IAAIF,KAAK,EAAE;MACT,IAAI,CAACV,SAAS,CAACa,OAAO,GAAGH,KAAK,CAAC;MAE/B;IACF;IACA,IAAI,CAACV,SAAS,CAACG,eAAe,GAAGb,YAAY,CAACwB,YAAY,CAAC;IAC3D,IAAI,CAACC,OAAO,CAAC,CAAC;EAChB,CAAC;EAEON,6BAA6B,GAAG,MAAAA,CAAA,KAAY;IAClD,IAAI;MACF,KAAK,MAAMW,WAAW,IAAI,IAAI,CAACrB,YAAY,EAAE;QAC3C,KAAK,MAAM0C,WAAW,IAAIrB,WAAW,CAACsB,YAAY,EAAE;UAClD,MAAMC,YAAY,GAAG,IAAI,CAAC7C,MAAM,CAAC8C,+BAA+B,CAC9DxB,WAAW,CAACyB,IAAI,EAChBJ,WAAW,CAACI,IAAI,EAChB,CAACnC,KAAK,EAAEoC,MAAM,KAAK;YACjB,IAAIpC,KAAK,EAAE;cACT,IAAI,CAACV,SAAS,CAACa,OAAO,GAAGH,KAAK,CAAC;cAE/B;YACF;YAEA,IAAI,CAACoC,MAAM,IAAI,CAACA,MAAM,CAACC,KAAK,EAAE;cAC5B,IAAI,CAAC/C,SAAS,CAACa,OAAO,GACpB,IAAIiB,KAAK,CAAC,iCAAiC,CAC7C,CAAC;cAED;YACF;YAEA,MAAMkB,QAAQ,GAAGzD,WAAW,CAACuD,MAAM,CAACC,KAAK,CAAC;YAE1C,IAAI,CAAC/C,SAAS,CAACiD,cAAc,GAAGH,MAAM,CAACD,IAAI,EAAEG,QAAQ,CAAC;UACxD,CACF,CAAC;UAED,IAAI,CAACtD,2BAA2B,CAACwD,IAAI,CAACP,YAAY,CAAC;QACrD;MACF;MAEA,MAAM,IAAI,CAACxB,mBAAmB,CAAC,CAAC;IAClC,CAAC,CAAC,OAAOT,KAAK,EAAE;MACdrB,YAAY,CACV,OAAO,EACP,kDAAkD,EAClD;QACEqB,KAAK;QACLC,UAAU,EAAE,IAAI,CAACb,MAAM,CAACc;MAC1B,CACF,CAAC;MACD,IAAI,CAACZ,SAAS,CAACa,OAAO,GAAGH,KAAyB,CAAC;IACrD;EACF,CAAC;EAEOY,WAAW,GAAG,MAAOF,WAAqB,IAAoB;IACpE,IAAI,CAACA,WAAW,CAACC,SAAS,EAAE;MAC1B;IACF;IACA,OAAO,IAAI,CAACzB,UAAU,GAAG,CAAC,EAAE;MAC1B,IAAI;QACF,MAAM+B,WAAW,GAAG,MAAM,IAAI,CAAC7B,MAAM,CAAC6B,WAAW,CAAC,CAAC;QAEnD,IAAI,CAACA,WAAW,EAAE;UAChB;QACF;QAEA,MAAMwB,OAAO,GAAG3D,WAAW,CAAC4B,WAAW,CAACC,SAAS,CAAC+B,eAAe,CAAC;QAElE,MAAM,IAAI,CAACtD,MAAM,CAACuD,yCAAyC,CACzDjC,WAAW,CAACyB,IAAI,EAChBzB,WAAW,CAACC,SAAS,CAACwB,IAAI,EAC1BM,OACF,CAAC;QACD,IAAI,CAACvD,UAAU,GAAG,CAAC;QACnB;MACF,CAAC,CAAC,OAAOc,KAAK,EAAE;QACd,IAAI,CAACd,UAAU,EAAE;QACjBP,YAAY,CAAC,OAAO,EAAE,+BAA+B,EAAE;UACrDqB,KAAK;UACLC,UAAU,EAAE,IAAI,CAACb,MAAM,CAACc;QAC1B,CAAC,CAAC;QACF,IAAI,IAAI,CAAChB,UAAU,KAAK,CAAC,EAAE;UACzBR,IAAI,CAACsB,KAAK,EAAE,8CAA8C,EAAE;YAC1DC,UAAU,EAAE,IAAI,CAACb,MAAM,CAACc;UAC1B,CAAC,CAAC;QACJ;MACF;IACF;EACF,CAAC;AACH","ignoreList":[]}
@@ -6,16 +6,21 @@ import { parseMeasurement } from "../../utils/parse-measurement.js";
6
6
  export class BTDataProcessor {
7
7
  collectedValues = [];
8
8
  isMeasuring = false;
9
- constructor(mainServices, callbacks) {
9
+ constructor(device, mainServices, stuckDataTimeoutDuration, callbacks) {
10
+ this.device = device;
10
11
  this.mainServices = mainServices;
12
+ this.stuckDataTimeoutDuration = stuckDataTimeoutDuration;
11
13
  this.callbacks = callbacks;
12
14
  }
13
15
  destroy = () => {
14
16
  this.collectedValues = [];
15
17
  this.isMeasuring = false;
18
+ clearTimeout(this.stuckDataTimeout);
19
+ this.stuckDataTimeout = undefined;
16
20
  };
17
21
  processData = (uuid, hexValue) => {
18
22
  this.collectedValues.push(...hexValue);
23
+ this.startStuckTimeout();
19
24
  const isValid = this.callbacks.validatePackage(this.collectedValues, uuid);
20
25
  if (!isValid) {
21
26
  return;
@@ -103,5 +108,18 @@ export class BTDataProcessor {
103
108
  this.collectedValues = [];
104
109
  this.callbacks.onSendCommandToDevice?.();
105
110
  };
111
+ startStuckTimeout = () => {
112
+ if (this.stuckDataTimeout) {
113
+ clearTimeout(this.stuckDataTimeout);
114
+ }
115
+ this.stuckDataTimeout = setTimeout(() => {
116
+ this.callbacks.onError?.(new Error("feedback-messages.measurement.stuck-error", {
117
+ cause: {
118
+ message: "Device is stuck"
119
+ }
120
+ }));
121
+ this.device.cancelConnection?.();
122
+ }, this.stuckDataTimeoutDuration);
123
+ };
106
124
  }
107
125
  //# sourceMappingURL=bt-data-processor.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CaseType","DeviceStatus","parseMeasurement","BTDataProcessor","collectedValues","isMeasuring","constructor","mainServices","callbacks","destroy","processData","uuid","hexValue","push","isValid","validatePackage","data","extractData","resetDataAndSendCommandToDevice","handleStatusChanges","parsingModel","findParsingModel","value","caseValuePosition","map","index","join","parsingCase","findParsingCase","parsedData","parseData","measurementTypeKey","mainService","characteristic","monitorUuids","find","e","toLowerCase","caseValue","cases","successResult","caseType","STREAM","onStreamStart","onStatusChanged","MEASURING","OTHER","CONNECTED","skipConnectedChange","onResult","RESULT","onSendCommandToDevice"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-data-processor.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CaseType","DeviceStatus","parseMeasurement","BTDataProcessor","collectedValues","isMeasuring","constructor","device","mainServices","stuckDataTimeoutDuration","callbacks","destroy","clearTimeout","stuckDataTimeout","undefined","processData","uuid","hexValue","push","startStuckTimeout","isValid","validatePackage","data","extractData","resetDataAndSendCommandToDevice","handleStatusChanges","parsingModel","findParsingModel","value","caseValuePosition","map","index","join","parsingCase","findParsingCase","parsedData","parseData","measurementTypeKey","mainService","characteristic","monitorUuids","find","e","toLowerCase","caseValue","cases","successResult","caseType","STREAM","onStreamStart","onStatusChanged","MEASURING","OTHER","CONNECTED","skipConnectedChange","onResult","RESULT","onSendCommandToDevice","setTimeout","onError","Error","cause","message","cancelConnection"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-data-processor.ts"],"mappings":"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","ignoreList":[]}
@@ -5,6 +5,10 @@ import { DeviceStatus } from "../../types/device-status.js";
5
5
  import { BTConnectionHandler } from "./bt-connection-handler.js";
6
6
  import { BTDataProcessor } from "./bt-data-processor.js";
7
7
  export class BTManagedDevice {
8
+ /**
9
+ * The timeout in milliseconds for the stuck data.
10
+ */
11
+
8
12
  constructor(device, {
9
13
  deviceName,
10
14
  onError: onErrorCallback,
@@ -97,13 +101,13 @@ export class BTManagedDevice {
97
101
  this.dataProcessor?.processData(uuid, hexValue);
98
102
  }
99
103
  });
100
- this.dataProcessor = new BTDataProcessor(this.mainServices, {
104
+ this.dataProcessor = new BTDataProcessor(this.device, this.mainServices, this.stuckDataTimeout, {
101
105
  onStatusChanged: this.onDeviceStatusChanged?.bind(this),
102
106
  onStreamStart: this.onStreamStart?.bind(this),
103
107
  validatePackage: this.validatePackage.bind(this),
104
108
  onResult: (parsedData, collectedValues) => {
105
109
  try {
106
- return this.handleSuccessResult(parsedData, collectedValues);
110
+ return this.handleSuccessResult.bind(this)(parsedData, collectedValues);
107
111
  } catch (error) {
108
112
  this.onError?.bind(this)(error);
109
113
  }