This commit is contained in:
徐海 2026-03-26 17:02:59 +08:00
commit 55316155a2
4 changed files with 39 additions and 12 deletions

View File

@ -215,6 +215,15 @@ void MeasureAnalysisTreeView::onNodeDoubleClicked(const QModelIndex& index)
} }
} }
} break; } break;
case AnalysisType::CoincidenceParticleEnergySpectrum3DView: {
MeasureAnalysisProjectModel* project_model = _model->GetProjectModel(project_name);
if (project_model) {
auto file_name = project_model->GetAllChannelParticleDataFilename();
if ( !file_name.isEmpty() ) {
data_files_set[QStringLiteral(u"符合粒子能量3D视图")] = file_name;
}
}
} break;
default: default:
break; break;
} }

View File

@ -6,6 +6,7 @@
#include "CountRateAnalysisView.h" #include "CountRateAnalysisView.h"
#include "EnergyCountPlotView.h" #include "EnergyCountPlotView.h"
#include "ParticleTimePoorView.h" #include "ParticleTimePoorView.h"
#include "ConformityAnalysis.h"
MeasureAnalysisView *MeasureAnalysisView::NewAnalyzeView(AnalysisType view_type) MeasureAnalysisView *MeasureAnalysisView::NewAnalyzeView(AnalysisType view_type)
{ {
MeasureAnalysisView* new_view = nullptr; MeasureAnalysisView* new_view = nullptr;
@ -63,8 +64,8 @@ MeasureAnalysisView *MeasureAnalysisView::NewAnalyzeView(AnalysisType view_type)
// new_view->setDeleteOnClose(false); // new_view->setDeleteOnClose(false);
} break; } break;
case AnalysisType::CoincidenceParticleEnergySpectrum3DView: { case AnalysisType::CoincidenceParticleEnergySpectrum3DView: {
// new_view = new MeasureAnalysisDataTableView; new_view = new ConformityAnalysis;
// new_view->setDeleteOnClose(false); new_view->setDeleteOnClose(false);
} break; } break;
case AnalysisType::CountingRateView: { case AnalysisType::CountingRateView: {
new_view = new CountRateAnalysisView; new_view = new CountRateAnalysisView;

View File

@ -15,6 +15,7 @@
#include "CustomQwtPlot.h" #include "CustomQwtPlot.h"
#include <QDebug> #include <QDebug>
#include <GlobalDefine.h> #include <GlobalDefine.h>
#include <QwtScaleWidget>
#include <QPen> #include <QPen>
ParticleTimePoorView::ParticleTimePoorView(QWidget *parent) : ParticleTimePoorView::ParticleTimePoorView(QWidget *parent) :
MeasureAnalysisView(parent), MeasureAnalysisView(parent),
@ -36,7 +37,6 @@ void ParticleTimePoorView::InitViewWorkspace(const QString &project_name)
{ {
} }
#include <QwtScaleWidget>
void ParticleTimePoorView::SetAnalyzeDataFilename(const QMap<QString, QVariant> &data_files_set) void ParticleTimePoorView::SetAnalyzeDataFilename(const QMap<QString, QVariant> &data_files_set)
{ {
if (data_files_set.isEmpty()) { if (data_files_set.isEmpty()) {
@ -55,19 +55,23 @@ void ParticleTimePoorView::SetAnalyzeDataFilename(const QMap<QString, QVariant>
QVector<uint64_t> timestamps; QVector<uint64_t> timestamps;
while (in.read_row(board, channel, energy, time_count)) { while (in.read_row(board, channel, energy, time_count)) {
timestamps.append(static_cast<uint64_t>(time_count)); timestamps.append(static_cast<uint64_t>(time_count / 1e9));
} }
if (timestamps.size() < 2) { if (timestamps.size() < 2) {
qDebug() << "数据不足,无法计算时间差"; qDebug() << "数据不足,无法计算时间差";
return; return;
} }
// 1. 统计时间差分布 // 1. 统计时间差分布
const int nNs = 50; // 分组宽度 const int nNs = 1; // 分组宽度
QMap<uint64_t, int> mapVal; QMap<uint64_t, int> mapVal;
for (int i = 0; i < timestamps.size() - 1; ++i) { for (int i = 0; i < timestamps.size() - 1; ++i) {
uint64_t diff = timestamps[i+1] - timestamps[i]; uint64_t diff = timestamps[i+1] - timestamps[i];
if(diff >= 1 )
{
qDebug()<<timestamps[i+1] << " "<< timestamps[i];
}
uint64_t binIndex = diff / nNs; uint64_t binIndex = diff / nNs;
mapVal[binIndex]++; mapVal[binIndex]++;
} }

View File

@ -1,6 +1,6 @@
TARGET = EnergySpectrumAnalyer TARGET = EnergySpectrumAnalyer
QT += core gui widgets concurrent QT += core gui widgets concurrent datavisualization
CONFIG += c++17 release CONFIG += c++17 release
msvc { msvc {
@ -36,7 +36,8 @@ INCLUDEPATH += \
$${PWD}/ParticleInjectTimeView \ $${PWD}/ParticleInjectTimeView \
$${PWD}/EnergyCountPlotView \ $${PWD}/EnergyCountPlotView \
$${PWD}/CountRateAnalysisView \ $${PWD}/CountRateAnalysisView \
$${PWD}/ParticleTimePoorView $${PWD}/ParticleTimePoorView \
$${PWD}/ThreeDimensionalConformityAnalysisView
DEPENDPATH += \ DEPENDPATH += \
$${PWD}/MeasureAnalysisParticleCountPlotView \ $${PWD}/MeasureAnalysisParticleCountPlotView \
@ -44,8 +45,8 @@ DEPENDPATH += \
$${PWD}/ParticleInjectTimeView\ $${PWD}/ParticleInjectTimeView\
$${PWD}/EnergyCountPlotView \ $${PWD}/EnergyCountPlotView \
$${PWD}/CountRateAnalysisView \ $${PWD}/CountRateAnalysisView \
$${PWD}/ParticleTimePoorView $${PWD}/ParticleTimePoorView \
$${PWD}/ThreeDimensionalConformityAnalysisView
SOURCES += \ SOURCES += \
AboutDlg.cpp \ AboutDlg.cpp \
@ -72,6 +73,10 @@ SOURCES += \
VirtualTable/VirtualTableModel.cpp \ VirtualTable/VirtualTableModel.cpp \
VirtualTable/VirtualTableView.cpp \ VirtualTable/VirtualTableView.cpp \
ParticleTimePoorView/ParticleTimePoorView.cpp \ ParticleTimePoorView/ParticleTimePoorView.cpp \
ThreeDimensionalConformityAnalysisView/ConformityAnalysis.cpp \
ThreeDimensionalConformityAnalysisView/DetectorStatusSummary.cpp \
ThreeDimensionalConformityAnalysisView/ParticleDataStatistics.cpp \
ThreeDimensionalConformityAnalysisView/ThreeDDisplay.cpp \
main.cpp main.cpp
HEADERS += \ HEADERS += \
@ -101,7 +106,11 @@ HEADERS += \
VirtualTable/SampleDataSource.h \ VirtualTable/SampleDataSource.h \
VirtualTable/VirtualTableModel.h \ VirtualTable/VirtualTableModel.h \
VirtualTable/VirtualTableView.h\ VirtualTable/VirtualTableView.h\
ParticleTimePoorView/ParticleTimePoorView.h ParticleTimePoorView/ParticleTimePoorView.h \
ThreeDimensionalConformityAnalysisView/ConformityAnalysis.h \
ThreeDimensionalConformityAnalysisView/DetectorStatusSummary.h \
ThreeDimensionalConformityAnalysisView/ParticleDataStatistics.h \
ThreeDimensionalConformityAnalysisView/ThreeDDisplay.h \
FORMS += \ FORMS += \
@ -114,7 +123,11 @@ FORMS += \
MeasureDeviceParamsCfgForm.ui \ MeasureDeviceParamsCfgForm.ui \
NewMeasureAnalysisDlg.ui \ NewMeasureAnalysisDlg.ui \
ParticleInjectTimeView/ParticleInjectTimeAnalysisView.ui\ ParticleInjectTimeView/ParticleInjectTimeAnalysisView.ui\
ParticleTimePoorView/ParticleTimePoorView.ui ParticleTimePoorView/ParticleTimePoorView.ui \
ThreeDimensionalConformityAnalysisView/DetectorStatusSummary.ui \
ThreeDimensionalConformityAnalysisView/ParticleDataStatistics.ui \
ThreeDimensionalConformityAnalysisView/ThreeDDisplay.ui \
ThreeDimensionalConformityAnalysisView/ConformityAnalysis.ui