2025-03-17T21:16:16

This commit is contained in:
123 2025-03-17 21:16:16 +08:00
parent 1e41597024
commit 98a2bb40d7
7 changed files with 50 additions and 28 deletions

View File

@ -1,23 +1,12 @@
#include <QFile>
#include <QDebug>
#include <QDateTime>
#include "filemanager.h"
void FileManager::writeExperimentFile(const CommonData &cd, QFile &file)
void FileManager::writeExperimentFile(const CommonData &cd)
{
// double sampleTemp = cd.sample_temp;
// 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);
QTextStream out(&_expeFile);
out.setRealNumberPrecision(3); // 设置精度为三位小数
out.setFieldWidth(12); // 设置字段宽度,确保对齐
out.setPadChar(' '); // 设置填充字符为空格
@ -27,17 +16,28 @@ void FileManager::writeExperimentFile(const CommonData &cd, QFile &file)
<< cd.dsc << endl;
// 关闭文件
file.close();
_expeFile.close();
}
void FileManager::createExperimentFile(const QString &fileName, QFile &file)
void FileManager::createExperimentFile()
{
// 使用传入的文件名创建QFile对象
file.setFileName(fileName);
QString fileName = _expeInfo.sampleName;
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() << "无法打开文件";
} else {
qDebug() << "文件打开成功";
@ -49,7 +49,5 @@ void FileManager::test()
QString fileName = "experiment.txt";
QFile file;
createExperimentFile(fileName,file);
}

View File

@ -7,8 +7,18 @@
#include "protocol.h"
namespace FileManager{
void createExperimentFile(const QString&,QFile &);
void writeExperimentFile(const CommonData&, QFile &);
struct ExpeInfo
{
QString sampleName;
float sampleWeight;
QString date;
QString userName;
};
ExpeInfo _expeInfo;
QFile _expeFile;
void createExperimentFile(const QString&);
void writeExperimentFile(const CommonData&);
void test();
};

View File

@ -2,6 +2,7 @@
#define GLOBAL_H
#include <qobject.h>
#include <qfile.h>
class Global:public QObject
{
@ -14,8 +15,7 @@ public:
Analysis,
ConnectedToDev,
DeliveredData,
ExperimentStart,
// ExperimentStop = Analysis
ExperimentStart
};
void setMode(const Mode);
@ -31,6 +31,7 @@ public:
DeviceConnectionStatus getDeviceConnectionStatus(){return _deviceConnectStatus;}
#endif
signals:
void sigModeModify(const Mode);
void sigDeviceConnnectionStatusModify(const DeviceConnectionStatus);

View File

@ -5,6 +5,7 @@
#include "global.h"
#include "serialport.h"
#include "dataparser.h"
#include "filemanager.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
@ -95,6 +96,8 @@ void MainWindow::on_actionStart_triggered()
qDebug() << "on_actionStart_triggered info (hex):" << hexData;
SerialPort::instance()->slotSendData(ba);
//
FileManager::createExperimentFile();
}
void MainWindow::on_actionReadOnly_triggered()

View File

@ -2,6 +2,7 @@
#include <QRandomGenerator>
#include "centralwidget.h"
#include "filemanager.h"
CentralWidget::CentralWidget(QWidget *parent)
: QWidget(parent),
@ -58,6 +59,8 @@ void CentralWidget::slotRevCommonData(const CommonData &cd)
qDebug()<<"slotRevCommonData";
_customPlot->graph(0)->addData(cd.sample_temp, cd.dsc); // 添加数据到曲线
_customPlot->replot();
//
FileManager::writeExperimentFile(cd);
}
void CentralWidget::timerEvent(QTimerEvent *event)

View File

@ -6,6 +6,7 @@
#include "dataparser.h"
#include "serialport.h"
#include "global.h"
#include "filemanager.h"
ExperimentSettingForm::ExperimentSettingForm(QWidget *parent) :
QWidget(parent),
@ -21,8 +22,8 @@ ExperimentSettingForm::ExperimentSettingForm(QWidget *parent) :
connect(ui->checkBox_phase_4,&QCheckBox::clicked,
this,&ExperimentSettingForm::slotPhase4StateChanged);
// connect(ui->pushButton_connect_to_device,&QPushButton::clicked,
// this,&ExperimentSettingForm::slotConnectToDevice);
// connect(ui->pushButton_connect_to_device,&QPushButton::clicked,
// this,&ExperimentSettingForm::slotConnectToDevice);
connect(ui->pushButton_cancel,&QPushButton::clicked,
this,&ExperimentSettingForm::slotCancel);
}
@ -168,7 +169,7 @@ void ExperimentSettingForm::slotConnectToDevice()
qDebug()<<"ba size:"<<ba.size();
emit sigDeliverData(ba);
// Global::instance()->setMode(Global::Mode::ConnectedToDev);
// Global::instance()->setMode(Global::Mode::ConnectedToDev);
#if 0
QByteArray startBa = DataParser::setDeviceStartStop(DeviceStartMode::Start);
@ -226,4 +227,9 @@ void ExperimentSettingForm::slotPhaseCheck()
void ExperimentSettingForm::on_pushButton_deliverData_clicked()
{
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();
}

View File

@ -15,6 +15,7 @@ public:
explicit ExperimentSettingForm(QWidget *parent = nullptr);
~ExperimentSettingForm();
signals:
void sigDeliverData(const QByteArray&);
private slots: