package com.flightfeather.uav.biz.sourcetrace.exceptiontype
|
|
import com.flightfeather.uav.biz.FactorFilter
|
import com.flightfeather.uav.biz.dataanalysis.BaseExceptionContinuous
|
import com.flightfeather.uav.biz.dataanalysis.model.ExceptionResult
|
import com.flightfeather.uav.biz.sourcetrace.RealTimeAnalysisConfig
|
import com.flightfeather.uav.biz.sourcetrace.model.RealTimeExceptionResult
|
import com.flightfeather.uav.domain.entity.BaseRealTimeData
|
|
// 异常数据生成回调类
|
typealias NewExceptionCallback = (ex: RealTimeExceptionResult) -> Unit
|
/**
|
*
|
* @date 2025/5/13
|
* @author feiyu02
|
*/
|
abstract class RealTimeExceptionContinuous(config: RealTimeAnalysisConfig) :
|
BaseExceptionContinuous<RealTimeAnalysisConfig, RealTimeExceptionResult>(config) {
|
|
constructor(config: RealTimeAnalysisConfig, callback: NewExceptionCallback) : this(config){
|
this.callback = callback
|
}
|
|
var callback: NewExceptionCallback? = null
|
|
override fun newResult(
|
start: BaseRealTimeData,
|
end: BaseRealTimeData?,
|
factor: FactorFilter.SelectedFactor,
|
exceptionData: List<BaseRealTimeData>,
|
): RealTimeExceptionResult {
|
val eType = getExceptionType()
|
return RealTimeExceptionResult(start, end, factor, exceptionData, eType)
|
}
|
|
override fun onNewException(tag: Tag, factor: FactorFilter.SelectedFactor) {
|
super.onNewException(tag, factor)
|
callback?.let { func ->
|
val exc = resultList.last()
|
func.invoke(exc)
|
}
|
}
|
}
|