desc:传感器标定

main
xiaowusky 1 year ago
parent 485690b450
commit f756a4863b

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:sharedUserId="android.uid.system"
package="com.yinuo.safetywatcher">
package="com.yinuo.safetywatcher"
android:sharedUserId="android.uid.system">
<uses-feature
android:name="android.hardware.usb.host"
@ -11,23 +11,19 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- 修改系统屏幕亮度 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 修改系统屏幕亮度 -->
<uses-permission
android:name="android.permission.WRITE_SETTINGS"
tools:ignore="ProtectedPermissions" />
<!--包使用情况统计-->
tools:ignore="ProtectedPermissions" /> <!-- 包使用情况统计 -->
<uses-permission
android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!--wifi-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- wifi -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
@ -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">
<activity
android:name=".watcher.ui.SensorCalibrationActivity"
android:exported="false" />
<service
android:name=".watcher.services.HeartbeatService"
android:enabled="true"

@ -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())
}
}
}

@ -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()
}

@ -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)
}
}
}
}
}

@ -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() {

@ -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)
}

@ -0,0 +1,35 @@
<?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"
android:paddingStart="@dimen/_121dp"
android:paddingTop="@dimen/_61dp">
<EditText
android:id="@+id/et_name"
android:layout_width="@dimen/_600dp"
android:layout_height="@dimen/_100dp"
android:textSize="@dimen/_30dp"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:hint="@string/calibration_value"
android:singleLine="true"
android:inputType="number"
android:paddingStart="@dimen/_30dp"
android:focusable="true"
android:nextFocusDown="@id/et_name"
android:background="@drawable/cloud_sync_btn_bg"/>
<TextView
android:id="@+id/tv_save"
android:layout_width="@dimen/_600dp"
android:layout_height="@dimen/_80dp"
android:textColor="@color/white"
android:layout_marginTop="@dimen/_23dp"
android:gravity="center"
android:text="@string/calibration_txt"
android:focusable="true"
android:textSize="@dimen/_30dp"
android:background="@drawable/save_btn_bg"/>
</LinearLayout>

@ -140,7 +140,7 @@
android:textSize="@dimen/_30dp"
android:background="@drawable/save_btn_bg"/>
<!--<TextView
<TextView
android:id="@+id/tv_sensor_init"
android:layout_width="@dimen/_260dp"
android:layout_height="@dimen/_80dp"
@ -150,6 +150,6 @@
android:textSize="@dimen/_30dp"
android:focusable="true"
android:text="@string/sensor_init_txt"
android:background="@drawable/sensor_init_btn_bg"/>-->
android:background="@drawable/sensor_init_btn_bg"/>
</LinearLayout>
</LinearLayout>

@ -73,4 +73,7 @@
<string name="unit_mg_m3">mg/m3</string>
<string name="unit_vol">%VOL</string>
<string name="loading">加载中…</string>
<string name="calibration_value">请输入校准浓度</string>
<string name="calibration_txt">校准传感器</string>
</resources>

Loading…
Cancel
Save