From 9c987d6be37edf0fad28c3c8833f9d84a430df0c Mon Sep 17 00:00:00 2001 From: xiaowusky Date: Sun, 4 Feb 2024 13:45:52 +0800 Subject: [PATCH] =?UTF-8?q?desc:NO2=E5=AF=B9CL2=E7=9A=84=E4=BA=A4=E5=8F=89?= =?UTF-8?q?=E5=8E=BB=E9=99=A4=EF=BC=9B=E5=88=9D=E5=A7=8B=E5=8C=96=E5=89=8D?= =?UTF-8?q?20s=E6=B0=94=E4=BD=93=E6=95=B0=E6=8D=AE=E6=98=BE=E7=A4=BA0?= =?UTF-8?q?=EF=BC=88=E8=A7=84=E9=81=BF=E6=8C=A5=E5=8F=91=E6=80=A7=E6=9C=89?= =?UTF-8?q?=E6=9C=BA=E7=89=A9=E5=BC=80=E5=A7=8B=E6=98=BE=E7=A4=BA=E6=BB=A1?= =?UTF-8?q?=E9=87=8F=E7=A8=8B=E9=97=AE=E9=A2=98=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../safetywatcher/watcher/port/GasConstants.kt | 2 +- .../safetywatcher/watcher/port/GasPortUtils.kt | 15 +++++++++++++++ .../safetywatcher/watcher/port/ParseHelper.kt | 3 +++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasConstants.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasConstants.kt index b8c46eb..c81641b 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasConstants.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasConstants.kt @@ -166,7 +166,7 @@ val gas_cross_impact_map = hashMapOf( Pair(SO2, so2_gas_cross_impact_map), Pair(CO, co_gas_cross_impact_map), Pair(H2S, h2s_gas_cross_impact_map), - Pair(CL2, cl2_gas_cross_impact_map), +// Pair(CL2, cl2_gas_cross_impact_map), Pair(NH3, nh3_gas_cross_impact_map), Pair(NO, no_gas_cross_impact_map), ) 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 92c40b3..ef9bf88 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 @@ -20,6 +20,8 @@ object GasPortUtils { private var toDoCmdList: ArrayList = ArrayList() private val listeners: ArrayList<(ByteArray) -> Unit> = ArrayList() private val switchStatus = booleanArrayOf(true, true, true, true, true) + private var initTime = 0L + private var afterDelay = false fun setSwitch(index: Int, status: Boolean) { switchStatus[index] = status @@ -39,6 +41,8 @@ object GasPortUtils { } fun initPort() { + initTime = System.currentTimeMillis() + afterDelay = false openPorts() readGasMsg() TxtOverlay.startShow(null) @@ -141,4 +145,15 @@ object GasPortUtils { toDoCmdList.add(buildSensorRangeCmd(index, value)) } } + + /** + * 是否初始化超过20s + */ + fun isInitOver20Second(): Boolean { + if (afterDelay || System.currentTimeMillis() - initTime > 20000) { + afterDelay = true + return true + } + return false + } } \ No newline at end of file diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/ParseHelper.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/ParseHelper.kt index 3d7312c..c780604 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/ParseHelper.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/ParseHelper.kt @@ -117,6 +117,9 @@ object ParseHelper { c18.plus(c17).plus(java.lang.Long.toBinaryString(valueHexLong)).toInt(2) / 10f.pow( pointNum ) + if (!GasPortUtils.isInitOver20Second()) { + value = 0f + } // 量程 val rangHex: String = HexUtils.byteArrToHex(it, 11, 11 + 2) val rangHexLong: Long = HexUtils.hexToLong(rangHex)