eis/eqpalg/algs/logic_alg.cpp

25 lines
910 B
C++
Raw Permalink Normal View History

#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{};
}