将 ExpBase::mon_proc() 中的 exp_type_ 分支逻辑提取为 4 个子类,通过 doMonProc() 虚函数实现多态分发: - LogicAlg (exp_type 1):实时逻辑判断 - BoundAlg (exp_type 2):监控变量上下限检测 - BoundHoldAlg (exp_type 5):持续超限检测(继承 BoundAlg) - FeedbackAlg (exp_type 3/4):动作反馈处理 ExpBase 新增纯虚函数 doMonProc() 和钩子函数 doInitExtend(), init() 和 mon_proc() 中所有类型分支替换为虚函数委托调用。
20 lines
435 B
C++
20 lines
435 B
C++
#pragma once
|
|
#include <eqpalg/algs/exp_base.h>
|
|
|
|
class BoundAlg : public ExpBase {
|
|
public:
|
|
BoundAlg(const std::string& name, const mix_cc::json& rule_json,
|
|
const std::string& ruleId,
|
|
size_t exp_type = ExpType::Bound);
|
|
~BoundAlg() override;
|
|
|
|
int init() override;
|
|
|
|
protected:
|
|
AlarmInfo doMonProc() override;
|
|
void doInitExtend() override;
|
|
|
|
// 数据筛选检查
|
|
bool checkFilter();
|
|
};
|