From 51627e8cd44e3b8087c414d1a29e3c080b938bfd Mon Sep 17 00:00:00 2001 From: xiaowusky Date: Tue, 28 Nov 2023 15:22:59 +0800 Subject: [PATCH] =?UTF-8?q?desc:=E9=87=8F=E7=A8=8B=E3=80=81=E5=8D=95?= =?UTF-8?q?=E4=BD=8D=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../watcher/port/GasConstants.kt | 59 +++------------- .../safetywatcher/watcher/port/GasUtilss.kt | 69 +++++++++++-------- .../watcher/ui/SensorSettingActivity.kt | 20 +++--- 3 files changed, 61 insertions(+), 87 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 8f217d3..6965dac 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 @@ -58,9 +58,9 @@ const val HF_MIN_PPM = 2.2f const val HF_MAX_PPM = 4.4f const val C02_MIN_PPM = 1000f const val C02_MAX_PPM = 2000f -//?? TODO VOCS -const val VOCS_MIN_MGM3 = 0.6f -const val VOCS_MAX_MGM3 = 1.2f +//?? TODO VOCS 这个值现在不对 +const val VOCS_MIN_PPM = 0.6f +const val VOCS_MAX_PPM = 1.2f // 单位 const val UNIT_VOL = "%VOL" @@ -68,54 +68,17 @@ const val UNIT_PPM = "ppm" const val UNIT_MGM3 = "mg/m3" const val UNIT_LEL = "%LEL" -/** - * ppm单位的气体量程 - */ -val gas_range_ppm = hashMapOf( - Pair(CO, "0-1000 $UNIT_PPM"), - Pair(CH4, "0-50000 $UNIT_PPM"), - Pair(H2S, "0-100 $UNIT_PPM") -) - -/** - * mg/m3单位的气体量程 - * - * ppm -> mg/m3 X=M.C/22.4 - * X—污染物以每标立方米的毫克数表示的浓度值; - * C—污染物以 ppm 表示的浓度值; - * M—污染物的分之子量。 - * - * CO分子量 = 28 28 * 1000 * PPM_TO_MGM3_CONVERSION_RATE - * CH4分子量 = 16 16 * 50000 * PPM_TO_MGM3_CONVERSION_RATE - * H2S分子量 = 34 34 * 100 * PPM_TO_MGM3_CONVERSION_RATE - */ -val gas_range_mgm3 = hashMapOf( - Pair(CO, "0-1145.2 $UNIT_MGM3"), - Pair(CH4, "0-32720 $UNIT_MGM3"), - Pair(H2S, "0-139.06 $UNIT_MGM3") -) - -/** - * 氧气的量程 - */ -const val O2_RANGE = "0-30 $UNIT_VOL" - -/** - * 氧气的量程 TODO - */ -const val VOCS_RANGE = "0-30 $UNIT_VOL" - // 气体默认阈值表 val default_threshold_map_ppm = hashMapOf( Pair("${CO}_$MIN_SUFFIX", mgm3ToPpm(CO_MIN_MGM3, MOLECULAR_CO)), Pair("${CO}_$MAX_SUFFIX", mgm3ToPpm(CO_MAX_MGM3, MOLECULAR_CO)), - Pair("${CH4}_$MIN_SUFFIX", lel2ppm(CH4_MIN_LEL, CH4_LEL2PPMFACTOR)), - Pair("${CH4}_$MAX_SUFFIX", lel2ppm(CH4_MAX_LEL, CH4_LEL2PPMFACTOR)), +// Pair("${CH4}_$MIN_SUFFIX", lel2ppm(CH4_MIN_LEL, CH4_LEL2PPMFACTOR)), +// Pair("${CH4}_$MAX_SUFFIX", lel2ppm(CH4_MAX_LEL, CH4_LEL2PPMFACTOR)), Pair("${H2S}_$MIN_SUFFIX", mgm3ToPpm(H2S_MIN_MGM3, MOLECULAR_H2S)), Pair("${H2S}_$MAX_SUFFIX", mgm3ToPpm(H2S_MAX_MGM3, MOLECULAR_H2S)), - Pair("${H2}_$MIN_SUFFIX", lel2ppm(H2_MIN_LEL, H2_LEL2PPMFACTOR)), - Pair("${H2}_$MAX_SUFFIX", lel2ppm(H2_MAX_LEL, H2_LEL2PPMFACTOR)), +// Pair("${H2}_$MIN_SUFFIX", lel2ppm(H2_MIN_LEL, H2_LEL2PPMFACTOR)), +// Pair("${H2}_$MAX_SUFFIX", lel2ppm(H2_MAX_LEL, H2_LEL2PPMFACTOR)), Pair("${NH3}_$MIN_SUFFIX", mgm3ToPpm(NH3_MIN_MGM3, MOLECULAR_NH3)), Pair("${NH3}_$MAX_SUFFIX", mgm3ToPpm(NH3_MAX_MGM3, MOLECULAR_NH3)), Pair("${S02}_$MIN_SUFFIX", mgm3ToPpm(S02_MIN_MGM3, MOLECULAR_S02)), @@ -136,12 +99,12 @@ val default_threshold_map_ppm = hashMapOf( val default_threshold_map_mgm3 = hashMapOf( Pair("${CO}_$MIN_SUFFIX", CO_MIN_MGM3), Pair("${CO}_$MAX_SUFFIX", CO_MAX_MGM3), - Pair("${CH4}_$MIN_SUFFIX", ppm2mgm3(lel2ppm(CH4_MIN_LEL, CH4_LEL2PPMFACTOR), MOLECULAR_CH4)), - Pair("${CH4}_$MAX_SUFFIX", ppm2mgm3(lel2ppm(CH4_MAX_LEL, CH4_LEL2PPMFACTOR), MOLECULAR_CH4)), +// Pair("${CH4}_$MIN_SUFFIX", ppm2mgm3(lel2ppm(CH4_MIN_LEL, CH4_LEL2PPMFACTOR), MOLECULAR_CH4)), +// Pair("${CH4}_$MAX_SUFFIX", ppm2mgm3(lel2ppm(CH4_MAX_LEL, CH4_LEL2PPMFACTOR), MOLECULAR_CH4)), Pair("${H2S}_$MIN_SUFFIX", H2S_MIN_MGM3), Pair("${H2S}_$MAX_SUFFIX", H2S_MAX_MGM3), - Pair("${H2}_$MIN_SUFFIX", ppm2mgm3(lel2ppm(H2_MIN_LEL, H2_LEL2PPMFACTOR), MOLECULAR_H2)), - Pair("${H2}_$MAX_SUFFIX", ppm2mgm3(lel2ppm(H2_MAX_LEL, H2_LEL2PPMFACTOR), MOLECULAR_H2)), +// Pair("${H2}_$MIN_SUFFIX", ppm2mgm3(lel2ppm(H2_MIN_LEL, H2_LEL2PPMFACTOR), MOLECULAR_H2)), +// Pair("${H2}_$MAX_SUFFIX", ppm2mgm3(lel2ppm(H2_MAX_LEL, H2_LEL2PPMFACTOR), MOLECULAR_H2)), Pair("${NH3}_$MIN_SUFFIX", NH3_MIN_MGM3), Pair("${NH3}_$MAX_SUFFIX", NH3_MAX_MGM3), Pair("${S02}_$MIN_SUFFIX", S02_MIN_MGM3), 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 69f468d..61aaa6a 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 @@ -34,13 +34,18 @@ private fun getHighThresHoldKey(gasType: String): String { */ fun saveLowThreshold(gasType: String, value: Float, localGasUnit: String) { var localValue = value - if (O2 != gasType && VOCS != gasType && UNIT_MGM3 == localGasUnit) { - val typeEnum = getGasTypeEnumByDesc(gasType) - if (typeEnum.molecular > 0) { - localValue = mgm3ToPpm(value, typeEnum.molecular) + // 氧气 可燃气体 和 挥发气体不转换数值 + if (O2 == gasType || H2 == gasType || CH4 == gasType || VOCS == gasType) { + MMKVUtils.put(getLowThresHoldKey(gasType), localValue) + } else { + if (UNIT_MGM3 == localGasUnit) { + val typeEnum = getGasTypeEnumByDesc(gasType) + if (typeEnum.molecular > 0) { + localValue = mgm3ToPpm(value, typeEnum.molecular) + } } + MMKVUtils.put(getLowThresHoldKey(gasType), localValue) } - MMKVUtils.put(getLowThresHoldKey(gasType), localValue) } /** @@ -49,13 +54,17 @@ fun saveLowThreshold(gasType: String, value: Float, localGasUnit: String) { */ fun saveHighThreshold(gasType: String, value: Float, localGasUnit: String) { var localValue = value - if (O2 != gasType && VOCS != gasType && UNIT_MGM3 == localGasUnit) { - val typeEnum = getGasTypeEnumByDesc(gasType) - if (typeEnum.molecular > 0) { - localValue = mgm3ToPpm(value, typeEnum.molecular) + if (O2 == gasType || H2 == gasType || CH4 == gasType || VOCS == gasType) { + MMKVUtils.put(getLowThresHoldKey(gasType), localValue) + } else { + if (UNIT_MGM3 == localGasUnit) { + val typeEnum = getGasTypeEnumByDesc(gasType) + if (typeEnum.molecular > 0) { + localValue = mgm3ToPpm(value, typeEnum.molecular) + } } + MMKVUtils.put(getHighThresHoldKey(gasType), localValue) } - MMKVUtils.put(getHighThresHoldKey(gasType), localValue) } /** @@ -69,19 +78,25 @@ fun getGasLowThreshold(gasType: String, unit: String): Float { // 氧气特殊处理 if (O2 == gasType) { return O2_MIN + } else if (H2 == gasType || CH4 == gasType) { + return CH4_MIN_LEL } else if (VOCS == gasType) { - return VOCS_MIN_MGM3 + return VOCS_MIN_PPM } return (default_threshold_map_unit[unit])?.get(lowThresholdKey) ?: -1f } else { - if (O2 != gasType && UNIT_MGM3 == unit) { + // 氧气 可燃气体 和 挥发气体不转换数值 + if (O2 == gasType || H2 == gasType || CH4 == gasType || VOCS == gasType) { + return localVlaue + } + if (UNIT_MGM3 == unit) { val typeEnum = getGasTypeEnumByDesc(gasType) if (typeEnum.molecular > 0) { localVlaue = ppm2mgm3(localVlaue, typeEnum.molecular) } } + return localVlaue } - return localVlaue } /** @@ -95,19 +110,25 @@ fun getGasHighThreshold(gasType: String, unit: String): Float { // 氧气特殊处理 if (O2 == gasType) { return O2_MAX + } else if (H2 == gasType || CH4 == gasType) { + return CH4_MAX_LEL } else if (VOCS == gasType) { - return VOCS_MAX_MGM3 + return VOCS_MAX_PPM } return (default_threshold_map_unit[unit])?.get(highThresholdKey) ?: -1f } else { - if (O2 != gasType && UNIT_MGM3 == unit) { + // 氧气 可燃气体 和 挥发气体不转换数值 + if (O2 == gasType || H2 == gasType || CH4 == gasType || VOCS == gasType) { + return localVlaue + } + if (UNIT_MGM3 == unit) { val typeEnum = getGasTypeEnumByDesc(gasType) if (typeEnum.molecular > 0) { localVlaue = ppm2mgm3(localVlaue, typeEnum.molecular) } } + return localVlaue } - return localVlaue } @@ -139,19 +160,9 @@ fun saveGasUnit(gasType: String, unit: String) { /** * 获取气体传感器量程 */ -fun getGasRange(gasType: String, gasUnit: String): String { - if (gasType == O2) { - return O2_RANGE - } else if (gasType == VOCS) { - return VOCS_RANGE - } else { - if (gasUnit == UNIT_PPM) { - return gas_range_ppm[gasType] ?: "" - } else if (gasUnit == UNIT_MGM3) { - return gas_range_mgm3[gasType] ?: "" - } - } - return "" +fun getGasRange(gasType: String): String { + val typeEnum = getGasTypeEnumByDesc(gasType) + return "0~${typeEnum.rangMax} ${getDefaultUnit(gasType)}" } fun ppm2mgm3(ppmValue: Float, molecular: Int): Float { diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorSettingActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorSettingActivity.kt index 9141ec1..a2bf03d 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorSettingActivity.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorSettingActivity.kt @@ -77,7 +77,7 @@ class SensorSettingActivity : NoOptionsActivity() { } else { mBinding.etName.setText("${gasName}传感器") } - val gasRange = getGasRange(gasName, localGasUnit) + val gasRange = getGasRange(gasName) mBinding.etStep.text = getString(R.string.sensor_step_txt).plus(": $gasRange") } @@ -131,15 +131,15 @@ class SensorSettingActivity : NoOptionsActivity() { saveSetting() } - mBinding.rgUnit.setOnCheckedChangeListener { _, checkedId -> - if (checkedId == R.id.rb_ppm) { - val gasRange = getGasRange(gasName, UNIT_PPM) - mBinding.etStep.text = getString(R.string.sensor_step_txt).plus(": $gasRange") - } else if (checkedId == R.id.rb_mgm3) { - val gasRange = getGasRange(gasName, UNIT_MGM3) - mBinding.etStep.text = getString(R.string.sensor_step_txt).plus(": $gasRange") - } - } +// mBinding.rgUnit.setOnCheckedChangeListener { _, checkedId -> +// if (checkedId == R.id.rb_ppm) { +// val gasRange = getGasRange(gasName, UNIT_PPM) +// mBinding.etStep.text = getString(R.string.sensor_step_txt).plus(": $gasRange") +// } else if (checkedId == R.id.rb_mgm3) { +// val gasRange = getGasRange(gasName, UNIT_MGM3) +// mBinding.etStep.text = getString(R.string.sensor_step_txt).plus(": $gasRange") +// } +// } mBinding.tvSensorInit.setOnClickListener { val intent = Intent(this, SensorCalibrationActivity::class.java)