From 86d9b53522527837e5509081daf6e9bbe49eda99 Mon Sep 17 00:00:00 2001 From: xiaowusky Date: Thu, 23 Nov 2023 09:52:49 +0800 Subject: [PATCH] =?UTF-8?q?desc:=E6=9C=80=E5=A4=A7=E9=87=8F=E7=A8=8B?= =?UTF-8?q?=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../safetywatcher/watcher/port/ParseHelper.kt | 25 ++++++++++++------- .../safetywatcher/watcher/ui/HomeActivity.kt | 3 +++ .../com/common/commonlib/db/entity/Warning.kt | 1 + 3 files changed, 20 insertions(+), 9 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 9290aff..11c36d6 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 @@ -54,7 +54,7 @@ object ParseHelper { 1, 4, 5, 6, 8, 9, 11, 12 -> { updateGasTypeDb(gasType, gasIndex, GasPortStatus.OK) setFlag(gasIndex, gasType) - parseGasData(gasType, it) + parseGasData(gasType, it, status) } // 故障 2, 3, 7 -> { @@ -73,7 +73,7 @@ object ParseHelper { } } - private fun parseGasData(type: GasTypeEnum, it: ByteArray) { + private fun parseGasData(type: GasTypeEnum, it: ByteArray, status: Int) { val unitHex: String = HexUtils.byteArrToHex(it, 3, 3 + 2) val unitToLong: Long = HexUtils.hexToLong(unitHex) // 10000000000000 @@ -106,8 +106,10 @@ object ParseHelper { // 量程 val rangHex: String = HexUtils.byteArrToHex(it, 11, 11 + 2) val rangHexLong: Long = HexUtils.hexToLong(rangHex) + // 是否超量程 + val overRange = value > rangHexLong || status == 8 - LogUtils.w("receive msg 单位转换前 $type, 浓度 = $value $unit") + LogUtils.w("receive msg 单位转换前 $type, 浓度 = $value $unit, 最大量程 = $rangHexLong") //根据单位进行数值转换 val localGasUnit = getLocalGasUnit(type.desc) @@ -117,7 +119,7 @@ object ParseHelper { } // 插入 - insertGasData(type, value, localGasUnit) + insertGasData(type, value, localGasUnit, overRange) } private fun setOverlayData() { @@ -153,7 +155,7 @@ object ParseHelper { /** * 插入气体数据 */ - private fun insertGasData(typeEnum: GasTypeEnum, value: Float, unit: String) { + private fun insertGasData(typeEnum: GasTypeEnum, value: Float, unit: String, overRange: Boolean) { GlobalScope.launch(Dispatchers.IO) { // 阈值范围 val min = getGasLowThreshold(typeEnum.desc, unit) @@ -169,7 +171,7 @@ object ParseHelper { val gasDao = DBUtils.gasDao() gasDao.insert(gas) - dealWarning(typeEnum, value, min, max, unit) + dealWarning(typeEnum, value, min, max, unit, overRange) // 设置水印数据 setOverlayData() @@ -184,7 +186,8 @@ object ParseHelper { value: Float, min: Float, max: Float, - unit: String + unit: String, + overRange: Boolean ) { // 告警处理 val warningDao = DBUtils.warningDao() @@ -200,11 +203,13 @@ object ParseHelper { unit, System.currentTimeMillis(), min, - max + max, + overRange ) ) } else { warning.gasValue = value + warning.overRange = overRange warningDao.update(warning) } } else { @@ -223,11 +228,13 @@ object ParseHelper { unit, System.currentTimeMillis(), min, - max + max, + overRange ) ) } else { warning.gasValue = value + warning.overRange = overRange warningDao.update(warning) } } else { diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HomeActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HomeActivity.kt index 531eb93..fc2fdf3 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HomeActivity.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HomeActivity.kt @@ -221,6 +221,9 @@ class HomeActivity : NoOptionsActivity() { warningList?.forEachIndexed { index, it -> builder.append(it.gasName).append("浓度异常,") .append("当前值: ${it.gasValue} ${it.unit}") + if (it.overRange){ + builder.append(",且超过传感器量程") + } if (index != warningList.size - 1) { builder.append("\n") } diff --git a/library-common/src/main/java/com/common/commonlib/db/entity/Warning.kt b/library-common/src/main/java/com/common/commonlib/db/entity/Warning.kt index 043b330..5f73750 100644 --- a/library-common/src/main/java/com/common/commonlib/db/entity/Warning.kt +++ b/library-common/src/main/java/com/common/commonlib/db/entity/Warning.kt @@ -12,6 +12,7 @@ data class Warning( @ColumnInfo(name = "start_time") var startTime: Long, @ColumnInfo(name = "threshold_low") var thresholdLow: Float = 0f, @ColumnInfo(name = "threshold_high") var thresholdHigh: Float = 0f, + @ColumnInfo(name = "over_range") var overRange: Boolean = false, @ColumnInfo(name = "end_time") var endTime: Long = -1L, @PrimaryKey(autoGenerate = true) var id: Int = 0 )