#pragma once #include #include #include #include #include const int MAXLEN = ProxPyMapConfig::dataMaxLen; using std::string; class GlitchDetection : public AlgBase { public: GlitchDetection(const string name, const mix_cc::json &rule_json, const string ruleId); virtual ~GlitchDetection(); public: int init() override; AlarmInfo exec_mon() override; std::vector exec_task(mix_cc::time_range_t time_range) override; void save_rule_norm_data() override; bool get_prr() override; private: std::array data_; int data_index_ = 0; int data_size_ = 0; double glitch_per_ = 0.1; mix_cc::time_range_t run_time_range_; string exp_str_; mix_cc::json py_param_; std::string error_content_; private: /** * @brief 加载表达式 * @return int */ int load_exp(); };