66 lines
1.5 KiB
C++
66 lines
1.5 KiB
C++
#pragma once
|
|
/**
|
|
* @file frame.h
|
|
* @brief 对数据进行预处理和存储/载入的类
|
|
* @author Cat (null.null.null@qq.com)
|
|
* @version 0.1
|
|
* @date 2021-09-10
|
|
*
|
|
* Copyright: Baosight Co. Ltd.
|
|
* DO NOT COPY/USE WITHOUT PERMISSION
|
|
*
|
|
*/
|
|
#include <eqpalg/data_handler/rs_mgr.h>
|
|
#include <eqpalg/data_handler/approximate_data.h>
|
|
// #include <eqpalg/data_handler/flatten_data.h>
|
|
using TimePoint = std::chrono::system_clock::time_point;
|
|
|
|
namespace data_handler {
|
|
template <class DataPolicy>
|
|
class Frame {
|
|
private:
|
|
// StoragePolicy storage_policy_;
|
|
std::string rule_id_;
|
|
RsMgr rs_mgr_;
|
|
DataPolicy data_mgr_;
|
|
|
|
LOG logger_;
|
|
TimePoint last_cron_time_;
|
|
bool is_have_info_ = true; ///< db2是否有步长
|
|
|
|
public:
|
|
Frame(const std::string& ruleId, size_t dims);
|
|
|
|
~Frame() = default;
|
|
|
|
int load();
|
|
/**
|
|
* @brief 查看是否有步长
|
|
* @return true
|
|
* @return false
|
|
*/
|
|
bool look_have_info() { return this->is_have_info_; }
|
|
|
|
bool is_first_sampling();
|
|
|
|
int first_sampling_bath(const SampleWindow& input_data, TimePoint tp);
|
|
|
|
int store(const SamplePoint& data_array);
|
|
|
|
int commit();
|
|
|
|
Rs get_running_stats();
|
|
|
|
SampleWindow get_extracted_data();
|
|
int put_data_to_rs(const SampleWindow& input_data);
|
|
vector<double> get_rs_means();
|
|
vector<double> get_rs_variances();
|
|
vector<double> get_rs_stddev();
|
|
vector<double> get_rs_skewness();
|
|
vector<double> get_rs_kurtosis();
|
|
vector<double> get_rs_max();
|
|
vector<double> get_rs_min();
|
|
};
|
|
|
|
} // namespace data_handler
|