@ovok/native 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/lib/commonjs/modules/bt-device/constants/device-instruction-pdfs.js +2 -1
  2. package/lib/commonjs/modules/bt-device/constants/device-instruction-pdfs.js.map +1 -1
  3. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-assets.js +3 -1
  4. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-assets.js.map +1 -1
  5. package/lib/commonjs/modules/bt-device/constants/supported-devices.js +15 -1
  6. package/lib/commonjs/modules/bt-device/constants/supported-devices.js.map +1 -1
  7. package/lib/commonjs/modules/bt-management/constants/integrated-devices-map.js +1 -1
  8. package/lib/commonjs/modules/bt-management/constants/integrated-devices-map.js.map +1 -1
  9. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-case.js +2 -0
  10. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-case.js.map +1 -1
  11. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-field.js +2 -1
  12. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-field.js.map +1 -1
  13. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-lepu.js +24 -0
  14. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-lepu.js.map +1 -1
  15. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-monitor.js +8 -1
  16. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-monitor.js.map +1 -1
  17. package/lib/commonjs/modules/bt-management/services/device-creator.js +4 -0
  18. package/lib/commonjs/modules/bt-management/services/device-creator.js.map +1 -1
  19. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js +6 -2
  20. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  21. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js +5 -0
  22. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  23. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +3 -1
  24. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  25. package/lib/commonjs/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js +6 -1
  26. package/lib/commonjs/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js.map +1 -1
  27. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +6 -1
  28. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  29. package/lib/commonjs/modules/bt-management/services/devices/frame-parser.js +13 -1
  30. package/lib/commonjs/modules/bt-management/services/devices/frame-parser.js.map +1 -1
  31. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.command-builder.js +6 -3
  32. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.command-builder.js.map +1 -1
  33. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.identity-gate.js +84 -38
  34. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.identity-gate.js.map +1 -1
  35. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js +10 -1
  36. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -1
  37. package/lib/commonjs/modules/bt-management/services/devices/spo/oxyfit.device.js +18 -0
  38. package/lib/commonjs/modules/bt-management/services/devices/spo/oxyfit.device.js.map +1 -0
  39. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.device.js +78 -0
  40. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.device.js.map +1 -0
  41. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.frame-reader.js +83 -0
  42. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.frame-reader.js.map +1 -0
  43. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.sequencer.js +60 -0
  44. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.sequencer.js.map +1 -0
  45. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.oximeters.js +54 -39
  46. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.oximeters.js.map +1 -1
  47. package/lib/commonjs/modules/bt-management/types/integrated-devices.js +1 -0
  48. package/lib/commonjs/modules/bt-management/types/integrated-devices.js.map +1 -1
  49. package/lib/commonjs/modules/bt-management/utils/create-custom-field-parser.js +3 -0
  50. package/lib/commonjs/modules/bt-management/utils/create-custom-field-parser.js.map +1 -1
  51. package/lib/module/modules/bt-device/constants/device-instruction-pdfs.js +2 -1
  52. package/lib/module/modules/bt-device/constants/device-instruction-pdfs.js.map +1 -1
  53. package/lib/module/modules/bt-device/constants/supported-device-catalog-assets.js +3 -1
  54. package/lib/module/modules/bt-device/constants/supported-device-catalog-assets.js.map +1 -1
  55. package/lib/module/modules/bt-device/constants/supported-devices.js +16 -2
  56. package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
  57. package/lib/module/modules/bt-management/constants/integrated-devices-map.js +1 -1
  58. package/lib/module/modules/bt-management/constants/integrated-devices-map.js.map +1 -1
  59. package/lib/module/modules/bt-management/services/custom/compile-custom-case.js +2 -0
  60. package/lib/module/modules/bt-management/services/custom/compile-custom-case.js.map +1 -1
  61. package/lib/module/modules/bt-management/services/custom/compile-custom-field.js +2 -1
  62. package/lib/module/modules/bt-management/services/custom/compile-custom-field.js.map +1 -1
  63. package/lib/module/modules/bt-management/services/custom/compile-custom-lepu.js +24 -0
  64. package/lib/module/modules/bt-management/services/custom/compile-custom-lepu.js.map +1 -1
  65. package/lib/module/modules/bt-management/services/custom/compile-custom-monitor.js +8 -1
  66. package/lib/module/modules/bt-management/services/custom/compile-custom-monitor.js.map +1 -1
  67. package/lib/module/modules/bt-management/services/device-creator.js +4 -0
  68. package/lib/module/modules/bt-management/services/device-creator.js.map +1 -1
  69. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js +6 -2
  70. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  71. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js +5 -0
  72. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  73. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +3 -1
  74. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  75. package/lib/module/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js +6 -1
  76. package/lib/module/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js.map +1 -1
  77. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +6 -1
  78. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  79. package/lib/module/modules/bt-management/services/devices/frame-parser.js +13 -1
  80. package/lib/module/modules/bt-management/services/devices/frame-parser.js.map +1 -1
  81. package/lib/module/modules/bt-management/services/devices/lepu/lepu.command-builder.js +6 -3
  82. package/lib/module/modules/bt-management/services/devices/lepu/lepu.command-builder.js.map +1 -1
  83. package/lib/module/modules/bt-management/services/devices/lepu/lepu.identity-gate.js +84 -38
  84. package/lib/module/modules/bt-management/services/devices/lepu/lepu.identity-gate.js.map +1 -1
  85. package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js +10 -1
  86. package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -1
  87. package/lib/module/modules/bt-management/services/devices/spo/oxyfit.device.js +14 -0
  88. package/lib/module/modules/bt-management/services/devices/spo/oxyfit.device.js.map +1 -0
  89. package/lib/module/modules/bt-management/services/devices/uebe/mysense.device.js +73 -0
  90. package/lib/module/modules/bt-management/services/devices/uebe/mysense.device.js.map +1 -0
  91. package/lib/module/modules/bt-management/services/devices/uebe/mysense.frame-reader.js +78 -0
  92. package/lib/module/modules/bt-management/services/devices/uebe/mysense.frame-reader.js.map +1 -0
  93. package/lib/module/modules/bt-management/services/devices/uebe/mysense.sequencer.js +55 -0
  94. package/lib/module/modules/bt-management/services/devices/uebe/mysense.sequencer.js.map +1 -0
  95. package/lib/module/modules/bt-management/services/devices/viatom/viatom.oximeters.js +54 -39
  96. package/lib/module/modules/bt-management/services/devices/viatom/viatom.oximeters.js.map +1 -1
  97. package/lib/module/modules/bt-management/types/device-measurement-map.js.map +1 -1
  98. package/lib/module/modules/bt-management/types/integrated-devices.js +1 -0
  99. package/lib/module/modules/bt-management/types/integrated-devices.js.map +1 -1
  100. package/lib/module/modules/bt-management/utils/create-custom-field-parser.js +3 -0
  101. package/lib/module/modules/bt-management/utils/create-custom-field-parser.js.map +1 -1
  102. package/lib/typescript/commonjs/src/modules/bt-device/constants/device-instruction-pdfs.d.ts.map +1 -1
  103. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts +3 -1
  104. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts.map +1 -1
  105. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts +7 -0
  106. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  107. package/lib/typescript/commonjs/src/modules/bt-management/constants/integrated-devices-map.d.ts.map +1 -1
  108. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-case.d.ts.map +1 -1
  109. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-field.d.ts.map +1 -1
  110. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts.map +1 -1
  111. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-monitor.d.ts.map +1 -1
  112. package/lib/typescript/commonjs/src/modules/bt-management/services/device-creator.d.ts.map +1 -1
  113. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +4 -0
  114. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  115. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts +2 -0
  116. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  117. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  118. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom-lepu-sequencer.d.ts.map +1 -1
  119. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts +2 -0
  120. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  121. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/frame-parser.d.ts +1 -0
  122. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/frame-parser.d.ts.map +1 -1
  123. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.command-builder.d.ts +6 -1
  124. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.command-builder.d.ts.map +1 -1
  125. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts +10 -51
  126. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +6 -0
  128. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
  129. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/oxyfit.device.d.ts +9 -0
  130. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/oxyfit.device.d.ts.map +1 -0
  131. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts +15 -0
  132. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts.map +1 -0
  133. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.frame-reader.d.ts +8 -0
  134. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.frame-reader.d.ts.map +1 -0
  135. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.sequencer.d.ts +17 -0
  136. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.sequencer.d.ts.map +1 -0
  137. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts +4 -7
  138. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts.map +1 -1
  139. package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts +2 -0
  140. package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
  141. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-field-encoding.d.ts +2 -1
  142. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-field-encoding.d.ts.map +1 -1
  143. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-lepu-spec.d.ts +8 -0
  144. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -1
  145. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts +1 -0
  146. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  147. package/lib/typescript/commonjs/src/modules/bt-management/types/integrated-devices.d.ts +1 -0
  148. package/lib/typescript/commonjs/src/modules/bt-management/types/integrated-devices.d.ts.map +1 -1
  149. package/lib/typescript/commonjs/src/modules/bt-management/types/parsing-case.d.ts +1 -0
  150. package/lib/typescript/commonjs/src/modules/bt-management/types/parsing-case.d.ts.map +1 -1
  151. package/lib/typescript/commonjs/src/modules/bt-management/utils/create-custom-field-parser.d.ts.map +1 -1
  152. package/lib/typescript/module/src/modules/bt-device/constants/device-instruction-pdfs.d.ts.map +1 -1
  153. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts +3 -1
  154. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts.map +1 -1
  155. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts +7 -0
  156. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  157. package/lib/typescript/module/src/modules/bt-management/constants/integrated-devices-map.d.ts.map +1 -1
  158. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-case.d.ts.map +1 -1
  159. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-field.d.ts.map +1 -1
  160. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts.map +1 -1
  161. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-monitor.d.ts.map +1 -1
  162. package/lib/typescript/module/src/modules/bt-management/services/device-creator.d.ts.map +1 -1
  163. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +4 -0
  164. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  165. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts +2 -0
  166. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  167. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  168. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom-lepu-sequencer.d.ts.map +1 -1
  169. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts +2 -0
  170. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  171. package/lib/typescript/module/src/modules/bt-management/services/devices/frame-parser.d.ts +1 -0
  172. package/lib/typescript/module/src/modules/bt-management/services/devices/frame-parser.d.ts.map +1 -1
  173. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.command-builder.d.ts +6 -1
  174. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.command-builder.d.ts.map +1 -1
  175. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts +10 -51
  176. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts.map +1 -1
  177. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +6 -0
  178. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
  179. package/lib/typescript/module/src/modules/bt-management/services/devices/spo/oxyfit.device.d.ts +9 -0
  180. package/lib/typescript/module/src/modules/bt-management/services/devices/spo/oxyfit.device.d.ts.map +1 -0
  181. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts +15 -0
  182. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts.map +1 -0
  183. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.frame-reader.d.ts +8 -0
  184. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.frame-reader.d.ts.map +1 -0
  185. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.sequencer.d.ts +17 -0
  186. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.sequencer.d.ts.map +1 -0
  187. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts +4 -7
  188. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts.map +1 -1
  189. package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts +2 -0
  190. package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
  191. package/lib/typescript/module/src/modules/bt-management/types/custom-field-encoding.d.ts +2 -1
  192. package/lib/typescript/module/src/modules/bt-management/types/custom-field-encoding.d.ts.map +1 -1
  193. package/lib/typescript/module/src/modules/bt-management/types/custom-lepu-spec.d.ts +8 -0
  194. package/lib/typescript/module/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -1
  195. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts +1 -0
  196. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  197. package/lib/typescript/module/src/modules/bt-management/types/integrated-devices.d.ts +1 -0
  198. package/lib/typescript/module/src/modules/bt-management/types/integrated-devices.d.ts.map +1 -1
  199. package/lib/typescript/module/src/modules/bt-management/types/parsing-case.d.ts +1 -0
  200. package/lib/typescript/module/src/modules/bt-management/types/parsing-case.d.ts.map +1 -1
  201. package/lib/typescript/module/src/modules/bt-management/utils/create-custom-field-parser.d.ts.map +1 -1
  202. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_sentryLogger","require","_deviceStatus","_summariseMeasurementForLog","_supportedMeasurementTypeKeys","_btConnectionHandler","_btDataProcessor","_pollingCommandSequencer","BTManagedDevice","constructor","device","deviceName","onError","onErrorCallback","onDeviceStatusChanged","onDeviceStatusChangedCallback","onResult","onResultCallback","onDeviceDisconnected","onDeviceDisconnectedCallback","sentryLogger","deviceId","id","deviceData","name","localName","manufacturerData","sn","measurementTypes","status","measurementTypeKey","error","Error","message","caseType","_","data","summariseMeasurementForLog","destroy","connectionHandler","dataProcessor","undefined","connect","supportedMeasurementTypeKeys","mainServices","sequencer","createCommandSequencer","pollingSequencerFor","BTConnectionHandler","onStatusChanged","bind","DeviceStatus","DISCONNECTED","onDataReceived","uuid","hexValue","processData","initialCommands","preferredMtu","BTDataProcessor","stuckDataTimeout","onStreamStart","validatePackage","parsedData","collectedValues","handleSuccessResult","nextCommand","frame","sendCommands","commands","handleDependentResult","frameReader","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-managed-device.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_sentryLogger","require","_deviceStatus","_summariseMeasurementForLog","_supportedMeasurementTypeKeys","_btConnectionHandler","_btDataProcessor","_pollingCommandSequencer","BTManagedDevice","constructor","device","deviceName","onError","onErrorCallback","onDeviceStatusChanged","onDeviceStatusChangedCallback","onResult","onResultCallback","onDeviceDisconnected","onDeviceDisconnectedCallback","sentryLogger","deviceId","id","deviceData","name","localName","manufacturerData","sn","measurementTypes","status","measurementTypeKey","error","Error","message","caseType","_","data","summariseMeasurementForLog","destroy","connectionHandler","dataProcessor","undefined","connect","supportedMeasurementTypeKeys","mainServices","sequencer","createCommandSequencer","pollingSequencerFor","BTConnectionHandler","onStatusChanged","bind","DeviceStatus","DISCONNECTED","onDataReceived","uuid","hexValue","processData","initialCommands","onCommandSent","armStuckTimeout","isNormalDisconnect","preferredMtu","BTDataProcessor","stuckDataTimeout","onStreamStart","validatePackage","parsedData","collectedValues","handleSuccessResult","nextCommand","frame","sendCommands","commands","handleDependentResult","frameReader","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-managed-device.ts"],"mappings":"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","ignoreList":[]}
@@ -43,7 +43,12 @@ const createLepuSequencer = (lepu, report) => new _lepuIdentityGate.LepuIdentity
43
43
  serviceUuid: lepu.write.serviceUuid,
44
44
  characteristicUuid: lepu.write.characteristicUuid
45
45
  },
46
- builder: new _lepuCommandBuilder.LepuCommandBuilder(lepu.startBytes[0] ?? DEFAULT_START_BYTE),
46
+ builder: new _lepuCommandBuilder.LepuCommandBuilder(lepu.requestStartByte ?? lepu.startBytes[0] ?? DEFAULT_START_BYTE, {
47
+ fixedSequence: lepu.protocol === "viatom-oxygen"
48
+ }),
49
+ protocol: lepu.protocol,
50
+ writeWithoutResponse: lepu.writeWithoutResponse,
51
+ setClockBeforeInfo: lepu.setClockBeforeInfo,
47
52
  expectedDeviceTypes: lepu.expectedDeviceTypes,
48
53
  ...(lepu.pollCommand === undefined ? {} : {
49
54
  pollCommand: lepu.pollCommand
@@ -1 +1 @@
1
- {"version":3,"names":["_sentryLogger","require","_lepuCommandBuilder","_lepuIdentityGate","DEFAULT_START_BYTE","recordLepuIdentity","deviceData","info","sn","serialNumber","sentryLogger","deviceId","id","deviceName","name","deviceType","branchCode","protocolMaxLength","exports","createLepuSequencer","lepu","report","LepuIdentityGate","write","serviceUuid","characteristicUuid","builder","LepuCommandBuilder","startBytes","expectedDeviceTypes","pollCommand","undefined","onIdentified","onRefused"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/custom/custom-lepu-sequencer.ts"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAIA,IAAAC,mBAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AAEA;AACA,MAAMG,kBAAkB,GAAG,IAAI;AAO/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAGA,CACzBC,UAAsB,EACtBC,IAAoB,KACX;EACTD,UAAU,CAACE,EAAE,GAAGD,IAAI,CAACE,YAAY;EAEjC,IAAAC,0BAAY,EAAC,MAAM,EAAE,sCAAsC,EAAE;IAC3DC,QAAQ,EAAEL,UAAU,CAACM,EAAE;IACvBC,UAAU,EAAEP,UAAU,CAACQ,IAAI;IAC3BC,UAAU,EAAER,IAAI,CAACQ,UAAU;IAC3BC,UAAU,EAAET,IAAI,CAACS,UAAU;IAC3BC,iBAAiB,EAAEV,IAAI,CAACU;EAC1B,CAAC,CAAC;AACJ,CAAC;AAACC,OAAA,CAAAb,kBAAA,GAAAA,kBAAA;AAEF,MAAMc,mBAAmB,GAAGA,CAC1BC,IAAoB,EACpBC,MAAsB,KAEtB,IAAIC,kCAAgB,CAAC;EACnBC,KAAK,EAAE;IACLC,WAAW,EAAEJ,IAAI,CAACG,KAAK,CAACC,WAAW;IACnCC,kBAAkB,EAAEL,IAAI,CAACG,KAAK,CAACE;EACjC,CAAC;EACDC,OAAO,EAAE,IAAIC,sCAAkB,CAACP,IAAI,CAACQ,UAAU,CAAC,CAAC,CAAC,IAAIxB,kBAAkB,CAAC;EACzEyB,mBAAmB,EAAET,IAAI,CAACS,mBAAmB;EAC7C,IAAIT,IAAI,CAACU,WAAW,KAAKC,SAAS,GAAG,CAAC,CAAC,GAAG;IAAED,WAAW,EAAEV,IAAI,CAACU;EAAY,CAAC,CAAC;EAC5EE,YAAY,EAAEX,MAAM,CAACW,YAAY;EACjCC,SAAS,EAAEZ,MAAM,CAACY;AACpB,CAAC,CAAC;AAACf,OAAA,CAAAC,mBAAA,GAAAA,mBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_sentryLogger","require","_lepuCommandBuilder","_lepuIdentityGate","DEFAULT_START_BYTE","recordLepuIdentity","deviceData","info","sn","serialNumber","sentryLogger","deviceId","id","deviceName","name","deviceType","branchCode","protocolMaxLength","exports","createLepuSequencer","lepu","report","LepuIdentityGate","write","serviceUuid","characteristicUuid","builder","LepuCommandBuilder","requestStartByte","startBytes","fixedSequence","protocol","writeWithoutResponse","setClockBeforeInfo","expectedDeviceTypes","pollCommand","undefined","onIdentified","onRefused"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/custom/custom-lepu-sequencer.ts"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAIA,IAAAC,mBAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AAEA;AACA,MAAMG,kBAAkB,GAAG,IAAI;AAO/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAGA,CACzBC,UAAsB,EACtBC,IAAoB,KACX;EACTD,UAAU,CAACE,EAAE,GAAGD,IAAI,CAACE,YAAY;EAEjC,IAAAC,0BAAY,EAAC,MAAM,EAAE,sCAAsC,EAAE;IAC3DC,QAAQ,EAAEL,UAAU,CAACM,EAAE;IACvBC,UAAU,EAAEP,UAAU,CAACQ,IAAI;IAC3BC,UAAU,EAAER,IAAI,CAACQ,UAAU;IAC3BC,UAAU,EAAET,IAAI,CAACS,UAAU;IAC3BC,iBAAiB,EAAEV,IAAI,CAACU;EAC1B,CAAC,CAAC;AACJ,CAAC;AAACC,OAAA,CAAAb,kBAAA,GAAAA,kBAAA;AAEF,MAAMc,mBAAmB,GAAGA,CAC1BC,IAAoB,EACpBC,MAAsB,KAEtB,IAAIC,kCAAgB,CAAC;EACnBC,KAAK,EAAE;IACLC,WAAW,EAAEJ,IAAI,CAACG,KAAK,CAACC,WAAW;IACnCC,kBAAkB,EAAEL,IAAI,CAACG,KAAK,CAACE;EACjC,CAAC;EACDC,OAAO,EAAE,IAAIC,sCAAkB,CAACP,IAAI,CAACQ,gBAAgB,IAAIR,IAAI,CAACS,UAAU,CAAC,CAAC,CAAC,IAAIzB,kBAAkB,EAAE;IACjG0B,aAAa,EAAEV,IAAI,CAACW,QAAQ,KAAK;EACnC,CAAC,CAAC;EACFA,QAAQ,EAAEX,IAAI,CAACW,QAAQ;EACvBC,oBAAoB,EAAEZ,IAAI,CAACY,oBAAoB;EAC/CC,kBAAkB,EAAEb,IAAI,CAACa,kBAAkB;EAC3CC,mBAAmB,EAAEd,IAAI,CAACc,mBAAmB;EAC7C,IAAId,IAAI,CAACe,WAAW,KAAKC,SAAS,GAAG,CAAC,CAAC,GAAG;IAAED,WAAW,EAAEf,IAAI,CAACe;EAAY,CAAC,CAAC;EAC5EE,YAAY,EAAEhB,MAAM,CAACgB,YAAY;EACjCC,SAAS,EAAEjB,MAAM,CAACiB;AACpB,CAAC,CAAC;AAACpB,OAAA,CAAAC,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -106,7 +106,9 @@ class CustomDevice extends _btManagedDevice.BTManagedDevice {
106
106
  */
107
107
  handleDependentResult = data => {
108
108
  try {
109
- this.reportFrame(data);
109
+ if (this.shouldReportDependentResult(data)) {
110
+ this.reportFrame(data);
111
+ }
110
112
  } catch (error) {
111
113
  this.onError?.(error);
112
114
  }
@@ -119,6 +121,9 @@ class CustomDevice extends _btManagedDevice.BTManagedDevice {
119
121
  };
120
122
  };
121
123
 
124
+ /** Lets a stateful protocol suppress a duplicate result while still answering its frame. */
125
+ shouldReportDependentResult = _data => true;
126
+
122
127
  /**
123
128
  * Stream frames reach this while the device is measuring. They carry no fields, and the
124
129
  * readings themselves are reported from handleDependentResult, so there is nothing to do.
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","_caseType","_createFrameValidator","_parseMeasurement","_rejectCustomReading","_btManagedDevice","_lepuCommandBuilder","_lepuFileTransfer","_lepuFrameReader","_viatomEcgFiles","_customLepuSequencer","CustomDevice","BTManagedDevice","validators","Map","constructor","device","params","definition","mainServices","stuckDataTimeout","preferredMtu","undefined","declareLepuProtocol","frames","forEach","frame","uuid","set","createFrameValidator","lepu","frameReader","LepuFrameReader","startBytes","createCommandSequencer","fileTransfer","LepuFileTransfer","write","serviceUuid","characteristicUuid","builder","LepuCommandBuilder","onFile","reportViatomEcgFile","onError","reason","Error","createLepuSequencer","onIdentified","onRefused","onIdentityRefused","file","decoded","decodeViatomEcgRecording","content","samples","length","name","onResult","measurementTypeKey","MeasurementTypeKey","ecg","caseType","CaseType","RESULT","diagnosticResult","EcgDiagnosticFlag","REGULAR","diagramPoints","duration","info","recordLepuIdentity","deviceData","id","validatePackage","pkg","validate","get","String","toLowerCase","handleDependentResult","data","reportFrame","error","parsingCase","OTHER","handleSuccessResult","repeated","repeatedRecords","report","parsedData","records","Math","floor","from","recordBytes","record","parseMeasurement","measurements","discard","measurement","reportMeasurement","discardedReadingError","reading","fieldNames","rejection","map","rejectCustomReading","fields","find","message","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/custom/custom.device.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","_caseType","_createFrameValidator","_parseMeasurement","_rejectCustomReading","_btManagedDevice","_lepuCommandBuilder","_lepuFileTransfer","_lepuFrameReader","_viatomEcgFiles","_customLepuSequencer","CustomDevice","BTManagedDevice","validators","Map","constructor","device","params","definition","mainServices","stuckDataTimeout","preferredMtu","undefined","declareLepuProtocol","frames","forEach","frame","uuid","set","createFrameValidator","lepu","frameReader","LepuFrameReader","startBytes","createCommandSequencer","fileTransfer","LepuFileTransfer","write","serviceUuid","characteristicUuid","builder","LepuCommandBuilder","onFile","reportViatomEcgFile","onError","reason","Error","createLepuSequencer","onIdentified","onRefused","onIdentityRefused","file","decoded","decodeViatomEcgRecording","content","samples","length","name","onResult","measurementTypeKey","MeasurementTypeKey","ecg","caseType","CaseType","RESULT","diagnosticResult","EcgDiagnosticFlag","REGULAR","diagramPoints","duration","info","recordLepuIdentity","deviceData","id","validatePackage","pkg","validate","get","String","toLowerCase","handleDependentResult","data","shouldReportDependentResult","reportFrame","error","parsingCase","OTHER","_data","handleSuccessResult","repeated","repeatedRecords","report","parsedData","records","Math","floor","from","recordBytes","record","parseMeasurement","measurements","discard","measurement","reportMeasurement","discardedReadingError","reading","fieldNames","rejection","map","rejectCustomReading","fields","find","message","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/custom/custom.device.ts"],"mappings":"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","ignoreList":[]}
@@ -23,7 +23,7 @@ class FrameParser {
23
23
  return;
24
24
  }
25
25
  const caseValue = this.readCaseValue(parsingModel, frame);
26
- const parsingCase = parsingModel.cases?.find(declared => declared.caseValue === caseValue);
26
+ const parsingCase = parsingModel.cases?.find(declared => frame.length >= (declared.minLengthBytes ?? 0) && (declared.caseValue === "*" || this.matchesSelector(declared.caseValue, caseValue)));
27
27
  if (!parsingCase) {
28
28
  return;
29
29
  }
@@ -47,6 +47,18 @@ class FrameParser {
47
47
  }
48
48
  return undefined;
49
49
  }
50
+ matchesSelector(pattern, value) {
51
+ if (pattern.length !== value.length) {
52
+ return false;
53
+ }
54
+ for (let index = 0; index < pattern.length; index++) {
55
+ const expected = pattern[index];
56
+ if (expected !== "?" && expected !== value[index]) {
57
+ return false;
58
+ }
59
+ }
60
+ return true;
61
+ }
50
62
  readCaseValue(parsingModel, frame) {
51
63
  return parsingModel.caseValuePosition?.map(index => frame[index]).join("") || "";
52
64
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_parseMeasurement","require","FrameParser","constructor","mainServices","parse","uuid","frame","parsingModel","findParsingModel","caseValue","readCaseValue","parsingCase","cases","find","declared","parsedData","parseMeasurement","measurementTypeKey","mainService","characteristic","monitorUuids","monitored","toLowerCase","undefined","caseValuePosition","map","index","join","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/frame-parser.ts"],"mappings":";;;;;;AAMA,IAAAA,iBAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,WAAW,CAAwB;EAC9CC,WAAWA,CAAkBC,YAA2C,EAAE;IAAA,KAA7CA,YAA2C,GAA3CA,YAA2C;EAAG;EAEpEC,KAAKA,CACVC,IAAY,EACZC,KAAe,EAC8B;IAC7C,MAAMC,YAAY,GAAG,IAAI,CAACC,gBAAgB,CAACH,IAAI,CAAC;IAEhD,IAAI,CAACE,YAAY,EAAE;MACjB;IACF;IAEA,MAAME,SAAS,GAAG,IAAI,CAACC,aAAa,CAACH,YAAY,EAAED,KAAK,CAAC;IAEzD,MAAMK,WAAW,GAAGJ,YAAY,CAACK,KAAK,EAAEC,IAAI,CACzCC,QAAQ,IAAKA,QAAQ,CAACL,SAAS,KAAKA,SACvC,CAAC;IAED,IAAI,CAACE,WAAW,EAAE;MAChB;IACF;IAEA,MAAMI,UAAU,GAAG,IAAAC,kCAAgB,EAACV,KAAK,EAAEK,WAAW,CAAC;IAEvD,IAAI,CAACI,UAAU,EAAE;MACf;IACF;IAEA,OAAO;MACLJ,WAAW;MACXM,kBAAkB,EAAEN,WAAW,CAACM,kBAAkB;MAClDF,UAAU,EAAEA,UAAwC;MACpDT;IACF,CAAC;EACH;EAEQE,gBAAgBA,CAACH,IAAY,EAA4B;IAC/D,KAAK,MAAMa,WAAW,IAAI,IAAI,CAACf,YAAY,EAAE;MAC3C,MAAMgB,cAAc,GAAGD,WAAW,CAACE,YAAY,CAACP,IAAI,CACjDQ,SAAS,IAAKA,SAAS,CAAChB,IAAI,CAACiB,WAAW,CAAC,CAAC,KAAKjB,IAAI,CAACiB,WAAW,CAAC,CACnE,CAAC;MAED,IAAIH,cAAc,EAAE;QAClB,OAAOA,cAAc,CAACZ,YAAY;MACpC;IACF;IAEA,OAAOgB,SAAS;EAClB;EAEQb,aAAaA,CAACH,YAA0B,EAAED,KAAe,EAAU;IACzE,OACEC,YAAY,CAACiB,iBAAiB,EAAEC,GAAG,CAAEC,KAAK,IAAKpB,KAAK,CAACoB,KAAK,CAAC,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC,IACrE,EAAE;EAEN;AACF;AAACC,OAAA,CAAA3B,WAAA,GAAAA,WAAA","ignoreList":[]}
1
+ {"version":3,"names":["_parseMeasurement","require","FrameParser","constructor","mainServices","parse","uuid","frame","parsingModel","findParsingModel","caseValue","readCaseValue","parsingCase","cases","find","declared","length","minLengthBytes","matchesSelector","parsedData","parseMeasurement","measurementTypeKey","mainService","characteristic","monitorUuids","monitored","toLowerCase","undefined","pattern","value","index","expected","caseValuePosition","map","join","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/frame-parser.ts"],"mappings":";;;;;;AAMA,IAAAA,iBAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,WAAW,CAAwB;EAC9CC,WAAWA,CAAkBC,YAA2C,EAAE;IAAA,KAA7CA,YAA2C,GAA3CA,YAA2C;EAAG;EAEpEC,KAAKA,CACVC,IAAY,EACZC,KAAe,EAC8B;IAC7C,MAAMC,YAAY,GAAG,IAAI,CAACC,gBAAgB,CAACH,IAAI,CAAC;IAEhD,IAAI,CAACE,YAAY,EAAE;MACjB;IACF;IAEA,MAAME,SAAS,GAAG,IAAI,CAACC,aAAa,CAACH,YAAY,EAAED,KAAK,CAAC;IAEzD,MAAMK,WAAW,GAAGJ,YAAY,CAACK,KAAK,EAAEC,IAAI,CACzCC,QAAQ,IACPR,KAAK,CAACS,MAAM,KAAKD,QAAQ,CAACE,cAAc,IAAI,CAAC,CAAC,KAC7CF,QAAQ,CAACL,SAAS,KAAK,GAAG,IACzB,IAAI,CAACQ,eAAe,CAACH,QAAQ,CAACL,SAAS,EAAEA,SAAS,CAAC,CACzD,CAAC;IAED,IAAI,CAACE,WAAW,EAAE;MAChB;IACF;IAEA,MAAMO,UAAU,GAAG,IAAAC,kCAAgB,EAACb,KAAK,EAAEK,WAAW,CAAC;IAEvD,IAAI,CAACO,UAAU,EAAE;MACf;IACF;IAEA,OAAO;MACLP,WAAW;MACXS,kBAAkB,EAAET,WAAW,CAACS,kBAAkB;MAClDF,UAAU,EAAEA,UAAwC;MACpDZ;IACF,CAAC;EACH;EAEQE,gBAAgBA,CAACH,IAAY,EAA4B;IAC/D,KAAK,MAAMgB,WAAW,IAAI,IAAI,CAAClB,YAAY,EAAE;MAC3C,MAAMmB,cAAc,GAAGD,WAAW,CAACE,YAAY,CAACV,IAAI,CACjDW,SAAS,IAAKA,SAAS,CAACnB,IAAI,CAACoB,WAAW,CAAC,CAAC,KAAKpB,IAAI,CAACoB,WAAW,CAAC,CACnE,CAAC;MAED,IAAIH,cAAc,EAAE;QAClB,OAAOA,cAAc,CAACf,YAAY;MACpC;IACF;IAEA,OAAOmB,SAAS;EAClB;EAEQT,eAAeA,CAACU,OAAe,EAAEC,KAAa,EAAW;IAC/D,IAAID,OAAO,CAACZ,MAAM,KAAKa,KAAK,CAACb,MAAM,EAAE;MACnC,OAAO,KAAK;IACd;IAEA,KAAK,IAAIc,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGF,OAAO,CAACZ,MAAM,EAAEc,KAAK,EAAE,EAAE;MACnD,MAAMC,QAAQ,GAAGH,OAAO,CAACE,KAAK,CAAC;MAE/B,IAAIC,QAAQ,KAAK,GAAG,IAAIA,QAAQ,KAAKF,KAAK,CAACC,KAAK,CAAC,EAAE;QACjD,OAAO,KAAK;MACd;IACF;IAEA,OAAO,IAAI;EACb;EAEQnB,aAAaA,CAACH,YAA0B,EAAED,KAAe,EAAU;IACzE,OACEC,YAAY,CAACwB,iBAAiB,EAAEC,GAAG,CAAEH,KAAK,IAAKvB,KAAK,CAACuB,KAAK,CAAC,CAAC,CAACI,IAAI,CAAC,EAAE,CAAC,IACrE,EAAE;EAEN;AACF;AAACC,OAAA,CAAAjC,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -31,13 +31,16 @@ const toHex = byte => (byte & BYTE_MASK).toString(16).padStart(2, "0");
31
31
  */
32
32
  class LepuCommandBuilder {
33
33
  sequenceNumber = 0;
34
- constructor(startByte = "a5") {
34
+ constructor(startByte = "a5", options = {}) {
35
35
  this.startByte = startByte;
36
+ this.options = options;
36
37
  }
37
38
  build(command, payload = []) {
38
- const header = [this.startByte, toHex(command), toHex(~command), toHex(REQUEST_TYPE), toHex(this.sequenceNumber), toHex(payload.length), toHex(Math.floor(payload.length / BYTE_VALUES))];
39
+ const header = [this.startByte, toHex(command), toHex(~command), toHex(REQUEST_TYPE), toHex(this.options.fixedSequence ? 0 : this.sequenceNumber), toHex(payload.length), toHex(Math.floor(payload.length / BYTE_VALUES))];
39
40
  const frame = [...header, ...payload.map(toHex)];
40
- this.advanceSequence();
41
+ if (!this.options.fixedSequence) {
42
+ this.advanceSequence();
43
+ }
41
44
  return [...frame, toHex((0, _calculateCrc.calculateCrc8)(frame, frame.length))];
42
45
  }
43
46
  advanceSequence() {
@@ -1 +1 @@
1
- {"version":3,"names":["_calculateCrc","require","REQUEST_TYPE","BYTE_MASK","BYTE_VALUES","MAX_SEQUENCE_NUMBER","toHex","byte","toString","padStart","LepuCommandBuilder","sequenceNumber","constructor","startByte","build","command","payload","header","length","Math","floor","frame","map","advanceSequence","calculateCrc8","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.command-builder.ts"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAEA,MAAMC,YAAY,GAAG,IAAI;AACzB,MAAMC,SAAS,GAAG,IAAI;AACtB,MAAMC,WAAW,GAAG,KAAK;;AAEzB;AACA,MAAMC,mBAAmB,GAAG,GAAG;AAE/B,MAAMC,KAAK,GAAIC,IAAY,IACzB,CAACA,IAAI,GAAGJ,SAAS,EAAEK,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAAkB,CAAC;EACtBC,cAAc,GAAG,CAAC;EAEnBC,WAAWA,CAAkBC,SAAiB,GAAG,IAAI,EAAE;IAAA,KAA1BA,SAAiB,GAAjBA,SAAiB;EAAU;EAExDC,KAAKA,CAACC,OAAe,EAAEC,OAA0B,GAAG,EAAE,EAAY;IACvE,MAAMC,MAAM,GAAG,CACb,IAAI,CAACJ,SAAS,EACdP,KAAK,CAACS,OAAO,CAAC,EACdT,KAAK,CAAC,CAACS,OAAO,CAAC,EACfT,KAAK,CAACJ,YAAY,CAAC,EACnBI,KAAK,CAAC,IAAI,CAACK,cAAc,CAAC,EAC1BL,KAAK,CAACU,OAAO,CAACE,MAAM,CAAC,EACrBZ,KAAK,CAACa,IAAI,CAACC,KAAK,CAACJ,OAAO,CAACE,MAAM,GAAGd,WAAW,CAAC,CAAC,CAChD;IAED,MAAMiB,KAAK,GAAG,CAAC,GAAGJ,MAAM,EAAE,GAAGD,OAAO,CAACM,GAAG,CAAChB,KAAK,CAAC,CAAC;IAEhD,IAAI,CAACiB,eAAe,CAAC,CAAC;IAEtB,OAAO,CAAC,GAAGF,KAAK,EAAEf,KAAK,CAAC,IAAAkB,2BAAa,EAACH,KAAK,EAAEA,KAAK,CAACH,MAAM,CAAC,CAAC,CAAC;EAC9D;EAEQK,eAAeA,CAAA,EAAS;IAC9B,IAAI,CAACZ,cAAc,GACjB,IAAI,CAACA,cAAc,IAAIN,mBAAmB,GAAG,CAAC,GAAG,IAAI,CAACM,cAAc,GAAG,CAAC;EAC5E;AACF;AAACc,OAAA,CAAAf,kBAAA,GAAAA,kBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_calculateCrc","require","REQUEST_TYPE","BYTE_MASK","BYTE_VALUES","MAX_SEQUENCE_NUMBER","toHex","byte","toString","padStart","LepuCommandBuilder","sequenceNumber","constructor","startByte","options","build","command","payload","header","fixedSequence","length","Math","floor","frame","map","advanceSequence","calculateCrc8","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.command-builder.ts"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAEA,MAAMC,YAAY,GAAG,IAAI;AACzB,MAAMC,SAAS,GAAG,IAAI;AACtB,MAAMC,WAAW,GAAG,KAAK;;AAEzB;AACA,MAAMC,mBAAmB,GAAG,GAAG;AAM/B,MAAMC,KAAK,GAAIC,IAAY,IACzB,CAACA,IAAI,GAAGJ,SAAS,EAAEK,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAAkB,CAAC;EACtBC,cAAc,GAAG,CAAC;EAEnBC,WAAWA,CACCC,SAAiB,GAAG,IAAI,EACxBC,OAAkC,GAAG,CAAC,CAAC,EACxD;IAAA,KAFiBD,SAAiB,GAAjBA,SAAiB;IAAA,KACjBC,OAAkC,GAAlCA,OAAkC;EAClD;EAEIC,KAAKA,CAACC,OAAe,EAAEC,OAA0B,GAAG,EAAE,EAAY;IACvE,MAAMC,MAAM,GAAG,CACb,IAAI,CAACL,SAAS,EACdP,KAAK,CAACU,OAAO,CAAC,EACdV,KAAK,CAAC,CAACU,OAAO,CAAC,EACfV,KAAK,CAACJ,YAAY,CAAC,EACnBI,KAAK,CAAC,IAAI,CAACQ,OAAO,CAACK,aAAa,GAAG,CAAC,GAAG,IAAI,CAACR,cAAc,CAAC,EAC3DL,KAAK,CAACW,OAAO,CAACG,MAAM,CAAC,EACrBd,KAAK,CAACe,IAAI,CAACC,KAAK,CAACL,OAAO,CAACG,MAAM,GAAGhB,WAAW,CAAC,CAAC,CAChD;IAED,MAAMmB,KAAK,GAAG,CAAC,GAAGL,MAAM,EAAE,GAAGD,OAAO,CAACO,GAAG,CAAClB,KAAK,CAAC,CAAC;IAEhD,IAAI,CAAC,IAAI,CAACQ,OAAO,CAACK,aAAa,EAAE;MAC/B,IAAI,CAACM,eAAe,CAAC,CAAC;IACxB;IAEA,OAAO,CAAC,GAAGF,KAAK,EAAEjB,KAAK,CAAC,IAAAoB,2BAAa,EAACH,KAAK,EAAEA,KAAK,CAACH,MAAM,CAAC,CAAC,CAAC;EAC9D;EAEQK,eAAeA,CAAA,EAAS;IAC9B,IAAI,CAACd,cAAc,GACjB,IAAI,CAACA,cAAc,IAAIN,mBAAmB,GAAG,CAAC,GAAG,IAAI,CAACM,cAAc,GAAG,CAAC;EAC5E;AACF;AAACgB,OAAA,CAAAjB,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -9,40 +9,28 @@ var _lepuCommands = require("./lepu.commands.js");
9
9
  var _lepuDeviceInfo = require("./lepu.device-info.js");
10
10
  var _lepuResponseType = require("./lepu.response-type.js");
11
11
  const COMMAND_INDEX = 1;
12
+ const VIATOM_OXYGEN_INFO = 0x14;
12
13
 
13
- /**
14
- * Asks a Lepu device what it is before sending it anything that acts.
15
- *
16
- * The family shares one frame format, one checksum and one opcode space, but not one
17
- * meaning: `0x08` polls realtime data on a BP2, starts a blood-pressure measurement on an
18
- * AirBp and starts an ECG on a Lepod. A frame built for the wrong device is therefore
19
- * perfectly well-formed - the CRC is computed the same way on every one of them - so
20
- * nothing in the protocol catches a driver bound to the wrong hardware. What comes back is
21
- * a cuff inflating on someone's arm because a name matched during a scan.
22
- *
23
- * `GET_INFO` is the one command that cannot cause that: it is generic, inert, and answered
24
- * identically family-wide. So it goes first, and everything else waits on its reply.
25
- *
26
- * A declaration that names the models it was written for is refused permanently when the
27
- * device answers with a different one. A declaration that names none is identified by the
28
- * advertised name it already matched, which is the basis the vendor's own SDK binds every
29
- * one of its products on; it is asked what it is anyway, and the answer reported, because
30
- * that is the only place these model numbers exist - the vendor never reads the field back,
31
- * so there is no table of them to copy.
32
- *
33
- * A reply that never arrives leaves the gate closed and nothing sent, which the data
34
- * processor's stuck-data timeout reports and disconnects on. That is the watchdog for this
35
- * too - the protocol has no retry of its own, so a dropped reply is recovered by
36
- * reconnecting rather than by asking again.
37
- */
14
+ /** Identifies a device before sending it a model-specific command. */
38
15
  class LepuIdentityGate {
39
16
  isIdentified = false;
40
17
  isRefused = false;
41
18
  constructor(params) {
42
19
  this.params = params;
43
20
  }
44
- initialCommands = () => [this.commandFor(_lepuCommands.LepuCommand.GET_INFO)];
21
+ initialCommands = () => {
22
+ if (this.params.protocol === "viatom-oxygen") {
23
+ const command = this.params.setClockBeforeInfo ? this.commandFor(0x16, oxyClockPayload()) : this.commandFor(VIATOM_OXYGEN_INFO);
24
+ this.pendingCommand = this.params.setClockBeforeInfo ? 0x16 : VIATOM_OXYGEN_INFO;
25
+ return [command];
26
+ }
27
+ this.pendingCommand = _lepuCommands.LepuCommand.GET_INFO;
28
+ return [this.commandFor(_lepuCommands.LepuCommand.GET_INFO)];
29
+ };
45
30
  nextCommand = frame => {
31
+ if (this.params.protocol === "viatom-oxygen") {
32
+ return this.nextViatomOxygenCommand(frame);
33
+ }
46
34
  if (this.isRefused) {
47
35
  return undefined;
48
36
  }
@@ -52,16 +40,7 @@ class LepuIdentityGate {
52
40
  return this.admit(frame);
53
41
  };
54
42
 
55
- /**
56
- * Decides on the reply to `GET_INFO`.
57
- *
58
- * A frame that is not that reply leaves the gate as it was rather than provoking another
59
- * command, because the only command outstanding is the one still being waited on.
60
- *
61
- * A reply that is that command but carries an error type is refused rather than parsed.
62
- * The payload of an error is the reason for it, so reading a model number out of it would
63
- * identify the hardware from an error code.
64
- */
43
+ /** Decides on the reply to the generic `GET_INFO` command. */
65
44
  admit = frame => {
66
45
  if ((0, _hexToByte.hexToByte)(frame[COMMAND_INDEX] ?? "0") !== _lepuCommands.LepuCommand.GET_INFO) {
67
46
  return undefined;
@@ -94,10 +73,77 @@ class LepuIdentityGate {
94
73
 
95
74
  /** Nothing, for a declaration that asks what the device is and stops there. */
96
75
  poll = () => this.params.pollCommand === undefined ? undefined : [this.commandFor(this.params.pollCommand)];
97
- commandFor = command => ({
76
+ commandFor = (command, payload = [], delayBeforeWriteMs) => ({
98
77
  ...this.params.write,
99
- frame: this.params.builder.build(command)
78
+ frame: this.params.builder.build(command, payload),
79
+ ...(this.params.writeWithoutResponse ? {
80
+ withoutResponse: true
81
+ } : {}),
82
+ ...(delayBeforeWriteMs === undefined ? {} : {
83
+ delayBeforeWriteMs
84
+ })
100
85
  });
86
+ nextViatomOxygenCommand = frame => {
87
+ if (this.isRefused || this.pendingCommand === undefined) {
88
+ return undefined;
89
+ }
90
+ const status = (0, _hexToByte.hexToByte)(frame[1] ?? "ff");
91
+ if (status !== 0) {
92
+ if (this.pendingCommand === 0x17 && this.isIdentified) {
93
+ return [this.commandFor(0x17, [], 3_000)];
94
+ }
95
+ return this.refuse(`the device rejected command 0x${this.pendingCommand.toString(16).padStart(2, "0")} with status 0x${status.toString(16).padStart(2, "0")}`);
96
+ }
97
+ switch (this.pendingCommand) {
98
+ case 0x16:
99
+ this.pendingCommand = VIATOM_OXYGEN_INFO;
100
+ return [this.commandFor(VIATOM_OXYGEN_INFO)];
101
+ case VIATOM_OXYGEN_INFO:
102
+ {
103
+ const info = parseViatomOxygenDeviceInfo(frame);
104
+ if (!info) {
105
+ return this.refuse("the device answered INFO without a JSON model number");
106
+ }
107
+ this.params.onIdentified?.(info);
108
+ if (this.params.expectedDeviceTypes.length > 0 && !this.params.expectedDeviceTypes.includes(info.deviceType)) {
109
+ return this.refuse(`the hardware reported model ${info.deviceType}, which this declaration was not written for`);
110
+ }
111
+ this.isIdentified = true;
112
+ this.pendingCommand = 0x17;
113
+ return [this.commandFor(0x17, [], 1_000)];
114
+ }
115
+ case 0x17:
116
+ return [this.commandFor(0x17, [], 1_000)];
117
+ default:
118
+ return undefined;
119
+ }
120
+ };
101
121
  }
102
122
  exports.LepuIdentityGate = LepuIdentityGate;
123
+ const oxyClockPayload = () => {
124
+ const now = new Date();
125
+ const pad = value => String(value).padStart(2, "0");
126
+ const payload = JSON.stringify({
127
+ SetTIME: `${now.getFullYear()}-${pad(now.getMonth() + 1)}-${pad(now.getDate())},${pad(now.getHours())}:${pad(now.getMinutes())}:${pad(now.getSeconds())}`
128
+ });
129
+ return Array.from(new TextEncoder().encode(payload));
130
+ };
131
+ const parseViatomOxygenDeviceInfo = frame => {
132
+ try {
133
+ const text = frame.slice(7, -1).map(byte => String.fromCharCode((0, _hexToByte.hexToByte)(byte))).join("").replace(/\0+$/, "");
134
+ const info = JSON.parse(text);
135
+ const deviceType = Number(info.Model);
136
+ if (!Number.isInteger(deviceType)) {
137
+ return undefined;
138
+ }
139
+ return {
140
+ deviceType,
141
+ protocolMaxLength: 0,
142
+ branchCode: String(info.Branch ?? ""),
143
+ serialNumber: String(info.SN ?? info.SerialNumber ?? "")
144
+ };
145
+ } catch {
146
+ return undefined;
147
+ }
148
+ };
103
149
  //# sourceMappingURL=lepu.identity-gate.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_hexToByte","require","_lepuCommands","_lepuDeviceInfo","_lepuResponseType","COMMAND_INDEX","LepuIdentityGate","isIdentified","isRefused","constructor","params","initialCommands","commandFor","LepuCommand","GET_INFO","nextCommand","frame","undefined","poll","admit","hexToByte","isLepuSuccess","refuse","describeLepuResponseType","info","parseLepuDeviceInfo","onIdentified","pollCommand","isNarrowed","expectedDeviceTypes","length","includes","deviceType","branchCode","reason","onRefused","command","write","builder","build","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.identity-gate.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_hexToByte","require","_lepuCommands","_lepuDeviceInfo","_lepuResponseType","COMMAND_INDEX","VIATOM_OXYGEN_INFO","LepuIdentityGate","isIdentified","isRefused","constructor","params","initialCommands","protocol","command","setClockBeforeInfo","commandFor","oxyClockPayload","pendingCommand","LepuCommand","GET_INFO","nextCommand","frame","nextViatomOxygenCommand","undefined","poll","admit","hexToByte","isLepuSuccess","refuse","describeLepuResponseType","info","parseLepuDeviceInfo","onIdentified","pollCommand","isNarrowed","expectedDeviceTypes","length","includes","deviceType","branchCode","reason","onRefused","payload","delayBeforeWriteMs","write","builder","build","writeWithoutResponse","withoutResponse","status","toString","padStart","parseViatomOxygenDeviceInfo","exports","now","Date","pad","value","String","JSON","stringify","SetTIME","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","Array","from","TextEncoder","encode","text","slice","map","byte","fromCharCode","join","replace","parse","Number","Model","isInteger","protocolMaxLength","Branch","serialNumber","SN","SerialNumber"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.identity-gate.ts"],"mappings":"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","ignoreList":[]}
@@ -110,13 +110,16 @@ const lepuTransports = exports.lepuTransports = {
110
110
  const COMMAND_BYTE = 1;
111
111
  const lepuDevice = params => {
112
112
  const transport = lepuTransports[params.transport ?? "standard"];
113
+ const viatomOxygen = params.protocol === "viatom-oxygen";
113
114
  return (0, _defineCustomDevice.defineCustomDevice)({
114
115
  id: params.id ?? "lepu-device",
115
116
  nameMatch: params.nameMatch,
116
117
  stuckDataTimeoutMs: params.stuckDataTimeoutMs ?? DEFAULT_STUCK_TIMEOUT_MS,
117
118
  preferredMtu: transport.preferredMtu,
118
119
  lepu: {
119
- startBytes: [START_BYTE],
120
+ protocol: params.protocol,
121
+ startBytes: [viatomOxygen ? "55" : START_BYTE],
122
+ requestStartByte: viatomOxygen ? "aa" : START_BYTE,
120
123
  write: {
121
124
  serviceUuid: transport.serviceUuid,
122
125
  characteristicUuid: transport.writeUuid
@@ -127,6 +130,12 @@ const lepuDevice = params => {
127
130
  }),
128
131
  ...(params.pollCommand === undefined ? {} : {
129
132
  pollCommand: params.pollCommand
133
+ }),
134
+ ...(params.writeWithoutResponse === undefined ? {} : {
135
+ writeWithoutResponse: params.writeWithoutResponse
136
+ }),
137
+ ...(params.setClockBeforeInfo === undefined ? {} : {
138
+ setClockBeforeInfo: params.setClockBeforeInfo
130
139
  })
131
140
  },
132
141
  services: [{
@@ -1 +1 @@
1
- {"version":3,"names":["_defineCustomDevice","require","STANDARD_SERVICE","STANDARD_WRITE","STANDARD_NOTIFY","AW1_SERVICE","AW1_WRITE","AW1_NOTIFY","DING_SERVICE","DING_WRITE","DING_NOTIFY","AI_TELE_SERVICE","AI_TELE_WRITE","AI_TELE_NOTIFY","PREFERRED_MTU","MINIMUM_MTU","DEFAULT_STUCK_TIMEOUT_MS","START_BYTE","lepuTransports","exports","standard","serviceUuid","notifyUuid","writeUuid","preferredMtu","standardSmallMtu","aw1","ding","aiTele","COMMAND_BYTE","lepuDevice","params","transport","defineCustomDevice","id","nameMatch","stuckDataTimeoutMs","lepu","startBytes","write","characteristicUuid","expectedDeviceTypes","fileTransfer","undefined","pollCommand","services","uuid","monitor","frame","minLengthBytes","caseSelectorBytes","cases"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.transports.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_defineCustomDevice","require","STANDARD_SERVICE","STANDARD_WRITE","STANDARD_NOTIFY","AW1_SERVICE","AW1_WRITE","AW1_NOTIFY","DING_SERVICE","DING_WRITE","DING_NOTIFY","AI_TELE_SERVICE","AI_TELE_WRITE","AI_TELE_NOTIFY","PREFERRED_MTU","MINIMUM_MTU","DEFAULT_STUCK_TIMEOUT_MS","START_BYTE","lepuTransports","exports","standard","serviceUuid","notifyUuid","writeUuid","preferredMtu","standardSmallMtu","aw1","ding","aiTele","COMMAND_BYTE","lepuDevice","params","transport","viatomOxygen","protocol","defineCustomDevice","id","nameMatch","stuckDataTimeoutMs","lepu","startBytes","requestStartByte","write","characteristicUuid","expectedDeviceTypes","fileTransfer","undefined","pollCommand","writeWithoutResponse","setClockBeforeInfo","services","uuid","monitor","frame","minLengthBytes","caseSelectorBytes","cases"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.transports.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.OxyfitDevice = void 0;
7
+ var _customDevice = require("../custom/custom.device.js");
8
+ var _viatomOximeters = require("../viatom/viatom.oximeters.js");
9
+ /** Keeps the legacy IntegratedDevices.SPO2 entry on the working Viatom protocol. */
10
+ class OxyfitDevice extends _customDevice.CustomDevice {
11
+ constructor(device, params) {
12
+ super(device, params, (0, _viatomOximeters.viatomOximeter)("Oxyfit", {
13
+ id: "integrated-oxyfit"
14
+ }));
15
+ }
16
+ }
17
+ exports.OxyfitDevice = OxyfitDevice;
18
+ //# sourceMappingURL=oxyfit.device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_customDevice","require","_viatomOximeters","OxyfitDevice","CustomDevice","constructor","device","params","viatomOximeter","id","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/spo/oxyfit.device.ts"],"mappings":";;;;;;AAKA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAEA;AACO,MAAME,YAAY,SAASC,0BAAY,CAAC;EACtCC,WAAWA,CAChBC,MAAc,EACdC,MAAkD,EAClD;IACA,KAAK,CACHD,MAAM,EACNC,MAAM,EACN,IAAAC,+BAAc,EAAC,QAAQ,EAAE;MAAEC,EAAE,EAAE;IAAoB,CAAC,CACtD,CAAC;EACH;AACF;AAACC,OAAA,CAAAP,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MySenseDevice = void 0;
7
+ var _core = require("@ovok/core");
8
+ var _defineCustomDevice = require("../../custom/define-custom-device.js");
9
+ var _customDevice = require("../custom/custom.device.js");
10
+ var _mysenseFrameReader = require("./mysense.frame-reader.js");
11
+ var _mysenseSequencer = require("./mysense.sequencer.js");
12
+ const SERVICE = "0000fff0-0000-1000-8000-00805f9b34fb";
13
+ const NOTIFY = "0000fff1-0000-1000-8000-00805f9b34fb";
14
+ const definition = (0, _defineCustomDevice.defineCustomDevice)({
15
+ id: "cyclotest-mysense",
16
+ nameMatch: "mySense",
17
+ stuckDataTimeoutMs: 30_000,
18
+ services: [{
19
+ uuid: SERVICE,
20
+ monitor: [{
21
+ uuid: NOTIFY,
22
+ frame: {
23
+ minLengthBytes: 17
24
+ },
25
+ caseSelectorBytes: [4],
26
+ cases: [{
27
+ selector: "a1",
28
+ kind: "idle",
29
+ minLengthBytes: 20,
30
+ description: "mySense greeting"
31
+ }, {
32
+ selector: "a3",
33
+ kind: "result",
34
+ minLengthBytes: 17,
35
+ repeatedRecords: {
36
+ recordBytes: 9,
37
+ from: 8
38
+ },
39
+ measurementTypeKey: _core.MeasurementTypeKey.temperature,
40
+ description: "mySense stored temperature history",
41
+ fields: [{
42
+ name: "bodyTemp",
43
+ byteIndexes: [5, 6],
44
+ encoding: "decimal-pair",
45
+ unit: "Cel",
46
+ decimals: 2
47
+ }]
48
+ }]
49
+ }]
50
+ }]
51
+ });
52
+ class MySenseDevice extends _customDevice.CustomDevice {
53
+ reportedHistory = false;
54
+ constructor(device, params) {
55
+ super(device, params, definition);
56
+ this.frameReader = new _mysenseFrameReader.MySenseFrameReader();
57
+ this.createCommandSequencer = () => {
58
+ this.reportedHistory = false;
59
+ return new _mysenseSequencer.MySenseSequencer({
60
+ onGreeting: frame => {
61
+ this.deviceData.sn = frame.slice(5, 11).join(":");
62
+ }
63
+ });
64
+ };
65
+ }
66
+ shouldReportDependentResult = data => {
67
+ if (data.parsingCase.caseValue !== "a3") {
68
+ return true;
69
+ }
70
+ if (this.reportedHistory) {
71
+ return false;
72
+ }
73
+ this.reportedHistory = true;
74
+ return true;
75
+ };
76
+ }
77
+ exports.MySenseDevice = MySenseDevice;
78
+ //# sourceMappingURL=mysense.device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_core","require","_defineCustomDevice","_customDevice","_mysenseFrameReader","_mysenseSequencer","SERVICE","NOTIFY","definition","defineCustomDevice","id","nameMatch","stuckDataTimeoutMs","services","uuid","monitor","frame","minLengthBytes","caseSelectorBytes","cases","selector","kind","description","repeatedRecords","recordBytes","from","measurementTypeKey","MeasurementTypeKey","temperature","fields","name","byteIndexes","encoding","unit","decimals","MySenseDevice","CustomDevice","reportedHistory","constructor","device","params","frameReader","MySenseFrameReader","createCommandSequencer","MySenseSequencer","onGreeting","deviceData","sn","slice","join","shouldReportDependentResult","data","parsingCase","caseValue","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/uebe/mysense.device.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAQA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AAEA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AAEA,MAAMK,OAAO,GAAG,sCAAsC;AACtD,MAAMC,MAAM,GAAG,sCAAsC;AAMrD,MAAMC,UAAU,GAAG,IAAAC,sCAAkB,EAAC;EACpCC,EAAE,EAAE,mBAAmB;EACvBC,SAAS,EAAE,SAAS;EACpBC,kBAAkB,EAAE,MAAM;EAC1BC,QAAQ,EAAE,CACR;IACEC,IAAI,EAAER,OAAO;IACbS,OAAO,EAAE,CACP;MACED,IAAI,EAAEP,MAAM;MACZS,KAAK,EAAE;QAAEC,cAAc,EAAE;MAAG,CAAC;MAC7BC,iBAAiB,EAAE,CAAC,CAAC,CAAC;MACtBC,KAAK,EAAE,CACL;QACEC,QAAQ,EAAE,IAAI;QACdC,IAAI,EAAE,MAAM;QACZJ,cAAc,EAAE,EAAE;QAClBK,WAAW,EAAE;MACf,CAAC,EACD;QACEF,QAAQ,EAAE,IAAI;QACdC,IAAI,EAAE,QAAQ;QACdJ,cAAc,EAAE,EAAE;QAClBM,eAAe,EAAE;UAAEC,WAAW,EAAE,CAAC;UAAEC,IAAI,EAAE;QAAE,CAAC;QAC5CC,kBAAkB,EAAEC,wBAAkB,CAACC,WAAW;QAClDN,WAAW,EAAE,oCAAoC;QACjDO,MAAM,EAAE,CACN;UACEC,IAAI,EAAE,UAAU;UAChBC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;UACnBC,QAAQ,EAAE,cAAc;UACxBC,IAAI,EAAE,KAAK;UACXC,QAAQ,EAAE;QACZ,CAAC;MAEL,CAAC;IAEL,CAAC;EAEL,CAAC;AAEL,CAAC,CAAC;AAEK,MAAMC,aAAa,SAASC,0BAAY,CAAC;EACtCC,eAAe,GAAG,KAAK;EAExBC,WAAWA,CAChBC,MAAc,EACdC,MAAqD,EACrD;IACA,KAAK,CACHD,MAAM,EACNC,MAAM,EACNhC,UACF,CAAC;IAED,IAAI,CAACiC,WAAW,GAAG,IAAIC,sCAAkB,CAAC,CAAC;IAC3C,IAAI,CAACC,sBAAsB,GAAG,MAAM;MAClC,IAAI,CAACN,eAAe,GAAG,KAAK;MAE5B,OAAO,IAAIO,kCAAgB,CAAC;QAC1BC,UAAU,EAAG7B,KAAK,IAAK;UACrB,IAAI,CAAC8B,UAAU,CAACC,EAAE,GAAG/B,KAAK,CAACgC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;QACnD;MACF,CAAC,CAAC;IACJ,CAAC;EACH;EAEUC,2BAA2B,GAAIC,IAAmB,IAAc;IACxE,IAAIA,IAAI,CAACC,WAAW,CAACC,SAAS,KAAK,IAAI,EAAE;MACvC,OAAO,IAAI;IACb;IAEA,IAAI,IAAI,CAAChB,eAAe,EAAE;MACxB,OAAO,KAAK;IACd;IAEA,IAAI,CAACA,eAAe,GAAG,IAAI;IAE3B,OAAO,IAAI;EACb,CAAC;AACH;AAACiB,OAAA,CAAAnB,aAAA,GAAAA,aAAA","ignoreList":[]}