#pragma once
#include <qthread.h>
//#include <QFileDialog>
#include <QFile>
#include <QDataStream>
#include <QFileInfo>
#include <QDateTime> 

#include <iostream>
#include <fstream>

#include "ZZ_Types.h"
#include "ZZ_Math.h"
//#include "Dense"
#include "Eigen/Dense"
#include "unsupported/Eigen/Splines"

using namespace ZZ_MISCDEF::IRIS::FS;

class CalibrationAlgorithm :public QObject
{
	Q_OBJECT

public:
	CalibrationAlgorithm();
	~CalibrationAlgorithm();

	void readAndResample_StandardLightFile(QString filePath, int integratingSphereDetectorValue, DeviceAttribute deviceAttribute, DeviceInfo deviceInfo);//

	void produceCalfile(QString calFilePath, DeviceAttribute deviceAttribute, DataFrame integratingSphereData, DataFrame darkData);

	
protected:
private:
	double m_dStandardLightDataBase;//��׼���ļ��Ļ�׼����
	double * m_dStandardLightWavelength;
	double * m_dStandardLightData;

	double * m_dStandardLightWavelengthResampled;
	double * m_dStandardLightDataResampled;

	double * m_gain;
	double * m_offset;

public slots:

	

signals:

};