2025-03-17T21:16:16
This commit is contained in:
parent
1e41597024
commit
98a2bb40d7
@ -1,23 +1,12 @@
|
|||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
#include <QDateTime>
|
||||||
|
|
||||||
#include "filemanager.h"
|
#include "filemanager.h"
|
||||||
|
|
||||||
|
void FileManager::writeExperimentFile(const CommonData &cd)
|
||||||
|
|
||||||
void FileManager::writeExperimentFile(const CommonData &cd, QFile &file)
|
|
||||||
{
|
{
|
||||||
// double sampleTemp = cd.sample_temp;
|
QTextStream out(&_expeFile);
|
||||||
// double dsc = cd.dsc;
|
|
||||||
|
|
||||||
// write data to file
|
|
||||||
// QFile file("experiment_data.txt");
|
|
||||||
// if (!file.open(QIODevice::Append | QIODevice::Text)) {
|
|
||||||
// qDebug() << "无法打开文件";
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
|
|
||||||
QTextStream out(&file);
|
|
||||||
out.setRealNumberPrecision(3); // 设置精度为三位小数
|
out.setRealNumberPrecision(3); // 设置精度为三位小数
|
||||||
out.setFieldWidth(12); // 设置字段宽度,确保对齐
|
out.setFieldWidth(12); // 设置字段宽度,确保对齐
|
||||||
out.setPadChar(' '); // 设置填充字符为空格
|
out.setPadChar(' '); // 设置填充字符为空格
|
||||||
@ -27,17 +16,28 @@ void FileManager::writeExperimentFile(const CommonData &cd, QFile &file)
|
|||||||
<< cd.dsc << endl;
|
<< cd.dsc << endl;
|
||||||
|
|
||||||
// 关闭文件
|
// 关闭文件
|
||||||
file.close();
|
_expeFile.close();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileManager::createExperimentFile(const QString &fileName, QFile &file)
|
void FileManager::createExperimentFile()
|
||||||
{
|
{
|
||||||
// 使用传入的文件名创建QFile对象
|
QString fileName = _expeInfo.sampleName;
|
||||||
file.setFileName(fileName);
|
if(fileName.isEmpty()){
|
||||||
|
fileName = "sampleName";
|
||||||
|
}
|
||||||
|
|
||||||
|
fileName.append("-");
|
||||||
|
if(_expeInfo.date.isEmpty()){
|
||||||
|
fileName.append(QDateTime::currentDateTime().toUTC().toString("yyyyMMdd_HHmmss"));
|
||||||
|
}else{
|
||||||
|
fileName.append(_expeInfo.date);
|
||||||
|
}
|
||||||
|
|
||||||
|
_expeFile.setFileName(fileName);
|
||||||
|
|
||||||
// 尝试以写入文本模式打开文件,如果文件不存在则创建它
|
// 尝试以写入文本模式打开文件,如果文件不存在则创建它
|
||||||
if (!file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) {
|
if (!_expeFile.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) {
|
||||||
qDebug() << "无法打开文件";
|
qDebug() << "无法打开文件";
|
||||||
} else {
|
} else {
|
||||||
qDebug() << "文件打开成功";
|
qDebug() << "文件打开成功";
|
||||||
@ -49,7 +49,5 @@ void FileManager::test()
|
|||||||
QString fileName = "experiment.txt";
|
QString fileName = "experiment.txt";
|
||||||
|
|
||||||
QFile file;
|
QFile file;
|
||||||
createExperimentFile(fileName,file);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,8 +7,18 @@
|
|||||||
#include "protocol.h"
|
#include "protocol.h"
|
||||||
|
|
||||||
namespace FileManager{
|
namespace FileManager{
|
||||||
void createExperimentFile(const QString&,QFile &);
|
struct ExpeInfo
|
||||||
void writeExperimentFile(const CommonData&, QFile &);
|
{
|
||||||
|
QString sampleName;
|
||||||
|
float sampleWeight;
|
||||||
|
QString date;
|
||||||
|
QString userName;
|
||||||
|
};
|
||||||
|
ExpeInfo _expeInfo;
|
||||||
|
QFile _expeFile;
|
||||||
|
|
||||||
|
void createExperimentFile(const QString&);
|
||||||
|
void writeExperimentFile(const CommonData&);
|
||||||
|
|
||||||
void test();
|
void test();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
#define GLOBAL_H
|
#define GLOBAL_H
|
||||||
|
|
||||||
#include <qobject.h>
|
#include <qobject.h>
|
||||||
|
#include <qfile.h>
|
||||||
|
|
||||||
class Global:public QObject
|
class Global:public QObject
|
||||||
{
|
{
|
||||||
@ -14,8 +15,7 @@ public:
|
|||||||
Analysis,
|
Analysis,
|
||||||
ConnectedToDev,
|
ConnectedToDev,
|
||||||
DeliveredData,
|
DeliveredData,
|
||||||
ExperimentStart,
|
ExperimentStart
|
||||||
// ExperimentStop = Analysis
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void setMode(const Mode);
|
void setMode(const Mode);
|
||||||
@ -31,6 +31,7 @@ public:
|
|||||||
DeviceConnectionStatus getDeviceConnectionStatus(){return _deviceConnectStatus;}
|
DeviceConnectionStatus getDeviceConnectionStatus(){return _deviceConnectStatus;}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void sigModeModify(const Mode);
|
void sigModeModify(const Mode);
|
||||||
void sigDeviceConnnectionStatusModify(const DeviceConnectionStatus);
|
void sigDeviceConnnectionStatusModify(const DeviceConnectionStatus);
|
||||||
|
|||||||
@ -5,6 +5,7 @@
|
|||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "serialport.h"
|
#include "serialport.h"
|
||||||
#include "dataparser.h"
|
#include "dataparser.h"
|
||||||
|
#include "filemanager.h"
|
||||||
|
|
||||||
MainWindow::MainWindow(QWidget *parent)
|
MainWindow::MainWindow(QWidget *parent)
|
||||||
: QMainWindow(parent)
|
: QMainWindow(parent)
|
||||||
@ -95,6 +96,8 @@ void MainWindow::on_actionStart_triggered()
|
|||||||
qDebug() << "on_actionStart_triggered info (hex):" << hexData;
|
qDebug() << "on_actionStart_triggered info (hex):" << hexData;
|
||||||
|
|
||||||
SerialPort::instance()->slotSendData(ba);
|
SerialPort::instance()->slotSendData(ba);
|
||||||
|
//
|
||||||
|
FileManager::createExperimentFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionReadOnly_triggered()
|
void MainWindow::on_actionReadOnly_triggered()
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
#include <QRandomGenerator>
|
#include <QRandomGenerator>
|
||||||
|
|
||||||
#include "centralwidget.h"
|
#include "centralwidget.h"
|
||||||
|
#include "filemanager.h"
|
||||||
|
|
||||||
CentralWidget::CentralWidget(QWidget *parent)
|
CentralWidget::CentralWidget(QWidget *parent)
|
||||||
: QWidget(parent),
|
: QWidget(parent),
|
||||||
@ -58,6 +59,8 @@ void CentralWidget::slotRevCommonData(const CommonData &cd)
|
|||||||
qDebug()<<"slotRevCommonData";
|
qDebug()<<"slotRevCommonData";
|
||||||
_customPlot->graph(0)->addData(cd.sample_temp, cd.dsc); // 添加数据到曲线
|
_customPlot->graph(0)->addData(cd.sample_temp, cd.dsc); // 添加数据到曲线
|
||||||
_customPlot->replot();
|
_customPlot->replot();
|
||||||
|
//
|
||||||
|
FileManager::writeExperimentFile(cd);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CentralWidget::timerEvent(QTimerEvent *event)
|
void CentralWidget::timerEvent(QTimerEvent *event)
|
||||||
|
|||||||
@ -6,6 +6,7 @@
|
|||||||
#include "dataparser.h"
|
#include "dataparser.h"
|
||||||
#include "serialport.h"
|
#include "serialport.h"
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
#include "filemanager.h"
|
||||||
|
|
||||||
ExperimentSettingForm::ExperimentSettingForm(QWidget *parent) :
|
ExperimentSettingForm::ExperimentSettingForm(QWidget *parent) :
|
||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
@ -226,4 +227,9 @@ void ExperimentSettingForm::slotPhaseCheck()
|
|||||||
void ExperimentSettingForm::on_pushButton_deliverData_clicked()
|
void ExperimentSettingForm::on_pushButton_deliverData_clicked()
|
||||||
{
|
{
|
||||||
slotConnectToDevice();
|
slotConnectToDevice();
|
||||||
|
|
||||||
|
FileManager::_expeInfo.sampleName= ui->sampleNameLineEdit->text();
|
||||||
|
FileManager::_expeInfo.sampleWeight = ui->sampleWeightLineEdit->text().toInt(nullptr,16);
|
||||||
|
FileManager::_expeInfo.date = ui->dateTimeLineEdit->text();
|
||||||
|
FileManager::_expeInfo.userName = ui->userLineEdit->text();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,6 +15,7 @@ public:
|
|||||||
explicit ExperimentSettingForm(QWidget *parent = nullptr);
|
explicit ExperimentSettingForm(QWidget *parent = nullptr);
|
||||||
~ExperimentSettingForm();
|
~ExperimentSettingForm();
|
||||||
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void sigDeliverData(const QByteArray&);
|
void sigDeliverData(const QByteArray&);
|
||||||
private slots:
|
private slots:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user