diff --git a/app/src/main/java/com/example/hpostesting/data/constant/HemoCubeCommands.kt b/app/src/main/java/com/example/hpostesting/data/constant/HemoCubeCommands.kt
index 993b8fd..fcce479 100644
--- a/app/src/main/java/com/example/hpostesting/data/constant/HemoCubeCommands.kt
+++ b/app/src/main/java/com/example/hpostesting/data/constant/HemoCubeCommands.kt
@@ -16,4 +16,5 @@ enum class HemoCubeCommands(val command: String) {
THIRD_GAIN_COMMAND("V\r"),
FORTH_GAIN_COMMAND("W\r"),
CHECK_CUVETTE_COMMAND("L\r"),
+ CHECK_TEMP_COMMAND("A\r"),
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/hpostesting/presentation/deviceinfo/DeviceFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/deviceinfo/DeviceFragment.kt
index b771ecc..f6d8a2b 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/deviceinfo/DeviceFragment.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/deviceinfo/DeviceFragment.kt
@@ -25,6 +25,7 @@ class DeviceFragment : Fragment() {
private var deviceId = ""
private var startListening = MutableLiveData(false)
private var resultData: String = ""
+ private var hardwareId = ""
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?,
): View {
@@ -42,6 +43,9 @@ class DeviceFragment : Fragment() {
private fun initViews() {
deviceId = sharedPreferences.getString(Constants.DEVICE_ID, "").toString()
+ deviceViewModel.deviceMessages.observe(viewLifecycleOwner) {
+ binding.tvSubtitle4.text = it
+ }
listenToHemoCube()
getDeviceId()
}
@@ -53,11 +57,25 @@ class DeviceFragment : Fragment() {
object : UsbServiceListener {
@SuppressLint("SetTextI18n")
override fun onUsbRead(data: ByteArray?) {
- data?.let {
- val stringData = String(it)
- deviceViewModel.messages.postValue(stringData)
- binding.tvSubtitle4.text = "Device ID: ${stringData}"
- }
+// data?.let {
+// val stringData = String(it)
+// deviceViewModel.messages.postValue(stringData)
+// binding.tvSubtitle4.text = "Device ID"
+// }
+ }
+
+ override fun onUsbError(e: Exception?) {
+ deviceViewModel.progressBar.postValue(false)
+ }
+ })
+ }
+ private fun getTemp() {
+ deviceViewModel.progressBar.postValue(true)
+ (activity as DeviceActivity).mService.sendAndListenToHemoCube(
+ HemoCubeCommands.CHECK_TEMP_COMMAND,
+ object : UsbServiceListener {
+ @SuppressLint("SetTextI18n")
+ override fun onUsbRead(data: ByteArray?) {
}
override fun onUsbError(e: Exception?) {
@@ -81,18 +99,37 @@ class DeviceFragment : Fragment() {
deviceViewModel.messages.postValue(stringData)
fullReadOutput.append(stringData)
resultData += stringData
- binding.tvSubtitle4.text = "Device ID : ${resultData}"
- if (stringData.contains("SN")) {
- val slData = stringData.split(" ")
- if (slData.size > 1) {
- val hardwareId = slData[1].trim()
- with(sharedPreferences.edit()) {
- putString(Constants.DEVICE_ID, hardwareId)
- apply()
- }
-// binding.tvSubtitle4.text = hardwareId
- }
+ deviceViewModel.deviceMessages.postValue(resultData)
+// binding.tvSubtitle4.text = ""
+
+ if (stringData.contains("SNE")) {
+// val slData = stringData.split(" ")
+// if (slData.size > 1) {
+// val hardwareId = slData[1].trim()
+// with(sharedPreferences.edit()) {
+// putString(Constants.DEVICE_ID, hardwareId)
+// apply()
+// }
+// binding.tvSubtitle4.text = "Device ID :$hardwareId"
+// }
+ hardwareId = extractV2HardwareId(resultData).toString()
+ getTemp()
}
+ else if (stringData.contains("#AC")) {
+// val slData = stringData.split(" ")
+// if (slData.size > 1) {
+// val hardwareId = slData[5].trim()
+// with(sharedPreferences.edit()) {
+// putString(Constants.DEVICE_ID, hardwareId)
+// apply()
+// }
+// // binding.tvSubtitle4.text = hardwareId
+// }
+ val lines = resultData.split("\n")
+ var temp = lines[2]
+ binding.tvSubtitleNew.text = "Device ID : "+hardwareId+"\nTemperature : $temp"
+ }
+
}
}
@@ -104,4 +141,10 @@ class DeviceFragment : Fragment() {
Firebase.crashlytics.recordException(e)
}
}
-}
\ No newline at end of file
+ fun extractV2HardwareId(input: String): String? {
+ val pattern = Regex("SNS\\s*(.*?)\\s*SNE")
+ val matchResult: MatchResult? = pattern.find(input)
+
+ return matchResult?.groups?.get(1)?.value
+ }
+}
diff --git a/app/src/main/res/layout/fragment_device.xml b/app/src/main/res/layout/fragment_device.xml
index 84d4928..06fe488 100644
--- a/app/src/main/res/layout/fragment_device.xml
+++ b/app/src/main/res/layout/fragment_device.xml
@@ -8,9 +8,23 @@
+
-
\ No newline at end of file
+