diff --git a/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt b/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt index 81c091d..543e622 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt @@ -1,5 +1,7 @@ package com.casic.app.safetreecontroller.fragments +import android.graphics.Color +import android.graphics.Typeface import android.os.Bundle import android.os.Handler import android.os.Message @@ -17,6 +19,7 @@ import com.github.mikephil.charting.data.LineDataSet import com.github.mikephil.charting.interfaces.datasets.ILineDataSet import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.show @@ -105,9 +108,9 @@ binding.updateThresholdButton.setOnClickListener { //更新甲烷阈值 - val threshold = binding.thresholdView.text.toString().toInt() - if (threshold > 9999) { - "报警阈值最大可设置9999".show(requireContext()) + val threshold = binding.thresholdView.text.toString().toFloat() + if (threshold >= 20f) { + "报警阈值不能超过20% VOL".show(requireContext()) return@setOnClickListener } @@ -116,7 +119,8 @@ ?: return@setOnClickListener val message = weakReferenceHandler.obtainMessage() message.what = LocaleConstant.UPDATE_GAS_THRESHOLD_CODE - message.obj = threshold + //用户使用 % VOL,但是单片机只能设置ppm`m,所以需要转换一下 + message.obj = (threshold * 500).toInt() weakReferenceHandler.sendMessage(message) } @@ -129,7 +133,26 @@ when (msg.what) { LocaleConstant.QUERY_CPU_TEMPERATURE_RESPONSE_CODE -> { isGetTemperature = true - binding.cpuTemperatureView.text = "${msg.obj} ℃" + val cpuTemperature = msg.obj as Float + binding.cpuTemperatureView.text = "$cpuTemperature ℃" + when (cpuTemperature) { + in 0f..40f -> { + binding.cpuTemperatureView.setTextColor(Color.BLACK) + binding.cpuTemperatureView.typeface = Typeface.DEFAULT + } + + in 41f..60f -> { + binding.cpuTemperatureView.setTextColor( + R.color.orange.convertColor(requireContext()) + ) + binding.cpuTemperatureView.typeface = Typeface.DEFAULT + } + + else -> { + binding.cpuTemperatureView.setTextColor(Color.RED) + binding.cpuTemperatureView.typeface = Typeface.DEFAULT_BOLD + } + } } LocaleConstant.QUERY_METHANE_RESPONSE_CODE -> { @@ -171,7 +194,7 @@ } //回显甲烷默认阈值 - val value = SaveKeyValues.getValue(LocaleConstant.METHANE_DEFAULT_VALUE_KEY, 1000) as Int + val value = SaveKeyValues.getValue(LocaleConstant.METHANE_DEFAULT_VALUE_KEY, 1.99f) as Float binding.thresholdView.setText(value.toString()) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt b/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt index 81c091d..543e622 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt @@ -1,5 +1,7 @@ package com.casic.app.safetreecontroller.fragments +import android.graphics.Color +import android.graphics.Typeface import android.os.Bundle import android.os.Handler import android.os.Message @@ -17,6 +19,7 @@ import com.github.mikephil.charting.data.LineDataSet import com.github.mikephil.charting.interfaces.datasets.ILineDataSet import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.show @@ -105,9 +108,9 @@ binding.updateThresholdButton.setOnClickListener { //更新甲烷阈值 - val threshold = binding.thresholdView.text.toString().toInt() - if (threshold > 9999) { - "报警阈值最大可设置9999".show(requireContext()) + val threshold = binding.thresholdView.text.toString().toFloat() + if (threshold >= 20f) { + "报警阈值不能超过20% VOL".show(requireContext()) return@setOnClickListener } @@ -116,7 +119,8 @@ ?: return@setOnClickListener val message = weakReferenceHandler.obtainMessage() message.what = LocaleConstant.UPDATE_GAS_THRESHOLD_CODE - message.obj = threshold + //用户使用 % VOL,但是单片机只能设置ppm`m,所以需要转换一下 + message.obj = (threshold * 500).toInt() weakReferenceHandler.sendMessage(message) } @@ -129,7 +133,26 @@ when (msg.what) { LocaleConstant.QUERY_CPU_TEMPERATURE_RESPONSE_CODE -> { isGetTemperature = true - binding.cpuTemperatureView.text = "${msg.obj} ℃" + val cpuTemperature = msg.obj as Float + binding.cpuTemperatureView.text = "$cpuTemperature ℃" + when (cpuTemperature) { + in 0f..40f -> { + binding.cpuTemperatureView.setTextColor(Color.BLACK) + binding.cpuTemperatureView.typeface = Typeface.DEFAULT + } + + in 41f..60f -> { + binding.cpuTemperatureView.setTextColor( + R.color.orange.convertColor(requireContext()) + ) + binding.cpuTemperatureView.typeface = Typeface.DEFAULT + } + + else -> { + binding.cpuTemperatureView.setTextColor(Color.RED) + binding.cpuTemperatureView.typeface = Typeface.DEFAULT_BOLD + } + } } LocaleConstant.QUERY_METHANE_RESPONSE_CODE -> { @@ -171,7 +194,7 @@ } //回显甲烷默认阈值 - val value = SaveKeyValues.getValue(LocaleConstant.METHANE_DEFAULT_VALUE_KEY, 1000) as Int + val value = SaveKeyValues.getValue(LocaleConstant.METHANE_DEFAULT_VALUE_KEY, 1.99f) as Float binding.thresholdView.setText(value.toString()) } } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_methane_monitor.xml b/app/src/main/res/layout/fragment_methane_monitor.xml index 28b904f..423446a 100644 --- a/app/src/main/res/layout/fragment_methane_monitor.xml +++ b/app/src/main/res/layout/fragment_methane_monitor.xml @@ -72,13 +72,21 @@ android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/bg_solid_layout_white_radius_5" - android:inputType="number" + android:inputType="numberDecimal" android:maxLength="4" android:padding="@dimen/dp_5" android:singleLine="true" - android:textColor="@color/black" + android:textColor="@color/red" android:textSize="@dimen/sp_16" /> + +