From 66b6f9f1151159ac504647dc8ae56bd4efa4c2e5 Mon Sep 17 00:00:00 2001 From: xiaowusky Date: Tue, 28 Nov 2023 14:35:44 +0800 Subject: [PATCH] =?UTF-8?q?desc:=E4=BC=A0=E6=84=9F=E5=99=A8=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E6=9C=80=E5=A4=A7=E9=87=8F=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../safetywatcher/watcher/port/ParseHelper.kt | 10 ++--- .../watcher/port/cmd/GasTypeEnum.kt | 43 +++++++++++++------ 2 files changed, 34 insertions(+), 19 deletions(-) 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 f851353..eb4546f 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 @@ -104,13 +104,13 @@ object ParseHelper { c18.plus(c17).plus(java.lang.Long.toBinaryString(valueHexLong)).toInt(2) / 10f.pow( pointNum ) - // 量程 - val rangHex: String = HexUtils.byteArrToHex(it, 11, 11 + 2) - val rangHexLong: Long = HexUtils.hexToLong(rangHex) +// // 量程 +// val rangHex: String = HexUtils.byteArrToHex(it, 11, 11 + 2) +// val rangHexLong: Long = HexUtils.hexToLong(rangHex) // 是否超量程 - val overRange = value > rangHexLong || status == 8 + val overRange = value > type.rangMax || status == 8 - LogUtils.w("receive msg 单位转换前 $type, 浓度 = $value $unit, 最大量程 = $rangHexLong") + LogUtils.w("receive msg 单位转换前 $type, 浓度 = $value $unit, 最大量程 = ${type.rangMax}") //根据单位进行数值转换 val localGasUnit = getLocalGasUnit(type.desc) diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/cmd/GasTypeEnum.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/cmd/GasTypeEnum.kt index 84f1f74..370e238 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/cmd/GasTypeEnum.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/cmd/GasTypeEnum.kt @@ -34,26 +34,41 @@ const val CH4_LEL2PPMFACTOR = 500f const val H2S_LEL2PPMFACTOR = 430f const val H2_LEL2PPMFACTOR = 400f +// 基于传感器默认单位的最大量程 +const val RANGE_MAX_H2_CH4 = 100 +const val RANGE_MAX_O2 = 30 +const val RANGE_MAX_CO = 1000 +const val RANGE_MAX_H2S = 100 +const val RANGE_MAX_NH3 = 500 +const val RANGE_MAX_SO2 = 20 +const val RANGE_MAX_CL2 = 10 +const val RANGE_MAX_HF = 10 +const val RANGE_MAX_NO = 250 +const val RANGE_MAX_NO2 = 20 +const val RANGE_MAX_CO2 = 5000 +const val RANGE_MAX_VOCS = 100 + enum class GasTypeEnum( val code: Int, val desc: String, + val rangMax: Int, val molecular: Int = -1, val lel2ppmFactor: Float = 0f ) { - TYPE_CO(5, CO, MOLECULAR_CO), - TYPE_CH4(11, CH4, MOLECULAR_H2S, CH4_LEL2PPMFACTOR), - TYPE_O2(67, O2, MOLECULAR_CH4), - TYPE_H2S(52, H2S, MOLECULAR_O2, H2S_LEL2PPMFACTOR), - TYPE_H2(50, H2, MOLECULAR_H2, H2_LEL2PPMFACTOR), - TYPE_NH3(63, NH3, MOLECULAR_NH3), - TYPE_S02(72, S02, MOLECULAR_S02), - TYPE_CL2(17, CL2, MOLECULAR_CL2), - TYPE_NO2(60, NO2, MOLECULAR_NO2), - TYPE_NO(59, NO, MOLECULAR_NO), - TYPE_HF(57, HF, MOLECULAR_HF), - TYPE_C02(6, C02, MOLECULAR_C02), - TYPE_VOCS(80, VOCS), - TYPE_UNKNOW(-1, "UNKNOW") + TYPE_CO(5, CO, RANGE_MAX_CO, MOLECULAR_CO), + TYPE_CH4(11, CH4, RANGE_MAX_H2_CH4, MOLECULAR_H2S, CH4_LEL2PPMFACTOR), + TYPE_O2(67, O2, RANGE_MAX_O2, MOLECULAR_CH4), + TYPE_H2S(52, H2S, RANGE_MAX_H2S, MOLECULAR_O2, H2S_LEL2PPMFACTOR), + TYPE_H2(50, H2, RANGE_MAX_H2_CH4, MOLECULAR_H2, H2_LEL2PPMFACTOR), + TYPE_NH3(63, NH3, RANGE_MAX_NH3, MOLECULAR_NH3), + TYPE_S02(72, S02, RANGE_MAX_SO2, MOLECULAR_S02), + TYPE_CL2(17, CL2, RANGE_MAX_CL2, MOLECULAR_CL2), + TYPE_NO2(60, NO2, RANGE_MAX_NO2, MOLECULAR_NO2), + TYPE_NO(59, NO, RANGE_MAX_NO, MOLECULAR_NO), + TYPE_HF(57, HF, RANGE_MAX_HF, MOLECULAR_HF), + TYPE_C02(6, C02, RANGE_MAX_CO2, MOLECULAR_C02), + TYPE_VOCS(80, VOCS, RANGE_MAX_VOCS), + TYPE_UNKNOW(-1, "UNKNOW", -1) } val gasTypeMap by lazy {