1. 使用相机时间来计算times文件;
2. times放弃每帧写一次的方法; 3. 不满100帧的内容不丢弃:添加一个队列来记录压入队列的帧数;
This commit is contained in:
@ -100,10 +100,11 @@ Q_OBJECT
|
||||
|
||||
public:
|
||||
WriteData2Disk();
|
||||
void setParm(queue<DataBuffer *> * q, QString baseFileName, int frameSizeInByte, int number_WriteDisk, MemoryPool<DataBuffer> * pool, rgbImage * rgbImage);
|
||||
void setParm(queue<DataBuffer *> * q, queue<int> * qFrameCounter, QString baseFileName, int frameSizeInByte, int number_WriteDisk, MemoryPool<DataBuffer> * pool, rgbImage * rgbImage);
|
||||
|
||||
private:
|
||||
queue<DataBuffer *> * m_q;
|
||||
queue<int> * m_qFrameCounter;
|
||||
QString m_QbaseFileName;
|
||||
int m_iFrameSizeInByte;
|
||||
int m_iNumber_WriteDisk;
|
||||
@ -163,6 +164,7 @@ private:
|
||||
QThread * writeData2DiskThread;
|
||||
WriteData2Disk * writeData2Disk;
|
||||
queue<DataBuffer *> * q;
|
||||
queue<int> * m_qFrameCounter;
|
||||
MemoryPool<DataBuffer> * m_pool;
|
||||
|
||||
QString m_baseFileName;
|
||||
@ -179,23 +181,10 @@ private:
|
||||
|
||||
void processXiApiErrorCodes(int xiApiErrorCodes);
|
||||
|
||||
inline double getSbgTime(double TimeDifferenceBetweensOSAndSbg)
|
||||
inline double getSbgTime(XI_IMG * image, double timeDifferenceBetweenSbgAndXimea)
|
||||
{
|
||||
struct timespec systemTime;
|
||||
clock_gettime(CLOCK_REALTIME,&systemTime);
|
||||
tm systemTime_rili;
|
||||
localtime_r(&systemTime.tv_sec, &systemTime_rili);
|
||||
|
||||
double secondSystem=(systemTime_rili.tm_mday-1)*24*60*60+systemTime_rili.tm_hour*60*60+systemTime_rili.tm_min*60+systemTime_rili.tm_sec;
|
||||
double nanosecondSystem=secondSystem+static_cast<double>(systemTime.tv_nsec)/1000000000;
|
||||
|
||||
|
||||
// printf("\n");
|
||||
// printf("XimeaImager::getSbgTime------系统时间纳秒%d\n", systemTime.tv_nsec);
|
||||
// printf("XimeaImager::getSbgTime------系统时间(未偏移)%f\n", nanosecondSystem);
|
||||
// printf("XimeaImager::getSbgTime------系统时间(偏移)%f\n", nanosecondSystem-TimeDifferenceBetweensOSAndSbg);
|
||||
|
||||
return nanosecondSystem-TimeDifferenceBetweensOSAndSbg;
|
||||
double ximeaTime = (double)image->tsSec + (double)image->tsUSec/1000000;
|
||||
return ximeaTime + timeDifferenceBetweenSbgAndXimea;
|
||||
}
|
||||
|
||||
Configfile m_configfile;
|
||||
@ -206,6 +195,7 @@ public slots:
|
||||
void openImger();
|
||||
void closeImger();
|
||||
|
||||
double calculateTimeDifferenceBetweenSbgAndximea(XI_IMG * m_image, double timeDifferenceBetweenSbgAndOS);
|
||||
void startRecord(double TimeDifferenceBetweensOSAndSbg,QString baseFileName);
|
||||
|
||||
signals:
|
||||
|
Reference in New Issue
Block a user