From f8f8f140a9b4514d3a1cdf8c2a3488bb491ffac8 Mon Sep 17 00:00:00 2001 From: "smileomi18@gmail.com" Date: Mon, 31 Jul 2023 17:05:36 +0530 Subject: [PATCH] Removed --- app/src/main/AndroidManifest.xml | 3 - .../example/hpostesting/data/DataHolder.kt | 2 +- .../data/model/patient/HemoCubeTestData.kt | 4 +- .../presentation/hemocube/HemoCubeFragment.kt | 69 ++++++++++--------- .../hemocube/HemoCubeViewModel.kt | 2 +- .../layout/fragment_hemo_cube_reference.xml | 2 +- 6 files changed, 44 insertions(+), 38 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 45ed941..dcb3927 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -15,9 +15,6 @@ - - - () val intensityReferenceArray = ArrayList() var selectedTest: UserData? = null - var SelectTestType: HemoCubeTestData? = null + var HomocubeTestType: HemoCubeTestData? = null var kitSerial: String = "" diff --git a/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt b/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt index 8d19c44..455b270 100644 --- a/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt +++ b/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt @@ -18,5 +18,7 @@ data class HemoCubeTestData( var deviceSerialNumber: String = "", var kitSerial: String = "", var reportPath: String = "", - var resultRatio: Double? = null + var resultRatio: Double? = null, + var led1: Double? = null, + var led2: Double? = null ) \ No newline at end of file diff --git a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt index 2f59e9b..7d9ec8f 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt @@ -68,8 +68,8 @@ class HemoCubeFragment : Fragment() { hemoCubeViewModel.networkStatusLiveData.observe(viewLifecycleOwner) { isNetworkAvailable -> apply { - kitSerial = DataHolder.SelectTestType?.kitSerial - testTime = DataHolder.SelectTestType?.testTime + kitSerial = DataHolder.HomocubeTestType?.kitSerial + testTime = DataHolder.HomocubeTestType?.testTime isOnline = isNetworkAvailable } } @@ -122,38 +122,46 @@ class HemoCubeFragment : Fragment() { } } + fun parseUsbData(data: String) { + val bufferPattern = """ok (Green|Blue) B Intensity: (\d+\.\d+)""".toRegex() + val samplePattern = """ok (Green|Blue) Intensity: (\d+\.\d+)""".toRegex() + val avgPattern = """ok Avg (Green|Blue): (\d+\.\d+)""".toRegex() + val resultPattern = """ok Result: (\d+\.\d+)""".toRegex() - private fun readUsbData() { - // Perform USB data reading and parsing here - val buffer = ByteArray(256) // Adjust the buffer size as per your data - val endpoint = usbDevice?.getInterface(0)?.getEndpoint(0) + var greenBIntensity: Double? = null + var blueBIntensity: Double? = null + var greenIntensity: Double? = null + var blueIntensity: Double? = null + var avgGreen: Double? = null + var avgBlue: Double? = null + var result: Double? = null - endpoint?.let { - val bytesRead = usbConnection?.bulkTransfer(it, buffer, buffer.size, TIMEOUT) - if (bytesRead != null && bytesRead > 0) { - val usbData = String(buffer, 0, bytesRead, Charsets.UTF_8) - val parsedData = parseUsbData(usbData) - displayValuesOnTextView(parsedData) - } else { - // Handle USB data read error - } - } - } - - private fun parseUsbData(data: String): Map { - val lines = data.split("\n") - val parsedData = mutableMapOf() - - for (line in lines) { - val labelAndValue = line.split(":") - if (labelAndValue.size == 2) { - val label = labelAndValue[0].trim() - val value = labelAndValue[1].trim() - parsedData[label] = value + for (line in data.split("\n")) { + when { + bufferPattern.matches(line) -> { + val (color, intensity) = bufferPattern.find(line)!!.destructured + if (color == "Green") greenBIntensity = intensity.toDouble() + else blueBIntensity = intensity.toDouble() + } + samplePattern.matches(line) -> { + val (color, intensity) = samplePattern.find(line)!!.destructured + if (color == "Green") greenIntensity = intensity.toDouble() + else blueIntensity = intensity.toDouble() + } + avgPattern.matches(line) -> { + val (color, avg) = avgPattern.find(line)!!.destructured + if (color == "Green") avgGreen = avg.toDouble() + else avgBlue = avg.toDouble() + } + resultPattern.matches(line) -> { + result = resultPattern.find(line)!!.destructured.component1().toDouble() + } } } - return parsedData + Log.d("greenBuffer", greenBIntensity.toString()) + Log.d("greenBuffer", blueIntensity.toString()) + Log.d("greenBuffer", blueBIntensity.toString()) } @@ -166,8 +174,6 @@ class HemoCubeFragment : Fragment() { append("$label: $value\n") } } - - // Display the complete data accumulated so far fullReadOutput.append(resultText) textView.text = fullReadOutput.toString() } @@ -181,6 +187,7 @@ class HemoCubeFragment : Fragment() { data?.let { val stringData = String(it) fullReadOutput.append(stringData) + binding.tvSubtitle4.text = fullReadOutput resultRatio = fullReadOutput.toString() val data = parseUsbData(fullReadOutput.toString()) diff --git a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt index 3ee59ed..7fb7cc3 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt @@ -27,7 +27,7 @@ class HemoCubeViewModel @Inject constructor( ) : ViewModel() { var isServiceConnected = false val progressBar = MutableLiveData(false) - val testDetails = DataHolder.SelectTestType + val testDetails = DataHolder.HomocubeTestType val testDetailuser = DataHolder.selectedTest private val _networkStatusLiveData = NetworkStatusLiveData(context) val networkStatusLiveData: LiveData diff --git a/app/src/main/res/layout/fragment_hemo_cube_reference.xml b/app/src/main/res/layout/fragment_hemo_cube_reference.xml index 39015c6..4d17e8b 100644 --- a/app/src/main/res/layout/fragment_hemo_cube_reference.xml +++ b/app/src/main/res/layout/fragment_hemo_cube_reference.xml @@ -51,7 +51,7 @@ android:id="@+id/tv_subtitle4" style="@style/title2" android:layout_width="0dp" - android:layout_height="wrap_content" + android:layout_height="70dp" android:layout_marginHorizontal="24dp" android:layout_marginTop="16dp" android:hint="Result"