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

57 lines
2.0 KiB
C
Raw Normal View History

#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数据标记
};