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"),
|
THIRD_GAIN_COMMAND("V\r"),
|
||||||
FORTH_GAIN_COMMAND("W\r"),
|
FORTH_GAIN_COMMAND("W\r"),
|
||||||
CHECK_CUVETTE_COMMAND("L\r"),
|
CHECK_CUVETTE_COMMAND("L\r"),
|
||||||
|
CHECK_TEMP_COMMAND("A\r"),
|
||||||
}
|
}
|
||||||
@@ -25,6 +25,7 @@ class DeviceFragment : Fragment() {
|
|||||||
private var deviceId = ""
|
private var deviceId = ""
|
||||||
private var startListening = MutableLiveData(false)
|
private var startListening = MutableLiveData(false)
|
||||||
private var resultData: String = ""
|
private var resultData: String = ""
|
||||||
|
private var hardwareId = ""
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?,
|
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?,
|
||||||
): View {
|
): View {
|
||||||
@@ -42,6 +43,9 @@ class DeviceFragment : Fragment() {
|
|||||||
|
|
||||||
private fun initViews() {
|
private fun initViews() {
|
||||||
deviceId = sharedPreferences.getString(Constants.DEVICE_ID, "").toString()
|
deviceId = sharedPreferences.getString(Constants.DEVICE_ID, "").toString()
|
||||||
|
deviceViewModel.deviceMessages.observe(viewLifecycleOwner) {
|
||||||
|
binding.tvSubtitle4.text = it
|
||||||
|
}
|
||||||
listenToHemoCube()
|
listenToHemoCube()
|
||||||
getDeviceId()
|
getDeviceId()
|
||||||
}
|
}
|
||||||
@@ -53,11 +57,25 @@ class DeviceFragment : Fragment() {
|
|||||||
object : UsbServiceListener {
|
object : UsbServiceListener {
|
||||||
@SuppressLint("SetTextI18n")
|
@SuppressLint("SetTextI18n")
|
||||||
override fun onUsbRead(data: ByteArray?) {
|
override fun onUsbRead(data: ByteArray?) {
|
||||||
data?.let {
|
// data?.let {
|
||||||
val stringData = String(it)
|
// val stringData = String(it)
|
||||||
deviceViewModel.messages.postValue(stringData)
|
// deviceViewModel.messages.postValue(stringData)
|
||||||
binding.tvSubtitle4.text = "Device ID: ${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?) {
|
override fun onUsbError(e: Exception?) {
|
||||||
@@ -81,18 +99,37 @@ class DeviceFragment : Fragment() {
|
|||||||
deviceViewModel.messages.postValue(stringData)
|
deviceViewModel.messages.postValue(stringData)
|
||||||
fullReadOutput.append(stringData)
|
fullReadOutput.append(stringData)
|
||||||
resultData += stringData
|
resultData += stringData
|
||||||
binding.tvSubtitle4.text = "Device ID : ${resultData}"
|
deviceViewModel.deviceMessages.postValue(resultData)
|
||||||
if (stringData.contains("SN")) {
|
// binding.tvSubtitle4.text = ""
|
||||||
val slData = stringData.split(" ")
|
|
||||||
if (slData.size > 1) {
|
if (stringData.contains("SNE")) {
|
||||||
val hardwareId = slData[1].trim()
|
// val slData = stringData.split(" ")
|
||||||
with(sharedPreferences.edit()) {
|
// if (slData.size > 1) {
|
||||||
putString(Constants.DEVICE_ID, hardwareId)
|
// val hardwareId = slData[1].trim()
|
||||||
apply()
|
// with(sharedPreferences.edit()) {
|
||||||
}
|
// putString(Constants.DEVICE_ID, hardwareId)
|
||||||
// binding.tvSubtitle4.text = 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)
|
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
|
<TextView
|
||||||
android:id="@+id/tv_subtitle4"
|
android:id="@+id/tv_subtitle4"
|
||||||
style="@style/title1_1"
|
style="@style/title1_1"
|
||||||
android:layout_width="0dp"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="50dp"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="24dp"
|
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:layout_marginTop="50dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="Start"
|
android:text="Start"
|
||||||
@@ -20,4 +34,4 @@
|
|||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|||||||
Reference in New Issue
Block a user