25 lines
910 B
C++
25 lines
910 B
C++
|
|
#include <eqpalg/algs/logic_alg.h>
|
||
|
|
#include <eqpalg/utility/build_alarm_info.h>
|
||
|
|
|
||
|
|
LogicAlg::LogicAlg(const std::string& name, const mix_cc::json& rule_json,
|
||
|
|
const std::string& ruleId)
|
||
|
|
: ExpBase(name, rule_json, ruleId, ExpType::Logic) {
|
||
|
|
logger_.reset(new LOG("LogicAlg:" + rule_name_, AUTO_CATCH_PID));
|
||
|
|
}
|
||
|
|
|
||
|
|
LogicAlg::~LogicAlg() = default;
|
||
|
|
|
||
|
|
AlarmInfo LogicAlg::doMonProc() {
|
||
|
|
double result_value = expr_engine_->evaluate("act");
|
||
|
|
|
||
|
|
if (static_cast<bool>(result_value)) {
|
||
|
|
rule_stat_.alarm_value = result_value;
|
||
|
|
auto msg = rule_name_ + " " + error_str_;
|
||
|
|
query_time_range_.set_left(query_time_range_.get_right() - delay_time_);
|
||
|
|
expr_engine_->markFunVarsNeedReset();
|
||
|
|
return utility::build_alarm_info(MsgLevel::ERROR, rule_id_, rule_name_,
|
||
|
|
"EXP1", msg, get_alarm_time());
|
||
|
|
}
|
||
|
|
return AlarmInfo{};
|
||
|
|
}
|