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