Added A command in DeviceFragment for checking temperature
This commit is contained in:
@@ -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"),
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
fun extractV2HardwareId(input: String): String? {
|
||||
val pattern = Regex("SNS\\s*(.*?)\\s*SNE")
|
||||
val matchResult: MatchResult? = pattern.find(input)
|
||||
|
||||
return matchResult?.groups?.get(1)?.value
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,9 +8,23 @@
|
||||
<TextView
|
||||
android:id="@+id/tv_subtitle4"
|
||||
style="@style/title1_1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="50dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="24dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:gravity="center"
|
||||
android:text="Start"
|
||||
android:visibility="invisible"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_subtitleNew" />
|
||||
<TextView
|
||||
android:id="@+id/tv_subtitleNew"
|
||||
style="@style/title1_1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="50dp"
|
||||
android:gravity="center"
|
||||
android:text="Start"
|
||||
@@ -20,4 +34,4 @@
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
Reference in New Issue
Block a user