diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/bean/GasReqBean.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/bean/GasReqBean.kt index 1bc0677..2940975 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/bean/GasReqBean.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/bean/GasReqBean.kt @@ -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 ) } diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/ParseHelper.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/ParseHelper.kt index e0927d0..9935cbf 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/ParseHelper.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/ParseHelper.kt @@ -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) { diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/CloudActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/CloudActivity.kt index e086415..69374ac 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/CloudActivity.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/CloudActivity.kt @@ -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() + val tempReqList = arrayListOf() 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 { diff --git a/library-common/src/main/java/com/common/commonlib/db/entity/Gas.kt b/library-common/src/main/java/com/common/commonlib/db/entity/Gas.kt index 0b0b239..292543f 100644 --- a/library-common/src/main/java/com/common/commonlib/db/entity/Gas.kt +++ b/library-common/src/main/java/com/common/commonlib/db/entity/Gas.kt @@ -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 ) diff --git a/library-push/src/main/java/org/easydarwin/TxtOverlay.kt b/library-push/src/main/java/org/easydarwin/TxtOverlay.kt index 2581de9..3b3ca36 100644 --- a/library-push/src/main/java/org/easydarwin/TxtOverlay.kt +++ b/library-push/src/main/java/org/easydarwin/TxtOverlay.kt @@ -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 diff --git a/library-push/src/main/java/org/easydarwin/util/YUVUtils.java b/library-push/src/main/java/org/easydarwin/util/YUVUtils.java index 1b6837e..728fd78 100644 --- a/library-push/src/main/java/org/easydarwin/util/YUVUtils.java +++ b/library-push/src/main/java/org/easydarwin/util/YUVUtils.java @@ -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); }