#ifndef MEASUREANALYSISPROJECTMODEL_H #define MEASUREANALYSISPROJECTMODEL_H #include #include class MeasureAnalysisProjectModel { public: enum class SpectrumType { None, Sample, // 样品谱 Background, // 本底谱 }; // ConformParticleData, uint:符合粒子数, QString符合粒子数据文件名 typedef QMap ConformParticleData; public: void SetProjectDir(const QString& project_dir); void SetProjectName(const QString& project_name); void SetSpectrumType(SpectrumType spec_type); void SetIsStdSource(bool is_std_source); void SetDescriptionInfo(const QString& description_info); void SetMeasurePresetTime(ulong measure_preset_time); void SetConformTimeWin(uint conform_time_win); void SetIsMeasureComplete(bool is_measure_complete); void SetMeasureDeviceParamsCfgFilename(const QString& filename); void SetEneryScaleFilename(const QString& filename); void SetEfficiencyScaleFilename(const QString& filename); void SetAllChannelParticleDataFilename(const QString& filename); void SetSortedParticleDataFilename(const QString& filename); void SetChannelParticleDataFilename(uint channel, const QString& filename); void SetChannelParticleCountDataFilename(uint channel, const QString& filename); void SetAllChannelParticleTotalCountDataFilename(const QString& filename); void SetTimeWinConformParticleData(uint time_win, uint conform_particle_count, const QString& filename); const QString& GetProjectDir() const; const QString& GetProjectName() const; SpectrumType GetSpectrumType() const; bool GetIsStdSource() const; const QString& GetDescriptionInfo() const; ulong GetMeasurePresetTime() const; uint GetConformTimeWin() const; bool GetIsMeasureComplete() const; const QString& GetMeasureDeviceParamsCfgFilename() const; const QString& GetEneryScaleFilename() const; const QString& GetEfficiencyScaleFilename() const; const QString& GetAllChannelParticleDataFilename() const; const QString& GetSortParticleDataFilename() const; const QMap& GetChannelParticleDataFilenameList() const; const QString& GetChannelParticleDataFilename(uint channel) const; const QMap& GetChannelParticleCountDataFilenameList() const; const QString& GetChannelParticleCountDataFilename(uint channel) const; const QString& GetAllChannelParticleTotalCountDataFilename() const; const QString& GetTimeWinConformParticleDataFilename(uint time_win, uint conform_particle_count) const; private: QString _project_dir; QString _project_name; SpectrumType _spec_type = SpectrumType::None; bool _is_std_source = false; QString _description_info; ulong _measure_preset_time = 0; uint _conform_time_win = 50; bool _is_measure_complete = false; QString _measure_device_params_cfg_filename; QString _enery_scale_filename; QString _efficiency_scale_filename; QString _all_channel_particle_data_filename; QString _sorted_particle_data_filename; QMap _channel_particle_data_filename_list; QMap _channel_particle_count_data_filename_list; QString _all_channel_particle_total_count_data_filename; QMap _time_win_conform_particle_data; }; class MeasureAnalysisProjectModelList { public: static QMap ProjectModels; static void AddProjectModel(MeasureAnalysisProjectModel* model); static void RmProjectModel(const QString& project_name); static MeasureAnalysisProjectModel* GetProjectModel(const QString& project_name); static MeasureAnalysisProjectModel* GetCurrentProjectModel(); static void SetCurrentProjectModel(const QString& project_name); private: static MeasureAnalysisProjectModel* current_project_model; }; #endif // MEASUREANALYSISPROJECTMODEL_H