PylonRecorder/grabber.cpp

32 lines
1.0 KiB
C++

#include "grabber.h"
#include <iostream>
#include <pylon/PylonIncludes.h>
#include <chrono>
using namespace std::chrono;
void Grabber::run() {
stop_request = false;
int count = 0;
if (camera->isOpen()) {
camera->frameRate(static_cast<uint>(framerate));
camera->exposureTime(exposure);
camera->gain(gain);
Pylon::CGrabResultPtr frame;
Pylon::CInstantCamera *cam = camera->getCamera();
cam->StartGrabbing();
while (camera->isOpen() && !stop_request) {
MyImage *img = new MyImage();
auto start = high_resolution_clock::now();
cam->RetrieveResult( 5000, frame, Pylon::TimeoutHandling_ThrowException);
auto stop1 = high_resolution_clock::now();
img->setFrame(frame);
auto stop2 = high_resolution_clock::now();
buffer->push(img);
auto duration1 = duration_cast<microseconds>(stop1 - start);
auto duration2 = duration_cast<microseconds>(stop2 - stop1);
count += 1;
}
cam->StopGrabbing();
}
}