From b29c8dba44fd339a01c22230b3269554b6bca86c Mon Sep 17 00:00:00 2001 From: xiaowusky Date: Thu, 7 Mar 2024 14:02:14 +0800 Subject: [PATCH] =?UTF-8?q?desc:SOS=E3=80=81=E9=AB=98=E6=8A=A5=E9=A2=91?= =?UTF-8?q?=E7=8E=87=E6=8F=90=E9=AB=98=E4=B8=80=E5=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../safetywatcher/watcher/port/ParseHelper.kt | 4 ++++ .../safetywatcher/watcher/utils/SoundUtils.kt | 24 ++++++++++--------- 2 files changed, 17 insertions(+), 11 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 e40b672..cfd25b6 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 @@ -213,6 +213,8 @@ object ParseHelper { } else { warning.gasValue = value warning.overRange = overRange + warning.thresholdLow = min + warning.thresholdHigh = max mWarnListener?.invoke(typeEnum.desc, warning) warningDao.update(warning) return warning @@ -235,6 +237,8 @@ object ParseHelper { } else { warning.gasValue = value warning.overRange = overRange + warning.thresholdLow = min + warning.thresholdHigh = max mWarnListener?.invoke(typeEnum.desc, warning) warningDao.update(warning) return warning diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/SoundUtils.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/SoundUtils.kt index b74c79c..7ff3dc6 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/SoundUtils.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/SoundUtils.kt @@ -7,16 +7,18 @@ import com.common.commonlib.utils.LogUtils object SoundUtils { private const val TYPE_SOS = 0 - - private const val TYPE_WARN_HIGHT = 1 + private const val TYPE_WARN_HIGH = 1 private const val TYPE_WARN_LOW = 2 private val soundMap = hashMapOf( TYPE_SOS to false, TYPE_WARN_LOW to false, - TYPE_WARN_HIGHT to false + TYPE_WARN_HIGH to false ) + + private const val DELAY_FREQUENCY_HIGH = 250 + private const val DELAY_FREQUENCY_LOW = 600 private var soundPlaying = false - private var currentPlayingDelay = 500 + private var currentPlayingDelay = DELAY_FREQUENCY_HIGH private var soundThread: HandlerThread? = null private var soundHandler: Handler? = null var gpioValue = 0 @@ -29,11 +31,11 @@ object SoundUtils { } fun warnSound(isHigh: Boolean) { - playSoundIo(if (isHigh) TYPE_WARN_HIGHT else TYPE_WARN_LOW) + playSoundIo(if (isHigh) TYPE_WARN_HIGH else TYPE_WARN_LOW) } fun warnSoundClose() { - stopSoundIo(TYPE_WARN_HIGHT) + stopSoundIo(TYPE_WARN_HIGH) stopSoundIo(TYPE_WARN_LOW) } @@ -56,10 +58,10 @@ object SoundUtils { } private fun getDelayTime(soundMap: HashMap): Int { - if (soundMap[TYPE_SOS] == true || soundMap[TYPE_WARN_HIGHT] == true) { - return 500 + if (soundMap[TYPE_SOS] == true || soundMap[TYPE_WARN_HIGH] == true) { + return DELAY_FREQUENCY_HIGH } else if (soundMap[TYPE_WARN_LOW] == true) { - return 700 + return DELAY_FREQUENCY_LOW } return 0 } @@ -69,17 +71,17 @@ object SoundUtils { soundPlaying = true while (soundPlaying) { gpioValue = if (gpioValue > 0) 0 else 1 - LogUtils.w("cyy gpioValue ${gpioValue}, delay = $currentPlayingDelay") GPIOUtils.setGpioValue(140, gpioValue) Thread.sleep(currentPlayingDelay.toLong()) checkStatus() + LogUtils.w("cyy gpioValue ${gpioValue}, delay = $currentPlayingDelay, soundPlaying = $soundPlaying") } GPIOUtils.setGpioValue(140, 0) } private fun checkStatus() { val finalStatus = - (soundMap[TYPE_SOS] == true && soundMap[TYPE_WARN_LOW] == true && soundMap[TYPE_WARN_HIGHT] == true) + (soundMap[TYPE_SOS] == true || soundMap[TYPE_WARN_LOW] == true || soundMap[TYPE_WARN_HIGH] == true) if (!finalStatus) { soundPlaying = false } else {