#include /** * @brief Construct a new FFTStat::FFTStat object * @param ruleId My Param doc */ FFTStat::FFTStat(std::string ruleId) { dest_value_ = 0; this->rule_id_ = ruleId; } int FFTStat::ParseData(std::vector raw_data_fft) { this->raw_data_fft_ = raw_data_fft_; } int FFTStat::ParseData(std::vector raw_data_fft_, std::vector raw_data_compare) { this->raw_data_compare_ = raw_data_compare; this->raw_data_fft_ = raw_data_fft_; } unsigned long FFTStat::GetMaxMagnitudeIndex() { } double FFTStat::GetComparevalue(int comp_index) { auto data = mix_cc::FFT_(raw_data_fft_, {}); return std::abs(data[comp_index]); } double FFTStat::StorageToDB2(double value) { db_com_.insert_value("T_RULE_SAMPLE", {{"DATA", std::to_string(value)}, {"SAMPLEDATE", mix_cc::mix_time_t(time(0)).to_db2_str()}, {"RULEID", rule_id_}}); } double FFTStat::LoadFromDB2() { auto data = db_com_.query_value("T_RULE_SAMPLE", {}, {{"RULEID", rule_id_, "="}}, "ORDER BY SAMPLEDATE FETCH FIRST 50 ROWS ONLY"); for (auto &x : data) { this->dest_value_ += x.at("DATA").as_double(); } dest_value_ = dest_value_ / data.size(); return dest_value_; }