diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasUtils.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasUtils.kt index 525abb4..c646f5a 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasUtils.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasUtils.kt @@ -54,7 +54,9 @@ object GasUtils { private fun updateGasTypeDb(gasName: Byte, port: String, online: Boolean) { GlobalScope.launch { val typeDao = DBUtils.gasTypeDao() - typeDao.insert(GasType(gasName.toString(), port, online)) + val gasType = typeDao.getByName(gasName.toString()) + gasType?.online = online + typeDao.insert(gasType ?: GasType(gasName.toString(), port, online)) } } @@ -65,10 +67,11 @@ object GasUtils { mPortRunnable[index] = flagRunnable } mHandler.removeCallbacks(flagRunnable) - mPortFlags[index] = true - updateGasTypeDb(gasName, port, true) // 如果一段时间内没有收到消息,认为连接断开 mHandler.postDelayed(flagRunnable, CHECK_TIME) + + mPortFlags[index] = true + updateGasTypeDb(gasName, port, true) } // 监控串口状态 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 8b98e10..ec9223d 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 @@ -34,7 +34,7 @@ class SensorAdapter : context.startActivity(Intent(context, SensorSettingActivity::class.java)) } - binding.sensorName.text = data.type + binding.sensorName.text = data.nickName ?: "$data.type传感器" val state = data.online binding.sensorStatus.text = context.getText(getShowStatus(state)) binding.sensorStatus.setTextColor(context.getColor(getShowStatusColor(state))) diff --git a/library-common/src/main/java/com/common/commonlib/db/dao/GasTypeDao.kt b/library-common/src/main/java/com/common/commonlib/db/dao/GasTypeDao.kt index f5a0777..3b076df 100644 --- a/library-common/src/main/java/com/common/commonlib/db/dao/GasTypeDao.kt +++ b/library-common/src/main/java/com/common/commonlib/db/dao/GasTypeDao.kt @@ -12,6 +12,9 @@ interface GasTypeDao { @Query("SELECT * FROM gas_type") suspend fun getAll(): List + @Query("SELECT * FROM gas_type WHERE gas_name IS :name") + suspend fun getByName(name:String): GasType? + @Insert(onConflict = OnConflictStrategy.REPLACE) suspend fun insert(gas: GasType) diff --git a/library-common/src/main/java/com/common/commonlib/db/entity/GasType.kt b/library-common/src/main/java/com/common/commonlib/db/entity/GasType.kt index 14af498..b95d07a 100644 --- a/library-common/src/main/java/com/common/commonlib/db/entity/GasType.kt +++ b/library-common/src/main/java/com/common/commonlib/db/entity/GasType.kt @@ -6,7 +6,8 @@ import androidx.room.PrimaryKey @Entity(tableName = "gas_type") data class GasType( - @PrimaryKey @ColumnInfo(name = "gas_type") var type: String, + @PrimaryKey @ColumnInfo(name = "gas_name") var type: String, @ColumnInfo(name = "port_path") var port: String, - @ColumnInfo(name = "online_flag") var online: Boolean + @ColumnInfo(name = "online_flag") var online: Boolean, + @ColumnInfo(name = "nick_name") var nickName: String? = null, )