Updated flow of commands to usb.
This commit is contained in:
@@ -8,8 +8,8 @@ import android.view.ViewGroup
|
|||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import com.example.refactoredapp.R
|
import com.example.refactoredapp.R
|
||||||
import com.example.refactoredapp.data.DataHolder
|
import com.example.refactoredapp.data.Constants
|
||||||
import com.example.refactoredapp.data.model.TestRightCommands
|
import com.example.refactoredapp.data.constant.TestRightCommands
|
||||||
import com.example.refactoredapp.databinding.FragmentTestRightExpReferenceBinding
|
import com.example.refactoredapp.databinding.FragmentTestRightExpReferenceBinding
|
||||||
import com.example.refactoredapp.presentation.UsbServiceListener
|
import com.example.refactoredapp.presentation.UsbServiceListener
|
||||||
import com.example.refactoredapp.presentation.utils.MyDialogListener
|
import com.example.refactoredapp.presentation.utils.MyDialogListener
|
||||||
@@ -24,7 +24,6 @@ class TestRightExpReference : Fragment() {
|
|||||||
private val TAG = "TestRightExpReference"
|
private val TAG = "TestRightExpReference"
|
||||||
|
|
||||||
val fullReadOutput = StringBuilder()
|
val fullReadOutput = StringBuilder()
|
||||||
private var readingDeviceConstantInProgress = false
|
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
@@ -39,13 +38,11 @@ class TestRightExpReference : Fragment() {
|
|||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
setupListeners()
|
setupListeners()
|
||||||
|
|
||||||
if (DataHolder.isReferenceTaken)
|
if (viewModel.isReferenceDone && viewModel.sampleReadCounter <= Constants.MAXIMUM_TEST_ALLOWED_BEFORE_REFERENCE)
|
||||||
moveToSamplePage()
|
moveToSamplePage()
|
||||||
|
|
||||||
if (viewModel.deviceConstant == null) {
|
if (viewModel.deviceConstant == null) {
|
||||||
binding.progressBar.visibility = View.VISIBLE
|
sendCmdToFetchDeviceConstant()
|
||||||
readingDeviceConstantInProgress = true
|
|
||||||
writeAndReadFromDevice(TestRightCommands.read)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,53 +56,13 @@ class TestRightExpReference : Fragment() {
|
|||||||
getString(R.string.no),
|
getString(R.string.no),
|
||||||
object : MyDialogListener {
|
object : MyDialogListener {
|
||||||
override fun onClickBtnOne() {
|
override fun onClickBtnOne() {
|
||||||
binding.progressBar.visibility = View.VISIBLE
|
startTakingReference()
|
||||||
writeAndReadFromDevice(TestRightCommands.print_all)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onClickBtnTwo() {}
|
override fun onClickBtnTwo() {}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
(activity as TestRightActivity).mService.addListener(
|
|
||||||
object : UsbServiceListener {
|
|
||||||
override fun onUsbConnect() {
|
|
||||||
Log.d(TAG, "onUsbConnect() called")
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onUsbConnectError(e: Exception?) {
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onUsbRead(data: ByteArray?) {
|
|
||||||
// Log.d(TAG, "onUsbRead(data) call back called")
|
|
||||||
data?.let {
|
|
||||||
val stringData = String(it)
|
|
||||||
fullReadOutput.append(stringData)
|
|
||||||
|
|
||||||
if(stringData.contains("OK", true)){
|
|
||||||
if (readingDeviceConstantInProgress) {
|
|
||||||
readingDeviceConstantInProgress = false
|
|
||||||
viewModel.mapDeviceConstants(fullReadOutput.toString())
|
|
||||||
} else {
|
|
||||||
viewModel.mapIntensityValues(fullReadOutput.toString(), true)
|
|
||||||
moveToSamplePage()
|
|
||||||
}
|
|
||||||
binding.progressBar.visibility = View.GONE
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// val stringData = String(data!!)
|
|
||||||
// Log.d(TAG, stringData)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onUsbRead() {
|
|
||||||
Log.d(TAG, "onSerialRead() call back called")
|
|
||||||
}
|
|
||||||
override fun onUsbIoError(e: Exception?) {
|
|
||||||
Log.e(TAG, "onUsbIoError() called -> $e")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
binding.btnRead.setOnClickListener {
|
binding.btnRead.setOnClickListener {
|
||||||
// Log.d(TAG, "clicked on text")
|
// Log.d(TAG, "clicked on text")
|
||||||
// val mService = (activity as TestRightActivity).mService
|
// val mService = (activity as TestRightActivity).mService
|
||||||
@@ -114,11 +71,137 @@ class TestRightExpReference : Fragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Executing the commands sequentially each after successfully executing one.
|
||||||
|
* 1. command to set LED
|
||||||
|
* 2. command autoset
|
||||||
|
* 3. command run
|
||||||
|
* 4. command print
|
||||||
|
*/
|
||||||
|
private fun startTakingReference() {
|
||||||
|
sendCmdToSetLed()
|
||||||
|
}
|
||||||
|
|
||||||
private fun writeAndReadFromDevice(command: TestRightCommands) {
|
private fun sendCmdToFetchDeviceConstant() {
|
||||||
fullReadOutput.clear()
|
binding.progressBar.visibility = View.VISIBLE
|
||||||
val mService = (activity as TestRightActivity).mService
|
val fullReadOutput = StringBuilder()
|
||||||
mService.eventDrivenWrite(command)
|
(activity as TestRightActivity).mService.eventDrivenWrite(TestRightCommands.read,
|
||||||
|
object : UsbServiceListener {
|
||||||
|
override fun onUsbRead(data: ByteArray?) {
|
||||||
|
data?.let {
|
||||||
|
val stringData = String(it)
|
||||||
|
fullReadOutput.append(stringData)
|
||||||
|
|
||||||
|
if (stringData.contains("OK", true)) {
|
||||||
|
viewModel.mapDeviceConstants(fullReadOutput.toString())
|
||||||
|
binding.progressBar.visibility = View.GONE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onUsbError(e: Exception?) {
|
||||||
|
Log.e(TAG, "onUsbIoError() called in writeUsbFetchDeviceConstant() -> $e")
|
||||||
|
binding.progressBar.visibility = View.GONE
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun sendCmdToSetLed() {
|
||||||
|
binding.progressBar.visibility = View.VISIBLE
|
||||||
|
val fullReadOutput = StringBuilder()
|
||||||
|
(activity as TestRightActivity).mService.eventDrivenWrite(TestRightCommands.led2Set50,
|
||||||
|
object : UsbServiceListener {
|
||||||
|
override fun onUsbRead(data: ByteArray?) {
|
||||||
|
data?.let {
|
||||||
|
val stringData = String(it)
|
||||||
|
fullReadOutput.append(stringData)
|
||||||
|
|
||||||
|
if (stringData.contains("OK", true)) {
|
||||||
|
binding.progressBar.visibility = View.GONE
|
||||||
|
sendCmdToAutoset()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onUsbError(e: Exception?) {
|
||||||
|
Log.e(TAG, "onUsbIoError() called in writeUsbFetchDeviceConstant() -> $e")
|
||||||
|
binding.progressBar.visibility = View.GONE
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun sendCmdToAutoset() {
|
||||||
|
binding.progressBar.visibility = View.VISIBLE
|
||||||
|
val fullReadOutput = StringBuilder()
|
||||||
|
(activity as TestRightActivity).mService.eventDrivenWrite(TestRightCommands.autoset,
|
||||||
|
object : UsbServiceListener {
|
||||||
|
override fun onUsbRead(data: ByteArray?) {
|
||||||
|
data?.let {
|
||||||
|
val stringData = String(it)
|
||||||
|
fullReadOutput.append(stringData)
|
||||||
|
|
||||||
|
if (stringData.contains("OK", true)) {
|
||||||
|
binding.progressBar.visibility = View.GONE
|
||||||
|
sendCmdToRun()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onUsbError(e: Exception?) {
|
||||||
|
Log.e(TAG, "onUsbIoError() called in writeUsbFetchDeviceConstant() -> $e")
|
||||||
|
binding.progressBar.visibility = View.GONE
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun sendCmdToRun() {
|
||||||
|
binding.progressBar.visibility = View.VISIBLE
|
||||||
|
val fullReadOutput = StringBuilder()
|
||||||
|
(activity as TestRightActivity).mService.eventDrivenWrite(TestRightCommands.run,
|
||||||
|
object : UsbServiceListener {
|
||||||
|
override fun onUsbRead(data: ByteArray?) {
|
||||||
|
data?.let {
|
||||||
|
val stringData = String(it)
|
||||||
|
fullReadOutput.append(stringData)
|
||||||
|
|
||||||
|
if (stringData.contains("OK", true)) {
|
||||||
|
binding.progressBar.visibility = View.GONE
|
||||||
|
sendCmdToFetchLightIntensities()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onUsbError(e: Exception?) {
|
||||||
|
Log.e(TAG, "onUsbIoError() called in writeUsbFetchDeviceConstant() -> $e")
|
||||||
|
binding.progressBar.visibility = View.GONE
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun sendCmdToFetchLightIntensities() {
|
||||||
|
binding.progressBar.visibility = View.VISIBLE
|
||||||
|
val fullReadOutput = StringBuilder()
|
||||||
|
(activity as TestRightActivity).mService.eventDrivenWrite(TestRightCommands.printAll,
|
||||||
|
object : UsbServiceListener {
|
||||||
|
override fun onUsbRead(data: ByteArray?) {
|
||||||
|
data?.let {
|
||||||
|
val stringData = String(it)
|
||||||
|
fullReadOutput.append(stringData)
|
||||||
|
|
||||||
|
if (stringData.contains("OK", true)) {
|
||||||
|
viewModel.mapIntensityValues(fullReadOutput.toString(), true)
|
||||||
|
binding.progressBar.visibility = View.GONE
|
||||||
|
viewModel.isReferenceDone = true
|
||||||
|
moveToSamplePage()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onUsbError(e: Exception?) {
|
||||||
|
Log.e(TAG, "onUsbIoError() called in writeUsbFetchDeviceConstant() -> $e")
|
||||||
|
binding.progressBar.visibility = View.GONE
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun moveToSamplePage() {
|
private fun moveToSamplePage() {
|
||||||
@@ -140,20 +223,5 @@ class TestRightExpReference : Fragment() {
|
|||||||
// mService.read()
|
// mService.read()
|
||||||
// }, 10000)
|
// }, 10000)
|
||||||
//
|
//
|
||||||
// }
|
|
||||||
|
|
||||||
override fun onDestroy() {
|
|
||||||
super.onDestroy()
|
|
||||||
(activity as TestRightActivity).mService.removeListener()
|
|
||||||
}
|
|
||||||
|
|
||||||
// fun Button.disable() {
|
|
||||||
// background.setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY)
|
|
||||||
// isClickable = false
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// fun Button.enable() {
|
|
||||||
// background.setColorFilter(Color.BLUE, PorterDuff.Mode.MULTIPLY)
|
|
||||||
// isClickable = true
|
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
@@ -1,12 +1,7 @@
|
|||||||
package com.example.refactoredapp.presentation.testRight
|
package com.example.refactoredapp.presentation.testRight
|
||||||
|
|
||||||
import android.R.attr.button
|
|
||||||
import android.content.res.ColorStateList
|
|
||||||
import android.content.res.Resources
|
|
||||||
import android.graphics.Color
|
|
||||||
import android.graphics.LightingColorFilter
|
|
||||||
import android.graphics.PorterDuff
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.util.Log
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
@@ -15,14 +10,18 @@ import androidx.core.content.ContextCompat
|
|||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import com.example.refactoredapp.R
|
import com.example.refactoredapp.R
|
||||||
import com.example.refactoredapp.data.model.PatientDetails
|
import com.example.refactoredapp.data.constant.TestRightCommands
|
||||||
|
import com.example.refactoredapp.data.model.PatientData
|
||||||
import com.example.refactoredapp.databinding.FragmentTestRightExpSampleBinding
|
import com.example.refactoredapp.databinding.FragmentTestRightExpSampleBinding
|
||||||
|
import com.example.refactoredapp.presentation.UsbServiceListener
|
||||||
|
|
||||||
class TestRightExpSample : Fragment() {
|
class TestRightExpSample : Fragment() {
|
||||||
|
|
||||||
private lateinit var binding: FragmentTestRightExpSampleBinding
|
private lateinit var binding: FragmentTestRightExpSampleBinding
|
||||||
private val viewModel: TestRightViewModel by activityViewModels()
|
private val viewModel: TestRightViewModel by activityViewModels()
|
||||||
|
|
||||||
|
private val TAG = "TestRightExpSample"
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
@@ -45,16 +44,12 @@ class TestRightExpSample : Fragment() {
|
|||||||
startAcquiring()
|
startAcquiring()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
binding.etNameBlock.setOnClickListener { binding.etName.error = "" }
|
binding.etNameBlock.setOnClickListener { binding.etName.isErrorEnabled = false }
|
||||||
binding.etAgeBlock.setOnClickListener { binding.etAge.error = "" }
|
binding.etAgeBlock.setOnClickListener { binding.etAge.isErrorEnabled = false }
|
||||||
binding.etGenderBlock.setOnClickListener { binding.ddGender.error = "" }
|
binding.etGenderBlock.setOnClickListener { binding.ddGender.isErrorEnabled = false }
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun startAcquiring() {
|
private fun isValidInput() : PatientData? {
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun isValidInput() : PatientDetails? {
|
|
||||||
val name = binding.etName.editText?.text?.trim()
|
val name = binding.etName.editText?.text?.trim()
|
||||||
if (name.isNullOrEmpty()){
|
if (name.isNullOrEmpty()){
|
||||||
binding.etName.error = getString(R.string.name_error)
|
binding.etName.error = getString(R.string.name_error)
|
||||||
@@ -73,7 +68,71 @@ class TestRightExpSample : Fragment() {
|
|||||||
binding.ddGender.error = getString(R.string.gender_error)
|
binding.ddGender.error = getString(R.string.gender_error)
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
return PatientDetails(name.toString(), age.toString().toInt(), gender.toString())
|
return PatientData(name.toString(), age.toString().toInt(), gender.toString(), null)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Executing the commands sequentially each after successfully executing one.
|
||||||
|
* 1. command run
|
||||||
|
* 2. command print
|
||||||
|
*/
|
||||||
|
private fun startAcquiring() {
|
||||||
|
sendCmdToRun()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun sendCmdToRun() {
|
||||||
|
binding.progressBar.visibility = View.VISIBLE
|
||||||
|
val fullReadOutput = StringBuilder()
|
||||||
|
(activity as TestRightActivity).mService.eventDrivenWrite(
|
||||||
|
TestRightCommands.run,
|
||||||
|
object : UsbServiceListener {
|
||||||
|
override fun onUsbRead(data: ByteArray?) {
|
||||||
|
data?.let {
|
||||||
|
val stringData = String(it)
|
||||||
|
fullReadOutput.append(stringData)
|
||||||
|
|
||||||
|
if (stringData.contains("OK", true)) {
|
||||||
|
binding.progressBar.visibility = View.GONE
|
||||||
|
sendCmdToFetchLightIntensities()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onUsbError(e: Exception?) {
|
||||||
|
Log.e(TAG, "onUsbIoError() called in writeUsbFetchDeviceConstant() -> $e")
|
||||||
|
binding.progressBar.visibility = View.GONE
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun sendCmdToFetchLightIntensities() {
|
||||||
|
binding.progressBar.visibility = View.VISIBLE
|
||||||
|
val fullReadOutput = StringBuilder()
|
||||||
|
(activity as TestRightActivity).mService.eventDrivenWrite(TestRightCommands.printAll,
|
||||||
|
object : UsbServiceListener {
|
||||||
|
override fun onUsbRead(data: ByteArray?) {
|
||||||
|
data?.let {
|
||||||
|
val stringData = String(it)
|
||||||
|
fullReadOutput.append(stringData)
|
||||||
|
|
||||||
|
if (stringData.contains("OK", true)) {
|
||||||
|
viewModel.mapIntensityValues(fullReadOutput.toString(), false)
|
||||||
|
binding.progressBar.visibility = View.GONE
|
||||||
|
showResultsAfterAcquiring()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onUsbError(e: Exception?) {
|
||||||
|
Log.e(TAG, "onUsbIoError() called in writeUsbFetchDeviceConstant() -> $e")
|
||||||
|
binding.progressBar.visibility = View.GONE
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun showResultsAfterAcquiring() {
|
||||||
|
viewModel.calculateResults()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Button.disable() {
|
private fun Button.disable() {
|
||||||
|
|||||||
Reference in New Issue
Block a user