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<<"丢帧率为: "<