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 7a844c8..62ac7ee 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
@@ -70,9 +70,7 @@ class HemoCubeFragment : Fragment() {
hemoCubeViewModel.fireBaseUpload.observe(viewLifecycleOwner) {
if (it == "Success") {
Toast.makeText(
- requireContext(),
- "Test Results Uploaded Successfully",
- Toast.LENGTH_SHORT
+ requireContext(), "Test Results Uploaded Successfully", Toast.LENGTH_SHORT
).show()
}
binding.progressBar.visibility = View.GONE
@@ -84,7 +82,8 @@ class HemoCubeFragment : Fragment() {
hemoCubeViewModel.deviceData.observe(viewLifecycleOwner) {
deviceData = it
- Toast.makeText(requireContext(), calculateRatio(0.17).toString(), Toast.LENGTH_SHORT).show()
+ Toast.makeText(requireContext(), calculateRatio(0.17).toString(), Toast.LENGTH_SHORT)
+ .show()
}
@@ -97,40 +96,26 @@ class HemoCubeFragment : Fragment() {
}
if (checkBufferValue()) {
-// TODO("Call S command")
- //We have to store the buffer value like this
- with(sharedPreference.edit()) {
- putInt(Constants.BUFFER_VALUE, 2000)
- apply()
- }
-
- UIUtils.createAlertDialog(
- requireContext(),
+// with(sharedPreference.edit()) {
+// putInt(Constants.BUFFER_VALUE_1, 2000)
+// apply()
+// }
+ UIUtils.createAlertDialog(requireContext(),
"WARNING",
- "Please check if you have placed the sample of this person",
+ "Do you want to continue with existing buffer",
getString(R.string.no),
"Yes",
object : MyDialogListener {
- override fun onClickNegativeButton() {}
- override fun onClickPositiveButton() {
- UIUtils.createAlertDialog(
- requireContext(),
- getString(R.string.have_you_placed_sample),
- getString(R.string.please_place_sample),
- getString(R.string.no),
- getString(R.string.yes_and_run),
- object : MyDialogListener {
- override fun onClickNegativeButton() {}
- override fun onClickPositiveButton() {
-// fetchHemoCubeResult()
- getSampleResult()
- }
- })
+ override fun onClickNegativeButton() {
+ startBuffer()
}
- }
- )
+
+ override fun onClickPositiveButton() {
+ startSample()
+ }
+ })
} else {
-// TODO("Call B command")
+ startBuffer()
}
}
@@ -140,61 +125,25 @@ class HemoCubeFragment : Fragment() {
}
private fun setupButtonClickListeners() {
- binding.btnShowResult.setOnClickListener {
- UIUtils.createAlertDialog(
- requireContext(),
- "WARNING",
- "Please check if you have placed the sample of this person",
- getString(R.string.no),
- "Yes",
- object : MyDialogListener {
- override fun onClickNegativeButton() {}
- override fun onClickPositiveButton() {
- UIUtils.createAlertDialog(
- requireContext(),
- getString(R.string.have_you_placed_sample),
- getString(R.string.please_place_sample),
- getString(R.string.no),
- getString(R.string.yes_and_run),
- object : MyDialogListener {
- override fun onClickNegativeButton() {}
- override fun onClickPositiveButton() {
-// fetchHemoCubeResult()
- getSampleResult()
- }
- })
- }
- })
- }
binding.btnSubmit.setOnClickListener {
binding.progressBar.visibility = View.VISIBLE
if (isOnline) {
+ getResult()
resultRatio?.let { ratio ->
Log.e("Testdb", "upload")
hemoCubeViewModel.uploadHemoCubeResultToDatabase(
- requireContext(),
- isOnline,
- true,
- kitSerial,
- ratio,
- resultData,
- testTime
+ requireContext(), isOnline, true, kitSerial, ratio, resultData, testTime
)
}
binding.progressBar.visibility = View.VISIBLE
} else {
+ getResult()
resultRatio?.let { ratio ->
hemoCubeViewModel.uploadHemoCubeResultToDatabase(
- requireContext(),
- isOnline,
- true,
- kitSerial,
- ratio,
- resultData,
- testTime
+ requireContext(), isOnline, true, kitSerial, ratio, resultData, testTime
)
}
Toast.makeText(
@@ -206,52 +155,6 @@ 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()
-
- 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
-
- 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()
- }
- }
- }
-
- Log.d("greenBuffer", greenBIntensity.toString())
- Log.d("greenBuffer", blueIntensity.toString())
- Log.d("greenBuffer", blueBIntensity.toString())
- }
-
- private fun calculateResult() {
- hemoCubeViewModel
- }
-
private fun listenToHemoCube() {
if (DataHolder.hemoCubeTestData == null) {
DataHolder.hemoCubeTestData = DataHolder.selectedTest?.toHemoCubeTestData()
@@ -259,8 +162,7 @@ class HemoCubeFragment : Fragment() {
hemoCubeViewModel.progressBar.postValue(true)
val fullReadOutput = StringBuilder()
- (activity as HemocubeActivity).mService.listenToHemoCube(object :
- UsbServiceListener {
+ (activity as HemocubeActivity).mService.listenToHemoCube(object : UsbServiceListener {
override fun onUsbRead(data: ByteArray?) {
data?.let {
val stringData = String(it)
@@ -270,7 +172,6 @@ class HemoCubeFragment : Fragment() {
resultData = fullReadOutput.toString()
DataHolder.hemoCubeTestData?.resultData
resultRatio = "" // TODO
- val pareseddata = parseUsbData(fullReadOutput.toString())
Log.d("Result", data.toString())
hemoCubeViewModel.progressBar.postValue(false)
}
@@ -282,84 +183,41 @@ class HemoCubeFragment : Fragment() {
})
}
- //TODO: remove
- private fun fetchHemoCubeResultNew() {
- hemoCubeViewModel.progressBar.postValue(true)
- val fullReadOutput = StringBuilder()
- (activity as HemocubeActivity).mService.listenToHemoCube(object :
- UsbServiceListener {
- override fun onUsbRead(data: ByteArray?) {
- data?.let {
- val stringData = String(it)
- fullReadOutput.append(stringData)
-
- // Split the data into lines
- val lines = fullReadOutput.toString().split("\n")
-
- // Filter and get only the lines starting with "#"
- val bufferLines = lines.filter { it.startsWith("#") }
-
- // Create a new text with the filtered lines and join them with line breaks
- val newText = bufferLines.joinToString("\n")
-
- // Update the TextView with the new text
- binding.tvSubtitle4.text = newText
-
- // Get the result data
- val data = parseUsbData(fullReadOutput.toString())
- Log.d("Result", data.toString())
-
- // Update the view model with progress bar state
- hemoCubeViewModel.progressBar.postValue(false)
- }
- }
-
- override fun onUsbError(e: Exception?) {
- hemoCubeViewModel.progressBar.postValue(false)
- }
- })
- }
-
- private fun getBufferResult() {
+ private fun startBuffer() {
hemoCubeViewModel.progressBar.postValue(true)
val fullReadOutput = StringBuilder()
- (activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.getBuffer,
+ (activity as HemocubeActivity).mService.sendAndListenToHemoCube(
+ HemoCubeCommands.startBuffer,
object : UsbServiceListener {
- override fun onUsbRead(data: ByteArray?) {
- data?.let {
- val stringData = String(it)
- fullReadOutput.append(stringData)
-
- if (stringData.contains("RESULT", true)) {
-// hemoCubeViewModel.mapDeviceConstants(fullReadOutput.toString())
-
- val response: String = "RESULT SN18291 1937.23 2828.11"
-
-// val response = stringData
- val result = response.split(" ")
- val deviceSerialNo = result[1]
- val led1Buffer = result[2].toDouble()
- val led2Buffer = result[3].toDouble()
- DataHolder.hemoCubeTestData?.deviceSerialNumber = deviceSerialNo
- DataHolder.hemoCubeTestData?.led1Buffer = led1Buffer
- DataHolder.hemoCubeTestData?.led2Buffer = led2Buffer
- hemoCubeViewModel.progressBar.postValue(false)
- }
- }
- }
-
+ override fun onUsbRead(data: ByteArray?) {}
override fun onUsbError(e: Exception?) {
hemoCubeViewModel.progressBar.postValue(false)
}
})
}
- private fun getSampleResult() {
+ private fun startSample() {
hemoCubeViewModel.progressBar.postValue(true)
val fullReadOutput = StringBuilder()
- (activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.getSample,
+ (activity as HemocubeActivity).mService.sendAndListenToHemoCube(
+ HemoCubeCommands.startSample,
+ object : UsbServiceListener {
+ override fun onUsbRead(data: ByteArray?) {}
+ override fun onUsbError(e: Exception?) {
+ hemoCubeViewModel.progressBar.postValue(false)
+ }
+ })
+ }
+
+
+ private fun getResult() {
+ hemoCubeViewModel.progressBar.postValue(true)
+ val fullReadOutput = StringBuilder()
+
+ (activity as HemocubeActivity).mService.sendAndListenToHemoCube(
+ HemoCubeCommands.getSample,
object : UsbServiceListener {
override fun onUsbRead(data: ByteArray?) {
data?.let {
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 3a612f7..77d621c 100644
--- a/app/src/main/res/layout/fragment_hemo_cube_reference.xml
+++ b/app/src/main/res/layout/fragment_hemo_cube_reference.xml
@@ -49,29 +49,18 @@
-
-
+ app:layout_constraintTop_toBottomOf="@id/tv_subtitle4" />