diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 99c1af4..1b878ae 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,8 +1,8 @@
+ package="com.yinuo.safetywatcher"
+ android:sharedUserId="android.uid.system">
-
-
+
-
+ tools:ignore="ProtectedPermissions" />
-
-
+
-
@@ -42,12 +38,16 @@
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
+ android:largeHeap="true"
android:networkSecurityConfig="@xml/network_security_config"
+ android:requestLegacyExternalStorage="true"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
- android:requestLegacyExternalStorage="true"
- android:largeHeap="true"
android:theme="@style/AppTheme">
+
+
+ android:windowSoftInputMode="adjustPan" />
\ No newline at end of file
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 ec3a2f3..a4738ca 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
@@ -3,6 +3,7 @@ package com.yinuo.safetywatcher.watcher.port
import com.common.serialport.ComMultiPortUtils
import com.yinuo.safetywatcher.watcher.port.cmd.CMD
import android.os.Process
+import com.yinuo.safetywatcher.watcher.port.cmd.CalibrationCmd
object GasPortUtils {
private const val BAUD_RATE = 9600
@@ -61,4 +62,12 @@ object GasPortUtils {
fun setSpeed(speed: Int) {
ComMultiPortUtils.sendMsg(PORT_PATH, CMD.buildSpeedCmd(speed))
}
+
+ fun calibrationSensor(index: Int, value: Int) {
+ if (value == 0) {
+ ComMultiPortUtils.sendMsg(PORT_PATH, CalibrationCmd(index, value).buildZeroCmd())
+ } else {
+ ComMultiPortUtils.sendMsg(PORT_PATH, CalibrationCmd(index, value).buildSPANCmd())
+ }
+ }
}
\ No newline at end of file
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 4adbe76..c0a8403 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
@@ -6,8 +6,8 @@ package com.yinuo.safetywatcher.watcher.port.cmd
* @param target 目标值
*/
class CalibrationCmd(private val index: Int, private val target: Int) {
- val ZERO = 0x87.toByte()
- val SPAN = 0x88.toByte()
+ private val ZERO = 0x87.toByte()
+ private val SPAN = 0x88.toByte()
fun buildZeroCmd(): ByteArray {
return build(ZERO)
@@ -20,7 +20,7 @@ class CalibrationCmd(private val index: Int, private val target: Int) {
private fun build(cmd: Byte): ByteArray {
var highBit: Byte = 0x00
var lowBit: Byte = 0x00
- if (index != 0) {
+ if (target != 0) {
highBit = (target shr 8 and FF).toByte()
lowBit = (target and FF).toByte()
}
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
new file mode 100644
index 0000000..593217c
--- /dev/null
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorCalibrationActivity.kt
@@ -0,0 +1,26 @@
+package com.yinuo.safetywatcher.watcher.ui
+
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import com.yinuo.safetywatcher.databinding.ActivitySensorCalibrationBinding
+import com.yinuo.safetywatcher.watcher.port.GasPortUtils
+
+class SensorCalibrationActivity : AppCompatActivity() {
+ private val mBinding by lazy {
+ ActivitySensorCalibrationBinding.inflate(layoutInflater)
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(mBinding.root)
+ val sensorIndex = intent.getIntExtra("index", -1)
+ mBinding.tvSave.setOnClickListener {
+ mBinding.etName.text.toString().let {
+ if (sensorIndex != -1) {
+ val toInt = it.toInt()
+ GasPortUtils.calibrationSensor(sensorIndex, toInt)
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorSettingActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorSettingActivity.kt
index 06b6d42..d92f69d 100644
--- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorSettingActivity.kt
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorSettingActivity.kt
@@ -35,9 +35,11 @@ class SensorSettingActivity : NoOptionsActivity() {
}
var gasName = ""
+ var sensorIndex = -1
override fun initView() {
gasName = intent.getStringExtra("GasType")!!
+ sensorIndex = intent.getIntExtra("index", -1)
val localGasUnit = getLocalGasUnit(gasName)
// 氧气单位固定
if (gasName == O2) {
@@ -125,6 +127,12 @@ class SensorSettingActivity : NoOptionsActivity() {
mBinding.etStep.text = getString(R.string.sensor_step_txt).plus(": $gasRange")
}
}
+
+ mBinding.tvSensorInit.setOnClickListener {
+ val intent = Intent(this, SensorCalibrationActivity::class.java)
+ intent.putExtra("index", sensorIndex)
+ startActivity(intent)
+ }
}
private fun saveSetting() {
diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/SensorAdapter.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/SensorAdapter.kt
index e960cdf..ae6d4a1 100644
--- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/SensorAdapter.kt
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/SensorAdapter.kt
@@ -35,6 +35,7 @@ class SensorAdapter :
binding.sensorSetting.setOnClickListener {
val intent = Intent(context, SensorSettingActivity::class.java)
intent.putExtra("GasType", data.type)
+ intent.putExtra("index", data.sensorIndex)
context.startActivity(intent)
}
diff --git a/app/src/main/res/layout/activity_sensor_calibration.xml b/app/src/main/res/layout/activity_sensor_calibration.xml
new file mode 100644
index 0000000..975ced3
--- /dev/null
+++ b/app/src/main/res/layout/activity_sensor_calibration.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_sensor_setting.xml b/app/src/main/res/layout/activity_sensor_setting.xml
index 89013da..0b4f7ad 100644
--- a/app/src/main/res/layout/activity_sensor_setting.xml
+++ b/app/src/main/res/layout/activity_sensor_setting.xml
@@ -140,7 +140,7 @@
android:textSize="@dimen/_30dp"
android:background="@drawable/save_btn_bg"/>
-
+ android:background="@drawable/sensor_init_btn_bg"/>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 55f3076..2cc0171 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -73,4 +73,7 @@
mg/m3
%VOL
加载中…
+
+ 请输入校准浓度
+ 校准传感器