Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.63 KB | None | 0 0
  1. fun startMonitoring() {
  2. createNewFhirPackageForCurrentMonitoring {
  3. currentFhirPackage = it
  4. createNewFileManagers(it)
  5. shouldWriteLogFile = true
  6. startFhirPackageChangerRoutine()
  7. }
  8. }
  9.  
  10.  
  11. @Synchronized
  12. private fun createNewFileManagers(fhirPackage: FhirPackage) {
  13. val currentMonitoring = currentMonitoring ?: return
  14. val folder = filesDir
  15. .resolve(currentMonitoring.monitoringName)
  16. .resolve(fhirPackage.packageIdentifier.toString())
  17. dataFilesManager = BraincareDataLogFilesManager(folder)
  18. }
  19.  
  20. private fun startFhirPackageChangerRoutine() {
  21. fhirPackageChangerSubscription = Observable.interval(FHIR_DURATION, FHIR_DURATION, TimeUnit.SECONDS).flatMap {
  22. Observable.fromCallable {
  23. changeFhirPackage()
  24. }
  25. }.subscribe({
  26. }, {
  27. BleLogHelper.writeError("Error on Monitoring Package Change", it)
  28. })
  29. }
  30.  
  31. private fun changeFhirPackage() {
  32. val closingFhirPackage = currentFhirPackage ?: return
  33. val closingDataFilesManager = dataFilesManager
  34.  
  35. createNewFhirPackageForCurrentMonitoring {
  36. currentFhirPackage = it
  37. createNewFileManagers(it)
  38. closingDataFilesManager?.closeOutputStreams()
  39. }
  40. }
  41.  
  42. private var differentialBridgeSignalOutputStream: ObjectOutputStream? = null
  43. fun logDifferentialBridgeSignal(signal: BraincareBluetoothDataFrame.DifferentialBridgeSignal) {
  44. try {
  45. if (differentialBridgeSignalOutputStream == null) {
  46. val file = File(folder, differentialBridgeSignalFileName)
  47. file.parentFile.mkdirs()
  48. file.createNewFile()
  49.  
  50. differentialBridgeSignalOutputStream = ObjectOutputStream(FileOutputStream(file))
  51. }
  52. differentialBridgeSignalOutputStream?.writeObject(signal)
  53. } catch (e: IOException) {
  54. BleLogHelper.writeError("Error writing DifferentialBridgeSignal data $signal to $differentialBridgeSignalOutputStream $e", e)
  55. }
  56. }
  57.  
  58. java.io.IOException: write failed: EBADF (Bad file descriptor)
  59. at libcore.io.IoBridge.write(IoBridge.java:558)
  60. at java.io.FileOutputStream.write(FileOutputStream.java:326)
  61. at java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1959)
  62. at java.io.ObjectOutputStream$BlockDataOutputStream.writeByte(ObjectOutputStream.java:1999)
  63. at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1475)
  64. at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1227)
  65. at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
  66. at io.b4c.brain4care.modules.monitoringservice.filesmanagers.BraincareStatusLogFilesManager.logSystemInformation(BraincareStatusLogFilesManager.kt:32)
  67. at io.b4c.brain4care.modules.monitoringservice.BraincareMonitoringService.handleStatusFrame(BraincareMonitoringService.kt:257)
  68. at io.b4c.brain4care.modules.monitoringservice.BraincareMonitoringService.access$handleStatusFrame(BraincareMonitoringService.kt:45)
  69. at io.b4c.brain4care.modules.monitoringservice.BraincareMonitoringService$LocalBinder$clearAndPrepareMonitoringService$2.invoke(BraincareMonitoringService.kt:158)
  70. at io.b4c.brain4care.modules.monitoringservice.BraincareMonitoringService$LocalBinder$clearAndPrepareMonitoringService$2.invoke(BraincareMonitoringService.kt:102)
  71. at io.b4c.brain4care.modules.monitoringservice.BraincareBluetoothManager.processFrame(BraincareBluetoothManager.kt:797)
  72. at io.b4c.brain4care.modules.monitoringservice.BraincareBluetoothManager.handleBluetoothNotification(BraincareBluetoothManager.kt:724)
  73. at io.b4c.brain4care.modules.monitoringservice.BraincareBluetoothManager.access$handleBluetoothNotification(BraincareBluetoothManager.kt:40)
  74. at io.b4c.brain4care.modules.monitoringservice.BraincareBluetoothManager$startReadingSensorNotification$3.accept(BraincareBluetoothManager.kt:632)
  75. at io.b4c.brain4care.modules.monitoringservice.BraincareBluetoothManager$startReadingSensorNotification$3.accept(BraincareBluetoothManager.kt:40)
  76. at io.reactivex.internal.observers.LambdaObserver.onNext(LambdaObserver.java:63)
  77. at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:201)
  78. at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:255)
  79. at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
  80. at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
  81. at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  82. at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
  83. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
  84. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
  85. at java.lang.Thread.run(Thread.java:764)
  86. Caused by: android.system.ErrnoException: write failed: EBADF (Bad file descriptor)
  87. at libcore.io.Linux.writeBytes(Native Method)
  88. at libcore.io.Linux.write(Linux.java:286)
  89. at libcore.io.BlockGuardOs.write(BlockGuardOs.java:345)
  90. at libcore.io.IoBridge.write(IoBridge.java:553)
  91. at java.io.FileOutputStream.write(FileOutputStream.java:326) 
  92. at java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1959) 
  93. at java.io.ObjectOutputStream$BlockDataOutputStream.writeByte(ObjectOutputStream.java:1999) 
  94. at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1475) 
  95. at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1227) 
  96. at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347) 
  97. at io.b4c.brain4care.modules.monitoringservice.filesmanagers.BraincareStatusLogFilesManager.logSystemInformation(BraincareStatusLogFilesManager.kt:32) 
  98. at io.b4c.brain4care.modules.monitoringservice.BraincareMonitoringService.handleStatusFrame(BraincareMonitoringService.kt:257) 
  99. at io.b4c.brain4care.modules.monitoringservice.BraincareMonitoringService.access$handleStatusFrame(BraincareMonitoringService.kt:45) 
  100. at io.b4c.brain4care.modules.monitoringservice.BraincareMonitoringService$LocalBinder$clearAndPrepareMonitoringService$2.invoke(BraincareMonitoringService.kt:158) 
  101. at io.b4c.brain4care.modules.monitoringservice.BraincareMonitoringService$LocalBinder$clearAndPrepareMonitoringService$2.invoke(BraincareMonitoringService.kt:102) 
  102. at io.b4c.brain4care.modules.monitoringservice.BraincareBluetoothManager.processFrame(BraincareBluetoothManager.kt:797) 
  103. at io.b4c.brain4care.modules.monitoringservice.BraincareBluetoothManager.handleBluetoothNotification(BraincareBluetoothManager.kt:724) 
  104. at io.b4c.brain4care.modules.monitoringservice.BraincareBluetoothManager.access$handleBluetoothNotification(BraincareBluetoothManager.kt:40) 
  105. at io.b4c.brain4care.modules.monitoringservice.BraincareBluetoothManager$startReadingSensorNotification$3.accept(BraincareBluetoothManager.kt:632) 
  106. at io.b4c.brain4care.modules.monitoringservice.BraincareBluetoothManager$startReadingSensorNotification$3.accept(BraincareBluetoothManager.kt:40) 
  107. at io.reactivex.internal.observers.LambdaObserver.onNext(LambdaObserver.java:63) 
  108. at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:201) 
  109. at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:255) 
  110. at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66) 
  111. at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57) 
  112. at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
  113. at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301) 
  114. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 
  115. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 
  116. at java.lang.Thread.run(Thread.java:764) 
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement