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