mirror of
http://172.16.0.230/r/SIF/TowerOptoSifAndSpectral.git
synced 2025-10-19 03:49:42 +08:00
添加了积分球探测器数值
This commit is contained in:
@ -1,6 +1,19 @@
|
|||||||
cmake_minimum_required(VERSION 3.5)
|
cmake_minimum_required(VERSION 3.5)
|
||||||
project(ocean_optics_calibration_console)#ocean_optics_calibration_console
|
project(ocean_optics_calibration_console)#ocean_optics_calibration_console
|
||||||
|
|
||||||
|
#编译32位的程序
|
||||||
|
#option(USE_32BITS "Compile for 32bits processors(linux only)" OFF)
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#if(USE_32BITS)
|
||||||
|
# message(STATUS "using 32bits")
|
||||||
|
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
|
||||||
|
#
|
||||||
|
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
|
||||||
|
#else()
|
||||||
|
#endif(USE_32BITS)
|
||||||
|
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 14)
|
set(CMAKE_CXX_STANDARD 14)
|
||||||
|
|
||||||
SET(CMAKE_INSTALL_PREFIX < /home/pi/bin >)
|
SET(CMAKE_INSTALL_PREFIX < /home/pi/bin >)
|
||||||
@ -9,17 +22,17 @@ set(CMAKE_AUTOUIC ON)
|
|||||||
set(CMAKE_AUTORCC ON)
|
set(CMAKE_AUTORCC ON)
|
||||||
set(CMAKE_CXX_STANDARD 11)
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
|
|
||||||
#set(CMAKE_PREFIX_PATH "/home/iris-xport/Qt5.9.0/5.9/gcc_64/")#tc_add: https://blog.csdn.net/aiyun5666/article/details/101915628
|
set(CMAKE_PREFIX_PATH "/home/iris-xport/Qt5.9.0/5.9/gcc_64/")#tc_add: https://blog.csdn.net/aiyun5666/article/details/101915628
|
||||||
set(QT Core Network SerialPort)
|
set(QT Core Network SerialPort)
|
||||||
set(TEMPLATE app)
|
set(TEMPLATE app)
|
||||||
set(TARGET ximeaImageRecorder)
|
set(TARGET ximeaImageRecorder)
|
||||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
find_package(Qt5 REQUIRED ${QT})
|
find_package(Qt5 REQUIRED ${QT})
|
||||||
|
|
||||||
#include_directories(/home/iris-xport/projects/ocean/seabreeze-3.0.11/SeaBreeze/include/)
|
include_directories(/home/iris-xport/projects/ocean/seabreeze-3.0.11/SeaBreeze/include/)
|
||||||
#LINK_DIRECTORIES(/home/iris-xport/projects/ocean/seabreeze-3.0.11/SeaBreeze/lib/)
|
LINK_DIRECTORIES(/home/iris-xport/projects/ocean/seabreeze-3.0.11/SeaBreeze/lib/)
|
||||||
include_directories(/home/pi/SeaBrease/include/)
|
#include_directories(/home/pi/SeaBrease/include/)
|
||||||
LINK_DIRECTORIES(/home/pi/SeaBrease/lib/)
|
#LINK_DIRECTORIES(/home/pi/SeaBrease/lib/)
|
||||||
|
|
||||||
include_directories(.)#包含头文件
|
include_directories(.)#包含头文件
|
||||||
include_directories(/usr/include/eigen3)#包含头文件,安装eigen:sudo apt-get install libeigen3-dev
|
include_directories(/usr/include/eigen3)#包含头文件,安装eigen:sudo apt-get install libeigen3-dev
|
||||||
|
@ -13,8 +13,8 @@ namespace ZZ_MISCDEF
|
|||||||
{
|
{
|
||||||
typedef unsigned char ZZ_U8;
|
typedef unsigned char ZZ_U8;
|
||||||
typedef unsigned short int ZZ_U16;
|
typedef unsigned short int ZZ_U16;
|
||||||
typedef unsigned long int ZZ_U32;
|
typedef unsigned int ZZ_U32;
|
||||||
typedef long int ZZ_S32;
|
typedef int ZZ_S32;
|
||||||
|
|
||||||
|
|
||||||
namespace IRIS
|
namespace IRIS
|
||||||
@ -30,8 +30,6 @@ namespace ZZ_MISCDEF
|
|||||||
double dTimes = 0;
|
double dTimes = 0;
|
||||||
}DataFrame;
|
}DataFrame;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct tagDeviceInfo
|
typedef struct tagDeviceInfo
|
||||||
{
|
{
|
||||||
std::string strPN;
|
std::string strPN;
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include <qthread.h>
|
#include <qthread.h>
|
||||||
//#include <QFileDialog>
|
//#include <QFileDialog>
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
|
#include <QDataStream>
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
|
|
||||||
@ -24,7 +25,7 @@ public:
|
|||||||
CalibrationAlgorithm();
|
CalibrationAlgorithm();
|
||||||
~CalibrationAlgorithm();
|
~CalibrationAlgorithm();
|
||||||
|
|
||||||
void readFile(QString filePath, DeviceAttribute deviceAttribute, DeviceInfo deviceInfo);
|
void readAndResample_StandardLightFile(QString filePath, int integratingSphereDetectorValue, DeviceAttribute deviceAttribute, DeviceInfo deviceInfo);//
|
||||||
|
|
||||||
void produceCalfile(QString calFilePath, DeviceAttribute deviceAttribute, DataFrame integratingSphereData, DataFrame darkData);
|
void produceCalfile(QString calFilePath, DeviceAttribute deviceAttribute, DataFrame integratingSphereData, DataFrame darkData);
|
||||||
|
|
||||||
|
@ -73,17 +73,17 @@ int ZZ_ATPControl_Serial_Qt::Initialize(bool bIsUSBMode, std::string ucPortNumbe
|
|||||||
|
|
||||||
GetDeviceInfo(m_diDeviceInfo);
|
GetDeviceInfo(m_diDeviceInfo);
|
||||||
GetExposureTime_Init();
|
GetExposureTime_Init();
|
||||||
|
//
|
||||||
std::string::size_type szPostion = m_diDeviceInfo.strSN.find(strDeviceName);
|
// std::string::size_type szPostion = m_diDeviceInfo.strSN.find(strDeviceName);
|
||||||
if (szPostion == std::string::npos)
|
// if (szPostion == std::string::npos)
|
||||||
{
|
// {
|
||||||
qDebug() << "Err:FS serial number not match.Exit Code:3";
|
// qDebug() << "Err:FS serial number not match.Exit Code:3";
|
||||||
return 3;
|
// return 3;
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
return 0;
|
// return 0;
|
||||||
}
|
// }
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,21 +97,22 @@ void ATPFiberImager::recordDark(QString path)
|
|||||||
//<2F>ɼ<EFBFBD><C9BC><EFBFBD>֡
|
//<2F>ɼ<EFBFBD><C9BC><EFBFBD>֡
|
||||||
singleShot(m_DarkData);
|
singleShot(m_DarkData);
|
||||||
|
|
||||||
QDateTime curDateTime = QDateTime::currentDateTime();
|
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>csv
|
||||||
QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
|
// QDateTime curDateTime = QDateTime::currentDateTime();
|
||||||
QString fileName = path + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_darkSpectral.csv";
|
// QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
|
||||||
std::ofstream outfile(fileName.toStdString().c_str());
|
// QString fileName = path + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_darkSpectral.csv";
|
||||||
|
// std::ofstream outfile(fileName.toStdString().c_str());
|
||||||
for (int i = 0; i < attribute.iPixels; i++)
|
//
|
||||||
{
|
// for (int i = 0; i < attribute.iPixels; i++)
|
||||||
if (i==0)
|
// {
|
||||||
{
|
// if (i==0)
|
||||||
outfile << m_DarkData.usExposureTimeInMS << std::endl;
|
// {
|
||||||
}
|
// outfile << m_DarkData.usExposureTimeInMS << std::endl;
|
||||||
outfile << attribute.fWaveLengthInNM[i] << "," << m_DarkData.lData[i] << std::endl;
|
// }
|
||||||
}
|
// outfile << attribute.fWaveLengthInNM[i] << "," << m_DarkData.lData[i] << std::endl;
|
||||||
|
// }
|
||||||
outfile.close();
|
//
|
||||||
|
// outfile.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ATPFiberImager::recordTarget(int recordTimes, QString path)
|
void ATPFiberImager::recordTarget(int recordTimes, QString path)
|
||||||
@ -148,21 +149,23 @@ void ATPFiberImager::recordTarget(int recordTimes, QString path)
|
|||||||
m_IntegratingSphereData.lData[i] = m_IntegratingSphereData.lData[i] / recordTimes;
|
m_IntegratingSphereData.lData[i] = m_IntegratingSphereData.lData[i] / recordTimes;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDateTime curDateTime = QDateTime::currentDateTime();
|
|
||||||
QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
|
|
||||||
QString fileName = path + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_integratingSphereSpectral.csv";
|
|
||||||
std::ofstream outfile(fileName.toStdString().c_str());
|
|
||||||
|
|
||||||
for (int i = 0; i < attribute.iPixels; i++)
|
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>csv
|
||||||
{
|
// QDateTime curDateTime = QDateTime::currentDateTime();
|
||||||
if (i==0)
|
// QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
|
||||||
{
|
// QString fileName = path + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_integratingSphereSpectral.csv";
|
||||||
outfile << m_IntegratingSphereData.usExposureTimeInMS << std::endl;
|
// std::ofstream outfile(fileName.toStdString().c_str());
|
||||||
}
|
//
|
||||||
outfile << attribute.fWaveLengthInNM[i] << "," << m_IntegratingSphereData.lData[i] << std::endl;
|
// for (int i = 0; i < attribute.iPixels; i++)
|
||||||
}
|
// {
|
||||||
|
// if (i==0)
|
||||||
outfile.close();
|
// {
|
||||||
|
// outfile << m_IntegratingSphereData.usExposureTimeInMS << std::endl;
|
||||||
|
// }
|
||||||
|
// outfile << attribute.fWaveLengthInNM[i] << "," << m_IntegratingSphereData.lData[i] << std::endl;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// outfile.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ATPFiberImager::autoExpose()
|
void ATPFiberImager::autoExpose()
|
||||||
|
@ -10,7 +10,7 @@ CalibrationAlgorithm::~CalibrationAlgorithm()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CalibrationAlgorithm::readFile(QString filePath, DeviceAttribute deviceAttribute, DeviceInfo deviceInfo)
|
void CalibrationAlgorithm::readAndResample_StandardLightFile(QString filePath, int integratingSphereDetectorValue, DeviceAttribute deviceAttribute, DeviceInfo deviceInfo)
|
||||||
{
|
{
|
||||||
|
|
||||||
QFile file(filePath);
|
QFile file(filePath);
|
||||||
@ -113,28 +113,28 @@ void CalibrationAlgorithm::readFile(QString filePath, DeviceAttribute deviceAttr
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
//<2F><><EFBFBD>ضϱ<D8B6><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// //<2F><><EFBFBD>ضϱ<D8B6><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>csv
|
||||||
QFileInfo fileInfo(filePath);
|
// QFileInfo fileInfo(filePath);
|
||||||
QString standardLightFileFolder = fileInfo.path();
|
// QString standardLightFileFolder = fileInfo.path();
|
||||||
QString standardLightFileName = fileInfo.fileName();
|
// QString standardLightFileName = fileInfo.fileName();
|
||||||
|
//
|
||||||
QDateTime curDateTime = QDateTime::currentDateTime();
|
// QDateTime curDateTime = QDateTime::currentDateTime();
|
||||||
QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
|
// QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
|
||||||
|
//
|
||||||
QString tmp = standardLightFileFolder + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) +"_"+ standardLightFileName + "_truncation.csv";
|
// QString tmp = standardLightFileFolder + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) +"_"+ standardLightFileName + "_truncation.csv";
|
||||||
|
//
|
||||||
std::ofstream outfile1(tmp.toStdString().c_str());
|
// std::ofstream outfile1(tmp.toStdString().c_str());
|
||||||
|
//
|
||||||
for (size_t i = 0; i < endPos - startPos; i++)
|
// for (size_t i = 0; i < endPos - startPos; i++)
|
||||||
{
|
// {
|
||||||
if (i == 0)
|
// if (i == 0)
|
||||||
{
|
// {
|
||||||
outfile1 << m_dStandardLightDataBase << std::endl;
|
// outfile1 << m_dStandardLightDataBase << std::endl;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
outfile1 << m_dStandardLightWavelength[i] << "," << m_dStandardLightData[i] << std::endl;
|
// outfile1 << m_dStandardLightWavelength[i] << "," << m_dStandardLightData[i] << std::endl;
|
||||||
}
|
// }
|
||||||
outfile1.close();
|
// outfile1.close();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -148,18 +148,19 @@ void CalibrationAlgorithm::readFile(QString filePath, DeviceAttribute deviceAttr
|
|||||||
m_dStandardLightWavelengthResampled = new double[deviceAttribute.iPixels];
|
m_dStandardLightWavelengthResampled = new double[deviceAttribute.iPixels];
|
||||||
m_dStandardLightDataResampled = new double[deviceAttribute.iPixels];
|
m_dStandardLightDataResampled = new double[deviceAttribute.iPixels];
|
||||||
|
|
||||||
|
double dTemp,scaleFactor;
|
||||||
|
if(integratingSphereDetectorValue <= 0)
|
||||||
|
scaleFactor=1;
|
||||||
|
else
|
||||||
|
scaleFactor=integratingSphereDetectorValue/m_dStandardLightDataBase;
|
||||||
|
|
||||||
QString outputName = standardLightFileFolder + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_" + standardLightFileName + "_resample.csv";
|
|
||||||
std::ofstream outfile2(outputName.toStdString().c_str());
|
|
||||||
|
|
||||||
double dTemp;
|
|
||||||
for (size_t i = 0; i < deviceAttribute.iPixels; i++)
|
for (size_t i = 0; i < deviceAttribute.iPixels; i++)
|
||||||
{
|
{
|
||||||
if (deviceAttribute.fWaveLengthInNM[i] < StandardLightWavelength_tmp[0])//<2F>˲<EFBFBD><CBB2><EFBFBD> < <20><><EFBFBD><D7BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
if (deviceAttribute.fWaveLengthInNM[i] < StandardLightWavelength_tmp[0])//<2F>˲<EFBFBD><CBB2><EFBFBD> < <20><><EFBFBD><D7BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
||||||
{
|
{
|
||||||
dTemp = m_sfLine(StandardLightWavelength_tmp[0]);//???????????????
|
dTemp = m_sfLine(StandardLightWavelength_tmp[0]);//???????????????
|
||||||
}
|
}
|
||||||
else if (deviceAttribute.fWaveLengthInNM[i] > StandardLightWavelength_tmp[lineCount - 2])//<EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD> > <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
else if (StandardLightWavelength_tmp[lineCount - 2] < deviceAttribute.fWaveLengthInNM[i])//<2F><><EFBFBD><D7BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> < <20>˲<EFBFBD><CBB2><EFBFBD>
|
||||||
{
|
{
|
||||||
dTemp = m_sfLine(StandardLightWavelength_tmp[lineCount - 2]);//???????????????
|
dTemp = m_sfLine(StandardLightWavelength_tmp[lineCount - 2]);//???????????????
|
||||||
}
|
}
|
||||||
@ -171,16 +172,23 @@ void CalibrationAlgorithm::readFile(QString filePath, DeviceAttribute deviceAttr
|
|||||||
//double dTemp2 = m_sfLine(deviceAttribute.fWaveLengthInNM[i]);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ʹ<EFBFBD><CAB9>
|
//double dTemp2 = m_sfLine(deviceAttribute.fWaveLengthInNM[i]);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ʹ<EFBFBD><CAB9>
|
||||||
|
|
||||||
m_dStandardLightWavelengthResampled[i] = deviceAttribute.fWaveLengthInNM[i];
|
m_dStandardLightWavelengthResampled[i] = deviceAttribute.fWaveLengthInNM[i];
|
||||||
m_dStandardLightDataResampled[i] = dTemp;
|
m_dStandardLightDataResampled[i] = dTemp * scaleFactor;
|
||||||
|
}
|
||||||
|
|
||||||
if (i == 0)
|
|
||||||
{
|
|
||||||
outfile2 << m_dStandardLightDataBase << std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
outfile2 << deviceAttribute.fWaveLengthInNM[i] << "," << dTemp << std::endl;
|
// //<2F><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>csv
|
||||||
}
|
// QString outputName = standardLightFileFolder + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_" + standardLightFileName + "_resample.csv";
|
||||||
outfile2.close();
|
// std::ofstream outfile2(outputName.toStdString().c_str());
|
||||||
|
// for (size_t i = 0; i < deviceAttribute.iPixels; i++)
|
||||||
|
// {
|
||||||
|
// if (i == 0)
|
||||||
|
// {
|
||||||
|
// outfile2 << m_dStandardLightDataBase << std::endl;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// outfile2 << deviceAttribute.fWaveLengthInNM[i] << "," << dTemp << std::endl;
|
||||||
|
// }
|
||||||
|
// outfile2.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CalibrationAlgorithm::produceCalfile(QString calFilePath, DeviceAttribute deviceAttribute, DataFrame integratingSphereData, DataFrame darkData)
|
void CalibrationAlgorithm::produceCalfile(QString calFilePath, DeviceAttribute deviceAttribute, DataFrame integratingSphereData, DataFrame darkData)
|
||||||
@ -208,9 +216,9 @@ void CalibrationAlgorithm::produceCalfile(QString calFilePath, DeviceAttribute d
|
|||||||
}
|
}
|
||||||
|
|
||||||
//д<>뵽<EFBFBD><EBB5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
//д<>뵽<EFBFBD><EBB5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||||
FILE *calFileHandle = fopen(calFilePath.toStdString().c_str(), "w+b");
|
FILE * calFileHandle = fopen(calFilePath.toStdString().c_str(), "wb");
|
||||||
|
|
||||||
writeCounter = fwrite(&integratingSphereData.usExposureTimeInMS, sizeof(ZZ_U32), 1, calFileHandle);//<2F>ع<EFBFBD>ʱ<EFBFBD><CAB1>
|
writeCounter = fwrite(&integratingSphereData.usExposureTimeInMS,sizeof(ZZ_U32), 1, calFileHandle);//<2F>ع<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||||
writeCounter = fwrite(&integratingSphereData.fTemperature, sizeof(float), 1, calFileHandle);//<2F>¶<EFBFBD>
|
writeCounter = fwrite(&integratingSphereData.fTemperature, sizeof(float), 1, calFileHandle);//<2F>¶<EFBFBD>
|
||||||
writeCounter = fwrite(&deviceAttribute.iPixels, sizeof(int), 1, calFileHandle);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
writeCounter = fwrite(&deviceAttribute.iPixels, sizeof(int), 1, calFileHandle);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
writeCounter = fwrite(&deviceAttribute.fWaveLengthInNM, sizeof(float), deviceAttribute.iPixels, calFileHandle);//<2F><><EFBFBD><EFBFBD>
|
writeCounter = fwrite(&deviceAttribute.fWaveLengthInNM, sizeof(float), deviceAttribute.iPixels, calFileHandle);//<2F><><EFBFBD><EFBFBD>
|
||||||
@ -219,14 +227,15 @@ void CalibrationAlgorithm::produceCalfile(QString calFilePath, DeviceAttribute d
|
|||||||
|
|
||||||
fclose(calFileHandle);
|
fclose(calFileHandle);
|
||||||
|
|
||||||
//д<>뵽CSV<53>ļ<EFBFBD>
|
|
||||||
QString calFile_csv = calFilePath.split(".")[0] + ".csv";
|
// //д<>뵽CSV<53>ļ<EFBFBD>
|
||||||
std::ofstream outfile(calFile_csv.toStdString().c_str());
|
// QString calFile_csv = calFilePath.split(".")[0] + ".csv";
|
||||||
for (int i = 0; i < deviceAttribute.iPixels; i++)
|
// std::ofstream outfile(calFile_csv.toStdString().c_str());
|
||||||
{
|
// for (int i = 0; i < deviceAttribute.iPixels; i++)
|
||||||
outfile << deviceAttribute.fWaveLengthInNM[i] << "," << m_gain[i] << std::endl;
|
// {
|
||||||
}
|
// outfile << deviceAttribute.fWaveLengthInNM[i] << "," << m_gain[i] << std::endl;
|
||||||
outfile.close();
|
// }
|
||||||
|
// outfile.close();
|
||||||
|
|
||||||
delete[] m_gain;
|
delete[] m_gain;
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@ struct TcQuery
|
|||||||
int sleepTimeinSecond;//<2F><>Ĭ<EFBFBD><C4AC>ֵ
|
int sleepTimeinSecond;//<2F><>Ĭ<EFBFBD><C4AC>ֵ
|
||||||
int averageTimes;
|
int averageTimes;
|
||||||
int position;
|
int position;
|
||||||
|
int integratingSphereDetectorValue;
|
||||||
|
|
||||||
QString calFileOutputDirectory;//<2F><>Ĭ<EFBFBD><C4AC>ֵ
|
QString calFileOutputDirectory;//<2F><>Ĭ<EFBFBD><C4AC>ֵ
|
||||||
QString calFileOutputName;
|
QString calFileOutputName;
|
||||||
@ -93,6 +94,7 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
//<2F><><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD>
|
//<2F><><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
QString message;
|
||||||
QString SN;
|
QString SN;
|
||||||
QString pixelCount;
|
QString pixelCount;
|
||||||
QString wavelengthInfo;
|
QString wavelengthInfo;
|
||||||
@ -101,11 +103,12 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
//<2F>Զ<EFBFBD><D4B6>ع<EFBFBD>
|
//<2F>Զ<EFBFBD><D4B6>ع<EFBFBD>
|
||||||
logout("<br><b style=\"color:red\">AutoExpose!</b>");
|
logout("<br><b style=\"color:red\">AutoExpose!</b>");
|
||||||
m_FiberSpectrometer->autoExpose();
|
// m_FiberSpectrometer->autoExpose();
|
||||||
|
|
||||||
|
|
||||||
//<2F><><EFBFBD><EFBFBD>sleep<65><70><EFBFBD>ȴ<EFBFBD><C8B4>رտ<D8B1><D5BF><EFBFBD>
|
//<2F><><EFBFBD><EFBFBD>sleep<65><70><EFBFBD>ȴ<EFBFBD><C8B4>رտ<D8B1><D5BF><EFBFBD>
|
||||||
logout("<br><b style=\"color:red\">Wait for close the lamp!</b>");
|
message="<br><b style=\"color:red\">Please close the lamp in " + QString::number(query.sleepTimeinSecond) + "s!</b>";
|
||||||
|
logout(message);
|
||||||
QThread::sleep(query.sleepTimeinSecond);
|
QThread::sleep(query.sleepTimeinSecond);
|
||||||
|
|
||||||
//<2F>ɼ<EFBFBD><C9BC><EFBFBD>֡
|
//<2F>ɼ<EFBFBD><C9BC><EFBFBD>֡
|
||||||
@ -114,7 +117,8 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
|
|
||||||
//<2F><><EFBFBD><EFBFBD>sleep<65><70><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><F2BFAABF><EFBFBD>
|
//<2F><><EFBFBD><EFBFBD>sleep<65><70><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><F2BFAABF><EFBFBD>
|
||||||
logout("<br><b style=\"color:red\">Wait for open the lamp!</b>");
|
message="<br><b style=\"color:red\">Please open the lamp in " + QString::number(query.sleepTimeinSecond) + "s!</b>";
|
||||||
|
logout(message);
|
||||||
QThread::sleep(query.sleepTimeinSecond);
|
QThread::sleep(query.sleepTimeinSecond);
|
||||||
|
|
||||||
//<2F>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//<2F>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@ -128,7 +132,7 @@ int main(int argc, char *argv[])
|
|||||||
m_FiberSpectrometer->getDeviceInfo(deviceInfo);
|
m_FiberSpectrometer->getDeviceInfo(deviceInfo);
|
||||||
|
|
||||||
CalibrationAlgorithm * m_CalibrationAlgorithm = new CalibrationAlgorithm();
|
CalibrationAlgorithm * m_CalibrationAlgorithm = new CalibrationAlgorithm();
|
||||||
m_CalibrationAlgorithm->readFile(query.standardLightFilePath, deviceAttribute, deviceInfo);//
|
m_CalibrationAlgorithm->readAndResample_StandardLightFile(query.standardLightFilePath,query.integratingSphereDetectorValue, deviceAttribute, deviceInfo);
|
||||||
|
|
||||||
//<2F><><EFBFBD>ɷ<EFBFBD><C9B7>䶨<EFBFBD><E4B6A8><EFBFBD>ļ<EFBFBD>
|
//<2F><><EFBFBD>ɷ<EFBFBD><C9B7>䶨<EFBFBD><E4B6A8><EFBFBD>ļ<EFBFBD>
|
||||||
if (query.calFileOutputName.isEmpty())//query->calFileOutputName==""
|
if (query.calFileOutputName.isEmpty())//query->calFileOutputName==""
|
||||||
@ -174,6 +178,9 @@ CommandLineParseResult parseCommandLine2(QCommandLineParser &parser, TcQuery *qu
|
|||||||
QCommandLineOption position("position", "Position.", "position");
|
QCommandLineOption position("position", "Position.", "position");
|
||||||
parser.addOption(position);
|
parser.addOption(position);
|
||||||
|
|
||||||
|
QCommandLineOption integratingSphereDetectorValue("integratingSphereDetectorValue", "integratingSphereDetectorValue.", "integratingSphereDetectorValue");
|
||||||
|
parser.addOption(integratingSphereDetectorValue);
|
||||||
|
|
||||||
// parser.addPositionalArgument("name", "The name to look up.");//????????????????????????????????????????????????????????????????????????????
|
// parser.addPositionalArgument("name", "The name to look up.");//????????????????????????????????????????????????????????????????????????????
|
||||||
QCommandLineOption helpOption = parser.addHelpOption();//Adds the help option (-h, --help and -? on Windows) This option is handled automatically by QCommandLineParser.
|
QCommandLineOption helpOption = parser.addHelpOption();//Adds the help option (-h, --help and -? on Windows) This option is handled automatically by QCommandLineParser.
|
||||||
QCommandLineOption versionOption = parser.addVersionOption();//This option is handled automatically by QCommandLineParser.
|
QCommandLineOption versionOption = parser.addVersionOption();//This option is handled automatically by QCommandLineParser.
|
||||||
@ -226,6 +233,11 @@ CommandLineParseResult parseCommandLine2(QCommandLineParser &parser, TcQuery *qu
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (!parser.parse(QCoreApplication::arguments()))//Process the actual command line arguments given by the user
|
if (!parser.parse(QCoreApplication::arguments()))//Process the actual command line arguments given by the user
|
||||||
{
|
{
|
||||||
*errorMessage = parser.errorText();
|
*errorMessage = parser.errorText();
|
||||||
@ -348,6 +360,24 @@ CommandLineParseResult parseCommandLine2(QCommandLineParser &parser, TcQuery *qu
|
|||||||
query->standardLightFilePath = parser.value(standardLightFilePath);
|
query->standardLightFilePath = parser.value(standardLightFilePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (parser.isSet(integratingSphereDetectorValue))
|
||||||
|
{
|
||||||
|
if(query->standardLightFilePath.contains("ocean_optics.lmp",Qt::CaseSensitive))
|
||||||
|
{
|
||||||
|
query->integratingSphereDetectorValue = -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const QString integratingSphereDetectorValueTmp = parser.value(integratingSphereDetectorValue);
|
||||||
|
query->integratingSphereDetectorValue = integratingSphereDetectorValueTmp.toInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*errorMessage = "No integratingSphereDetectorValue set.";
|
||||||
|
return CommandLineError;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (parser.isSet(calFileOutputDirectory))//<2F><><EFBFBD>걣<EFBFBD><EAB1A3><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>
|
if (parser.isSet(calFileOutputDirectory))//<2F><><EFBFBD>걣<EFBFBD><EAB1A3><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>
|
||||||
{
|
{
|
||||||
|
@ -94,22 +94,23 @@ void OceanOpticsFiberImager::recordDark(QString path)
|
|||||||
//<2F>ɼ<EFBFBD><C9BC><EFBFBD>֡
|
//<2F>ɼ<EFBFBD><C9BC><EFBFBD>֡
|
||||||
singleShot(m_DarkData);
|
singleShot(m_DarkData);
|
||||||
|
|
||||||
QDateTime curDateTime = QDateTime::currentDateTime();
|
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>csv
|
||||||
QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
|
// QDateTime curDateTime = QDateTime::currentDateTime();
|
||||||
|
// QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
|
||||||
QString fileName = path + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_darkSpectral.csv";
|
//
|
||||||
std::ofstream outfile(fileName.toStdString().c_str());
|
// QString fileName = path + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_darkSpectral.csv";
|
||||||
|
// std::ofstream outfile(fileName.toStdString().c_str());
|
||||||
for (int i = 0; i < attribute.iPixels; i++)
|
//
|
||||||
{
|
// for (int i = 0; i < attribute.iPixels; i++)
|
||||||
if (i==0)
|
// {
|
||||||
{
|
// if (i==0)
|
||||||
outfile << m_DarkData.usExposureTimeInMS << std::endl;
|
// {
|
||||||
}
|
// outfile << m_DarkData.usExposureTimeInMS << std::endl;//
|
||||||
outfile << attribute.fWaveLengthInNM[i] << "," << m_DarkData.lData[i] << std::endl;
|
// }
|
||||||
}
|
// outfile << attribute.fWaveLengthInNM[i] << "," << m_DarkData.lData[i] << std::endl;
|
||||||
|
// }
|
||||||
outfile.close();
|
//
|
||||||
|
// outfile.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OceanOpticsFiberImager::recordTarget(int recordTimes, QString path)
|
void OceanOpticsFiberImager::recordTarget(int recordTimes, QString path)
|
||||||
@ -146,22 +147,24 @@ void OceanOpticsFiberImager::recordTarget(int recordTimes, QString path)
|
|||||||
m_IntegratingSphereData.lData[i] = m_IntegratingSphereData.lData[i] / recordTimes;
|
m_IntegratingSphereData.lData[i] = m_IntegratingSphereData.lData[i] / recordTimes;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDateTime curDateTime = QDateTime::currentDateTime();
|
|
||||||
QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
|
|
||||||
|
|
||||||
QString fileName = path + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_integratingSphereSpectral.csv";
|
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>csv
|
||||||
std::ofstream outfile(fileName.toStdString().c_str());
|
// QDateTime curDateTime = QDateTime::currentDateTime();
|
||||||
|
// QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
|
||||||
for (int i = 0; i < attribute.iPixels; i++)
|
//
|
||||||
{
|
// QString fileName = path + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_integratingSphereSpectral.csv";
|
||||||
if (i==0)
|
// std::ofstream outfile(fileName.toStdString().c_str());
|
||||||
{
|
//
|
||||||
outfile << m_IntegratingSphereData.usExposureTimeInMS << std::endl;
|
// for (int i = 0; i < attribute.iPixels; i++)
|
||||||
}
|
// {
|
||||||
outfile << attribute.fWaveLengthInNM[i] << "," << m_IntegratingSphereData.lData[i] << std::endl;
|
// if (i==0)
|
||||||
}
|
// {
|
||||||
|
// outfile << m_IntegratingSphereData.usExposureTimeInMS << std::endl;
|
||||||
outfile.close();
|
// }
|
||||||
|
// outfile << attribute.fWaveLengthInNM[i] << "," << m_IntegratingSphereData.lData[i] << std::endl;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// outfile.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OceanOpticsFiberImager::autoExpose()
|
void OceanOpticsFiberImager::autoExpose()
|
||||||
|
Reference in New Issue
Block a user