eis/eqpalg/algs/roller.h

63 lines
1.4 KiB
C
Raw Normal View History

#pragma once
/**
* @file roller.h
* @brief
* @author your name (you@domain.com)
* @version 0.1
* @date 2023-12-08
*
* Copyright: Baosight Co. Ltd.
* DO NOT COPY/USE WITHOUT PERMISSION
*
*/
#include <eqpalg/alg_base.h>
#include <eqpalg/define/public.h>
#include <array>
#include <map>
using std::string;
class Roller :public AlgBase {
public:
Roller(const string name, const mix_cc::json& rule_json, const string ruleId);
virtual ~Roller();
public:
int init() override;
AlarmInfo exec_mon() override;
std::vector<AlarmInfo> exec_task(mix_cc::time_range_t time_range) override;
const array<string, 2> BIG_SMALL = {"过大", "过小"};
private:
TimeDur interval_time_;
std::string error_content_;
double error_diff_;
std::string error_name_;
std::map<int, double> mmean_tags_;
std::vector<int> comparison_tags_;
std::map<int, int> tags_errors_;
std::array<double, 3> min_max_sum_;
int n_tags_;
private:
/**
* @brief mmean_tags_ ihd均值查询API
* @return int
*/
int refresh_mmean_tags_ihd();
/**
* @brief
*/
void print_load_content();
/**
* @brief
* @return int 0:- -1:-
*/
int exec_mon_base();
/**
* @brief vector中获取min max sum
* @param comparison_tags My Param doc
* @return int
*/
int minmaxsum_get(std::vector<int> comparison_tags);
};