feiyu02
2025-07-21 38d72198bfcced01ed9513b978163e5cd1d84625
src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/model/ExceptionTag.kt
@@ -9,6 +9,9 @@
 * @author feiyu02
 */
open class ExceptionTag {
    companion object {
        const val MAX_HISTORY = 10
    }
    // 起始数据下标
    var sIndex = 0
@@ -24,6 +27,9 @@
    // 异常数据段
    var exceptionData = mutableListOf<BaseRealTimeData>()
    // 近段时间内的历史数据
    var historyData = mutableListOf<BaseRealTimeData>()
    // 是否存在异常
    var exceptionExisted = false
@@ -32,6 +38,21 @@
    var exceptionResult = mutableListOf<BaseExceptionResult>()
    fun addHistoryData(data: BaseRealTimeData) {
        historyData.add(data)
        if (exceptionData.isNotEmpty()) {
            // 保证历史数据包含所有异常数据(异常数据可能不连续),并且在首个异常数据之前最多再保存10个数据
            val i = historyData.indexOf(exceptionData.first())
            if (i > MAX_HISTORY) {
                historyData = historyData.subList(i - MAX_HISTORY, historyData.size)
            }
        } else {
            if (historyData.size > MAX_HISTORY) {
                historyData = historyData.subList(historyData.size - MAX_HISTORY, historyData.size)
            }
        }
    }
    fun addExceptionData(data: BaseRealTimeData){
        exceptionExisted = true
        exceptionData.add(data)