#pragma once /** * @file roller2.h * @brief 同组离群监测 * @author your name (you@domain.com) * @version 0.1 * @date 2025-01-20 * * Copyright: Baosight Co. Ltd. * DO NOT COPY/USE WITHOUT PERMISSION * */ #include #include #include #include using std::string; class Roller2 : public ExpBase { public: Roller2(const string& name, const mix_cc::json& rule_json, const string& ruleId, size_t exp_type); virtual ~Roller2(); public: AlarmInfo doMonProc() override; const vector ExpStr = {"pre_exp", "X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8", "X9"}; int init() override; virtual AlarmInfo mon_proc() override; std::vector exec_task(mix_cc::time_range_t time_range) override; const array BIG_SMALL = {"过大", "过小"}; double limit_over_; private: std::unique_ptr pre_exp_; map> var_exp_; map var_name_; map var_exp_str_; map var_Xdouble_; bool pre_exp_flag_; private: int init_X_exp(); void print_load_content(); void refresh_var_result(); };