From 7fa3b70d1004475a065e094acd2801623e67e4be Mon Sep 17 00:00:00 2001 From: tangchao0503 <735056338@qq.com> Date: Wed, 18 Oct 2023 11:39:01 +0800 Subject: [PATCH] =?UTF-8?q?Modify=EF=BC=9A=E5=8E=BB=E6=8E=89=E5=86=85?= =?UTF-8?q?=E5=AD=98=E6=B1=A0=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Source_Files/ximeaimager.cpp | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/Source_Files/ximeaimager.cpp b/Source_Files/ximeaimager.cpp index 56dd8c2..9516d87 100644 --- a/Source_Files/ximeaimager.cpp +++ b/Source_Files/ximeaimager.cpp @@ -577,7 +577,7 @@ void XimeaImager::startRecord(double TimeDifferenceBetweensOSAndSbg,QString base int number_WriteDisk = 100; writeData2Disk->setParm(q, m_qFrameCounter,m_baseFileName,m_iFrameSizeInByte, number_WriteDisk, m_pool, m_rgbImage); - emit startWriteDiskSignal(); +// emit startWriteDiskSignal(); int indexofbuff; DataBuffer * buffer; @@ -588,6 +588,10 @@ void XimeaImager::startRecord(double TimeDifferenceBetweensOSAndSbg,QString base double timeDifferenceBetweenSbgAndXimea; double * sbgTimeBuffer = new double[number_WriteDisk]; + QString imageFileName=m_baseFileName+".bil"; + FILE *hFile=fopen(imageFileName.toStdString().c_str(),"w+b"); + double * imageBuffer = new double[number_WriteDisk]; + m_imager.start(); struct timeval timeStart, timeEnd; double runTime=0; @@ -601,34 +605,21 @@ void XimeaImager::startRecord(double TimeDifferenceBetweensOSAndSbg,QString base { timeDifferenceBetweenSbgAndXimea = calculateTimeDifferenceBetweenSbgAndximea(&m_imager.m_image, TimeDifferenceBetweensOSAndSbg); } + fwrite(m_imager.m_image.bp,1,m_iFrameSizeInByte, hFile); indexofbuff = m_iFrameCounter % number_WriteDisk; - if (indexofbuff == 1) - { - r_qtx.lock(); - buffer = m_pool->newElement(); - r_qtx.unlock(); - } - if (indexofbuff == 0) { - memcpy((void *)buffer->data + (number_WriteDisk - 1) * m_iFrameSizeInByte,m_imager.m_image.bp,m_iFrameSizeInByte); sbgTimeBuffer[number_WriteDisk - 1] = getSbgTime(&m_imager.m_image, timeDifferenceBetweenSbgAndXimea); } else { - memcpy((void *)buffer->data + (indexofbuff - 1) * m_iFrameSizeInByte,m_imager.m_image.bp,m_iFrameSizeInByte); sbgTimeBuffer[indexofbuff - 1] = getSbgTime(&m_imager.m_image, timeDifferenceBetweenSbgAndXimea); } if (indexofbuff == 0) { - r_qtx.lock(); - q->push(buffer); - m_qFrameCounter->push(number_WriteDisk); - r_qtx.unlock(); - for (int i = 0; i < number_WriteDisk; ++i) { fprintf(hHimesFile,"%f\n",sbgTimeBuffer[i]); @@ -637,11 +628,6 @@ void XimeaImager::startRecord(double TimeDifferenceBetweensOSAndSbg,QString base } if (indexofbuff != 0) { - r_qtx.lock(); - q->push(buffer); - m_qFrameCounter->push(indexofbuff); - r_qtx.unlock(); - for (int i = 0; i < indexofbuff; ++i) { fprintf(hHimesFile,"%f\n",sbgTimeBuffer[i]); @@ -672,6 +658,7 @@ void XimeaImager::startRecord(double TimeDifferenceBetweensOSAndSbg,QString base std::cout<<"丢帧率为: "<