|
|
|
@ -54,7 +54,7 @@ object ParseHelper {
|
|
|
|
|
1, 4, 5, 6, 8, 9, 11, 12 -> {
|
|
|
|
|
updateGasTypeDb(gasType, gasIndex, GasPortStatus.OK)
|
|
|
|
|
setFlag(gasIndex, gasType)
|
|
|
|
|
parseGasData(gasType, it)
|
|
|
|
|
parseGasData(gasType, it, status)
|
|
|
|
|
}
|
|
|
|
|
// 故障
|
|
|
|
|
2, 3, 7 -> {
|
|
|
|
@ -73,7 +73,7 @@ object ParseHelper {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun parseGasData(type: GasTypeEnum, it: ByteArray) {
|
|
|
|
|
private fun parseGasData(type: GasTypeEnum, it: ByteArray, status: Int) {
|
|
|
|
|
val unitHex: String = HexUtils.byteArrToHex(it, 3, 3 + 2)
|
|
|
|
|
val unitToLong: Long = HexUtils.hexToLong(unitHex)
|
|
|
|
|
// 10000000000000
|
|
|
|
@ -106,8 +106,10 @@ object ParseHelper {
|
|
|
|
|
// 量程
|
|
|
|
|
val rangHex: String = HexUtils.byteArrToHex(it, 11, 11 + 2)
|
|
|
|
|
val rangHexLong: Long = HexUtils.hexToLong(rangHex)
|
|
|
|
|
// 是否超量程
|
|
|
|
|
val overRange = value > rangHexLong || status == 8
|
|
|
|
|
|
|
|
|
|
LogUtils.w("receive msg 单位转换前 $type, 浓度 = $value $unit")
|
|
|
|
|
LogUtils.w("receive msg 单位转换前 $type, 浓度 = $value $unit, 最大量程 = $rangHexLong")
|
|
|
|
|
|
|
|
|
|
//根据单位进行数值转换
|
|
|
|
|
val localGasUnit = getLocalGasUnit(type.desc)
|
|
|
|
@ -117,7 +119,7 @@ object ParseHelper {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 插入
|
|
|
|
|
insertGasData(type, value, localGasUnit)
|
|
|
|
|
insertGasData(type, value, localGasUnit, overRange)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun setOverlayData() {
|
|
|
|
@ -153,7 +155,7 @@ object ParseHelper {
|
|
|
|
|
/**
|
|
|
|
|
* 插入气体数据
|
|
|
|
|
*/
|
|
|
|
|
private fun insertGasData(typeEnum: GasTypeEnum, value: Float, unit: String) {
|
|
|
|
|
private fun insertGasData(typeEnum: GasTypeEnum, value: Float, unit: String, overRange: Boolean) {
|
|
|
|
|
GlobalScope.launch(Dispatchers.IO) {
|
|
|
|
|
// 阈值范围
|
|
|
|
|
val min = getGasLowThreshold(typeEnum.desc, unit)
|
|
|
|
@ -169,7 +171,7 @@ object ParseHelper {
|
|
|
|
|
val gasDao = DBUtils.gasDao()
|
|
|
|
|
gasDao.insert(gas)
|
|
|
|
|
|
|
|
|
|
dealWarning(typeEnum, value, min, max, unit)
|
|
|
|
|
dealWarning(typeEnum, value, min, max, unit, overRange)
|
|
|
|
|
|
|
|
|
|
// 设置水印数据
|
|
|
|
|
setOverlayData()
|
|
|
|
@ -184,7 +186,8 @@ object ParseHelper {
|
|
|
|
|
value: Float,
|
|
|
|
|
min: Float,
|
|
|
|
|
max: Float,
|
|
|
|
|
unit: String
|
|
|
|
|
unit: String,
|
|
|
|
|
overRange: Boolean
|
|
|
|
|
) {
|
|
|
|
|
// 告警处理
|
|
|
|
|
val warningDao = DBUtils.warningDao()
|
|
|
|
@ -200,11 +203,13 @@ object ParseHelper {
|
|
|
|
|
unit,
|
|
|
|
|
System.currentTimeMillis(),
|
|
|
|
|
min,
|
|
|
|
|
max
|
|
|
|
|
max,
|
|
|
|
|
overRange
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
} else {
|
|
|
|
|
warning.gasValue = value
|
|
|
|
|
warning.overRange = overRange
|
|
|
|
|
warningDao.update(warning)
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
@ -223,11 +228,13 @@ object ParseHelper {
|
|
|
|
|
unit,
|
|
|
|
|
System.currentTimeMillis(),
|
|
|
|
|
min,
|
|
|
|
|
max
|
|
|
|
|
max,
|
|
|
|
|
overRange
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
} else {
|
|
|
|
|
warning.gasValue = value
|
|
|
|
|
warning.overRange = overRange
|
|
|
|
|
warningDao.update(warning)
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|