新增了PQDIF补招线程,导入了新的lib库
This commit is contained in:
84
LFtid1056/pqdif_thread_processor.h
Normal file
84
LFtid1056/pqdif_thread_processor.h
Normal file
@@ -0,0 +1,84 @@
|
||||
#pragma once
|
||||
#pragma once
|
||||
|
||||
#include <ctime>
|
||||
#include <cstddef>
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "pqdif/include/pqdif_ph.h"
|
||||
|
||||
// ============================
|
||||
// ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩ
|
||||
// ============================
|
||||
struct RawChannelTagMeta
|
||||
{
|
||||
std::string raw_channel_name; // ԭʼ tagChannelName
|
||||
std::string normalized_channel_name; // <20><><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2>õĹ淶<C4B9><E6B7B6> key
|
||||
|
||||
long phase_id = -1; // tagPhaseID
|
||||
GUID quantity_type_id{}; // tagQuantityTypeID
|
||||
long quantity_measured_id = -1; // tagQuantityMeasuredID
|
||||
|
||||
double channel_frequency = 0.0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int group_id = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6>г<EFBFBD><D0B3><EFBFBD><EFBFBD>
|
||||
};
|
||||
|
||||
// ============================
|
||||
// ϵ<>м<EFBFBD><D0BC><EFBFBD>ǩ
|
||||
// ============================
|
||||
struct RawSeriesTagMeta
|
||||
{
|
||||
long quantity_units_id = -1; // tagQuantityUnitsID
|
||||
GUID quantity_characteristic_id{}; // tagQuantityCharacteristicID
|
||||
GUID value_type_id{}; // tagValueTypeID
|
||||
|
||||
long series_base_type = -1; // <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṩ<EFBFBD><E1B9A9><EFBFBD><EFBFBD>Ϣ
|
||||
double series_scale = 1.0; // <20><><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
|
||||
double series_offset = 0.0; // ƫ<><C6AB>
|
||||
};
|
||||
|
||||
// ============================
|
||||
// <20><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ԭʼͳ<CABC><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ǰ<EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩ + ԭʼֵ
|
||||
// ============================
|
||||
struct RawChannelSeries
|
||||
{
|
||||
RawChannelTagMeta channel_tag;
|
||||
|
||||
RawSeriesTagMeta time_meta;
|
||||
RawSeriesTagMeta max_meta;
|
||||
RawSeriesTagMeta min_meta;
|
||||
RawSeriesTagMeta avg_meta;
|
||||
RawSeriesTagMeta cp95_meta;
|
||||
RawSeriesTagMeta val_meta;
|
||||
|
||||
std::vector<time_t> times;
|
||||
std::vector<double> max_values;
|
||||
std::vector<double> min_values;
|
||||
std::vector<double> avg_values;
|
||||
std::vector<double> cp95_values;
|
||||
std::vector<double> val_values;
|
||||
};
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
using RawChannelMap = std::map<std::string, RawChannelSeries>;
|
||||
|
||||
// һ<><D2BB> PQDIF <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD>
|
||||
struct ParsedPqdifFile
|
||||
{
|
||||
std::string mac; // <20>豸Ŀ¼<C4BF><C2BC>
|
||||
std::string source_file; // ԭʼ<D4AD>ļ<EFBFBD>·<EFBFBD><C2B7>
|
||||
time_t parsed_at = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
RawChannelMap channels; // ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> PQDIF ɨ<><C9A8><EFBFBD>߳<EFBFBD>
|
||||
void RunPqdifScanLoop();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽӿ<CABD>
|
||||
bool PopOldestParsedPqdifFile(ParsedPqdifFile& out);
|
||||
bool PeekOldestParsedPqdifFile(ParsedPqdifFile& out);
|
||||
size_t GetParsedPqdifCacheSize();
|
||||
void ClearParsedPqdifCache();
|
||||
Reference in New Issue
Block a user