desc:上传实时气体导致的一系列修改

main
xiaowusky 1 year ago
parent 7b92c4536b
commit 75b215e6fd

@ -12,13 +12,13 @@ data class GasReqBean(
val status: String = "",
val alarmName: String = ""
) {
constructor(gas: Gas, showWarnTxt: String) : this(
constructor(gas: Gas) : this(
gasName = gas.gasName,
gasValue = gas.gasValue.toString(),
gasUnit = gas.unit,
reportTime = gas.time.toString(),
sensorName = GasCache.getNickname(gas.gasName),
status = GasCache.getStatus(gas.gasName),
alarmName = showWarnTxt
alarmName = gas.warnTxt
)
}

@ -140,10 +140,7 @@ object ParseHelper {
* 插入气体数据
*/
private fun insertGasData(
typeEnum: GasTypeEnum,
value: Float,
unit: String,
overRange: Boolean
typeEnum: GasTypeEnum, value: Float, unit: String, overRange: Boolean
) {
GlobalScope.launch(Dispatchers.Unconfined) {
// 阈值范围
@ -153,6 +150,8 @@ object ParseHelper {
// 构造气体数据
val timeMillis = System.currentTimeMillis()
val gas = Gas(timeMillis, typeEnum.desc, value, unit, min, max)
val warning = dealWarning(typeEnum, value, min, max, unit, overRange)
gas.warnTxt = getShowWarnTxt(warning)
// 存储临时数据
gasMap[typeEnum.desc] = gas
@ -160,13 +159,11 @@ object ParseHelper {
val gasDao = DBUtils.gasDao()
gasDao.insert(gas)
val warning = dealWarning(typeEnum, value, min, max, unit, overRange)
// 设置水印数据
setOverlayData()
// 实时数据上传后台
uploadGasData(gas, getShowWarnTxt(warning))
uploadGasData(gas)
}
}
@ -186,13 +183,7 @@ object ParseHelper {
if (value < min || value > max) {
if (warning == null || warning.endTime > 0) {
val insertWarning = Warning(
typeEnum.desc,
value,
unit,
System.currentTimeMillis(),
min,
max,
overRange
typeEnum.desc, value, unit, System.currentTimeMillis(), min, max, overRange
)
warningDao.insert(insertWarning)
return insertWarning
@ -212,13 +203,7 @@ object ParseHelper {
if (value > min) {
if (warning == null || warning.endTime > 0) {
val insertWarning = Warning(
typeEnum.desc,
value,
unit,
System.currentTimeMillis(),
min,
max,
overRange
typeEnum.desc, value, unit, System.currentTimeMillis(), min, max, overRange
)
warningDao.insert(insertWarning)
return insertWarning
@ -238,10 +223,10 @@ object ParseHelper {
return null
}
private suspend fun uploadGasData(gas: Gas, showWarnTxt: String) {
private suspend fun uploadGasData(gas: Gas) {
try {
// 上传实时气体数据
tempGasData.add(GasReqBean(gas, showWarnTxt))
tempGasData.add(GasReqBean(gas))
if (tempGasData.size > GAS_CLOUD_UPLOAD_SIZE_ONCE) {
devicesApi.uploadGasData(tempGasData)
tempGasData.clear()
@ -303,8 +288,7 @@ object ParseHelper {
* 离线检查
*/
class FlagRunnable(
private val gasName: GasTypeEnum,
private val sensorIndex: Int
private val gasName: GasTypeEnum, private val sensorIndex: Int
) : Runnable {
override fun run() {
GlobalScope.launch(Dispatchers.IO) {

@ -10,6 +10,7 @@ import com.common.commonlib.utils.LogUtils
import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.databinding.ActivityCloudBinding
import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity
import com.yinuo.safetywatcher.watcher.bean.GasReqBean
import com.yinuo.safetywatcher.watcher.constant.GAS_CLOUD_UPLOAD_SIZE_ONCE
import com.yinuo.safetywatcher.watcher.net.DevicesApi
import com.yinuo.safetywatcher.watcher.net.UploadFileApi
@ -124,10 +125,12 @@ class CloudActivity : NoOptionsActivity() {
private suspend fun getSensorDataUpload(cloudTime: Long) {
val gasList = DBUtils.gasDao().getAllBySyncFlagOrTime(false, cloudTime)
val tempList = arrayListOf<Gas>()
val tempReqList = arrayListOf<GasReqBean>()
gasList.forEach {
tempList.add(it)
tempReqList.add(GasReqBean(it))
if (tempList.size == GAS_CLOUD_UPLOAD_SIZE_ONCE) {
val response = devicesApi.uploadGasData(tempList)
val response = devicesApi.uploadGasData(tempReqList)
if (response.isOk()) {
val gasDao = DBUtils.gasDao()
tempList.forEach { gas ->
@ -136,10 +139,11 @@ class CloudActivity : NoOptionsActivity() {
}
}
tempList.clear()
tempReqList.clear()
}
}
if (tempList.isNotEmpty()) {
val response = devicesApi.uploadGasData(tempList)
val response = devicesApi.uploadGasData(tempReqList)
if (response.isOk()) {
val gasDao = DBUtils.gasDao()
tempList.forEach {

@ -12,6 +12,7 @@ data class Gas(
@ColumnInfo(name = "unit") var unit: String = "",
@ColumnInfo(name = "threshold_low") var thresholdLow: Float = 0f,
@ColumnInfo(name = "threshold_high") var thresholdHigh: Float = 0f,
@ColumnInfo(name = "warn_txt") var warnTxt: String = "",
@ColumnInfo(name = "sync_flag") var syncFlag: Boolean = false,
@PrimaryKey(autoGenerate = true) var id: Int = 0
)

@ -27,7 +27,7 @@ object TxtOverlay {
// 上一次展示的时间
private var lastTipUpdateTime: Long = 0
private const val bmpWidth: Int = 550
private const val bmpWidth: Int = 600
private const val bmpHeight: Int = 330
// 文字生成的bitmap

@ -117,7 +117,7 @@ public class YUVUtils {
for (int i = 0; i < split.length; i++) {
if (i > 0) {
line = i + 1;
offsetx = 100;
offsetx = 50;
}
canvas.drawText(split[i], offsetx, Math.abs(fontMetrics.ascent) + lineHeight * line, textPaint);
}

Loading…
Cancel
Save