AnalysisSystemForRadionucli.../RadionuclideMessage.h

62 lines
2.9 KiB
C
Raw Normal View History

2024-06-04 15:25:02 +08:00
#ifndef RADIONUCLIDEMESSAGE_H
#define RADIONUCLIDEMESSAGE_H
#include "AbstractSpectrumDataMessage.h"
#include "DataManager_Define.h"
#include <QVariant>
class QTextStream;
class RadionuclideMessage : public AbstractSpectrumDataMessage
{
public:
explicit RadionuclideMessage();
~RadionuclideMessage();
bool AnalysePHD_Msg(QString &msg_string);
bool AnalysePHD_File(QString phd_name);
RadionuclideData::AnalyseDataType GetAnalyseDataType();
const QVariant GetBlockData(QString& block_name);
virtual bool IsValid();
virtual void ClearData();
static QVector<long> GetHistogramProjectedDataValue(
RadionuclideData::HistogramBlock &histogram, Qt::Orientation orientation);
private:
void InitBlockFlagInfo();
bool AnalyseMessgeBody(QTextStream& content);
bool Analyse_Header_Block(QTextStream& content, QString& nextBlock);
bool Analyse_Comment_Block(QTextStream& content, QString& nextBlock);
bool Analyse_Collection_Block(QTextStream& content, QString& nextBlock);
bool Analyse_Acquisition_Block(QTextStream& content, QString& nextBlock);
bool Analyse_Processing_Block(QTextStream& content, QString& nextBlock);
bool Analyse_Sample_Block(QTextStream& content, QString& nextBlock);
bool Analyse_g_Energy_Block(QTextStream& content, QString& nextBlock);
bool Analyse_b_Energy_Block(QTextStream& content, QString& nextBlock);
bool Analyse_g_Resolution_Block(QTextStream& content, QString& nextBlock);
bool Analyse_b_Resolution_Block(QTextStream& content, QString& nextBlock);
bool Analyse_g_Efficiency_Block(QTextStream& content, QString& nextBlock);
bool Analyse_ROI_Limits_Block(QTextStream& content, QString& nextBlock);
bool Analyse_bg_Efficiency_Block(QTextStream& content, QString& nextBlock);
bool Analyse_TotalEff_Block(QTextStream& content, QString& nextBlock);
bool Analyse_Ratios_Block(QTextStream& textStream, QString& nextBlock);
bool Analyse_g_Spectrum_Block(QTextStream& content, QString& nextBlock);
bool Analyse_b_Spectrum_Block(QTextStream& content, QString& nextBlock);
bool Analyse_Histogram_Block(QTextStream& content, QString& nextBlock);
bool Analyse_Calibration_Block(QTextStream& content, QString& nextBlock);
bool Analyse_Certificate_Block(QTextStream& content, QString& nextBlock);
bool Analyse_b_self_Attenuation_Block(QTextStream& content, QString& nextBlock);
bool Analyse_b_Efficiency_Block(QTextStream& content, QString& nextBlock);
bool Analyse_Gps_Block(QTextStream &content, QString &nextBlock);
2024-06-04 15:25:02 +08:00
bool Verity_SampleReferenceId(QString srid);
private:
bool bIsValid;
QStringList block_flag;
QVariantMap radionuclide_msg_data; // 因解析的数据的结构不同请其统一存储至QVariantMap容器中
RadionuclideData::AnalyseDataType analyse_data_type;
QString m_system_type = "";
2024-06-04 15:25:02 +08:00
};
#endif // RADIONUCLIDEMESSAGE_H