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 加载中… + + 请输入校准浓度 + 校准传感器