| | |
| | | package com.flightfeather.uav.biz.dataanalysis.exceptiontype |
| | | |
| | | import com.flightfeather.uav.biz.dataanalysis.BaseExceptionContinuous |
| | | 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 ExceptionValueMutation(config: DataAnalysisConfig) : BaseExceptionContinuous(config) { |
| | | class ExceptionValueMutation(config: DataAnalysisConfig) : ExceptionContinuous(config) { |
| | | |
| | | /** |
| | | * 本异常的连续发生次数会根据异常的程度变化 |
| | |
| | | private var special = false |
| | | |
| | | override fun getExceptionType(): ExceptionType = ExceptionType.TYPE4 |
| | | |
| | | override var judgeMethod: JudgeMethod = JudgeMethod.M2 |
| | | |
| | | override fun judgeException(p: BaseRealTimeData?, n: BaseRealTimeData): MutableMap<FactorType, Boolean> { |
| | | val res = mutableMapOf<FactorType, Boolean>() |
| | |
| | | return res |
| | | } |
| | | |
| | | override fun judgeDuration(sIndex: Int, eIndex: Int): Boolean { |
| | | override fun judgeExceptionCount(tag: ExceptionTag, factorType: FactorType?): Boolean { |
| | | // 首个数据没有前一个数据参照,不算异常值,最后一个数据是判断结束的正常值,因此异常数据个数的计算下标为sIndex和eIndex |
| | | val sIndex = tag.sIndex |
| | | val eIndex = tag.eIndex - 1 |
| | | |
| | | val b1 = special && (eIndex - sIndex) >= (config.mutationNum / 2) |
| | | val b2 = (eIndex - sIndex) >= config.mutationNum |
| | | special = false |
| | | // println("sIndex: $sIndex --- eIndex: $eIndex --- special: $special") |
| | | return b1 || b2 |
| | | } |
| | | |
| | | override fun onNewResult(result: List<ExceptionResult>) { |
| | | TODO("Not yet implemented") |
| | | } |
| | | } |