grabbing still in single camera mode works again
This commit is contained in:
parent
203063d83d
commit
6a82c8d640
@ -21,7 +21,6 @@
|
||||
#include <iostream>
|
||||
#include <chrono>
|
||||
#include <cmath>
|
||||
#include "util.h"
|
||||
|
||||
#if defined(QT_PRINTSUPPORT_LIB)
|
||||
# include <QtPrintSupport/qtprintsupportglobal.h>
|
||||
@ -120,33 +119,39 @@ PylonRecorder::PylonRecorder(QWidget *parent)
|
||||
applySettings();
|
||||
}
|
||||
|
||||
void PylonRecorder::setupCameras(){
|
||||
for (auto dev : deviceList) {
|
||||
std::cout << dev.GetFullName() << " " << dev.GetFriendlyName() << std::endl;
|
||||
}
|
||||
std::cout << "peng\n";
|
||||
std::cout << deviceList.size() << std::endl;
|
||||
std::cout << "peng\n";
|
||||
|
||||
if (deviceList.size() == 0) {
|
||||
qWarning() << "device list is empty!";
|
||||
QErrorMessage message(this);
|
||||
message.showMessage("No camera detected!");
|
||||
} else {
|
||||
std::cout << "peng\n";
|
||||
// std::string cname = (std::string)deviceList[0].GetFullName();
|
||||
// pyloncam = new PylonWrapper(cname);
|
||||
qDebug() << "Creating buffer, grabber, and writer";
|
||||
buffer = new ImageBuffer(defaultBufferSize);
|
||||
grabber = new Grabber(pyloncam, buffer, defaultFrameRate);
|
||||
writer = new Writer(buffer);
|
||||
connect(writer, &Writer::writingDone, this, &PylonRecorder::writerDone);
|
||||
}
|
||||
}
|
||||
// void PylonRecorder::setupCameras(){
|
||||
// std::cerr << "Setting up cameras!" << std::endl;
|
||||
// qDebug() << "setting up cameras";
|
||||
// for (auto dev : deviceList) {
|
||||
// std::cout << dev.GetFullName() << " " << dev.GetFriendlyName() << std::endl;
|
||||
// }
|
||||
// std::string s = "detected ";
|
||||
// s += deviceList.size();
|
||||
// s += " devices";
|
||||
// qDebug() << s.c_str();
|
||||
|
||||
// if (deviceList.size() == 0) {
|
||||
// qWarning() << "device list is empty!";
|
||||
// QErrorMessage message(this);
|
||||
// message.showMessage("No camera detected!");
|
||||
// } else {
|
||||
// std::cout << "peng\n";
|
||||
// std::string cname = (std::string)deviceList[0].GetFullName();
|
||||
// // qDebug() <<
|
||||
// // pyloncam = new PylonWrapper(cname);
|
||||
// qDebug() << "Creating buffer, grabber, and writer";
|
||||
// buffer = new ImageBuffer(defaultBufferSize);
|
||||
// grabber = new Grabber(pyloncam, buffer, defaultFrameRate);
|
||||
// writer = new Writer(buffer);
|
||||
// connect(writer, &Writer::writingDone, this, &PylonRecorder::writerDone);
|
||||
// }
|
||||
// }
|
||||
|
||||
void PylonRecorder::detectCameras() {
|
||||
qDebug() << "Detecting devices!";
|
||||
Pylon::CTlFactory& TlFactory = Pylon::CTlFactory::GetInstance();
|
||||
TlFactory.EnumerateDevices(deviceList);
|
||||
qDebug() << "Found devices!" << deviceList.size();
|
||||
}
|
||||
|
||||
PylonRecorder::~PylonRecorder(){
|
||||
@ -607,17 +612,14 @@ void PylonRecorder::cameraConfiguration(){
|
||||
}
|
||||
|
||||
void PylonRecorder::camerasetup() {
|
||||
std::cerr << "camera settings accepted1" << std::endl;
|
||||
std::cerr << d->result() << std::endl;
|
||||
std::cerr << "camera settings accepted2" << std::endl;
|
||||
CameraLayout l = d->layout();
|
||||
std::cerr << l.rois.size() << l.devices.size() << std::endl;
|
||||
std::cerr << "camera settings accepted3" << std::endl;
|
||||
|
||||
qDebug() << "Cameras setting " << ((d->result()) ? "Accepted" : "Dicarded");
|
||||
this->layout = d->layout();
|
||||
delete d;
|
||||
}
|
||||
|
||||
void PylonRecorder::connectCamera() {
|
||||
this->layout = CameraLayout();
|
||||
qDebug() << "connecting camera(s)";
|
||||
if (deviceList.size() == 0) {
|
||||
detectCameras();
|
||||
QMessageBox msgBox;
|
||||
@ -625,23 +627,29 @@ void PylonRecorder::connectCamera() {
|
||||
msgBox.setText(msg);
|
||||
msgBox.exec();
|
||||
} else {
|
||||
// std::string cname = (std::string)deviceList[0].GetFullName();
|
||||
// pyloncam = new PylonWrapper(cname);
|
||||
// std::string message;
|
||||
// bool success = pyloncam->openCamera(message);
|
||||
// if (success) {
|
||||
// cameraConnectedLabel->setText("connected");
|
||||
// cameraConnectedLabel->setStyleSheet("QLabel { font-size: 10px;font-family: Arial;color: green;}");
|
||||
// } else {
|
||||
// QMessageBox msgBox;
|
||||
// QString msg = "<p><b>Could not open camera device!</b><p><p>" + QString::fromStdString(message) + "</p>";
|
||||
// msgBox.setText(msg);
|
||||
// msgBox.exec();
|
||||
// }
|
||||
// statusBar()->showMessage(QString::fromStdString(message));
|
||||
// updateActions();
|
||||
cameraConfiguration();
|
||||
if (layout.mode == CameraMode::single) {
|
||||
qDebug() << "single camera mode";
|
||||
assert(layout.devices.size() == 1);
|
||||
std::string cname = layout.devices[0];
|
||||
std::string message;
|
||||
qDebug() << "connecting to camera " << cname.c_str();
|
||||
pyloncam = new PylonWrapper(cname);
|
||||
bool success = pyloncam->openCamera(message);
|
||||
if (success) {
|
||||
cameraConnectedLabel->setText("connected");
|
||||
cameraConnectedLabel->setStyleSheet("QLabel { font-size: 10px;font-family: Arial;color: green;}");
|
||||
} else {
|
||||
QMessageBox msgBox;
|
||||
QString msg = "<p><b>Could not open camera device!</b><p><p>" + QString::fromStdString(message) + "</p>";
|
||||
msgBox.setText(msg);
|
||||
msgBox.exec();
|
||||
}
|
||||
statusBar()->showMessage(QString::fromStdString(message));
|
||||
updateActions();
|
||||
}
|
||||
}
|
||||
qDebug() << "connecting cam(s) done!";
|
||||
}
|
||||
|
||||
|
||||
@ -803,7 +811,8 @@ void PylonRecorder::displayBufferPressure() {
|
||||
|
||||
|
||||
void PylonRecorder::grabStillFromPylon() {
|
||||
if (pyloncam->isOpen()) {
|
||||
qDebug() << "Grab still image form camera!";
|
||||
if (pyloncam != nullptr && pyloncam->isOpen()) {
|
||||
MyImage img;
|
||||
bool valid = pyloncam->grabFrame(img);
|
||||
if (valid) {
|
||||
@ -814,6 +823,7 @@ void PylonRecorder::grabStillFromPylon() {
|
||||
} else {
|
||||
statusBar()->showMessage(tr("Camera is not open! Connect to camera first!"));
|
||||
}
|
||||
qDebug() << "grabbing still image done!";
|
||||
}
|
||||
|
||||
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include "writer.h"
|
||||
#include "projectsettings.h"
|
||||
#include "camconfig.h"
|
||||
#include "util.h"
|
||||
|
||||
#include <QImage>
|
||||
#if defined(QT_PRINTSUPPORT_LIB)
|
||||
@ -86,7 +87,7 @@ private:
|
||||
void applyScaling();
|
||||
void adjustScrollBar(QScrollBar *scrollBar, double factor);
|
||||
void detectCameras();
|
||||
void setupCameras();
|
||||
// void setupCameras();
|
||||
int defaultBufferSize = 3000, defaultFrameRate = 30, movieCount = 0, defaultExposureTime = 6000, defaultGain=13;
|
||||
QSettings *settings = new QSettings;
|
||||
QImage image;
|
||||
@ -101,6 +102,7 @@ private:
|
||||
ImageBuffer *buffer;
|
||||
Grabber *grabber;
|
||||
Writer *writer;
|
||||
CameraLayout layout;
|
||||
bool grabbing, stopRequest, writing, labelSwitch, dryRun;
|
||||
QPalette progressPalette;
|
||||
QString activeLabelStyleHigh = "QLabel { font-size: 10pt;font-family: Arial; color : red; }";
|
||||
|
Loading…
Reference in New Issue
Block a user