desc:最大量程相关

main
xiaowusky 1 year ago
parent d6d781495e
commit 86d9b53522

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

@ -221,6 +221,9 @@ class HomeActivity : NoOptionsActivity() {
warningList?.forEachIndexed { index, it ->
builder.append(it.gasName).append("浓度异常,")
.append("当前值: ${it.gasValue} ${it.unit}")
if (it.overRange){
builder.append(",且超过传感器量程")
}
if (index != warningList.size - 1) {
builder.append("\n")
}

@ -12,6 +12,7 @@ data class Warning(
@ColumnInfo(name = "start_time") var startTime: Long,
@ColumnInfo(name = "threshold_low") var thresholdLow: Float = 0f,
@ColumnInfo(name = "threshold_high") var thresholdHigh: Float = 0f,
@ColumnInfo(name = "over_range") var overRange: Boolean = false,
@ColumnInfo(name = "end_time") var endTime: Long = -1L,
@PrimaryKey(autoGenerate = true) var id: Int = 0
)

Loading…
Cancel
Save