DSCAnalysisTool/src/global.h
2025-04-17 17:31:46 +08:00

165 lines
3.2 KiB
C++

#ifndef __GLOBAL_H
#define __GLOBAL_H
#include <qobject.h>
#include <qfile.h>
#include <qcustomplot.h>
#include "protocol.h"
namespace Global {
const QString ConSoftVersion = "0.9.1";
const QString ExperimentDirPath = QDir::currentPath()+"/../experiment_data";
const QString SampleDataFloder = ExperimentDirPath + "/sample_data";
const QString BaseLineFolder = ExperimentDirPath + "/base_line";
const QString AnalysisStateFolder = ExperimentDirPath + "/analysis_state";
enum Mode{
Analysis,
ConnectedToDev,
DeliveredData,
ExperimentStart
};
enum DeviceConnectionStatus{
Disconnected,
Connected
};
struct ExperimentData {
float runTime;
float constantTempTime;
float sampleTemp;
float dsc;
};
enum TestType{
OIT,
NoneOIT
};
struct ExperimentInfo{
// experiment info
QString sampleName;
QString sampleWeight;
QString date;
QString experimentor;
// phase info
TestType testType;
GasType initialAtmosPhere;
int phaseSize;
QVector<Phase> phaseVtr;
};
struct PhaseTotalInfo{
int phaseIndex; // from 1 to 6.
Phase phase;
QVector<ExperimentData> dataVtr;
QCPCurve * curve;
};
struct CurveFileData{
Global::ExperimentInfo ei;
QVector<Global::PhaseTotalInfo> phaseTotalVtr;
};
struct CurveExperimentData{
QCPCurve * curve;
QString fileName;
QVector<Global::ExperimentData> dataVtr;
};
// Soft mode.
extern Mode _mode;
// Xlsx file data.
extern QVector<CurveFileData> _curveFileDataVtr;
// Experiment setting data.
extern ExperimentInfo _experimentInfo;
extern QVector<CurveExperimentData> _curveExperimentDataVtr;
}
#if 0
class Global:public QObject
{
Q_OBJECT
public:
Global();
static Global* instance();
enum Mode{
Analysis,
ConnectedToDev,
DeliveredData,
ExperimentStart
};
void setMode(const Mode);
Mode getMode(){return _mode;}
enum DeviceConnectionStatus{
Disconnected,
Connected
};
#if 0
void setDeviceConnectionStatus(const DeviceConnectionStatus);
DeviceConnectionStatus getDeviceConnectionStatus(){return _deviceConnectStatus;}
#endif
struct ExperimentData {
float runTime;
float sampleTemp;
float dsc;
};
// struct ExpeInfo
// {
// QString sampleName;
// float sampleWeight;
// QString date;
// QString userName;
// };
enum TestType{
OIT,
NoneOIT
};
struct ExperimentInfo{
// experiment info
QString sampleName;
QString sampleWeight;
QString date;
QString experimentor;
// phase info
TestType testType;
GasType initialAtmosPhere;
int phaseSize;
QVector<Phase> phaseVtr;
};
ExperimentInfo _experimentInfo;
struct PhaseTotalInfo{
int phaseIndex; // from 1 to 6.
Phase phase;
QVector<ExperimentData> dataVtr;
};
QVector<QPair<QCPCurve*,QVector<Global::ExperimentData>>> _curveDataVtr;
signals:
void sigModeModify(const Mode);
void sigDeviceConnnectionStatusModify(const DeviceConnectionStatus);
public slots:
private:
Mode _mode;
DeviceConnectionStatus _deviceConnectStatus;
};
#endif
#endif // GLOBAL_H