diff --git a/Header_Files/configfile.h b/Header_Files/configfile.h index 8237569..56d2af2 100644 --- a/Header_Files/configfile.h +++ b/Header_Files/configfile.h @@ -12,6 +12,8 @@ #include #include +#include +#include using namespace std; using namespace libconfig; diff --git a/Header_Files/ximeaimager.h b/Header_Files/ximeaimager.h index f5f698f..c35c623 100644 --- a/Header_Files/ximeaimager.h +++ b/Header_Files/ximeaimager.h @@ -29,6 +29,7 @@ #include #include #include +#include #include "configfile.h" diff --git a/Source_Files/configfile.cpp b/Source_Files/configfile.cpp index 2de81f8..e450b72 100644 --- a/Source_Files/configfile.cpp +++ b/Source_Files/configfile.cpp @@ -159,7 +159,6 @@ bool Configfile::createConfigFile() using namespace std; using namespace libconfig; - static const char *output_file = "ximea.cfg"; Config cfg; Setting &root = cfg.getRoot(); @@ -208,15 +207,16 @@ bool Configfile::createConfigFile() // Write out the new configuration. + QString output_file = QDir::cleanPath(QCoreApplication::applicationDirPath() + QDir::separator() + "ximea.cfg"); try { - cfg.writeFile(output_file); - cerr << "New configuration successfully written to: " << output_file << endl; + cfg.writeFile(output_file.toStdString().c_str()); + cerr << "New configuration successfully written to: " << output_file.toStdString().c_str() << endl; } catch(const FileIOException &fioex) { - cerr << "I/O error while writing configuration file: " << output_file << endl; + cerr << "I/O error while writing configuration file: " << output_file.toStdString().c_str() << endl; return true; } diff --git a/Source_Files/ximeaimager.cpp b/Source_Files/ximeaimager.cpp index e1a756e..c8c536d 100644 --- a/Source_Files/ximeaimager.cpp +++ b/Source_Files/ximeaimager.cpp @@ -9,7 +9,8 @@ XimeaImager::XimeaImager() //connect(this, SIGNAL(recordFinished()),this, SLOT()); - m_configfile.setConfigfilePath("ximea.cfg"); + QString ximeaCfgFile = QDir::cleanPath(QCoreApplication::applicationDirPath() + QDir::separator() + "ximea.cfg"); + m_configfile.setConfigfilePath(ximeaCfgFile.toStdString()); if(!m_configfile.isConfigfileExist()) m_configfile.createConfigFile(); m_configfile.parseConfigfile(); @@ -80,7 +81,10 @@ void XimeaImager::openImger() m_iImagerState = 101; emit ximeaImageStatus(m_iImagerState); - m_ximeaTemperatureCSVPath = "/home/rock/programRunLog/ximeaTemperature.csv"; + QDateTime curDateTime = QDateTime::currentDateTime(); + QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss"); + m_ximeaTemperatureCSVPath = QDir::cleanPath(QString::fromStdString("/home/programRunLog/hyperspectralLog") + QDir::separator() + "ximeaTemperature_" + currentTime + ".csv"); +// m_ximeaTemperatureCSVPath = "/home/ximeaTemperature.csv"; emit recordXimeaTemperatureSignal(m_ximeaTemperatureCSVPath); } catch(int xiApiErrorCodes) @@ -480,6 +484,10 @@ void XimeaImager::startRecord(double TimeDifferenceBetweensOSAndSbg,QString base // { // break; // } +// if(m_iFrameCounter/getFramerate() > 5*60) //这个判断会导致丢帧率的大幅升高:5% → 20%,推测原因:除法耗时; +// { +// break; +// } // unsigned char pixel = *(unsigned char*)image.bp;//Default value: XI_MONO8 // unsigned short pixel =*(unsigned short*)image.bp;//XI_RAW16 @@ -669,6 +677,7 @@ void XimeaImager::processXiApiErrorCodes(int xiApiErrorCodes) ofstream ximeaErrorFile(ximeaError.toStdString().c_str(),ios::app); ximeaErrorFile<< xiApiErrorCodes << "\n"; + std::cout<<"XimeaImager::processXiApiErrorCodes-----------:未处理ximea异常代码:"<< xiApiErrorCodes <