45 lines
1.3 KiB
C++
45 lines
1.3 KiB
C++
#include <eqpalg/stat_tools/FFTStat.h>
|
|
/**
|
|
* @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<double> raw_data_fft) {
|
|
this->raw_data_fft_ = raw_data_fft_;
|
|
}
|
|
int FFTStat::ParseData(std::vector<double> raw_data_fft_,
|
|
std::vector<double> 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_;
|
|
}
|