2025-10-14T16:48:50
This commit is contained in:
parent
605bed0ce7
commit
e2474b9e83
@ -9,7 +9,7 @@ CONFIG+=precompile_header
|
|||||||
PRECOMPILED_HEADER=stable.h
|
PRECOMPILED_HEADER=stable.h
|
||||||
|
|
||||||
#
|
#
|
||||||
VERSION = 1.3.4
|
VERSION = 1.3.5.1
|
||||||
# 设置目标文件名,包含版本号
|
# 设置目标文件名,包含版本号
|
||||||
TARGET = DSCAnalysisTool_$${VERSION}
|
TARGET = DSCAnalysisTool_$${VERSION}
|
||||||
|
|
||||||
|
|||||||
@ -17,7 +17,20 @@ MainWindow::MainWindow(QWidget *parent)
|
|||||||
_leftWidget(new LeftWidget(this)),
|
_leftWidget(new LeftWidget(this)),
|
||||||
_expertmentSettingForm(new ExperimentSettingForm(this)),
|
_expertmentSettingForm(new ExperimentSettingForm(this)),
|
||||||
_realTimeDataForm(new RealTimeDataForm(this)),
|
_realTimeDataForm(new RealTimeDataForm(this)),
|
||||||
_rightWidget(new QDockWidget(this)), _analysisSettingWidget(new AnalysisSettingForm(this)), _contextMenu(new QMenu(this)), _specificHeatComparisonMethodForm(new SpecificHeatComparisonMethodForm(this)), _instrumentCoefficientForm(new InstrumentCoefficientForm(this)), _degreeOfCureForm(new DegreeOfCureForm(this)), _OITAutoAnalysisParamForm(new OITAutoAnalysisParamForm(this)), _degreeOfCrystallinityForm(new DegreeOfCrystallinityForm(this)), _aboutForm(new AboutForm(this)), _enthalpyDataCorrectionForm(new EnthalpyDataCorrectionForm(this)), _coefficientSelectionForm(new CoefficientSelectionForm(this)), _printPreviewForm(new PrintPreviewForm(this)), _axisSettingForm(new AxisSettingForm(this)), _manuallyStopTheExperimentFlag(false) {
|
_rightWidget(new QDockWidget(this)),
|
||||||
|
_analysisSettingWidget(new AnalysisSettingForm(this)),
|
||||||
|
_contextMenu(new QMenu(this)),
|
||||||
|
_specificHeatComparisonMethodForm(new SpecificHeatComparisonMethodForm(this)),
|
||||||
|
_instrumentCoefficientForm(new InstrumentCoefficientForm(this)),
|
||||||
|
_degreeOfCureForm(new DegreeOfCureForm(this)),
|
||||||
|
_OITAutoAnalysisParamForm(new OITAutoAnalysisParamForm(this)),
|
||||||
|
_degreeOfCrystallinityForm(new DegreeOfCrystallinityForm(this)),
|
||||||
|
_aboutForm(new AboutForm(this)),
|
||||||
|
_enthalpyDataCorrectionForm(new EnthalpyDataCorrectionForm(this)),
|
||||||
|
_coefficientSelectionForm(new CoefficientSelectionForm(this)),
|
||||||
|
_printPreviewForm(new PrintPreviewForm(this)),
|
||||||
|
_axisSettingForm(new AxisSettingForm(this)),
|
||||||
|
_manuallyStopTheExperimentFlag(false) {
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
ui->actionOITAutoAnalysisMode->setVisible(false);
|
ui->actionOITAutoAnalysisMode->setVisible(false);
|
||||||
this->setToolTip(".....");
|
this->setToolTip(".....");
|
||||||
@ -418,6 +431,11 @@ void MainWindow::startExperiment() {
|
|||||||
Global::_mode = Global::Mode::Experiment;
|
Global::_mode = Global::Mode::Experiment;
|
||||||
_manuallyStopTheExperimentFlag = false;
|
_manuallyStopTheExperimentFlag = false;
|
||||||
_centralWidget->startExperiment();
|
_centralWidget->startExperiment();
|
||||||
|
|
||||||
|
// 清除数据action变灰
|
||||||
|
ui->actionClearAllData->setEnabled(false);
|
||||||
|
// 分析menu变灰
|
||||||
|
ui->menu_4->menuAction()->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::startExperimentByDeviceInfo() {
|
void MainWindow::startExperimentByDeviceInfo() {
|
||||||
@ -460,6 +478,11 @@ void MainWindow::on_actionStop_triggered() {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 清除数据action恢复功能
|
||||||
|
ui->actionClearAllData->setEnabled(true);
|
||||||
|
// 分析menu恢复功能
|
||||||
|
ui->menu_4->menuAction()->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionNew_triggered() {
|
void MainWindow::on_actionNew_triggered() {
|
||||||
@ -809,10 +832,10 @@ void MainWindow::showMesgBox(const QString str) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::slotDeviceDisconnected() {
|
void MainWindow::slotDeviceDisconnected() {
|
||||||
// logde<<"slotDeviceDisconnected...1";
|
// logde<<"slotDeviceDisconnected...1";
|
||||||
// 如果当前是实验模式时,需要先停止实验。
|
// 如果当前是实验模式时,需要先停止实验。
|
||||||
if (SerialPort::instance()->isOpen()) {
|
if (SerialPort::instance()->isOpen()) {
|
||||||
// logde<<"slotDeviceDisconnected...2";
|
// logde<<"slotDeviceDisconnected...2";
|
||||||
// ui更新,断开连接
|
// ui更新,断开连接
|
||||||
ui->actionConnectToDev->setIcon(QIcon(":/images/connect.png"));
|
ui->actionConnectToDev->setIcon(QIcon(":/images/connect.png"));
|
||||||
ui->actionConnectToDev->setText("连接设备");
|
ui->actionConnectToDev->setText("连接设备");
|
||||||
@ -820,6 +843,5 @@ void MainWindow::slotDeviceDisconnected() {
|
|||||||
on_actionStop_triggered();
|
on_actionStop_triggered();
|
||||||
|
|
||||||
SerialPort::instance()->closeSp();
|
SerialPort::instance()->closeSp();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -240,7 +240,8 @@ void SerialPort::updateStatus(const CommonData &cd) {
|
|||||||
if (experimentEnded) {
|
if (experimentEnded) {
|
||||||
msg = QString("设备运行状态:%2 实验阶段:%3 实验进行中").arg(devRunModeStr).arg(cd.current_phase);
|
msg = QString("设备运行状态:%2 实验阶段:%3 实验进行中").arg(devRunModeStr).arg(cd.current_phase);
|
||||||
} else {
|
} else {
|
||||||
msg = QString("设备运行状态:%2 实验阶段:%3 实验结束").arg(devRunModeStr).arg(cd.current_phase);
|
// msg = QString("设备运行状态:%2 实验阶段:%3 实验结束").arg(devRunModeStr).arg(cd.current_phase);
|
||||||
|
msg = QString("设备运行状态:%2 实验结束").arg(devRunModeStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
emit sigUpdateStatusbarMsg(msg);
|
emit sigUpdateStatusbarMsg(msg);
|
||||||
|
|||||||
@ -351,6 +351,8 @@ void CentralWidget::slotRecvCommonData(const CommonData &cd) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CentralWidget::slotRecvAnalysisFileName(const QString &filePath) {
|
void CentralWidget::slotRecvAnalysisFileName(const QString &filePath) {
|
||||||
|
logde<<"slotRecvAnalysisFileName, filePath:" << filePath.toStdString();
|
||||||
|
|
||||||
if (_analysisFilePathVtr.contains(filePath)) {
|
if (_analysisFilePathVtr.contains(filePath)) {
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
@ -363,7 +365,16 @@ void CentralWidget::slotRecvAnalysisFileName(const QString &filePath) {
|
|||||||
QMessageBox::warning((QWidget *)this->parent(), "warnning", "File parse error.");
|
QMessageBox::warning((QWidget *)this->parent(), "warnning", "File parse error.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Add data to global parameter.
|
|
||||||
|
// 把文件数据存储到全局变量中。
|
||||||
|
for (int i = Global::_curveFileDataVtr.size() - 1; i >= 0; --i) {
|
||||||
|
if (Global::_curveFileDataVtr[i].filePath == filePath) {
|
||||||
|
// 已经存在该文件数据,直接返回
|
||||||
|
logde<<"file exist...return.";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Global::_curveFileDataVtr.push_back(cfd);
|
Global::_curveFileDataVtr.push_back(cfd);
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -524,7 +535,7 @@ void CentralWidget::slotDelCurve(QCPCurve *curve) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
logde << "deltel curve object name:" << curve->objectName().toStdString();
|
logde << "delete curve object name:" << curve->objectName().toStdString();
|
||||||
|
|
||||||
deleteCurveByObjectName(curve->objectName());
|
deleteCurveByObjectName(curve->objectName());
|
||||||
}
|
}
|
||||||
@ -729,8 +740,10 @@ void CentralWidget::uiLoadXlsxFileData() {
|
|||||||
newYAxisPair.second);
|
newYAxisPair.second);
|
||||||
|
|
||||||
// Add analysis operation data.
|
// Add analysis operation data.
|
||||||
|
#if 0
|
||||||
logde << "analysis operation vtr size:"
|
logde << "analysis operation vtr size:"
|
||||||
<< cfd.analysisOperationVtr.size();
|
<< cfd.analysisOperationVtr.size();
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!cfd.analysisOperationVtr.empty()) {
|
if (!cfd.analysisOperationVtr.empty()) {
|
||||||
for (AnaOpRecorder::AnalysisOperation &ao : cfd.analysisOperationVtr) {
|
for (AnaOpRecorder::AnalysisOperation &ao : cfd.analysisOperationVtr) {
|
||||||
@ -1282,6 +1295,8 @@ void CentralWidget::clearAllUiData() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CentralWidget::deleteCurveByObjectName(const QString objectName) {
|
void CentralWidget::deleteCurveByObjectName(const QString objectName) {
|
||||||
|
logde << "deleteCurveByObjectName..." << objectName.toStdString();
|
||||||
|
|
||||||
for (int i = _analysisFilePathVtr.size() - 1; i >= 0; --i) {
|
for (int i = _analysisFilePathVtr.size() - 1; i >= 0; --i) {
|
||||||
if (_analysisFilePathVtr[i].startsWith(objectName)) {
|
if (_analysisFilePathVtr[i].startsWith(objectName)) {
|
||||||
_analysisFilePathVtr.removeAt(i); // 从后往前删除避免索引错乱
|
_analysisFilePathVtr.removeAt(i); // 从后往前删除避免索引错乱
|
||||||
@ -1292,12 +1307,20 @@ void CentralWidget::deleteCurveByObjectName(const QString objectName) {
|
|||||||
|
|
||||||
AnalysisOperationRecorder::removeAnalysisOperationByObjectName(objectName);
|
AnalysisOperationRecorder::removeAnalysisOperationByObjectName(objectName);
|
||||||
|
|
||||||
|
// Global::_curveFileDataVtr 从全局文件数据中删除制定文件数据。
|
||||||
|
for (int i = Global::_curveFileDataVtr.size() - 1; i >= 0; --i) {
|
||||||
|
if (Global::_curveFileDataVtr[i].filePath == objectName) {
|
||||||
|
Global::_curveFileDataVtr.removeAt(i); // 从后往前删除避免索引错乱
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Clear the data of graph.
|
// Clear the data of graph.
|
||||||
for (int i = _customPlot->plottableCount() - 1; i >= 0; --i) {
|
for (int i = _customPlot->plottableCount() - 1; i >= 0; --i) {
|
||||||
QCPAbstractPlottable *plottable = _customPlot->plottable(i);
|
QCPAbstractPlottable *plottable = _customPlot->plottable(i);
|
||||||
if (auto curve = dynamic_cast<QCPCurve *>(plottable)) {
|
if (auto curve = dynamic_cast<QCPCurve *>(plottable)) {
|
||||||
logde << "clear data,curve object Name:" << curve->objectName().toStdString();
|
|
||||||
if (curve->objectName().contains(objectName)) {
|
if (curve->objectName().contains(objectName)) {
|
||||||
|
logde << "1 clear data,curve object Name:" << curve->objectName().toStdString();
|
||||||
|
|
||||||
_customPlot->removePlottable(curve);
|
_customPlot->removePlottable(curve);
|
||||||
|
|
||||||
ItemManager::removeItem(curve);
|
ItemManager::removeItem(curve);
|
||||||
|
|||||||
@ -65,7 +65,7 @@ public slots:
|
|||||||
// experiment
|
// experiment
|
||||||
void slotAxisModify(const float temp);
|
void slotAxisModify(const float temp);
|
||||||
void slotModeModify(const Global::Mode);
|
void slotModeModify(const Global::Mode);
|
||||||
// 接受串口传递过来的数据,保存到缓存中,并且更新ui显示。
|
// 接收串口传递过来的数据,保存到缓存中,并且更新ui显示。
|
||||||
void slotRecvCommonData(const CommonData&);
|
void slotRecvCommonData(const CommonData&);
|
||||||
void slotRecvAnalysisFileName(const QString&);
|
void slotRecvAnalysisFileName(const QString&);
|
||||||
|
|
||||||
@ -78,7 +78,7 @@ public slots:
|
|||||||
void slotAnalysisSettingLineXPoint(const int index,const double);
|
void slotAnalysisSettingLineXPoint(const int index,const double);
|
||||||
|
|
||||||
void slotDrawCustomText(const QString);
|
void slotDrawCustomText(const QString);
|
||||||
|
// 右键菜单,删除曲线
|
||||||
void slotDelCurve(QCPCurve*);
|
void slotDelCurve(QCPCurve*);
|
||||||
//
|
//
|
||||||
void slotGetAxisInfo();
|
void slotGetAxisInfo();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user