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

main
xiaowusky 1 year ago
parent 7b92c4536b
commit 75b215e6fd

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

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

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

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

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

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

Loading…
Cancel
Save