diff --git a/Header_Files/ximeaimager.h b/Header_Files/ximeaimager.h index 3763ec3..6170bd0 100644 --- a/Header_Files/ximeaimager.h +++ b/Header_Files/ximeaimager.h @@ -70,12 +70,13 @@ private: }; +class XimeaImager; class RecordXimeaTemperature : public QObject { Q_OBJECT public: - RecordXimeaTemperature(Iris::IrisXimeaImager * imager); + RecordXimeaTemperature(Iris::IrisXimeaImager * imager, XimeaImager * ximeaImager); void stopRecordTemperature(); @@ -83,6 +84,7 @@ private: Iris::IrisXimeaImager * m_imager; bool m_bIsRecord; + XimeaImager * m_ximeaImager; public slots: void recordTemperature(QString filePath); diff --git a/Source_Files/ximeaimager.cpp b/Source_Files/ximeaimager.cpp index d04bf7e..2b65f66 100644 --- a/Source_Files/ximeaimager.cpp +++ b/Source_Files/ximeaimager.cpp @@ -35,7 +35,7 @@ XimeaImager::XimeaImager() m_parameterConfigfile.parseConfigfile(); m_recordTempThread=new QThread(); - m_ximeaTemperature = new RecordXimeaTemperature(&m_imager); + m_ximeaTemperature = new RecordXimeaTemperature(&m_imager, this); m_ximeaTemperature->moveToThread(m_recordTempThread); m_recordTempThread->start(); @@ -155,7 +155,7 @@ void XimeaImager::openImger() 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 = QDir::cleanPath(QString::fromStdString("/media/nvme/300TC/programRunLog/ximeaTemperature") + QDir::separator() + "ximeaTemperature_" + currentTime + ".csv"); // m_ximeaTemperatureCSVPath = "/home/ximeaTemperature.csv"; emit recordXimeaTemperatureSignal(m_ximeaTemperatureCSVPath); } @@ -547,7 +547,6 @@ double XimeaImager::calculateTimeDifferenceBetweenSbgAndximea(XI_IMG * image, do void XimeaImager::startRecord(double TimeDifferenceBetweensOSAndSbg,QString baseFileName) { - m_ximeaTemperature->stopRecordTemperature();//开始采集影像前,停止获取相机的温度,以免降低帧率; try { if(m_iImagerState <= 99 || m_iImagerState==100 || m_iImagerState==104) @@ -664,7 +663,7 @@ void XimeaImager::startRecord(double TimeDifferenceBetweensOSAndSbg,QString base double frameLossRate = frameLossed / m_imager.m_image.acq_nframe; std::cout<<"当前采集文件为: "< fileInfo = getFileInfo(filePath); + bool ret = createDir(fileInfo[0]); + ofstream ximeaTemperatureFile(filePath.toStdString().c_str(),ios::app); + int counter = 0; while(m_bIsRecord) { + counter++; + float temp = m_imager->getTemperature(); + if(temp > 80 && m_ximeaImager->getImagerState() == 104) + { + system("/home/300tc/projects/udpClient/udpClient 127.0.0.1 9,0"); + } + if(temp > 90) + { + system("/home/300tc/projects/udpClient/udpClient 127.0.0.1 2"); + } QDateTime curDateTime = QDateTime::currentDateTime(); QString currentTime = curDateTime.toString("yyyy/MM/dd hh:mm:ss"); @@ -945,7 +957,12 @@ void RecordXimeaTemperature::recordTemperature(QString filePath= nullptr) ximeaTemperatureFile << currentTime.toStdString() << "," << temp << "\n"; // std::cout<<"RecordXimeaTemperature::recordTemperature----------------:ximea Temperature is "<< temp <getImagerState() <