From 6b87662fc21817345c5adf126f61a434e51bb631 Mon Sep 17 00:00:00 2001 From: xiaowusky Date: Mon, 4 Dec 2023 15:23:48 +0800 Subject: [PATCH] =?UTF-8?q?desc:=E6=B7=B7=E5=90=88=E5=A4=8D=E6=9D=82?= =?UTF-8?q?=E6=B0=94=E4=BD=93=E7=9B=B8=E4=BA=92=E5=BD=B1=E5=93=8D=E6=A0=A1?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../watcher/port/GasConstants.kt | 62 ++++++++++++++++--- .../safetywatcher/watcher/port/ParseHelper.kt | 9 ++- 2 files changed, 60 insertions(+), 11 deletions(-) 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 cbb9a31..fccf52b 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 @@ -1,19 +1,14 @@ package com.yinuo.safetywatcher.watcher.port import com.yinuo.safetywatcher.watcher.port.cmd.C02 -import com.yinuo.safetywatcher.watcher.port.cmd.CH4 -import com.yinuo.safetywatcher.watcher.port.cmd.CH4_LEL2PPMFACTOR import com.yinuo.safetywatcher.watcher.port.cmd.CL2 import com.yinuo.safetywatcher.watcher.port.cmd.CO import com.yinuo.safetywatcher.watcher.port.cmd.H2 import com.yinuo.safetywatcher.watcher.port.cmd.H2S -import com.yinuo.safetywatcher.watcher.port.cmd.H2_LEL2PPMFACTOR import com.yinuo.safetywatcher.watcher.port.cmd.HF import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_C02 -import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_CH4 import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_CL2 import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_CO -import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_H2 import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_H2S import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_HF import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_NH3 @@ -45,7 +40,7 @@ const val H2S_MAX_PPM = 15f const val H2_MIN_LEL = 25f const val H2_MAX_LEL = 50f const val NH3_MIN_PPM = 25f -const val NH3_MAX_PPM = 50f +const val NH3_MAX_PPM = 50f const val S02_MIN_PPM = 2f const val S02_MAX_PPM = 5f const val CL2_MIN_PPM = 0.5f @@ -58,6 +53,7 @@ const val HF_MIN_PPM = 2f const val HF_MAX_PPM = 6f const val C02_MIN_PPM = 5000f const val C02_MAX_PPM = 30000f + //?? TODO VOCS 这个值现在不对 const val VOCS_MIN_PPM = 2f const val VOCS_MAX_PPM = 6f @@ -69,7 +65,7 @@ const val UNIT_MGM3 = "mg/m3" const val UNIT_LEL = "%LEL" // 气体默认阈值表 -val default_threshold_map_ppm = hashMapOf( +val default_threshold_map_ppm = hashMapOf( Pair("${CO}_$MIN_SUFFIX", CO_MIN_PPM), Pair("${CO}_$MAX_SUFFIX", CO_MAX_PPM), // Pair("${CH4}_$MIN_SUFFIX", lel2ppm(CH4_MIN_LEL, CH4_LEL2PPMFACTOR)), @@ -96,7 +92,7 @@ val default_threshold_map_ppm = hashMapOf( ) // 气体默认阈值表 -val default_threshold_map_mgm3 = hashMapOf( +val default_threshold_map_mgm3 = hashMapOf( Pair("${CO}_$MIN_SUFFIX", ppm2mgm3(CO_MIN_PPM, MOLECULAR_CO)), Pair("${CO}_$MAX_SUFFIX", ppm2mgm3(CO_MAX_PPM, MOLECULAR_CO)), // Pair("${CH4}_$MIN_SUFFIX", ppm2mgm3(lel2ppm(CH4_MIN_LEL, CH4_LEL2PPMFACTOR), MOLECULAR_CH4)), @@ -121,7 +117,53 @@ val default_threshold_map_mgm3 = hashMapOf( Pair("${C02}_$MAX_SUFFIX", ppm2mgm3(C02_MAX_PPM, MOLECULAR_C02)), ) -val default_threshold_map_unit = hashMapOf>( +val default_threshold_map_unit = hashMapOf( Pair(UNIT_PPM, default_threshold_map_ppm), Pair(UNIT_MGM3, default_threshold_map_mgm3), -) \ No newline at end of file +) + + +val so2_gas_cross_impact_map = hashMapOf( + Pair(CO, -0.002f), + Pair(NO2, 1.67f), + Pair(H2S, -0.004f), + Pair(CL2, 0.4f) +) + +val co_gas_cross_impact_map = hashMapOf( + Pair(H2S, -0.25f), + Pair(S02, -0.25f), + Pair(NO, -0.5f), + Pair(H2, -0.125f) +) + +val h2s_gas_cross_impact_map = hashMapOf( + Pair(CO, -0.02f) +) + +val nh3_gas_cross_impact_map = hashMapOf( + Pair(CO, 0.02f), + Pair(H2S, -3.4f), + Pair(C02, 0.0005f), + Pair(H2, 0.0015f), + Pair(S02, -1.6f), + Pair(NO2, 1f), + Pair(CL2, 0.5f) +) + +val no_gas_cross_impact_map = hashMapOf( + Pair(H2S, -0.3f), + Pair(NO2, 0.1f) +) + +/** + * 气体交叉影响系数表 + */ +val gas_cross_impact_map = hashMapOf( + Pair(S02, so2_gas_cross_impact_map), + Pair(CO, co_gas_cross_impact_map), + Pair(H2S, h2s_gas_cross_impact_map), +// Pair(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/ParseHelper.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/ParseHelper.kt index 3984740..d48e4b5 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 @@ -307,7 +307,7 @@ object ParseHelper { } /** - * 根据根据其他气体修正当前气体值 + * 根据其他气体修正当前气体值 * * @param type 类型 * @param value 当前值 @@ -330,6 +330,13 @@ object ParseHelper { * 获取气体之间互相的影响系数 */ private fun getInfluenceCoefficient(type: GasTypeEnum, gasName: String): Float { + val typeKey = type.desc + if (gas_cross_impact_map.containsKey(typeKey)) { + val map = gas_cross_impact_map[typeKey] + if (map?.containsKey(gasName) == true) { + return map[gasName]!! + } + } return 0f } } \ No newline at end of file