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 a378f14..ec3a2f3 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 @@ -46,6 +46,8 @@ object GasPortUtils { ComMultiPortUtils.sendMsg(PORT_PATH, CMD.SENSOR_3) Thread.sleep(READ_MSG_INTERVAL) ComMultiPortUtils.sendMsg(PORT_PATH, CMD.SENSOR_4) + Thread.sleep(READ_MSG_INTERVAL) + ComMultiPortUtils.sendMsg(PORT_PATH, CMD.SENSOR_5) } } catch (e: Exception) { e.printStackTrace() @@ -55,4 +57,8 @@ object GasPortUtils { readGasMsgThread!!.start() } } + + fun setSpeed(speed: Int) { + ComMultiPortUtils.sendMsg(PORT_PATH, CMD.buildSpeedCmd(speed)) + } } \ No newline at end of file diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/cmd/CMD.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/cmd/CMD.kt index 1cd4207..f658b18 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/cmd/CMD.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/cmd/CMD.kt @@ -2,9 +2,20 @@ package com.yinuo.safetywatcher.watcher.port.cmd class CMD { companion object { + fun buildSpeedCmd(speed: Int): ByteArray { + var legalSpeed = speed + if (speed < 0) { + legalSpeed = 0 + } else if (speed > 9) { + legalSpeed = 9 + } + return byteArrayOf(0x01, 0x06, 0x05, 0x00, 0x00, legalSpeed.toByte()).crc16() + } + val SENSOR_1 = byteArrayOf(0x01, 0x03, 0x00, 0x00, 0x00, 0x0A).crc16() val SENSOR_2 = byteArrayOf(0x01, 0x03, 0x01, 0x00, 0x00, 0x0A).crc16() val SENSOR_3 = byteArrayOf(0x01, 0x03, 0x02, 0x00, 0x00, 0x0A).crc16() val SENSOR_4 = byteArrayOf(0x01, 0x03, 0x03, 0x00, 0x00, 0x0A).crc16() + val SENSOR_5 = byteArrayOf(0x01, 0x03, 0x04, 0x00, 0x00, 0x0A).crc16() } } \ No newline at end of file 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 d536ddc..46a9eec 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 @@ -157,8 +157,9 @@ class HomeActivity : NoOptionsActivity() { //mHasSensorData = true mBinding.errorView.visibility = if (!AppData.hasCameraData()) View.VISIBLE else View.GONE - val errorRes = - if (!AppData.hasCameraData() && !AppData.hasSensorData()) R.drawable.ic_nosingal else R.drawable.ic_icon +// val errorRes = +// if (!AppData.hasCameraData() && !AppData.hasSensorData()) R.drawable.ic_nosingal else R.drawable.ic_icon + val errorRes = R.drawable.ic_nosingal mBinding.errorView.setImageResource(errorRes) } } diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SpeedSettingActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SpeedSettingActivity.kt index 222b46b..498a869 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SpeedSettingActivity.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SpeedSettingActivity.kt @@ -3,9 +3,11 @@ package com.yinuo.safetywatcher.watcher.ui import android.view.View import android.widget.SeekBar import android.widget.SeekBar.OnSeekBarChangeListener +import com.common.commonlib.utils.MMKVUtils import com.yinuo.safetywatcher.R import com.yinuo.safetywatcher.databinding.ActivitySpeedSettingBinding import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity +import com.yinuo.safetywatcher.watcher.port.GasPortUtils class SpeedSettingActivity : NoOptionsActivity() { @@ -22,12 +24,12 @@ class SpeedSettingActivity : NoOptionsActivity() { } override fun initView() { - val initLight = 0 - mBinding.sbSpeed.progress = initLight - mBinding.tvSpeed.text = getShowPercent(initLight) + val initSpeed = getDefaultSpeed() + mBinding.sbSpeed.progress = initSpeed + mBinding.tvSpeed.text = getShowSpeed(initSpeed) mBinding.sbSpeed.setOnSeekBarChangeListener(object : OnSeekBarChangeListener { override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) { - mBinding.tvSpeed.text = getShowPercent(p1) + mBinding.tvSpeed.text = getShowSpeed(p1) } override fun onStartTrackingTouch(p0: SeekBar?) { @@ -42,20 +44,34 @@ class SpeedSettingActivity : NoOptionsActivity() { onBackPressed() } mBinding.tvConfirm.setOnClickListener { - setSpeed() + setSpeed(mBinding.sbSpeed.progress) onBackPressed() } } + private fun getDefaultSpeed(): Int { + var localSpeed = MMKVUtils.getInt("speed") + if (localSpeed < 0) { + localSpeed = 4 + } + return localSpeed + } + /** * 设置转速 */ - private fun setSpeed() { - TODO("Not yet implemented") + private fun setSpeed(speedProgress: Int) { + var legalSpeed = speedProgress + if (speedProgress < 0) { + legalSpeed = 0 + } else if (speedProgress > 9) { + legalSpeed = 9 + } + MMKVUtils.put("speed", legalSpeed) + GasPortUtils.setSpeed(legalSpeed) } - private fun getShowPercent(initLight: Int): CharSequence? { - val percent = (initLight/255f * 100).toInt() - return "$percent%" + private fun getShowSpeed(speed: Int): CharSequence? { + return "${speed + 1}档" } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_setting.xml b/app/src/main/res/layout/activity_setting.xml index 64f0713..cbd4453 100644 --- a/app/src/main/res/layout/activity_setting.xml +++ b/app/src/main/res/layout/activity_setting.xml @@ -173,6 +173,11 @@ android:textSize="@dimen/_36dp" /> + + + android:progress="4" /> diff --git a/library-common/src/main/java/com/common/commonlib/utils/MMKVUtils.kt b/library-common/src/main/java/com/common/commonlib/utils/MMKVUtils.kt index 6697572..e035916 100644 --- a/library-common/src/main/java/com/common/commonlib/utils/MMKVUtils.kt +++ b/library-common/src/main/java/com/common/commonlib/utils/MMKVUtils.kt @@ -48,7 +48,7 @@ object MMKVUtils { } fun getInt(key: String, vararg args: Any): Int { - return getKV(*args).getInt(key, 0) + return getKV(*args).getInt(key, -1) } fun getLong(key: String, vararg args: Any): Long {