desc:气体别名

main
xiaowusky 1 year ago
parent 84a51c0695
commit 2c4b453182

@ -4,6 +4,7 @@ import android.content.Context
import com.common.commonlib.db.entity.Warning
import com.common.commonlib.utils.MMKVUtils
import com.common.commonlib.utils.forShowStr
import com.common.commonlib.utils.getGasShowName
import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.watcher.port.cmd.CH4_H2
import com.yinuo.safetywatcher.watcher.port.cmd.CL2
@ -222,22 +223,22 @@ fun getShowWarnTxt(warn: Warning?): String {
warn?.let {
if (O2 == it.gasName) {
return if (it.overRange) {
"请注意,${it.gasName}浓度过高,已超过传感器量程"
"请注意,${it.gasName.getGasShowName()}浓度过高,已超过传感器量程"
} else {
if (it.gasValue < it.thresholdLow) {
"请注意,${it.gasName}浓度过低:${it.gasValue.forShowStr()} ${it.unit},有缺氧风险"
"请注意,${it.gasName.getGasShowName()}浓度过低:${it.gasValue.forShowStr()} ${it.unit},有缺氧风险"
} else {
"请注意,${it.gasName}浓度过高:${it.gasValue.forShowStr()} ${it.unit},有醉氧风险"
"请注意,${it.gasName.getGasShowName()}浓度过高:${it.gasValue.forShowStr()} ${it.unit},有醉氧风险"
}
}
} else {
return if (it.overRange) {
"请注意,${it.gasName}浓度过高,已超过传感器量程"
"请注意,${it.gasName.getGasShowName()}浓度过高,已超过传感器量程"
} else {
if (it.gasValue > it.thresholdHigh) {
"请注意,${it.gasName}气体浓度:${it.gasValue.forShowStr()} ${it.unit}超过高报值${it.thresholdHigh.forShowStr()} ${it.unit}"
"请注意,${it.gasName.getGasShowName()}气体浓度:${it.gasValue.forShowStr()} ${it.unit}超过高报值${it.thresholdHigh.forShowStr()} ${it.unit}"
} else {
"请注意,${it.gasName}气体浓度:${it.gasValue.forShowStr()} ${it.unit}超过低报值${it.thresholdLow.forShowStr()} ${it.unit}"
"请注意,${it.gasName.getGasShowName()}气体浓度:${it.gasValue.forShowStr()} ${it.unit}超过低报值${it.thresholdLow.forShowStr()} ${it.unit}"
}
}
}

@ -142,10 +142,10 @@ class ChooseParamsActivity : NoOptionsActivity() {
showToast(getString(R.string.error_interval_tip))
return
}
if (endTime - startTime > MAX_QUERY_TIME_INTERVAL) {
showToast(getString(R.string.over_max_interval_tip))
return
}
// if (endTime - startTime > MAX_QUERY_TIME_INTERVAL) {
// showToast(getString(R.string.over_max_interval_tip))
// return
// }
val timeStep = when (mBinding.rgTimeStep.checkedRadioButtonId) {
mBinding.rbS30.id -> TimeStep.SECOND_30

@ -1,5 +1,7 @@
package com.yinuo.safetywatcher.watcher.ui
import android.os.Handler
import android.os.Looper
import android.text.TextUtils
import android.view.KeyEvent
import android.view.View
@ -30,12 +32,21 @@ class SensorCalibrationActivity : NoOptionsActivity() {
return mBinding.root
}
private val mHandler by lazy {
Handler(Looper.getMainLooper())
}
private var sensorIndex = -1
private val outTimeRunnable: Runnable = Runnable {
showToast(getString(R.string.calibration_outtime_txt))
}
private val calibrationResultReceiver: (ByteArray) -> Unit = {
val startByte = it[0]
val sensorIndex = it[1]
if (startByte == 0xFF.toByte() && sensorIndex == this.sensorIndex.toByte()) {
mHandler.removeCallbacks(outTimeRunnable)
val result = it[5]
if (result == 0x00.toByte()) {
showToast(getString(R.string.calibration_success_txt))
@ -90,6 +101,7 @@ class SensorCalibrationActivity : NoOptionsActivity() {
mBinding.tvSave.setOnClickListener {
if (isZero) {
GasPortUtils.calibrationSensor(sensorIndex, 0)
mHandler.postDelayed(outTimeRunnable, 3000)
} else {
val text = mBinding.etName.text.toString()
if (TextUtils.isEmpty(text)) {
@ -100,6 +112,7 @@ class SensorCalibrationActivity : NoOptionsActivity() {
val toInt = text.toInt()
MMKVUtils.put("${gasName}_Calibration", toInt)
GasPortUtils.calibrationSensor(sensorIndex, toInt)
mHandler.postDelayed(outTimeRunnable, 3000)
}
}
}
@ -108,7 +121,8 @@ class SensorCalibrationActivity : NoOptionsActivity() {
lifecycleScope.launch(Dispatchers.Main) {
gas?.let {
if (type == gasName) {
mBinding.currentValue.text = "当前气体浓度:${gas.gasValue.forShowStr()} ${gas.unit}"
mBinding.currentValue.text =
"当前气体浓度:${gas.gasValue.forShowStr()} ${gas.unit}"
}
}
}

@ -5,6 +5,8 @@ import android.view.KeyEvent
import android.view.View
import androidx.lifecycle.lifecycleScope
import com.common.commonlib.db.DBUtils
import com.common.commonlib.utils.getGasNickName
import com.common.commonlib.utils.saveGasNickName
import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.databinding.ActivitySensorSettingBinding
import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity
@ -49,16 +51,15 @@ class SensorSettingActivity : NoOptionsActivity() {
mBinding.rgUnit.visibility = View.GONE
mBinding.rbLel.visibility = View.GONE
mBinding.rbVol.visibility = View.VISIBLE
} else if (gasName == CH4_H2){
} else if (gasName == CH4_H2) {
mBinding.rgUnit.visibility = View.GONE
mBinding.rbVol.visibility = View.GONE
mBinding.rbLel.visibility = View.VISIBLE
}
else {
} else {
mBinding.rgUnit.visibility = View.VISIBLE
mBinding.rbVol.visibility = View.GONE
mBinding.rbLel.visibility = View.GONE
if (gasName == VOCS){
if (gasName == VOCS) {
mBinding.rbMgm3.visibility = View.GONE
}
if (localGasUnit == UNIT_PPM) {
@ -72,6 +73,7 @@ class SensorSettingActivity : NoOptionsActivity() {
lifecycleScope.launch(Dispatchers.IO) {
val typeDao = DBUtils.gasTypeDao()
val gasType = typeDao.getByName(gasName)
val gasNickName = getGasNickName(gasName)
launch(Dispatchers.Main) {
if (gasType != null && !gasType.nickName.isNullOrEmpty()) {
mBinding.etName.setText(gasType.nickName)
@ -80,6 +82,7 @@ class SensorSettingActivity : NoOptionsActivity() {
}
val gasRange = getGasRange(gasName)
mBinding.etStep.text = getString(R.string.sensor_step_txt).plus(": $gasRange")
mBinding.etGasName.setText(gasNickName ?: "")
}
}
@ -111,7 +114,7 @@ class SensorSettingActivity : NoOptionsActivity() {
}
} else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
if (event.action == KeyEvent.ACTION_DOWN) {
mBinding.tvWarnSetting.requestFocus()
mBinding.etGasName.requestFocus()
return@setOnKeyListener true
}
} else if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER || keyCode == KeyEvent.KEYCODE_ENTER) {
@ -123,6 +126,26 @@ class SensorSettingActivity : NoOptionsActivity() {
return@setOnKeyListener false
}
mBinding.etGasName.setOnKeyListener { v, keyCode, event ->
if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
if (event.action == KeyEvent.ACTION_DOWN) {
mBinding.etName.requestFocus()
return@setOnKeyListener true
}
} else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
if (event.action == KeyEvent.ACTION_DOWN) {
mBinding.tvWarnSetting.requestFocus()
return@setOnKeyListener true
}
} else if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER || keyCode == KeyEvent.KEYCODE_ENTER) {
if (event.action == KeyEvent.ACTION_DOWN) {
mBinding.etGasName.showIme()
return@setOnKeyListener true
}
}
return@setOnKeyListener false
}
mBinding.etName.setOnFocusChangeListener { _, hasFocus ->
if (!hasFocus) {
mBinding.etName.hideIme()
@ -163,6 +186,10 @@ class SensorSettingActivity : NoOptionsActivity() {
typeDao.insert(gasType)
}
}
// 气体名称
val gasNickName = mBinding.etGasName.text.toString()
saveGasNickName(gasName, gasNickName)
val checkedRadioButtonId = mBinding.rgUnit.checkedRadioButtonId
var selectedUnit = UNIT_PPM
if (checkedRadioButtonId == R.id.rb_mgm3) {

@ -4,6 +4,7 @@ import android.view.LayoutInflater
import android.view.ViewGroup
import com.common.commonlib.db.entity.Gas
import com.common.commonlib.utils.forShowStr
import com.common.commonlib.utils.getGasShowName
import com.yinuo.safetywatcher.databinding.LayoutItemHistoryBinding
import com.yinuo.safetywatcher.watcher.base.BaseRvAdapter
import com.yinuo.safetywatcher.watcher.utils.DateUtils
@ -15,7 +16,7 @@ class HistoryDataAdapter :
BaseRvAdapter.BaseViewHolder<Gas, LayoutItemHistoryBinding>(binding) {
override fun bindView(data: Gas) {
binding.tvTime.text = formatTime(data.time)
binding.tvSensor.text = "${data.gasName} : ${data.gasValue.forShowStr()} ${data.unit}"
binding.tvSensor.text = "${data.gasName.getGasShowName()} : ${data.gasValue.forShowStr()} ${data.unit}"
}
private fun formatTime(time: Long): CharSequence? {

@ -20,6 +20,21 @@
android:nextFocusDown="@id/et_name"
android:background="@drawable/cloud_sync_btn_bg"/>
<EditText
android:id="@+id/et_gas_name"
android:layout_width="@dimen/_600dp"
android:layout_height="@dimen/_100dp"
android:layout_marginTop="@dimen/_40dp"
android:textSize="@dimen/_30dp"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:hint="@string/gas_name_txt"
android:singleLine="true"
android:paddingStart="@dimen/_30dp"
android:focusable="true"
android:nextFocusDown="@id/et_gas_name"
android:background="@drawable/cloud_sync_btn_bg"/>
<TextView
android:id="@+id/et_step"
android:layout_width="@dimen/_600dp"

@ -39,6 +39,7 @@
<string name="save">保存</string>
<string name="sensor_init_txt">传感器校准</string>
<string name="sensor_name_txt">传感器名称</string>
<string name="gas_name_txt">气体名称</string>
<string name="sensor_step_txt">传感器量程</string>
<string name="sensor_type_txt">传感器种类</string>
<string name="cancel">取消</string>
@ -85,4 +86,5 @@
<string name="calibration_success_txt">校准传感器成功</string>
<string name="calibration_fail_txt">校准传感器失败</string>
<string name="calibration_outtime_txt">校准传感器失败, 传感器未响应!</string>
</resources>

@ -5,6 +5,7 @@ package com.common.commonlib.utils
import android.app.Activity
import android.content.res.Resources
import android.text.TextUtils
import android.util.TypedValue
import android.view.View
import java.text.DecimalFormat
@ -46,3 +47,19 @@ fun Float.forShowStr(): String {
return decimalFormat.format(this)
}
fun String.getGasShowName(): String {
return getGasNickName(this)
}
fun getGasNickName(gasType: String): String {
val string = MMKVUtils.getString("${gasType}_gas_nickname")
if (!TextUtils.isEmpty(string)){
return string!!
}
return gasType
}
fun saveGasNickName(gasType: String, name: String) {
MMKVUtils.put("${gasType}_gas_nickname", name)
}

@ -6,6 +6,7 @@ import android.text.TextUtils
import android.util.Log
import com.common.commonlib.db.entity.Gas
import com.common.commonlib.utils.forShowStr
import com.common.commonlib.utils.getGasShowName
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.delay
@ -100,7 +101,7 @@ object TxtOverlay {
// 3S内的数据我们认为有效
Log.i("cyy", "gasTime = ${dateFormat.format(gas.time)}")
if (currentTimeMillis - gas.time <= 3000) {
overlayBuilder.append("${gas.gasName}: ${gas.gasValue.forShowStr()} ${gas.unit}")
overlayBuilder.append("${gas.gasName.getGasShowName()}: ${gas.gasValue.forShowStr()} ${gas.unit}")
.append("@")
}
}

Loading…
Cancel
Save