| | |
| | | } |
| | | |
| | | /** |
| | | * 判断数据量级在异常判断的范围内 |
| | | * 判断数据量级是否在异常判断的范围内 |
| | | * 默认所有量级都在异常判断的范围内 |
| | | */ |
| | | open fun judgeDataScale(p: BaseRealTimeData?, n: BaseRealTimeData): MutableMap<FactorType, Boolean> { |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 异常数据处理核心判断逻辑 |
| | | */ |
| | | override fun onNextData(data: BaseRealTimeData) { |
| | | // 1. 判断新数据的时间连续性 |
| | | val isContinue = isContinuous(lastData, data) |
| | | // 2. 计算各个监测因子是否发生异常 |
| | | val hasException = judge(lastData, data) |
| | | // 3. 遍历配置中选中的监测因子,判断是否发生异常 |
| | | config.factorFilter.selectedList.forEach { s -> |
| | | val f = s.main |
| | | // 排除此异常类型不适用的监测因子 |
| | |
| | | it.addHistoryData(data) |
| | | } |
| | | } |
| | | // 4. 更新最新数据 |
| | | lastData = data |
| | | |
| | | // 5. 保存并移除单因子异常 |
| | | removeSingleFactor(data) |
| | | // 6. 检查延迟异常 |
| | | val fittedComb = checkDelayedExceptions(data) |
| | | // 7. 合并异常结果 |
| | | mergeExceptionResult(data, fittedComb) |
| | | // 8. 触发新异常结果事件 |
| | | onNewResult(result) |
| | | // 9. 清除异常记录 |
| | | clearExceptions(data) |
| | | } |
| | | |