desc:标定区分零点标定\跨度点标定

main
xiaowusky 1 year ago
parent dd554499a5
commit f1e616bb4b

@ -44,6 +44,9 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".watcher.ui.SensorCalibrationListActivity"
android:exported="false" />
<activity
android:name=".watcher.ui.SensorCalibrationActivity"
android:exported="false" />

@ -116,7 +116,9 @@ abstract class BaseActivity : AppCompatActivity() {
abstract fun getOptions(): List<CommonTopBar.Option>?
abstract fun getTopBarTitle(): String?
open fun getTopBarTitle(): String?{
return getString(R.string.back)
}
abstract fun generateContentView(): View
@ -165,6 +167,13 @@ abstract class BaseActivity : AppCompatActivity() {
baseBinding.topBar.tryFocusBackArea()
}
override fun onResume() {
super.onResume()
if (!isHome){
tryFocusBackArea()
}
}
override fun onDestroy() {
super.onDestroy()
closeLoadingDialog()

@ -5,9 +5,6 @@ import com.common.commonlib.db.DBUtils
import com.common.serialport.ComMultiPortUtils
import com.yinuo.safetywatcher.watcher.port.cmd.CMD
import com.yinuo.safetywatcher.watcher.port.cmd.CalibrationCmd
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
object GasPortUtils {
private const val BAUD_RATE = 9600
@ -18,6 +15,15 @@ object GasPortUtils {
private var mInitFlag = false
private var readGasMsgThread: Thread? = null;
private var toDoCmdList: ArrayList<ByteArray> = ArrayList<ByteArray>()
private val listeners: ArrayList<(ByteArray) -> Unit> = ArrayList<(ByteArray) -> Unit>()
fun addListener(listener: (ByteArray) -> Unit) {
listeners.add(listener)
}
fun removeListener(listener: (ByteArray) -> Unit) {
listeners.remove(listener)
}
fun initPort() {
openPorts()
@ -29,6 +35,9 @@ object GasPortUtils {
ComMultiPortUtils.releaseAll()
ComMultiPortUtils.openPort(PORT_PATH, BAUD_RATE) { array ->
mInitFlag = true
listeners.forEach {
it.invoke(array)
}
ParseHelper.parse(array)
}
}

@ -1,5 +1,6 @@
package com.yinuo.safetywatcher.watcher.ui
import android.text.TextUtils
import android.view.KeyEvent
import android.view.View
import com.yinuo.safetywatcher.R
@ -8,6 +9,7 @@ import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity
import com.yinuo.safetywatcher.watcher.port.GasPortUtils
import com.yinuo.safetywatcher.watcher.port.getDefaultUnit
import com.yinuo.safetywatcher.watcher.utils.showIme
import com.yinuo.safetywatcher.watcher.utils.showToast
class SensorCalibrationActivity : NoOptionsActivity() {
private val mBinding by lazy {
@ -22,12 +24,25 @@ class SensorCalibrationActivity : NoOptionsActivity() {
return mBinding.root
}
private val msgReceiver: (ByteArray) -> Unit = {
// TODO 解析数据
}
override fun initView() {
GasPortUtils.addListener(msgReceiver)
val sensorIndex = intent.getIntExtra("index", -1)
val gasName = intent.getStringExtra("GasType")!!
val isZero = intent.getBooleanExtra("isZero", false)
val defaultUnit = getDefaultUnit(gasName)
mBinding.tvUnit.text = defaultUnit
if (isZero) {
mBinding.layoutInput.visibility = View.GONE
mBinding.tvSave.text = getString(R.string.calibration_zero_txt)
} else {
mBinding.layoutInput.visibility = View.VISIBLE
}
/**
* 昵称edittext按键设置
*/
@ -52,12 +67,24 @@ class SensorCalibrationActivity : NoOptionsActivity() {
}
mBinding.tvSave.setOnClickListener {
mBinding.etName.text.toString().let {
if (isZero) {
GasPortUtils.calibrationSensor(sensorIndex, 0)
} else {
val text = mBinding.etName.text.toString()
if (TextUtils.isEmpty(text)) {
showToast("请输入具体浓度!")
return@setOnClickListener
}
if (sensorIndex != -1) {
val toInt = it.toInt()
val toInt = text.toInt()
GasPortUtils.calibrationSensor(sensorIndex, toInt)
}
}
}
}
override fun onDestroy() {
super.onDestroy()
GasPortUtils.removeListener(msgReceiver)
}
}

@ -0,0 +1,35 @@
package com.yinuo.safetywatcher.watcher.ui
import android.content.Intent
import android.view.View
import com.yinuo.safetywatcher.databinding.ActivitySensorCalibrationListBinding
import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity
class SensorCalibrationListActivity : NoOptionsActivity() {
private val mBinding by lazy {
ActivitySensorCalibrationListBinding.inflate(layoutInflater)
}
override fun generateContentView(): View {
return mBinding.root
}
override fun initView() {
val sensorIndex = intent.getIntExtra("index", -1)
val gasName = intent.getStringExtra("GasType")!!
mBinding.apply {
val intent =
Intent(this@SensorCalibrationListActivity, SensorCalibrationActivity::class.java)
intent.putExtra("index", sensorIndex)
intent.putExtra("GasType", gasName)
itemZero.setOnClickListener {
intent.putExtra("isZero", true)
startActivity(intent)
}
itemSpan.setOnClickListener {
intent.putExtra("isZero", false)
startActivity(intent)
}
}
}
}

@ -145,7 +145,7 @@ class SensorSettingActivity : NoOptionsActivity() {
// }
mBinding.tvSensorInit.setOnClickListener {
val intent = Intent(this, SensorCalibrationActivity::class.java)
val intent = Intent(this, SensorCalibrationListActivity::class.java)
intent.putExtra("index", sensorIndex)
intent.putExtra("GasType", gasName)
startActivity(intent)

@ -16,6 +16,7 @@
android:textSize="@dimen/_40dp"/>
<LinearLayout
android:id="@+id/layout_input"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/item_zero"
android:layout_width="match_parent"
android:layout_height="@dimen/_108dp"
android:focusable="true"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="@dimen/_121dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_21dp"
android:text="@string/calibration_zero"
android:textColor="@color/white"
android:textSize="@dimen/_36dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/item_span"
android:layout_width="match_parent"
android:layout_height="@dimen/_108dp"
android:focusable="true"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="@dimen/_121dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_21dp"
android:text="@string/calibration_span"
android:textColor="@color/white"
android:textSize="@dimen/_36dp" />
</LinearLayout>
</LinearLayout>

@ -26,7 +26,7 @@
<string name="sync_once_txt">一键同步</string>
<string name="search">搜索</string>
<string name="search">刷新</string>
<string name="export">导出</string>
<string name="chart">折线图</string>
<string name="gas_list">气体列表</string>
@ -78,4 +78,8 @@
<string name="calibration_value">请输入校准浓度</string>
<string name="calibration_txt">校准传感器</string>
<string name="calibration_tip">请在专业人士指导下进行校准!随意校准可能导致传感器异常!</string>
<string name="calibration_zero">零点校准</string>
<string name="calibration_span">量程校准</string>
<string name="calibration_zero_txt">校准传感器零点</string>
</resources>

Loading…
Cancel
Save