| | |
| | | package com.flightfeather.uav.biz.dataanalysis.exceptiontype |
| | | |
| | | import com.flightfeather.uav.biz.FactorFilter |
| | | import com.flightfeather.uav.biz.dataanalysis.BaseExceptionContinuousSingle |
| | | import com.flightfeather.uav.biz.dataanalysis.model.DataAnalysisConfig |
| | | import com.flightfeather.uav.biz.dataanalysis.model.ExceptionResult |
| | | import com.flightfeather.uav.biz.dataanalysis.model.ExceptionTag |
| | | import com.flightfeather.uav.biz.dataanalysis.model.ExceptionType |
| | | import com.flightfeather.uav.domain.entity.BaseRealTimeData |
| | | import com.flightfeather.uav.socket.eunm.FactorType |
| | | |
| | | /** |
| | | * 数据超标异常分析 |
| | | */ |
| | | class ExceptionDataExceed(config: DataAnalysisConfig) : BaseExceptionContinuousSingle(config) { |
| | | @Deprecated("原超标判定逻辑设定的超标值有漏洞,") |
| | | class ExceptionDataExceed(config: DataAnalysisConfig) : |
| | | BaseExceptionContinuousSingle<ExceptionTag, DataAnalysisConfig, ExceptionResult>(config, ExceptionTag::class.java) { |
| | | |
| | | override var judgeMethod: JudgeMethod = JudgeMethod.M2 |
| | | |
| | | override fun getExceptionType(): ExceptionType = ExceptionType.TYPE2 |
| | | |
| | | override fun judgeException(p: BaseRealTimeData?, n: BaseRealTimeData): List<Boolean> { |
| | | val res = mutableListOf<Boolean>() |
| | | repeat(config.factorCount) { i -> |
| | | val data = n.getByFactorIndex(i) |
| | | val limit = config.exceptionSetting.getByFactorIndex(i) |
| | | override fun judgeException(p: BaseRealTimeData?, n: BaseRealTimeData): MutableMap<FactorType, Boolean> { |
| | | val res = mutableMapOf<FactorType, Boolean>() |
| | | config.factorFilter.mainList().forEach { f -> |
| | | val data = n.getByFactorType(f) |
| | | val limit = config.exceptionSetting.getByFactorType(f) |
| | | val bool = if (data != null && limit != null) { |
| | | data >= limit |
| | | } else { |
| | | false |
| | | } |
| | | res.add(bool) |
| | | res[f] = bool |
| | | } |
| | | return res |
| | | } |
| | | |
| | | override fun judgeDuration(sIndex: Int, eIndex: Int): Boolean { |
| | | override fun judgeExceptionCount(tag: ExceptionTag, factorType: FactorType?): Boolean { |
| | | return true |
| | | } |
| | | |
| | | override fun newResult(tag: ExceptionTag, factor: FactorFilter.SelectedFactor): ExceptionResult { |
| | | val eType = getExceptionType() |
| | | return ExceptionResult(tag.startData!!, tag.endData, factor, tag.exceptionData, config.mission.missionCode, |
| | | eType) |
| | | } |
| | | |
| | | override fun newResult(exceptions: List<Pair<FactorFilter.SelectedFactor, ExceptionTag>>): ExceptionResult { |
| | | return ExceptionResult() |
| | | } |
| | | } |