PylonRecorder/dualcamgrabber.cpp

30 lines
939 B
C++

#include "dualcamgrabber.h"
#include <iostream>
#include <pylon/PylonIncludes.h>
void DualcamGrabber::run() {
stop_request = false;
size_t framecount = 0;
if (wrapper->isOpen()) {
Pylon::CInstantCameraArray &cameras = wrapper->getCameraArray();
wrapper->frameRate(static_cast<uint>(framerate));
wrapper->exposureTime(exposure);
wrapper->gain(gain);
cameras.StartGrabbing();
Pylon::CGrabResultPtr frame0, frame1;
while (cameras.IsGrabbing() && !stop_request) {
MyImage *img = new MyImage();
cameras.RetrieveResult( 5000, framecount % 2 == 0 ? frame0 : frame1, Pylon::TimeoutHandling_ThrowException );
img->setFrame(framecount % 2 == 0 ? frame0 : frame1);
if (framecount % 2 == 0) {
buffer0->push(img);
} else {
buffer1->push(img);
}
framecount += 1;
}
cameras.StopGrabbing();
}
}