From 4b5571b5e0e1d0fb7e5759eed482e3e584594fe5 Mon Sep 17 00:00:00 2001
From: xiaowusky <chenyangyang3858@dingtalk.com>
Date: Thu, 19 Oct 2023 17:28:39 +0800
Subject: [PATCH] =?UTF-8?q?desc:=E6=B0=94=E4=BD=93=E7=9B=B8=E5=85=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../yinuo/safetywatcher/watcher/port/GasConstants.kt | 12 ++++++++++++
 .../yinuo/safetywatcher/watcher/port/GasUtilss.kt    |  4 ++--
 .../yinuo/safetywatcher/watcher/port/cmd/GasType.kt  |  9 +++++++++
 3 files changed, 23 insertions(+), 2 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 ac407f6..30c5d30 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
@@ -4,6 +4,9 @@ import com.yinuo.safetywatcher.watcher.port.cmd.CH4
 import com.yinuo.safetywatcher.watcher.port.cmd.CO
 import com.yinuo.safetywatcher.watcher.port.cmd.H2S
 
+//气体浓度单位转换系数
+const val TEMPERATURE_COEFFICIENT: Float = (273 + 25) / 273f
+
 // 后缀
 const val MIN_SUFFIX = "min"
 const val MAX_SUFFIX = "max"
@@ -41,6 +44,15 @@ const val UNIT_LEL = "%LEL"
 const val MOLECULAR_CO = 28
 const val MOLECULAR_H2S = 34
 const val MOLECULAR_CH4 = 16
+const val MOLECULAR_O2 = 32
+const val MOLECULAR_H2 = 2
+const val MOLECULAR_NH3 = 17
+const val MOLECULAR_S02 = 64
+const val MOLECULAR_CL2 = 71
+const val MOLECULAR_NO2 = 46
+const val MOLECULAR_NO = 30
+const val MOLECULAR_HF = 20
+const val MOLECULAR_C02 = 44
 
 val molecular_map = hashMapOf<String, Int>(
     Pair(CO, MOLECULAR_CO),
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 a63a2f9..a3f47e2 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
@@ -129,11 +129,11 @@ fun getGasRange(gasType: String, gasUnit: String): String {
 }
 
 fun ppm2mgm3(ppmValue: Float, molecular: Int): Float {
-    return ppmValue * molecular / 22.4f
+    return ppmValue * molecular / (22.4f * TEMPERATURE_COEFFICIENT)
 }
 
 fun mgm3ToPpm(mValue: Float, molecular: Int): Float {
-    return mValue * 22.4f / molecular
+    return mValue * 22.4f * TEMPERATURE_COEFFICIENT / molecular
 }
 
 fun ch4Lel2ppm(lelValue: Float): Float {
diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/cmd/GasType.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/cmd/GasType.kt
index 6596264..845914d 100644
--- a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/cmd/GasType.kt
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/cmd/GasType.kt
@@ -4,6 +4,15 @@ const val CO = "CO"
 const val CH4 = "CH4"
 const val O2 = "O2"
 const val H2S = "H2S"
+const val H2 = "H2"
+const val NH3 = "NH3"
+const val S02 = "S02"
+const val CL2 = "CL2"
+const val NO2 = "NO2"
+const val NO = "NO"
+const val HF = "HF"
+const val C02 = "C02"
+const val VOCs = "VOCs"
 
 enum class GasType(val code: Int, val desc: String) {
     TYPE_CO(5, CO),