52 lines
1.2 KiB
C
52 lines
1.2 KiB
C
|
|
/**
|
||
|
|
* @file trend_slope.h
|
||
|
|
* @brief 趋势检测(斜率)
|
||
|
|
* @author Cat (null.null.null@qq.com)
|
||
|
|
* @version 0.1
|
||
|
|
* @date 2021-09-13
|
||
|
|
*
|
||
|
|
* Copyright: Baosight Co. Ltd.
|
||
|
|
* DO NOT COPY/USE WITHOUT PERMISSION
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
#pragma once
|
||
|
|
#include <eqpalg/alg_base.h>
|
||
|
|
#include <eqpalg/define/public.h>
|
||
|
|
#include <string>
|
||
|
|
#include <vector>
|
||
|
|
|
||
|
|
class TrendSlope3 : public AlgBase {
|
||
|
|
public:
|
||
|
|
TrendSlope3(const string name, const mix_cc::json &rule_json,
|
||
|
|
const string ruleId);
|
||
|
|
|
||
|
|
~TrendSlope3() override;
|
||
|
|
|
||
|
|
public:
|
||
|
|
int init() override;
|
||
|
|
/**
|
||
|
|
* @brief 执行函数
|
||
|
|
* @return AlarmInfo
|
||
|
|
*/
|
||
|
|
AlarmInfo exec_mon() override;
|
||
|
|
/**
|
||
|
|
* @brief 单次执行
|
||
|
|
* @param time_range My Param doc
|
||
|
|
* @return std::vector<AlarmInfo>
|
||
|
|
*/
|
||
|
|
std::vector<AlarmInfo> exec_task(mix_cc::time_range_t time_range) override;
|
||
|
|
/**
|
||
|
|
* @brief 前提条件--指定数据
|
||
|
|
* @return true
|
||
|
|
* @return false
|
||
|
|
*/
|
||
|
|
bool get_prr2();
|
||
|
|
private:
|
||
|
|
TimeDur limit_time_interval_; ///<查询ihd 均值数据的时间间隔
|
||
|
|
TimeDur deltaX_;
|
||
|
|
double limit_slope_; ///<斜率阈值
|
||
|
|
std::string error_content_; ///<报警内容
|
||
|
|
int CS_AVG_SIZE_; ///<连续出现的次数
|
||
|
|
int need_tag_seq_ = 0; ///<监控变量的位置
|
||
|
|
};
|