From d8337f7dfcb07969b11294df3b71410d5c782929 Mon Sep 17 00:00:00 2001 From: xiaowusky Date: Wed, 6 Dec 2023 09:06:00 +0800 Subject: [PATCH] =?UTF-8?q?desc:=E9=83=A8=E5=88=86=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../safetywatcher/watcher/port/GasPortUtils.kt | 17 ++++++++++++----- .../safetywatcher/watcher/port/ParseHelper.kt | 6 +++--- .../watcher/port/cmd/GasTypeEnum.kt | 2 +- .../src/main/java/org/easydarwin/TxtOverlay.kt | 10 +++++++--- .../com/common/serialport/EasySerialPort.kt | 5 +++-- 5 files changed, 26 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasPortUtils.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasPortUtils.kt index 0aec7cc..b3334b6 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasPortUtils.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasPortUtils.kt @@ -5,6 +5,9 @@ import com.common.commonlib.db.DBUtils import com.common.serialport.ComMultiPortUtils import com.yinuo.safetywatcher.watcher.port.cmd.CMD import com.yinuo.safetywatcher.watcher.port.cmd.CalibrationCmd +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch object GasPortUtils { private const val BAUD_RATE = 9600 @@ -64,14 +67,18 @@ object GasPortUtils { } fun setSpeed(speed: Int) { - ComMultiPortUtils.sendMsg(PORT_PATH, CMD.buildSpeedCmd(speed)) + GlobalScope.launch(Dispatchers.IO) { + ComMultiPortUtils.sendMsg(PORT_PATH, CMD.buildSpeedCmd(speed)) + } } fun calibrationSensor(index: Int, value: Int) { - if (value == 0) { - ComMultiPortUtils.sendMsg(PORT_PATH, CalibrationCmd(index, value).buildZeroCmd()) - } else { - ComMultiPortUtils.sendMsg(PORT_PATH, CalibrationCmd(index, value).buildSPANCmd()) + GlobalScope.launch(Dispatchers.IO) { + if (value == 0) { + ComMultiPortUtils.sendMsg(PORT_PATH, CalibrationCmd(index, value).buildZeroCmd()) + } else { + ComMultiPortUtils.sendMsg(PORT_PATH, CalibrationCmd(index, value).buildSPANCmd()) + } } } } \ No newline at end of file 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 df8ee66..5ad1e8a 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 @@ -138,8 +138,8 @@ object ParseHelper { insertGasData(type, value, localGasUnit, overRange) } - private fun setOverlayData() { - TxtOverlay.startShow(gasMap) + private fun setOverlayData(gas: Gas) { + TxtOverlay.startShow(gas) } /** @@ -166,7 +166,7 @@ object ParseHelper { gasDao.insert(gas) // 设置水印数据 - setOverlayData() + setOverlayData(gas) // 实时数据上传后台 uploadGasData(gas) 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 dd22b16..8cdb923 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 @@ -1,7 +1,7 @@ package com.yinuo.safetywatcher.watcher.port.cmd const val CO = "CO" -const val CH4 = "CH4" +const val CH4 = "可燃气" const val O2 = "O2" const val H2S = "H2S" const val H2 = "H2" diff --git a/library-push/src/main/java/org/easydarwin/TxtOverlay.kt b/library-push/src/main/java/org/easydarwin/TxtOverlay.kt index 3b3ca36..da37cfd 100644 --- a/library-push/src/main/java/org/easydarwin/TxtOverlay.kt +++ b/library-push/src/main/java/org/easydarwin/TxtOverlay.kt @@ -3,6 +3,7 @@ package org.easydarwin import android.graphics.Bitmap import android.graphics.Color import android.text.TextUtils +import android.util.Log import com.common.commonlib.db.entity.Gas import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope @@ -10,6 +11,7 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.launch import org.easydarwin.util.YUVUtils import java.text.SimpleDateFormat +import java.util.concurrent.ConcurrentHashMap /** * Created by John on 2017/2/23. @@ -81,8 +83,10 @@ object TxtOverlay { private val overlayBuilder: StringBuilder = java.lang.StringBuilder() private var looping = false + private val gasMap = ConcurrentHashMap() // 外部调用,设置待显示水印文字 - fun startShow(gasMap: HashMap) { + fun startShow(gas: Gas) { + gasMap[gas.gasName] = gas if (!looping) { looping = true GlobalScope.launch(Dispatchers.IO) { @@ -91,9 +95,9 @@ object TxtOverlay { overlayBuilder.clear() gasMap.forEach { item -> val gas = item.value - val time = gas.time // 3S内的数据我们认为有效 - if (currentTimeMillis - time <= 3000) { + Log.i("cyy", "time = ${dateFormat.format(currentTimeMillis)} gasTime = ${dateFormat.format(gas.time)}") + if (currentTimeMillis - gas.time <= 3000) { overlayBuilder.append("${gas.gasName}: ${gas.gasValue} ${gas.unit}") .append("@") } diff --git a/library-serialPort/src/main/java/com/common/serialport/EasySerialPort.kt b/library-serialPort/src/main/java/com/common/serialport/EasySerialPort.kt index c7975c0..7f4be56 100644 --- a/library-serialPort/src/main/java/com/common/serialport/EasySerialPort.kt +++ b/library-serialPort/src/main/java/com/common/serialport/EasySerialPort.kt @@ -37,12 +37,13 @@ class EasySerialPort( /** * 写消息 */ + @Synchronized open fun write(data: ByteArray) { try { val outputStream = helper?.outputStream() outputStream?.write(data) outputStream?.flush() - + Log.i("EasySerialPort", "send msg ${HexUtils.byteArrToHex(data)}") val sensorIndex = data[2] Thread.sleep(20L) // 写完之后读取数据 @@ -50,7 +51,7 @@ class EasySerialPort( val size = ips?.read(mReadBytes) if (size != null) { if (size > 0) { -// Log.i("EasySerialPort", "index $sensorIndex ;read msg ${HexUtils.byteArrToHex(mReadBytes)}") + Log.i("EasySerialPort", "index $sensorIndex ;read msg ${HexUtils.byteArrToHex(mReadBytes)}") mReceiver.invoke(mReadBytes, sensorIndex) } }