desc:晚上传感器数据上传 接口参数映射

main
xiaowusky 1 year ago
parent d8215ab95d
commit c5fe66581b

@ -1,6 +1,7 @@
package com.yinuo.safetywatcher.watcher.bean package com.yinuo.safetywatcher.watcher.bean
import com.common.commonlib.db.entity.Gas import com.common.commonlib.db.entity.Gas
import com.yinuo.safetywatcher.watcher.port.GasCache
data class GasReqBean( data class GasReqBean(
val gasName: String = "", val gasName: String = "",
@ -16,8 +17,8 @@ data class GasReqBean(
gasValue = gas.gasValue.toString(), gasValue = gas.gasValue.toString(),
gasUnit = gas.unit, gasUnit = gas.unit,
reportTime = gas.time.toString(), reportTime = gas.time.toString(),
sensorName = "", sensorName = GasCache.getNickname(gas.gasName),
status = "", status = GasCache.getStatus(gas.gasName),
alarmName = "" alarmName = ""
) )
} }

@ -0,0 +1,42 @@
package com.yinuo.safetywatcher.watcher.port
import com.common.commonlib.CommonApplication
import com.common.commonlib.db.DBUtils
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
@OptIn(DelicateCoroutinesApi::class)
object GasCache {
private val statusCache = HashMap<String, String>()
private val nicknameCache = HashMap<String, String>()
init {
GlobalScope.launch(Dispatchers.IO) {
val typeDao = DBUtils.gasTypeDao()
val all = typeDao.getAll()
val context = CommonApplication.getContext()
all.forEach {
setNickname(it.type, it.nickName ?: "")
setStatus(it.type, getShowStatus(context, it.status))
}
}
}
fun getNickname(gas: String): String {
return nicknameCache[gas] ?: ""
}
fun getStatus(gas: String): String {
return statusCache[gas] ?: ""
}
fun setNickname(gas: String, nickname: String) {
nicknameCache[gas] = nickname
}
fun setStatus(gas: String, status: String) {
statusCache[gas] = status
}
}

@ -1,10 +1,13 @@
package com.yinuo.safetywatcher.watcher.port package com.yinuo.safetywatcher.watcher.port
import android.content.Context
import com.common.commonlib.utils.MMKVUtils import com.common.commonlib.utils.MMKVUtils
import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.watcher.port.cmd.C02 import com.yinuo.safetywatcher.watcher.port.cmd.C02
import com.yinuo.safetywatcher.watcher.port.cmd.CH4 import com.yinuo.safetywatcher.watcher.port.cmd.CH4
import com.yinuo.safetywatcher.watcher.port.cmd.CL2 import com.yinuo.safetywatcher.watcher.port.cmd.CL2
import com.yinuo.safetywatcher.watcher.port.cmd.CO import com.yinuo.safetywatcher.watcher.port.cmd.CO
import com.yinuo.safetywatcher.watcher.port.cmd.GasPortStatus
import com.yinuo.safetywatcher.watcher.port.cmd.GasTypeEnum import com.yinuo.safetywatcher.watcher.port.cmd.GasTypeEnum
import com.yinuo.safetywatcher.watcher.port.cmd.H2 import com.yinuo.safetywatcher.watcher.port.cmd.H2
import com.yinuo.safetywatcher.watcher.port.cmd.H2S import com.yinuo.safetywatcher.watcher.port.cmd.H2S
@ -185,4 +188,16 @@ fun convertData(
retValue = mgm3ToPpm(retValue, gasType.molecular) retValue = mgm3ToPpm(retValue, gasType.molecular)
} }
return retValue return retValue
}
fun getShowStatus(context: Context?, state: Int): String {
return context?.getString(
when (state) {
GasPortStatus.PRE_HOT -> R.string.status_prehot
GasPortStatus.OK -> R.string.status_ok
GasPortStatus.ERROR -> R.string.status_error
GasPortStatus.OUTLINE -> R.string.status_offline
else -> R.string.status_offline
}
) ?: ""
} }

@ -2,6 +2,7 @@ package com.yinuo.safetywatcher.watcher.port
import android.os.Handler import android.os.Handler
import android.os.Looper import android.os.Looper
import com.common.commonlib.CommonApplication
import com.common.commonlib.db.DBUtils import com.common.commonlib.db.DBUtils
import com.common.commonlib.db.entity.Gas import com.common.commonlib.db.entity.Gas
import com.common.commonlib.db.entity.GasType import com.common.commonlib.db.entity.GasType
@ -259,6 +260,7 @@ object ParseHelper {
GlobalScope.launch { GlobalScope.launch {
val typeDao = DBUtils.gasTypeDao() val typeDao = DBUtils.gasTypeDao()
val gasType = typeDao.getByName(type.desc) val gasType = typeDao.getByName(type.desc)
GasCache.setStatus(type.desc, getShowStatus(CommonApplication.getContext(), status))
gasType?.status = status gasType?.status = status
gasType?.sensorIndex = sensorIndex gasType?.sensorIndex = sensorIndex
typeDao.insert(gasType ?: GasType(type.desc, status, sensorIndex)) typeDao.insert(gasType ?: GasType(type.desc, status, sensorIndex))

@ -8,6 +8,7 @@ import com.common.commonlib.db.DBUtils
import com.yinuo.safetywatcher.R import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.databinding.ActivitySensorSettingBinding import com.yinuo.safetywatcher.databinding.ActivitySensorSettingBinding
import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity
import com.yinuo.safetywatcher.watcher.port.GasCache
import com.yinuo.safetywatcher.watcher.port.UNIT_MGM3 import com.yinuo.safetywatcher.watcher.port.UNIT_MGM3
import com.yinuo.safetywatcher.watcher.port.UNIT_PPM import com.yinuo.safetywatcher.watcher.port.UNIT_PPM
import com.yinuo.safetywatcher.watcher.port.cmd.O2 import com.yinuo.safetywatcher.watcher.port.cmd.O2
@ -128,14 +129,14 @@ class SensorSettingActivity : NoOptionsActivity() {
private fun saveSetting() { private fun saveSetting() {
val nickName = mBinding.etName.text.toString() val nickName = mBinding.etName.text.toString()
if (!nickName.isNullOrEmpty()) { GlobalScope.launch {
GlobalScope.launch { val typeDao = DBUtils.gasTypeDao()
val typeDao = DBUtils.gasTypeDao() val gasType = typeDao.getByName(gasName)
val gasType = typeDao.getByName(gasName) val ifEmpty = nickName.ifEmpty { "${gasName}传感器" }
gasType?.nickName = nickName gasType?.nickName = ifEmpty
if (gasType != null) { GasCache.setNickname(gasName, ifEmpty)
typeDao.insert(gasType) if (gasType != null) {
} typeDao.insert(gasType)
} }
} }
val checkedRadioButtonId = mBinding.rgUnit.checkedRadioButtonId val checkedRadioButtonId = mBinding.rgUnit.checkedRadioButtonId

@ -8,6 +8,7 @@ import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.databinding.LayoutItemSensorBinding import com.yinuo.safetywatcher.databinding.LayoutItemSensorBinding
import com.yinuo.safetywatcher.watcher.base.BaseRvAdapter import com.yinuo.safetywatcher.watcher.base.BaseRvAdapter
import com.yinuo.safetywatcher.watcher.port.cmd.GasPortStatus import com.yinuo.safetywatcher.watcher.port.cmd.GasPortStatus
import com.yinuo.safetywatcher.watcher.port.getShowStatus
import com.yinuo.safetywatcher.watcher.ui.SensorSettingActivity import com.yinuo.safetywatcher.watcher.ui.SensorSettingActivity
class SensorAdapter : class SensorAdapter :
@ -39,7 +40,7 @@ class SensorAdapter :
binding.sensorName.text = data.nickName ?: "${data.type}传感器" binding.sensorName.text = data.nickName ?: "${data.type}传感器"
val state = data.status val state = data.status
binding.sensorStatus.text = context.getText(getShowStatus(state)) binding.sensorStatus.text = getShowStatus(context, state)
binding.sensorStatus.setTextColor(context.getColor(getShowStatusColor(state))) binding.sensorStatus.setTextColor(context.getColor(getShowStatusColor(state)))
} }
@ -52,15 +53,5 @@ class SensorAdapter :
else -> R.color.color_offline else -> R.color.color_offline
} }
} }
private fun getShowStatus(state: Int): Int {
return when(state){
GasPortStatus.PRE_HOT -> R.string.status_prehot
GasPortStatus.OK -> R.string.status_ok
GasPortStatus.ERROR -> R.string.status_error
GasPortStatus.OUTLINE -> R.string.status_offline
else -> R.string.status_offline
}
}
} }
} }

Loading…
Cancel
Save