#ifndef DATA_MANAGE_DEFINE_H #define DATA_MANAGE_DEFINE_H #include #include #include #include #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 g_energy; // γ -energy (keV) QVector g_centroid_channel; // centroid channel QVector g_uncertainty; // uncertainty (channels) int g_record_count; /* b_Energy Block */ QVector b_electron_energy; // electron energy (keV) QVector b_decay_mode; // decay mode descriptor: B for β-particle, C for conversion electron (CE) QVector b_channel; // maximum channel of β-particle distribution or centroid channel of CE (channels) QVector b_uncertainty; // uncertainty (channels) int b_record_count; /* g_Resolution Block */ QVector g_r_energy; // γ -energy (keV) QVector g_r_FWHM; // FWHM (keV) QVector g_r_uncertainty; // uncertainty (keV) int g_r_record_count; /* b_Resolution Block */ QVector b_r_electron_energy; // electron energy (keV) QVector b_r_FWHM; // FWHM (keV) QVector b_r_uncertainty; // uncertainty (keV) int b_r_record_count; /* g_Efficiency Block */ QVector g_e_energy; // γ -energy (keV) QVector g_e_efficiency; // efficiency (counts in peak/photon emitted) QVector g_e_uncertainty; // uncertainty (counts in peak/photon emitted) int g_e_record_count; /* ROI_Limits Block */ QVector ROI_number; // ROI number QVector POI_B_x1; // 2-D ROI β-range start, x 1 (keV) QVector POI_B_x2; // 2-D ROI β-range stop, x 2 (keV) QVector POI_G_y1; // 2-D ROI γ-range start, y 1 (keV) QVector POI_G_y2; // 2-D ROI γ-range stop, y 2 (keV) int roi_record_count; /* b-gEfficiency Block */ QVector bg_nuclide_name; // nuclide name QVector bg_ROI_number; // ROI number QVector bg_efficiency; // β-γ coincidence efficiency (counts in ROI/β-γ pair emitted) QVector bg_uncertainty; // uncertainty (counts in ROI/β-γ pair emitted) int bg_record_count; /* Ratios Block */ QVector ratio_id; // ratio identifier QVector ROI_num_highter_G_energy_ROI; // ROI number for the higher γ -energy ROI QVector ROI_num_lower_G_energy_ROI; // ROI number for the lower γ -energy ROI QVector count_ratio; // Q_DECLARE_METATYPE(RMSSOHData::HeaderBlock)count ratio(counts in higher γ -energy ROI/counts in lower γ -energy ROI) QVector 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 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 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 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 g_energy; // γ -energy (keV) QVector centroid_channel; // centroid channel QVector uncertainty; // uncertainty (channels) int record_count; } G_EnergyBlock, *PtG_EnergyBlock; typedef struct _b_Energy_Block_ { /* b_Energy Block */ QVector electron_energy; // electron energy (keV) QVector decay_mode; // decay mode descriptor: B for β-particle, C for conversion electron (CE) QVector channel; // maximum channel of β-particle distribution or centroid channel of CE (channels) QVector uncertainty; // uncertainty (channels) int record_count; } B_EnergyBlock, *PtB_EnergyBlock; typedef struct _g_Resolution_Block_ { /* g_Resolution Block */ QVector g_energy; // γ -energy (keV) QVector FWHM; // FWHM (keV) QVector uncertainty; // uncertainty (keV) int record_count; } G_ResolutionBlock, *PtG_ResolutionBlock; typedef struct _b_Resolution_Block_ { /* b_Resolution Block */ QVector electron_energy; // electron energy (keV) QVector FWHM; // FWHM (keV) QVector uncertainty; // uncertainty (keV) int record_count; } B_ResolutionBlock, *PtB_ResolutionBlock; typedef struct _g_Efficiency_Block_ { /* g_Efficiency Block */ QVector g_energy; // γ -energy (keV) QVector efficiency; // efficiency (counts in peak/photon emitted) QVector uncertainty; // uncertainty (counts in peak/photon emitted) int record_count; } G_EfficiencyBlock, *PtG_EfficiencyBlock; typedef struct _n_g_Efficiency_Block_ { /* g_Efficiency Block */ QVector dev_name; QVector g_energy; // γ -energy (keV) QVector efficiency; // efficiency (counts in peak/photon emitted) QVector 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 ROI_number; // ROI number QVector POI_B_x1; // 2-D ROI β-range start, x 1 (keV) QVector POI_B_x2; // 2-D ROI β-range stop, x 2 (keV) QVector POI_G_y1; // 2-D ROI γ-range start, y 1 (keV) QVector 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 nuclide_name; // nuclide name QVector ROI_number; // ROI number QVector bg_efficiency; // β-γ coincidence efficiency (counts in ROI/β-γ pair emitted) QVector uncertainty; // uncertainty (counts in ROI/β-γ pair emitted) int record_count; } BG_EfficiencyBlock, *PtBG_EfficiencyBlock; typedef struct _N_BG_Efficiency_Block_ { /* b-gEfficiency Block */ QVector nuclide_name; // nuclide name QVector bg_efficiency; // β-γ coincidence efficiency (counts in ROI/β-γ pair emitted) QVector uncertainty; // uncertainty (counts in ROI/β-γ pair emitted) int record_count; } NBG_EfficiencyBlock, *PtNBG_EfficiencyBlock; typedef struct _Totaleff_Block_ { /* Totaleff Block */ QVector g_energy; // γ-energy (keV) QVector total_efficiency; // total efficiency (counts/photon emitted) QVector uncertainty; // uncertainty (counts/photon emitted) int record_count; } TotaleffBlock, *PtTotaleffBlock; typedef struct _Ratios_Block_ { /* Ratios Block */ QVector ratio_id; // ratio identifier QVector ROI_num_highter_G_energy_ROI; // ROI number for the higher γ -energy ROI QVector ROI_num_lower_G_energy_ROI; // ROI number for the lower γ -energy ROI QVector count_ratio; // Q_DECLARE_METATYPE(RMSSOHData::HeaderBlock)count ratio(counts in higher γ -energy ROI/counts in lower γ -energy ROI) QVector 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 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 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 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 nuclide_name; // nuclide name QVector half_life_time; // half-life in seconds, hours, days, or years QVector time_unit; // time unit(Y, D, H, S) QVector activity_nuclide_time_assay;// activity of nuclide at time of assay QVector uncertainty; // uncertainty (%) QVector g_energy; // γ-energy (keV) QVector g_intensity; // γ-intensity (percent) QVector electron_decay_mode; // electron decay mode descriptor: B for β particle or C for conversion electron (CE), 0 for none (that is, γ-only source) QVector maximum_energy; // maximum β-particle energy or CE energy (keV) QVector 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 devNames; QVector> xenon; QVector> 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 average_flow_rate; // average flow rate (standard cubic metersper hour (scm/h)) QVector flow_rate_standard_deviation; // flow rate standard deviation (scm/h) QVector start_date; // SOH data sampling interval start date (yyyy/mm/dd) QVector start_time; // SOH data sampling interval start time (hh:mm:ss) QVector interval_duration; // SOH data sampling interval duration (s) int record_count; } AirSamplerFlowBlock, *PtAirSamplerFlowBlock; typedef struct _Air_Sampler_Env_Block_ { /* Air Sampler Env block */ QVector temperature; // average air temperature after filter (°C) QVector pressure; // average static air pressure after filter (hPa) QVector date; // date (yyyy/mm/dd) QVector time; // time (hh:mm:ss) QVector interval_duration; // SOH data sampling interval duration (s) int record_count; } AirSamplerEnvBlock, *PtAirSamplerEnvBlock; typedef struct _Det_Env_Block_ { /* Det Env block */ QVector room_temperature; // average room temperature (°C) QVector detector_shield_status; // detector shield status (OPEN or CLOSED) QVector humidity; // average room humidity (in percent relative humidity) QVector voltage; // detector high voltage (V) QVector crystal_temperature; // average crystal temperature (°C) QVector electric_cooler_status; // electric cooler status (ON or OFF) QVector fill_fraction; // liquid nitrogen fill-fraction QVector leakage; // detector leakage current (nanoamperes [nA]) QVector date; // date (yyyy/mm/dd) QVector time; // time (hh:mm:ss) QVector interval_duration; // SOH data sampling interval duration (s) int record_count; } DetEnvBlock, *PtDetEnvBlock; typedef struct _NIMBIN_Block_ { /* NIMBIN block */ QVector flag; // +/- QVector voltage; // average NIMBIN voltage (V) QVector date; // date (yyyy/mm/dd) QVector time; // time (hh:mm:ss) QVector interval_duration; // SOH data sampling interval duration (s) int record_count; } NIMBIN_Block, *PtNIMBIN_Block; typedef struct _Power_Supply_Block_ { /* Power Supply block */ QVector MAIN; // MAIN (for MAIN power supply) QVector main_power_status; // status of main power supply (ON/OFF) QVector AUX; // AUX (for AUXiliary power supply) QVector aux_power_status; // status of auxiliary power supply (ON/OFF) QVector UPS; // UPS (for Uninterrupted Power Supply) QVector ups_status; // status of uninterruptedly power supply (ON/ OFF) QVector date; // date (yyyy/mm/dd) QVector time; // time (hh:mm:ss) QVector interval_duration; // SOH data sampling interval duration (s) int record_count; } PowerSupplyBlock, *PtPowerSupplyBlock; typedef struct _Equip_Status_Block_ { /* Equip Status block */ QVector C_value; // status of sampling system (ON/OFF) or the SRID of the sample being collected QVector P_value; // status of sample preparation, processing, or decay (ON/OFF) or the SRID of the sample being processed or decayed QVector A_value; // status of detector system (ON/OFF) or the SRID of the sample being counted QVector date; // date (yyyy/mm/dd) QVector time; // time (hh:mm:ss) QVector interval_duration; // SOH data sampling interval duration (s) int record_count; } EquipStatusBlock, *PtEquipStatusBlock; typedef struct _Tamper_Env_Block_ { /* Tamper Env block */ QVector tamper_sensor_name; // tamper sensor name QVector tamper_sensor_status; // tamper sensor status (OPEN or CLOSED) QVector date; // date (yyyy/mm/dd) QVector time; // time (hh:mm:ss) QVector interval_duration; // SOH data sampling interval duration (s) int record_count; } TamperEnvBlock, *PtTamperEnvBlock; typedef struct _Process_Sensors_Block_ { /* Process Sensors block */ QVector sensor_type; // sensor type (TEMP, PRESSURE,PROCESSFLOW, VOLTAGE, COUN-TRATES, DEWPOINT, CO2VOLUME) QVector sensor_name; // tamper sensor status (OPEN or CLOSED) QVector 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 date; // date (yyyy/mm/dd) QVector time; // time (hh:mm:ss) QVector 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 interval_number; // interval number (starts at 1) QVector interval_start_channel; // interval start channel QVector duration; // duration between chromatogram readings (in seconds [s]) int interval_record_count; long total_number; // total number of chromatogram readings QVector 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