Flushed Kit number, Kit count and Buffer value for new kit

This commit is contained in:
mohamedkaif356
2023-08-03 17:03:04 +05:30
parent 7c1100fc39
commit 1a87344f44
2 changed files with 49 additions and 202 deletions

View File

@@ -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 {

View File

@@ -49,29 +49,18 @@
<TextView
android:id="@+id/tv_subtitle4"
style="@style/title2"
style="@style/title1_1"
android:gravity="center"
android:textColor="@color/red"
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="16dp"
android:hint="Result"
android:textSize="22sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_subtitle3" />
<Button
android:id="@+id/btn_show_result"
android:layout_width="216dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="24dp"
android:clickable="false"
android:text="@string/show_hemocube_result"
android:textColor="@color/white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_subtitle4" />
<Button
android:id="@+id/btn_submit"
android:layout_width="216dp"
@@ -83,7 +72,7 @@
android:textColor="@color/white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btn_show_result" />
app:layout_constraintTop_toBottomOf="@id/tv_subtitle4" />
<!-- <Button-->
<!-- android:id="@+id/btn_read"-->