From 8f6128d4bd718b56f0015571ec7dd834c9b99616 Mon Sep 17 00:00:00 2001 From: xiaowusky Date: Thu, 7 Dec 2023 16:56:03 +0800 Subject: [PATCH] =?UTF-8?q?desc:=E6=98=BE=E7=A4=BA=E4=B8=A4=E4=BD=8D?= =?UTF-8?q?=E5=B0=8F=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yinuo/safetywatcher/watcher/port/GasPortUtils.kt | 5 ++++- .../com/yinuo/safetywatcher/watcher/port/GasUtilss.kt | 9 +++++---- .../watcher/ui/SensorCalibrationActivity.kt | 3 ++- .../watcher/ui/adapter/HistoryDataAdapter.kt | 3 ++- .../java/com/common/commonlib/utils/KtExtensions.kt | 11 +++++++++++ .../src/main/java/org/easydarwin/TxtOverlay.kt | 3 ++- 6 files changed, 26 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasPortUtils.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasPortUtils.kt index 2275cb3..a116f57 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasPortUtils.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasPortUtils.kt @@ -38,13 +38,16 @@ object GasPortUtils { listeners.forEach { it.invoke(array) } - if (array[0].toInt() == 0x01 && array[1].toInt() == 0x03 && array[2].toInt() == 0x14) { + if (isSensorGasData(array)) { ParseHelper.parse(array) } } } } + private fun isSensorGasData(array: ByteArray) = + array[0].toInt() == 0x01 && array[1].toInt() == 0x03 && array[2].toInt() == 0x14 + /** * 读取气体浓度 */ diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasUtilss.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasUtilss.kt index c8b56f0..51df161 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasUtilss.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasUtilss.kt @@ -3,6 +3,7 @@ package com.yinuo.safetywatcher.watcher.port import android.content.Context import com.common.commonlib.db.entity.Warning import com.common.commonlib.utils.MMKVUtils +import com.common.commonlib.utils.forShowStr import com.yinuo.safetywatcher.R import com.yinuo.safetywatcher.watcher.port.cmd.CH4_H2 import com.yinuo.safetywatcher.watcher.port.cmd.CL2 @@ -224,9 +225,9 @@ fun getShowWarnTxt(warn: Warning?): String { "请注意,${it.gasName}浓度过高,已超过传感器量程" } else { if (it.gasValue < it.thresholdLow) { - "请注意,${it.gasName}浓度过低:${it.gasValue} ${it.unit},有缺氧风险" + "请注意,${it.gasName}浓度过低:${it.gasValue.forShowStr()} ${it.unit},有缺氧风险" } else { - "请注意,${it.gasName}浓度过高:${it.gasValue} ${it.unit},有醉氧风险" + "请注意,${it.gasName}浓度过高:${it.gasValue.forShowStr()} ${it.unit},有醉氧风险" } } } else { @@ -234,9 +235,9 @@ fun getShowWarnTxt(warn: Warning?): String { "请注意,${it.gasName}浓度过高,已超过传感器量程" } else { if (it.gasValue > it.thresholdHigh) { - "请注意,${it.gasName}气体浓度:${it.gasValue} ${it.unit}超过高报值${it.thresholdHigh} ${it.unit}" + "请注意,${it.gasName}气体浓度:${it.gasValue.forShowStr()} ${it.unit}超过高报值${it.thresholdHigh.forShowStr()} ${it.unit}" } else { - "请注意,${it.gasName}气体浓度:${it.gasValue} ${it.unit}超过低报值${it.thresholdLow} ${it.unit}" + "请注意,${it.gasName}气体浓度:${it.gasValue.forShowStr()} ${it.unit}超过低报值${it.thresholdLow.forShowStr()} ${it.unit}" } } } diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorCalibrationActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorCalibrationActivity.kt index 8714240..c54dcef 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorCalibrationActivity.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorCalibrationActivity.kt @@ -5,6 +5,7 @@ import android.view.KeyEvent import android.view.View import androidx.lifecycle.lifecycleScope import com.common.commonlib.utils.MMKVUtils +import com.common.commonlib.utils.forShowStr import com.yinuo.safetywatcher.R import com.yinuo.safetywatcher.databinding.ActivitySensorCalibrationBinding import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity @@ -107,7 +108,7 @@ class SensorCalibrationActivity : NoOptionsActivity() { lifecycleScope.launch(Dispatchers.Main) { gas?.let { if (type == gasName) { - mBinding.currentValue.text = "当前气体浓度:${gas.gasValue} ${gas.unit}" + mBinding.currentValue.text = "当前气体浓度:${gas.gasValue.forShowStr()} ${gas.unit}" } } } diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/HistoryDataAdapter.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/HistoryDataAdapter.kt index 593412f..02b73ec 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/HistoryDataAdapter.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/HistoryDataAdapter.kt @@ -3,6 +3,7 @@ package com.yinuo.safetywatcher.watcher.ui.adapter import android.view.LayoutInflater import android.view.ViewGroup import com.common.commonlib.db.entity.Gas +import com.common.commonlib.utils.forShowStr import com.yinuo.safetywatcher.databinding.LayoutItemHistoryBinding import com.yinuo.safetywatcher.watcher.base.BaseRvAdapter import com.yinuo.safetywatcher.watcher.utils.DateUtils @@ -14,7 +15,7 @@ class HistoryDataAdapter : BaseRvAdapter.BaseViewHolder(binding) { override fun bindView(data: Gas) { binding.tvTime.text = formatTime(data.time) - binding.tvSensor.text = "${data.gasName} : ${data.gasValue} ${data.unit}" + binding.tvSensor.text = "${data.gasName} : ${data.gasValue.forShowStr()} ${data.unit}" } private fun formatTime(time: Long): CharSequence? { diff --git a/library-common/src/main/java/com/common/commonlib/utils/KtExtensions.kt b/library-common/src/main/java/com/common/commonlib/utils/KtExtensions.kt index e23b66d..96210d1 100644 --- a/library-common/src/main/java/com/common/commonlib/utils/KtExtensions.kt +++ b/library-common/src/main/java/com/common/commonlib/utils/KtExtensions.kt @@ -7,6 +7,7 @@ import android.app.Activity import android.content.res.Resources import android.util.TypedValue import android.view.View +import java.text.DecimalFormat /** * Kt扩展属性,判断Activity是否存活 @@ -35,3 +36,13 @@ val Float.dp: Float val Int.dp: Float get() = this.toFloat().dp + +val decimalFormat = DecimalFormat("#0.00") +fun Float.forShowValue(): Float { + return this.forShowStr().toFloat() +} + +fun Float.forShowStr(): String { + return decimalFormat.format(this) +} + diff --git a/library-push/src/main/java/org/easydarwin/TxtOverlay.kt b/library-push/src/main/java/org/easydarwin/TxtOverlay.kt index 00cb09c..bcbfacb 100644 --- a/library-push/src/main/java/org/easydarwin/TxtOverlay.kt +++ b/library-push/src/main/java/org/easydarwin/TxtOverlay.kt @@ -5,6 +5,7 @@ import android.graphics.Color import android.text.TextUtils import android.util.Log import com.common.commonlib.db.entity.Gas +import com.common.commonlib.utils.forShowStr import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.delay @@ -99,7 +100,7 @@ object TxtOverlay { // 3S内的数据我们认为有效 Log.i("cyy", "gasTime = ${dateFormat.format(gas.time)}") if (currentTimeMillis - gas.time <= 3000) { - overlayBuilder.append("${gas.gasName}: ${gas.gasValue} ${gas.unit}") + overlayBuilder.append("${gas.gasName}: ${gas.gasValue.forShowStr()} ${gas.unit}") .append("@") } }