From 55c9afeed2857ea7c6cc3454b07f3c477397ea84 Mon Sep 17 00:00:00 2001 From: xiaowusky Date: Fri, 15 Dec 2023 09:58:07 +0800 Subject: [PATCH] =?UTF-8?q?desc:=E6=A0=87=E5=AE=9A=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E5=B0=8F=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../safetywatcher/watcher/port/cmd/CalibrationCmd.kt | 10 +++++++--- .../watcher/ui/SensorCalibrationActivity.kt | 9 +++++---- .../main/res/layout/activity_sensor_calibration.xml | 2 +- .../main/java/com/common/commonlib/utils/MMKVUtils.kt | 2 +- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/cmd/CalibrationCmd.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/cmd/CalibrationCmd.kt index c0a8403..7e3f9ad 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/cmd/CalibrationCmd.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/cmd/CalibrationCmd.kt @@ -20,9 +20,13 @@ class CalibrationCmd(private val index: Int, private val target: Int) { private fun build(cmd: Byte): ByteArray { var highBit: Byte = 0x00 var lowBit: Byte = 0x00 + var decimalBit: Byte = 0x00 if (target != 0) { - highBit = (target shr 8 and FF).toByte() - lowBit = (target and FF).toByte() + val intValue = target / 100 + highBit = (intValue shr 8 and FF).toByte() + lowBit = (intValue and FF).toByte() + val decimalValue = target % 100 + decimalBit = decimalValue.toByte() } return byteArrayOf( 0xFF.toByte(), @@ -32,7 +36,7 @@ class CalibrationCmd(private val index: Int, private val target: Int) { lowBit, 0x00, 0x00, - 0x00 + decimalBit ).calibrationSum() } } diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorCalibrationActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorCalibrationActivity.kt index b871aee..39df57f 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorCalibrationActivity.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorCalibrationActivity.kt @@ -71,7 +71,7 @@ class SensorCalibrationActivity : NoOptionsActivity() { mBinding.tvSave.text = getString(R.string.calibration_zero_txt) } else { mBinding.layoutInput.visibility = View.VISIBLE - val localValue = MMKVUtils.getInt("${gasName}_Calibration") + val localValue = MMKVUtils.getFloat("${gasName}_Calibration") if (localValue >= 0) { mBinding.etName.setText(localValue.toString()) } @@ -111,9 +111,10 @@ class SensorCalibrationActivity : NoOptionsActivity() { return@setOnClickListener } if (sensorIndex != -1) { - val toInt = text.toInt() - MMKVUtils.put("${gasName}_Calibration", toInt) - GasPortUtils.calibrationSensor(sensorIndex, toInt) + val toFloat = text.toFloat() + MMKVUtils.put("${gasName}_Calibration", toFloat) + // 输入的可能存在小数,*100,底层处理会自动处理 + GasPortUtils.calibrationSensor(sensorIndex, (toFloat * 100).toInt()) mHandler.postDelayed(outTimeRunnable, 3000) } } diff --git a/app/src/main/res/layout/activity_sensor_calibration.xml b/app/src/main/res/layout/activity_sensor_calibration.xml index b662127..03e4b74 100644 --- a/app/src/main/res/layout/activity_sensor_calibration.xml +++ b/app/src/main/res/layout/activity_sensor_calibration.xml @@ -38,7 +38,7 @@ android:background="@drawable/cloud_sync_btn_bg" android:focusable="true" android:hint="@string/calibration_value" - android:inputType="number" + android:inputType="number|numberDecimal" android:nextFocusDown="@id/et_name" android:paddingStart="@dimen/_30dp" android:singleLine="true" 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 e035916..756fafb 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 @@ -44,7 +44,7 @@ object MMKVUtils { } fun getFloat(key: String, vararg args: Any): Float { - return getKV(*args).getFloat(key, 0f) + return getKV(*args).getFloat(key, -1f) } fun getInt(key: String, vararg args: Any): Int {