eis/eqpalg/.do_not_use/otheralg/times_stastics.h

57 lines
2.0 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
/**
* @file times_stastics.h
* @brief 运行/次数统计 太原硅钢
* @author your name (you@domain.com)
* @version 0.1
* @date 2023-12-22
*
* Copyright: Baosight Co. Ltd.
* DO NOT COPY/USE WITHOUT PERMISSION
*
*/
#include <eqpalg/alg_base.h>
#include <eqpalg/define/public.h>
#include <eqpalg/gb_item_memory.h>
#include <glob/SingletonTemplate.h>
#include <map>
#include "mix_cc/sql.h"
#include "mix_cc/sql/database/db2_t.h"
class TimesStastics : virtual public AlgBase {
public:
TimesStastics(const string name, const mix_cc::json& rule_json,
const string ruleId);
virtual ~TimesStastics();
AlarmInfo exec_mon() override;
AlarmInfo mon_proc();
virtual int init() override;
virtual void reset_dev_data() override; ///<清除历史记录
std::vector<AlarmInfo> exec_task(mix_cc::time_range_t time_range) override;
virtual void set_usable(bool usable) override;
// using HistoryTable = T_RULE_SAMPLE_1D_APPROXIMATE;
private:
std::map<std::string, double> mm_vars_; ///< 表达式系统变量map
int refresh_mm_vars();
unsigned long now_times_ = 0;
unsigned long last_times_ = 0; ///上次使用次数
unsigned long maxTimes_;
double now_used_hours_ = 0; ///<使用时间
double last_used_hours_ = 0; ///<上次使用时间
double maxUsedHours_; ///<最大使用时间
int used_mode_ = 1; ///<使用模式1剪切次数2使用时间3报警统计
int times_add();
int get_history_times(); ///查数据库 t_rule_sample_1d_approximate 表
int update_history_times();
int insert_history_times(unsigned long now_times, double now_used_time);
TimePoint last_load_time_;
TimePoint act_start_;
bool start_flag_ = false;
int rw_time_ = 10; ///<读写时间间隔 min
MemCachedClient m_memclient;
string Jvalue_ = "1"; ///已清除
string Jkey_ =
string(CMemVar::Const()->UnitNo) + "_" + "clear_flag"; ///<清除标记
bool history_get_flag_ = false; ///<重置db2数据标记
};