AnalysisSystemForRadionucli.../DataManager_Define.h

867 lines
38 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef DATA_MANAGE_DEFINE_H
#define DATA_MANAGE_DEFINE_H
#include <QtCore/qglobal.h>
#include <QVector>
#include <QMetaType>
#include <QString>
#define DATE_FORMAT QLatin1String("yyyy/MM/dd")
#define TIME_FORMAT QLatin1String("hh:mm:ss.z")
#define DATATIME_FORMAT QLatin1String("yyyy/MM/dd hh:mm:ss.z")
#define DATATIME_FORMAT_NOSPACE QLatin1String("yyyy/MM/ddhh:mm:ss.z")
#define DATATIME_FORMAT_SECONDS QLatin1String("yyyy/MM/ddhh:mm:ss")
#define DATATIME_FORMAT_SPACE_SECONDS QLatin1String("yyyy/MM/dd hh:mm:ss")
#define ORDER_HEADER QLatin1String("#Header")
#define ORDER_COMMENT QLatin1String("#Comment")
#define ORDER_COLLECTION QLatin1String("#Collection")
#define ORDER_ACQUISITION QLatin1String("#Acquisition")
#define ORDER_PROCESSING QLatin1String("#Processing")
#define ORDER_SAMPLE QLatin1String("#Sample")
#define ORDER_G_ENERGY QLatin1String("#g_Energy")
#define ORDER_B_ENERGY QLatin1String("#b_Energy")
#define ORDER_G_RESOLUTION QLatin1String("#g_Resolution")
#define ORDER_B_RESOLUTION QLatin1String("#b_Resolution")
#define ORDER_G_EFFICIENCY QLatin1String("#g_Efficiency")
#define ORDER_ROI_LIMITS QLatin1String("#ROI_Limits")
#define ORDER_B_GEFFICIENCY QLatin1String("#b-gEfficiency")
#define ORDER_TOTALEFF QLatin1String("#TotalEff")
#define ORDER_RATIOS QLatin1String("#Ratios")
#define ORDER_G_SPECTRUM QLatin1String("#g_Spectrum")
#define ORDER_B_SPECTRUM QLatin1String("#b_Spectrum")
#define ORDER_HISTOGRAM QLatin1String("#Histogram")
#define ORDER_CALIBRATION QLatin1String("#Calibration")
#define ORDER_CERTIFICATE QLatin1String("#Certificate")
#define ORDER_STOP QLatin1String("STOP")
#define ORDER_BEGIN QLatin1String("BEGIN")
#define DATATYPE_QCPHD QLatin1String("QCPHD")
#define DATATYPE_DETBKPHD QLatin1String("DETBKPHD")
#define DATATYPE_SAMPLEPHD QLatin1String("SAMPLEPHD")
#define DATATYPE_GASBKPHD QLatin1String("GASBKPHD")
#define DATETYPE_SOH QLatin1String("RMSSOH")
#define DATETYPE_MET QLatin1String("MET")
#define DATETYPE_ALERT_FLOW QLatin1String("ALERT_FLOW")
#define DATETYPE_ALERT_SYSTEM QLatin1String("ALERT_SYSTEM")
#define DATETYPE_ALERT_TEMP QLatin1String("ALERT_TEMP")
#define DATETYPE_ALERT_UPS QLatin1String("ALERT_UPS")
#define SYSTEMTYPE_P QLatin1String("P") //P for particulate;
#define SYSTEMTYPE_B QLatin1String("B") //B for gaswith 3-D β - γ coincidence detection
#define SYSTEMTYPE_G QLatin1String("G") //G for all other gas systems (high-resolu-tion γ-spectrometry or 2-D β-γ coinci-dence detection)
#define FILE_SAMPLE_NAME_FORMAT QLatin1String("[a-zA-Z]{3}[0-9]{2}_[0-9]{3}-[0-9]{8}_[0-9]{4}(_S.PHD)$")
#define FILE_ALL_NAME_FORMAT QLatin1String("[a-zA-Z]{3}[0-9]{2}_[0-9]{3}-[0-9]{8}_[0-9]{4}(_G.PHD|_Q.PHD|_S.PHD|_D.PHD)$")
#define DEFAULT_DATA_PATH QLatin1String("DefaultData")
#define CFG_FILE_PATH tr("./cfg/")
#define CFG_FILE_NAME tr("filecfg.ini")
#define CFG_DELETE_FILE_NAME tr("filedelete.ini")
#define GROUP_DELETE_FILE tr("file")
#define KEY_DELETE_FILE tr("time")
//#define VALUE_DELETE_FILE tr("")
#define GROUP_CFG_FILE tr("FILE_NAME")
#define KEY_BG_AUTO_PROCESS tr("AUTO_DATA_PROCESS")
#define VALUE_BG_AUTO_PROCESS_FILE_NAME tr("auto_data_process.ini")
#define GROUP_BG_THREAD tr("THREAD")
#define KEY_GROUP_BG_THREAD_LIMIT tr("NUMBER")
#define VALUE_GROUP_BG_THREAD_LIMIT tr("2")
#define GROUP_BG_AUTO_ACQUIR tr("GET")
#define KEY_BG_AUTO_FILE_SOURCE_PATH tr("DETECT_FILE_PATH")
#define VALUE_BG_AUTO_FILE_SOURCE_PATH tr("./datatest/filesource/")
//#define GROUP_BG_AUTO_ACQUIR tr("acquire")
//#define KEY_BG_AUTO_FILE_MAIL_SAVE_PATH tr("FILEMAILSAVEPATH")
//#define VALUE_BG_AUTO_FILE_MAIL_SAVE_PATH tr("./datatest/mailload/")
//#define KEY_BG_AUTO_ACUIRE_MAILTIMEOUT tr("MAILDETECTTIMEOUT")
//#define VALUE_BG_AUTO_ACUIRE_MAILTIMEOUT tr("3")
#define KEY_BG_AUTO_ACUIRE_FILETIMEOUT tr("DETECT_FILE_INTERVAL_TIME")
#define VALUE_BG_AUTO_ACUIRE_FILETIMEOUT tr("600")
#define GROUP_BG_AUTO_LOG tr("LOG")
#define KEY_BG_AUTO_LOG_PATH tr("PATH")
#define VALUE_BG_AUTO_LOG_PATH tr("./datatest/log")
#define GROUP_BG_AUTO_DEAL tr("DEAL")
#define KEY_BG_AUTO_DEAL_TIMEOUT tr("UN_DEAL_SEARCH_FILE_TIMEOUT")
#define VALUE_BG_AUTO_DEAL_TIMEOUT tr("43200")
#define KEY_BG_AUTO_DEAL_ID_TIMEOUT tr("UN_DEAL_SEARCH_ID_TIMEOUT")
#define VALUE_BG_AUTO_DEAL_ID_TIMEOUT tr("43200")
#define KEY_BG_AUTO_DEAL_TIMEDETECT tr("UN_DEAL_FILE_DETECT_TIME")
#define VALUE_BG_AUTO_DEAL_TIMEDETECT tr("1800")
#define KEY_BG_AUTO_STATISTICS_TIME tr("STATISTICS_TIME")
#define VALUE_BG_AUTO_STATISTICS_TIME tr("24")
#define KEY_BG_AUTO_DELETE_FILE_INTERVAL_TIMEE tr("DELETE_FILE_INTERVAL_TIME")
#define VALUE_BG_AUTO_SDELETE_FILE_INTERVAL_TIME tr("30")
#define KEY_BG_AUTO_FILE_SAVE_PATH tr("FILE_SAVE_PATH")
#define VALUE_BG_AUTO_FILE_SAVE_PATH tr("./datatest/savefile/")
#define KEY_BG_AUTO_DETAGAS_DEFAULT_PATH tr("DETA_GAS_DEFAULT_PATH")
#define VALUE_BG_AUTO_DETAGAS_DEFAULT_PATH tr("./defaultdata/detagas/")
#define KEY_BG_AUTO_DEAL_NODEALFILEPATH tr("UN_DEAL_FILE_PATH")
#define VALUE_BG_AUTO_DEAL_NODEALFILEPATH tr("./datatest/undeal/")
#define KEY_DATABASE_FIEL_PATH tr("DATA_BASE")
#define VALUE_DATABASE_FIEL_PATH tr("data_base.ini")
#define GROUP_DATABASE tr("DATA_BASE")
#define KEY_DATABASE_TYPE tr("TYPE")
#define VALUE_DATABASE_TYPE tr("MYSQL")
#define GROUP_DATABASE_MYSQL tr("MYSQL")
#define GROUP_DATABASE_ORACLE tr("ORACLE")
#define KEY_DATABASE_HOSTNAME tr("HOSTNAME")
#define VALUE_DATABASE_HOSTNAME tr("192.168.0.101")
#define KEY_DATABASE_DATABASENAME tr("DATA_BASE_NAME")
#define VALUE_DATABASE_DATABASENAME tr("configuration")
#define KEY_DATABASE_USERNAME tr("USERNAME")
#define VALUE_DATABASE_USERNAME tr("root")
#define KEY_DATABASE_PASSWORD tr("PASSWORD")
#define VALUE_DATABASE_PASSWORD tr("123456")
#define KEY_DATABASE_PORT tr("PORT")
#define VALUE_DATABASE_PORT tr("3306")
#define VALUE_DATABAS_ORACLE_HOSTNAME tr("192.168.0.119")
#define VALUE_DATABASE_ORACLE_DATABASENAME tr("orcl")
#define VALUE_DATABASE_ORACLE_USERNAME tr("configuration")
#define VALUE_DATABASE_ORACLE_PASSWORD tr("123456")
#define VALUE_DATABASE_ORACLE_PORT tr("1521")
#define KEY_EMAIL_FIEL_PATH tr("EMAIL")
#define VALUE_EMAIL_FIEL_PATH tr("email.ini")
#define GROUP_EMAIL_SEND tr("SEND")
#define KEY_EMAIL_SEND_USER tr("USER")
#define VALUE_EMAIL_SEND_USER tr("xuhai_cpp@sina.com")
#define KEY_EMAIL_SEND_PASSWD tr("PASSWD")
#define VALUE_EMAIL_SEND_PASSWD tr("abc123456")
#define KEY_EMAIL_SEND_SERVER tr("SERVER")
#define VALUE_EMAIL_SEND_SERVER tr("smtp.sina.com")
#define KEY_EMAIL_SEND_PORT tr("PORT")
#define VALUE_EMAIL_SEND_PORT tr("25")
#define KEY_EMAIL_SEND_CONNECTTYPE tr("CONNECT_TYPE")
#define VALUE_EMAIL_SEND_CONNECTTYPE tr("0")
#define KEY_EMAIL_SEND_RECEIVER tr("RECEIVER")
#define VALUE_EMAIL_SEND_RECEIVER tr("1327783389@qq.com")
#define KEY_EMAIL_SEND_INTERVAL tr("SEND_INTERVAL")
#define VALUE_EMAIL_SEND_INTERVAL tr("10")
//#define GROUP_EMAIL_GET tr("GET")
#define KEY_EMAIL_GET_USER tr("USER")
#define VALUE_EMAIL_GET_USER tr("cnndc.rn")
#define KEY_EMAIL_GET_PASSWD tr("PASSWD")
#define VALUE_EMAIL_GET_PASSWD tr("367220")
#define KEY_EMAIL_GET_SERVER tr("SERVER")
#define VALUE_EMAIL_GET_SERVER tr("192.168.10.59")
#define KEY_EMAIL_GET_PORT tr("PORT")
#define VALUE_EMAIL_GET_PORT tr("143")
#define KEY_EMAIL_GET_CONNECTTYPE tr("CONNECT_TYPE")
#define VALUE_EMAIL_GET_CONNECTTYPE tr("0")
#define KEY_EMAIL_GET_FILE_SAVEPATH tr("FILE_SAVE_PATH")
#define VALUE_EMAIL_GET_FILE_SAVE_PATH tr("./datatest/mailload/")
#define KEY_EMAIL_GET_EML_SAVE_PATH tr("EML_SAVE_PATH")
#define VALUE_EMAIL_GET_EML_SAVE_PATH tr("./datatest/eml/")
#define KEY_EMAIL_GET_EML_INTERVAL_TIME tr("GET_EMAIL_INTERVAL_TIME")
#define VALUE_EMAIL_GET_EML_INTERVAL_TIME tr("600")
#define GROUP_EMAIL_GET_PROCESS tr("GET_PROCESS")
#define KEY_EMAIL_GET_FILE_SAVEPATH tr("FILE_SAVE_PATH")
#define VALUE_EMAIL_GET_FILE_SAVE_PATH tr("./datatest/mailload/")
#define KEY_EMAIL_GET_EML_SAVE_PATH tr("EML_SAVE_PATH")
#define VALUE_EMAIL_GET_EML_SAVE_PATH tr("./datatest/eml/")
#define KEY_EMAIL_GET_EML_INTERVAL_TIME tr("GET_EMAIL_INTERVAL_TIME")
#define VALUE_EMAIL_GET_EML_INTERVAL_TIME tr("1800")
#define GROUP_EMAIL_GET tr("GET_MAIL")
#define GROUP_EMAIL_GET_ONE tr("GET_MAIL_1")
#define GROUP_EMAIL_GET_TWO tr("GET_MAIL_2")
#define KEY_EMAIL_GET_USER tr("USER")
#define VALUE_EMAIL_GET_USER tr("cnndc.rn")
#define KEY_EMAIL_GET_PASSWD tr("PASSWD")
#define VALUE_EMAIL_GET_PASSWD tr("367220")
#define KEY_EMAIL_GET_SERVER tr("SERVER")
#define VALUE_EMAIL_GET_SERVER tr("192.168.10.59")
#define KEY_EMAIL_GET_PORT tr("PORT")
#define VALUE_EMAIL_GET_PORT tr("143")
typedef struct _Read_Result_
{
/* Infomations */
QString msg_type;
QString msg_id;
QString data_type;
/* Header Black */
QString designator; // designator
QString site_code; // site code
QString detector_code; // detector code
QString system_type; // system type: P for particulate; B for gas with 3-D β - γ coincidence detection; and
// G for all other gas systems (high-resolu-tion γ-spectrometry or 2-D β-γ coinci-dence detection)
QString sample_geometry; // sample geometry
QString spectrum_quantity; // spectrum qualifier: preliminary ( PREL )or full ( FULL)
QString sample_ref_id; // sample reference identification
QString measurement_id; // measurement identification
QString detector_bk_measurement_id; // detector background measurement identification
QString gas_bk_measurement_id; // gas background measurement identification (memory effect)
QString transmit_date; // transmit date (yyyy / mm / dd)
QString transmit_time; // transmit time (hh : mm : ss . s)
/* Acquisition Block */
QString acquisition_start_date; // acquisition start date (yyyy / mm / dd)
QString acquisition_start_time; // acquisition start time (hh : mm : ss . s)
double acquisition_real_time; // acquisition real time (s)
double acquisition_live_time; // acquisition live time (s)
/* Collection Block */
QString collection_start_date; // collection start date (yyyy / mm / dd)
QString collection_start_time; // collection start time (hh : mm : ss . s)
QString collection_stop_date; // collection stop date (yyyy / mm / dd)
QString collection_stop_time; // collection stop time (hh : mm : ss . s)
double air_volume; // total air volume sampled (standard cubic meters [scm])
/* Processing Block */
double sample_volume_of_Xe; // sample volume of Xe (cm 3 )
double uncertainty_1; // uncertainty (cm 3 )
double Xe_collection_yield; // Xe collection yield (Xe gas in sample/total Xe gas sampled)
double uncertainty_2; // uncertainty (Xe gas in sample/total Xe gas sampled)
QString archive_bottle_id; // archive bottle identification
/* Calibration Block */
QString date_calibration; // date of last calibration (yyyy / mm / dd)
QString time_calibration; // time of last calibration (hh : mm : ss)
/* g_Energy Block */
QVector<double> g_energy; // γ -energy (keV)
QVector<double> g_centroid_channel; // centroid channel
QVector<double> g_uncertainty; // uncertainty (channels)
int g_record_count;
/* b_Energy Block */
QVector<double> b_electron_energy; // electron energy (keV)
QVector<QString> b_decay_mode; // decay mode descriptor: B for β-particle, C for conversion electron (CE)
QVector<double> b_channel; // maximum channel of β-particle distribution or centroid channel of CE (channels)
QVector<double> b_uncertainty; // uncertainty (channels)
int b_record_count;
/* g_Resolution Block */
QVector<double> g_r_energy; // γ -energy (keV)
QVector<double> g_r_FWHM; // FWHM (keV)
QVector<double> g_r_uncertainty; // uncertainty (keV)
int g_r_record_count;
/* b_Resolution Block */
QVector<double> b_r_electron_energy; // electron energy (keV)
QVector<double> b_r_FWHM; // FWHM (keV)
QVector<double> b_r_uncertainty; // uncertainty (keV)
int b_r_record_count;
/* g_Efficiency Block */
QVector<double> g_e_energy; // γ -energy (keV)
QVector<double> g_e_efficiency; // efficiency (counts in peak/photon emitted)
QVector<double> g_e_uncertainty; // uncertainty (counts in peak/photon emitted)
int g_e_record_count;
/* ROI_Limits Block */
QVector<QString> ROI_number; // ROI number
QVector<double> POI_B_x1; // 2-D ROI β-range start, x 1 (keV)
QVector<double> POI_B_x2; // 2-D ROI β-range stop, x 2 (keV)
QVector<double> POI_G_y1; // 2-D ROI γ-range start, y 1 (keV)
QVector<double> POI_G_y2; // 2-D ROI γ-range stop, y 2 (keV)
int roi_record_count;
/* b-gEfficiency Block */
QVector<QString> bg_nuclide_name; // nuclide name
QVector<QString> bg_ROI_number; // ROI number
QVector<double> bg_efficiency; // β-γ coincidence efficiency (counts in ROI/β-γ pair emitted)
QVector<double> bg_uncertainty; // uncertainty (counts in ROI/β-γ pair emitted)
int bg_record_count;
/* Ratios Block */
QVector<QString> ratio_id; // ratio identifier
QVector<QString> ROI_num_highter_G_energy_ROI; // ROI number for the higher γ -energy ROI
QVector<QString> ROI_num_lower_G_energy_ROI; // ROI number for the lower γ -energy ROI
QVector<double> count_ratio; // Q_DECLARE_METATYPE(RMSSOHData::HeaderBlock)count ratio(counts in higher γ -energy ROI/counts in lower γ -energy ROI)
QVector<double> count_ratio_uncertainty; // count ratio uncertainty (percent)
int ratio_record_count;
/* g_Spectrum Block */
long num_g_channel; // number of γ channels
long g_energy_span; // γ-energy span (keV)
long g_begin_channel; // begin of channels
QVector<long> g_counts; // count at channel
/* b_Spectrum Block */
long num_b_channel; // number of β -channels
long b_energy_span; // β -energy span (keV)
long b_begin_channel; // begin of channels
QVector<long> b_counts; // counts at channels
/* Histogram Block */
long b_channels; // β-channels
long g_channels; // γ-channels
long b_h_energy_span; // β-energy span
long g_h_energy_span; // γ-energy span
QVector<long> h_counts; // counts at channels
}ReadResult;
typedef struct _Message_Infomations_
{
/* Infomations */
QString msg_type;
QString msg_id;
QString msg_src_code;
QString ref_id_str;
QString ref_src_code;
QString seq_num;
QString tot_num;
QString product_id;
QString delivery_id;
QString data_type;
bool verify_srid;
}
MessageInfo, *PtMessageInfo;
Q_DECLARE_METATYPE(MessageInfo)
/* Commect Block */
typedef QString CommentBlock;
Q_DECLARE_METATYPE(CommentBlock)
namespace RadionuclideData
{
enum AnalyseDataType
{
InvalidData,
GammaAnalyseData,
BetaGammaAnalyseData
};
typedef struct _Header_Block_
{
/* Header Black */
QString designator; // designator
QString site_code; // site code
QString detector_code; // detector code
QString system_type; // system type: P for particulate; B for gas with 3-D β - γ coincidence detection; and
// G for all other gas systems (high-resolu-tion γ-spectrometry or 2-D β-γ coinci-dence detection)
QString sample_geometry; // sample geometry
QString spectrum_quantity; // spectrum qualifier: preliminary ( PREL )or full ( FULL)
QString sample_ref_id; // sample reference identification
QString measurement_id; // measurement identification
QString detector_bk_measurement_id; // detector background measurement identification
QString gas_bk_measurement_id; // gas background measurement identification (memory effect)
QString transmit_date; // transmit date (yyyy / mm / dd)
QString transmit_time; // transmit time (hh : mm : ss . s)
}
HeaderBlock, *PtHeaderBlock;
typedef struct _Acquisition_Block_
{
/* Acquisition Block */
QString acquisition_start_date; // acquisition start date (yyyy / mm / dd)
QString acquisition_start_time; // acquisition start time (hh : mm : ss . s)
double acquisition_real_time; // acquisition real time (s)
double acquisition_live_time; // acquisition live time (s)
}
AcquisitionBlock, *PtAcquisitionBlock;
typedef struct _Collection_Block_
{
/* Collection Block */
QString collection_start_date; // collection start date (yyyy / mm / dd)
QString collection_start_time; // collection start time (hh : mm : ss . s)
QString collection_stop_date; // collection stop date (yyyy / mm / dd)
QString collection_stop_time; // collection stop time (hh : mm : ss . s)
double air_volume; // total air volume sampled (standard cubic meters [scm])
}
CollectionBlock, *PtCollectionBlock;
typedef struct _Processing_Block_
{
/* Processing Block */
double sample_volume_of_Xe; // sample volume of Xe (cm 3 )
double uncertainty_1; // uncertainty (cm 3 )
double Xe_collection_yield; // Xe collection yield (Xe gas in sample/total Xe gas sampled)
double uncertainty_2; // uncertainty (Xe gas in sample/total Xe gas sampled)
QString archive_bottle_id; // archive bottle identification
}
ProcessingBlock, *PtProcessingBlock;
typedef struct _Sample_Block_
{
/* Sample Block */
double dimension_1;
double dimension_2;
}
SampleBlock, *PtSampleBlock;
typedef struct _Calibration_Block_
{
/* Calibration Block */
QString date_calibration; // date of last calibration (yyyy / mm / dd)
QString time_calibration; // time of last calibration (hh : mm : ss)
}
CalibrationBlock, *PtCalibrationBlock;
typedef struct _g_Energy_Block_
{
/* g_Energy Block */
QVector<double> g_energy; // γ -energy (keV)
QVector<double> centroid_channel; // centroid channel
QVector<double> uncertainty; // uncertainty (channels)
int record_count;
}
G_EnergyBlock, *PtG_EnergyBlock;
typedef struct _b_Energy_Block_
{
/* b_Energy Block */
QVector<double> electron_energy; // electron energy (keV)
QVector<QString> decay_mode; // decay mode descriptor: B for β-particle, C for conversion electron (CE)
QVector<double> channel; // maximum channel of β-particle distribution or centroid channel of CE (channels)
QVector<double> uncertainty; // uncertainty (channels)
int record_count;
}
B_EnergyBlock, *PtB_EnergyBlock;
typedef struct _g_Resolution_Block_
{
/* g_Resolution Block */
QVector<double> g_energy; // γ -energy (keV)
QVector<double> FWHM; // FWHM (keV)
QVector<double> uncertainty; // uncertainty (keV)
int record_count;
}
G_ResolutionBlock, *PtG_ResolutionBlock;
typedef struct _b_Resolution_Block_
{
/* b_Resolution Block */
QVector<double> electron_energy; // electron energy (keV)
QVector<double> FWHM; // FWHM (keV)
QVector<double> uncertainty; // uncertainty (keV)
int record_count;
}
B_ResolutionBlock, *PtB_ResolutionBlock;
typedef struct _g_Efficiency_Block_
{
/* g_Efficiency Block */
QVector<double> g_energy; // γ -energy (keV)
QVector<double> efficiency; // efficiency (counts in peak/photon emitted)
QVector<double> uncertainty; // uncertainty (counts in peak/photon emitted)
int record_count;
}
G_EfficiencyBlock, *PtG_EfficiencyBlock;
typedef struct _n_g_Efficiency_Block_
{
/* g_Efficiency Block */
QVector<QString> dev_name;
QVector<double> g_energy; // γ -energy (keV)
QVector<double> efficiency; // efficiency (counts in peak/photon emitted)
QVector<double> uncertainty; // uncertainty (counts in peak/photon emitted)
int record_count;
}
n_G_EfficiencyBlock, *Pt_n_G_EfficiencyBlock;
typedef struct _ROI_Limits_Block_
{
/* ROI_Limits Block */
QVector<QString> ROI_number; // ROI number
QVector<double> POI_B_x1; // 2-D ROI β-range start, x 1 (keV)
QVector<double> POI_B_x2; // 2-D ROI β-range stop, x 2 (keV)
QVector<double> POI_G_y1; // 2-D ROI γ-range start, y 1 (keV)
QVector<double> POI_G_y2; // 2-D ROI γ-range stop, y 2 (keV)
int record_count;
}
ROI_LimitsBlock, *PtROI_LimitsBlock;
typedef struct _BG_Efficiency_Block_
{
/* b-gEfficiency Block */
QVector<QString> nuclide_name; // nuclide name
QVector<QString> ROI_number; // ROI number
QVector<double> bg_efficiency; // β-γ coincidence efficiency (counts in ROI/β-γ pair emitted)
QVector<double> uncertainty; // uncertainty (counts in ROI/β-γ pair emitted)
int record_count;
}
BG_EfficiencyBlock, *PtBG_EfficiencyBlock;
typedef struct _N_BG_Efficiency_Block_
{
/* b-gEfficiency Block */
QVector<QString> nuclide_name; // nuclide name
QVector<double> bg_efficiency; // β-γ coincidence efficiency (counts in ROI/β-γ pair emitted)
QVector<double> uncertainty; // uncertainty (counts in ROI/β-γ pair emitted)
int record_count;
}
NBG_EfficiencyBlock, *PtNBG_EfficiencyBlock;
typedef struct _Totaleff_Block_
{
/* Totaleff Block */
QVector<double> g_energy; // γ-energy (keV)
QVector<double> total_efficiency; // total efficiency (counts/photon emitted)
QVector<double> uncertainty; // uncertainty (counts/photon emitted)
int record_count;
}
TotaleffBlock, *PtTotaleffBlock;
typedef struct _Ratios_Block_
{
/* Ratios Block */
QVector<QString> ratio_id; // ratio identifier
QVector<QString> ROI_num_highter_G_energy_ROI; // ROI number for the higher γ -energy ROI
QVector<QString> ROI_num_lower_G_energy_ROI; // ROI number for the lower γ -energy ROI
QVector<double> count_ratio; // Q_DECLARE_METATYPE(RMSSOHData::HeaderBlock)count ratio(counts in higher γ -energy ROI/counts in lower γ -energy ROI)
QVector<double> count_ratio_uncertainty; // count ratio uncertainty (percent)
int record_count;
}
RatiosBlock, *PtRatiosBlock;
typedef struct _G_Spectrum_Block_
{
/* g_Spectrum Block */
long num_g_channel; // number of γ channels
long g_energy_span; // γ-energy span (keV)
long begin_channel; // begin of channels
QVector<long> counts; // count at channel
//Add By XYL 20170721
_G_Spectrum_Block_()
{
num_g_channel = 0;
g_energy_span = 0;
begin_channel = 0;
}
}
G_SpectrumBlock, *PtG_SpectrumBlock;
typedef struct _B_Spectrum_Block_
{
/* b_Spectrum Block */
long num_b_channel; // number of β -channels
long b_energy_span; // β -energy span (keV)
long begin_channel; // begin of channels
QVector<long> counts; // counts at channels
}
B_SpectrumBlock, *PtB_SpectrumBlock;
typedef struct _Histogram_Block_
{
/* Histogram Block */
long b_channels; // β-channels
long g_channels; // γ-channels
long b_energy_span; // β-energy span
long g_energy_span; // γ-energy span
QVector<long> counts; // counts at channels
}
HistogramBlock, *PtHistogramBlock;
typedef struct _Certificate_Block_
{
/* Certificate Block */
double total_source_activity; // total source activity (Bq)
QString assay_date; // assay date (yyyy / mm / dd)
QString assay_time; // assay time (hh : mm : ss)
QString units_activity; // units of activity: “B,” “b” for Bq or “[blank]”; if nothing, then “B” is assigned
QVector<QString> nuclide_name; // nuclide name
QVector<QString> half_life_time; // half-life in seconds, hours, days, or years
QVector<QString> time_unit; // time unit(Y, D, H, S)
QVector<double> activity_nuclide_time_assay;// activity of nuclide at time of assay
QVector<double> uncertainty; // uncertainty (%)
QVector<double> g_energy; // γ-energy (keV)
QVector<double> g_intensity; // γ-intensity (percent)
QVector<QString> electron_decay_mode; // electron decay mode descriptor: B for β particle or C for conversion electron (CE), 0 for none (that is, γ-only source)
QVector<double> maximum_energy; // maximum β-particle energy or CE energy (keV)
QVector<double> intensity_b_particle; // intensity of β-particle (percent)
int record_count;
//Add By XYL 20170721
_Certificate_Block_()
{
total_source_activity = 0;
record_count = 0;
}
}
CertificateBlock, *PtCertificateBlock;
typedef struct _b_self_Attenuation_block_
{
/* b_self_Attenuation Block */
QVector<QString> devNames;
QVector<std::array<double, 3>> xenon;
QVector<std::array<double, 3>> nitrogen;
}
BSelfAttenuationBlock, *PtBSelfAttenuationBlock;
typedef struct _Gps_Block_
{
/* gps Block */
double lon; // 经度
double lat; // 纬度
}
GpsBlock, *PtGpsBlock;
}
Q_DECLARE_METATYPE(RadionuclideData::HeaderBlock)
Q_DECLARE_METATYPE(RadionuclideData::AcquisitionBlock)
Q_DECLARE_METATYPE(RadionuclideData::CollectionBlock)
Q_DECLARE_METATYPE(RadionuclideData::ProcessingBlock)
Q_DECLARE_METATYPE(RadionuclideData::SampleBlock)
Q_DECLARE_METATYPE(RadionuclideData::CalibrationBlock)
Q_DECLARE_METATYPE(RadionuclideData::G_EnergyBlock)
Q_DECLARE_METATYPE(RadionuclideData::B_EnergyBlock)
Q_DECLARE_METATYPE(RadionuclideData::G_ResolutionBlock)
Q_DECLARE_METATYPE(RadionuclideData::B_ResolutionBlock)
Q_DECLARE_METATYPE(RadionuclideData::G_EfficiencyBlock)
Q_DECLARE_METATYPE(RadionuclideData::n_G_EfficiencyBlock)
Q_DECLARE_METATYPE(RadionuclideData::ROI_LimitsBlock)
Q_DECLARE_METATYPE(RadionuclideData::BG_EfficiencyBlock)
Q_DECLARE_METATYPE(RadionuclideData::NBG_EfficiencyBlock)
Q_DECLARE_METATYPE(RadionuclideData::TotaleffBlock)
Q_DECLARE_METATYPE(RadionuclideData::RatiosBlock)
Q_DECLARE_METATYPE(RadionuclideData::G_SpectrumBlock)
Q_DECLARE_METATYPE(RadionuclideData::B_SpectrumBlock)
Q_DECLARE_METATYPE(RadionuclideData::HistogramBlock)
Q_DECLARE_METATYPE(RadionuclideData::CertificateBlock)
Q_DECLARE_METATYPE(RadionuclideData::BSelfAttenuationBlock)
Q_DECLARE_METATYPE(RadionuclideData::GpsBlock)
namespace MetData
{
typedef QString MetDataStationCode; // station code
typedef struct _Met_Data_Item_
{
QString met_start_date; // met start date (yyyy/mm/dd)
QString met_start_time; // met start time (hh:mm:ss)
QString met_end_date; // met end date (yyyy/mm/dd)
QString met_end_time; // met end time (hh:mm:ss)
double average_outside_temperature; // average outside temperature (°C)
int average_wind_direction; // average wind-direction (degrees from north)
double average_wind_speed; // average wind-speed (m/s)
double average_barometric_reading; // average barometric reading (hPa)
int humidity; // average relative humidity (percent relative humidity)
double rainfall; // rainfall (mm)
}
MetDataItem, *PtMetDataItem;
}
Q_DECLARE_METATYPE(MetData::MetDataItem)
namespace RMSSOHData
{
typedef struct _Header_Block_
{
/* Header block */
QString designator; // designator
QString station_code; // station code
QString detector_code; // detector code or NA if 1) there is more than one detector or 2) data are from the sam-pling site of a split station
QString start_date; // SOH data sampling period start date (yyyy/mm/dd)
QString start_time; // SOH data sampling period start time (hh:mm:ss)
QString end_date; // SOH data sampling period end date (yyyy/mm/dd)
QString end_time; // SOH data sampling period end time (hh:mm:ss)
QString transmit_date; // transmit date (yyyy/mm/dd)
QString transmit_time; // transmit time (hh:mm:ss)
}
HeaderBlock, *PtHeaderBlock;
typedef struct _Air_Sampler_Flow_Block_
{
/* Air Sampler Flow block */
QVector<double> average_flow_rate; // average flow rate (standard cubic metersper hour (scm/h))
QVector<double> flow_rate_standard_deviation; // flow rate standard deviation (scm/h)
QVector<QString> start_date; // SOH data sampling interval start date (yyyy/mm/dd)
QVector<QString> start_time; // SOH data sampling interval start time (hh:mm:ss)
QVector<long> interval_duration; // SOH data sampling interval duration (s)
int record_count;
}
AirSamplerFlowBlock, *PtAirSamplerFlowBlock;
typedef struct _Air_Sampler_Env_Block_
{
/* Air Sampler Env block */
QVector<double> temperature; // average air temperature after filter (°C)
QVector<double> pressure; // average static air pressure after filter (hPa)
QVector<QString> date; // date (yyyy/mm/dd)
QVector<QString> time; // time (hh:mm:ss)
QVector<long> interval_duration; // SOH data sampling interval duration (s)
int record_count;
}
AirSamplerEnvBlock, *PtAirSamplerEnvBlock;
typedef struct _Det_Env_Block_
{
/* Det Env block */
QVector<double> room_temperature; // average room temperature (°C)
QVector<QString> detector_shield_status; // detector shield status (OPEN or CLOSED)
QVector<short> humidity; // average room humidity (in percent relative humidity)
QVector<long> voltage; // detector high voltage (V)
QVector<long> crystal_temperature; // average crystal temperature (°C)
QVector<QString> electric_cooler_status; // electric cooler status (ON or OFF)
QVector<double> fill_fraction; // liquid nitrogen fill-fraction
QVector<double> leakage; // detector leakage current (nanoamperes [nA])
QVector<QString> date; // date (yyyy/mm/dd)
QVector<QString> time; // time (hh:mm:ss)
QVector<long> interval_duration; // SOH data sampling interval duration (s)
int record_count;
}
DetEnvBlock, *PtDetEnvBlock;
typedef struct _NIMBIN_Block_
{
/* NIMBIN block */
QVector<QString> flag; // +/-
QVector<short> voltage; // average NIMBIN voltage (V)
QVector<QString> date; // date (yyyy/mm/dd)
QVector<QString> time; // time (hh:mm:ss)
QVector<long> interval_duration; // SOH data sampling interval duration (s)
int record_count;
}
NIMBIN_Block, *PtNIMBIN_Block;
typedef struct _Power_Supply_Block_
{
/* Power Supply block */
QVector<QString> MAIN; // MAIN (for MAIN power supply)
QVector<QString> main_power_status; // status of main power supply (ON/OFF)
QVector<QString> AUX; // AUX (for AUXiliary power supply)
QVector<QString> aux_power_status; // status of auxiliary power supply (ON/OFF)
QVector<QString> UPS; // UPS (for Uninterrupted Power Supply)
QVector<QString> ups_status; // status of uninterruptedly power supply (ON/ OFF)
QVector<QString> date; // date (yyyy/mm/dd)
QVector<QString> time; // time (hh:mm:ss)
QVector<long> interval_duration; // SOH data sampling interval duration (s)
int record_count;
}
PowerSupplyBlock, *PtPowerSupplyBlock;
typedef struct _Equip_Status_Block_
{
/* Equip Status block */
QVector<QString> C_value; // status of sampling system (ON/OFF) or the SRID of the sample being collected
QVector<QString> P_value; // status of sample preparation, processing, or decay (ON/OFF) or the SRID of the sample being processed or decayed
QVector<QString> A_value; // status of detector system (ON/OFF) or the SRID of the sample being counted
QVector<QString> date; // date (yyyy/mm/dd)
QVector<QString> time; // time (hh:mm:ss)
QVector<long> interval_duration; // SOH data sampling interval duration (s)
int record_count;
}
EquipStatusBlock, *PtEquipStatusBlock;
typedef struct _Tamper_Env_Block_
{
/* Tamper Env block */
QVector<QString> tamper_sensor_name; // tamper sensor name
QVector<QString> tamper_sensor_status; // tamper sensor status (OPEN or CLOSED)
QVector<QString> date; // date (yyyy/mm/dd)
QVector<QString> time; // time (hh:mm:ss)
QVector<long> interval_duration; // SOH data sampling interval duration (s)
int record_count;
}
TamperEnvBlock, *PtTamperEnvBlock;
typedef struct _Process_Sensors_Block_
{
/* Process Sensors block */
QVector<QString> sensor_type; // sensor type (TEMP, PRESSURE,PROCESSFLOW, VOLTAGE, COUN-TRATES, DEWPOINT, CO2VOLUME)
QVector<QString> sensor_name; // tamper sensor status (OPEN or CLOSED)
QVector<double> sensor_reading; // sensor reading (TEMP in °C, PRESSURE in Pa, PROCESSFLOW in m3/h, VOLT-AGE in V, COUNTRATE in counts/s, DEWPOINT in °C, CO2VOLUME in cm3)
QVector<QString> date; // date (yyyy/mm/dd)
QVector<QString> time; // time (hh:mm:ss)
QVector<long> duration; // SOH duration (s)
int record_count;
}
ProcessSensorsBlock, *PtProcessSensorsBlock;
typedef struct _Chromatogram_Block_
{
/* Chromatogram block */
QString srid; // the SRID of the sample being counted
QVector<long> interval_number; // interval number (starts at 1)
QVector<long> interval_start_channel; // interval start channel
QVector<double> duration; // duration between chromatogram readings (in seconds [s])
int interval_record_count;
long total_number; // total number of chromatogram readings
QVector<long> detector_response; // detector response
}
ChromatogramBlock, *PtChromatogramBlock;
}
Q_DECLARE_METATYPE(RMSSOHData::HeaderBlock)
Q_DECLARE_METATYPE(RMSSOHData::AirSamplerFlowBlock)
Q_DECLARE_METATYPE(RMSSOHData::AirSamplerEnvBlock)
Q_DECLARE_METATYPE(RMSSOHData::DetEnvBlock)
Q_DECLARE_METATYPE(RMSSOHData::NIMBIN_Block)
Q_DECLARE_METATYPE(RMSSOHData::PowerSupplyBlock)
Q_DECLARE_METATYPE(RMSSOHData::EquipStatusBlock)
Q_DECLARE_METATYPE(RMSSOHData::TamperEnvBlock)
Q_DECLARE_METATYPE(RMSSOHData::ProcessSensorsBlock)
Q_DECLARE_METATYPE(RMSSOHData::ChromatogramBlock)
namespace AlertData
{
typedef QString AlertsDescribe;
typedef struct _Alerts_Info_
{
QString station_code;
QString alert_type;
QString date;
QString time;
AlertsDescribe desc;
}
AlertsInfo, *PtAlertsInfo;
}
Q_DECLARE_METATYPE(AlertData::AlertsInfo)
#endif // DATA_MANAGE_DEFINE_H