Compare commits
2 Commits
master
...
softwaretr
Author | SHA1 | Date | |
---|---|---|---|
d20ea22beb | |||
ec3844ba9c |
@ -65,7 +65,7 @@ void CameraPreview::setCamera(QString &device){
|
|||||||
delete camera;
|
delete camera;
|
||||||
camera = nullptr;
|
camera = nullptr;
|
||||||
}
|
}
|
||||||
camera = new PylonWrapper(cameraname.toStdString());
|
camera = new SingleCamWrapper(cameraname.toStdString());
|
||||||
std::string message;
|
std::string message;
|
||||||
bool success = camera->openCamera(message);
|
bool success = camera->openCamera(message);
|
||||||
if (!success) {
|
if (!success) {
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <pylon/PylonIncludes.h>
|
#include <pylon/PylonIncludes.h>
|
||||||
|
|
||||||
#include "pylonwrapper.h"
|
#include "singlecamwrapper.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class CameraPreview;
|
class CameraPreview;
|
||||||
@ -53,7 +53,7 @@ private:
|
|||||||
void setImage(const QPixmap &img);
|
void setImage(const QPixmap &img);
|
||||||
void validate(QSpinBox *origin, QSpinBox *dest, int limit);
|
void validate(QSpinBox *origin, QSpinBox *dest, int limit);
|
||||||
|
|
||||||
PylonWrapper *camera;
|
SingleCamWrapper *camera;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -193,7 +193,7 @@ bool DualcamWrapper::grabFrame(MyImage &img, int camindex) {
|
|||||||
|
|
||||||
void DualcamWrapper::setROI() {
|
void DualcamWrapper::setROI() {
|
||||||
for (int camindex = 0; camindex < 2; camindex++){
|
for (int camindex = 0; camindex < 2; camindex++){
|
||||||
qDebug() << "Setting ROI: w" << layout.rois[camindex].width << " h: "<< layout.rois[camindex].height << " x " << layout.rois[camindex].x << " y " << layout.rois[camindex].y << std::endl;
|
qDebug() << "Setting ROI: w" << layout.rois[camindex].width << " h: "<< layout.rois[camindex].height << " x " << layout.rois[camindex].x << " y " << layout.rois[camindex].y;
|
||||||
GenApi::INodeMap &nodemap = getNodemap(camindex);
|
GenApi::INodeMap &nodemap = getNodemap(camindex);
|
||||||
Pylon::CIntegerParameter(nodemap, "Width").SetValue(layout.rois[camindex].width);
|
Pylon::CIntegerParameter(nodemap, "Width").SetValue(layout.rois[camindex].width);
|
||||||
Pylon::CIntegerParameter(nodemap, "Height").SetValue(layout.rois[camindex].height);
|
Pylon::CIntegerParameter(nodemap, "Height").SetValue(layout.rois[camindex].height);
|
||||||
|
@ -652,7 +652,7 @@ void PylonRecorder::connectCamera() {
|
|||||||
std::string cname = layout.devices[0];
|
std::string cname = layout.devices[0];
|
||||||
std::string message;
|
std::string message;
|
||||||
qDebug() << "connecting to camera " << cname.c_str();
|
qDebug() << "connecting to camera " << cname.c_str();
|
||||||
singlecam = new PylonWrapper(layout);
|
singlecam = new SingleCamWrapper(layout);
|
||||||
bool success = singlecam->openCamera(message);
|
bool success = singlecam->openCamera(message);
|
||||||
if (success) {
|
if (success) {
|
||||||
cameraConnectedLabel->setText("connected");
|
cameraConnectedLabel->setText("connected");
|
||||||
@ -762,7 +762,7 @@ void PylonRecorder::startSinglecamRecording() {
|
|||||||
delete singlecamgrabber;
|
delete singlecamgrabber;
|
||||||
singlecamgrabber = nullptr;
|
singlecamgrabber = nullptr;
|
||||||
}
|
}
|
||||||
singlecamgrabber = new Grabber(singlecam, buffer, defaultFrameRate);
|
singlecamgrabber = new SinglecamGrabber(singlecam, buffer, defaultFrameRate);
|
||||||
|
|
||||||
if (framerateSpinner->value() != singlecamgrabber->currentFramerate())
|
if (framerateSpinner->value() != singlecamgrabber->currentFramerate())
|
||||||
singlecamgrabber->setFrameRate(framerateSpinner->value());
|
singlecamgrabber->setFrameRate(framerateSpinner->value());
|
||||||
|
@ -7,10 +7,10 @@
|
|||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <pylon/PylonIncludes.h>
|
#include <pylon/PylonIncludes.h>
|
||||||
#include "pylonwrapper.h"
|
#include "singlecamwrapper.h"
|
||||||
#include "dualcamwrapper.h"
|
#include "dualcamwrapper.h"
|
||||||
#include "imagebuffer.h"
|
#include "imagebuffer.h"
|
||||||
#include "grabber.h"
|
#include "singlecamgrabber.h"
|
||||||
#include "dualcamgrabber.h"
|
#include "dualcamgrabber.h"
|
||||||
#include "writer.h"
|
#include "writer.h"
|
||||||
#include "projectsettings.h"
|
#include "projectsettings.h"
|
||||||
@ -105,10 +105,10 @@ private:
|
|||||||
QProgressBar *loadBar;
|
QProgressBar *loadBar;
|
||||||
QScrollArea *scrollArea;
|
QScrollArea *scrollArea;
|
||||||
double scaleFactor = 1;
|
double scaleFactor = 1;
|
||||||
PylonWrapper *singlecam;
|
SingleCamWrapper *singlecam;
|
||||||
DualcamWrapper *dualcam;
|
DualcamWrapper *dualcam;
|
||||||
ImageBuffer *buffer;
|
ImageBuffer *buffer;
|
||||||
Grabber *singlecamgrabber;
|
SinglecamGrabber *singlecamgrabber;
|
||||||
DualcamGrabber *dualcamgrabber;
|
DualcamGrabber *dualcamgrabber;
|
||||||
Writer *writer;
|
Writer *writer;
|
||||||
CameraLayout layout;
|
CameraLayout layout;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
#include "grabber.h"
|
#include "singlecamgrabber.h"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <pylon/PylonIncludes.h>
|
#include <pylon/PylonIncludes.h>
|
||||||
|
|
||||||
void Grabber::run() {
|
void SinglecamGrabber::run() {
|
||||||
stop_request = false;
|
stop_request = false;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
if (camera->isOpen()) {
|
if (camera->isOpen()) {
|
@ -1,16 +1,16 @@
|
|||||||
#ifndef GRABBER_H
|
#ifndef SINGLECAMGRABBER_H
|
||||||
#define GRABBER_H
|
#define SINGLECAMGRABBER_H
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
#include "pylonwrapper.h"
|
#include "singlecamwrapper.h"
|
||||||
#include "imagebuffer.h"
|
#include "imagebuffer.h"
|
||||||
|
|
||||||
class Grabber : public QThread
|
class SinglecamGrabber : public QThread
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
Grabber(PylonWrapper *camera, ImageBuffer*buffer, int framerate, QObject *parent = nullptr) :
|
SinglecamGrabber(SingleCamWrapper *camera, ImageBuffer*buffer, int framerate, QObject *parent = nullptr) :
|
||||||
QThread(parent), camera(camera), buffer(buffer), framerate(framerate) {}
|
QThread(parent), camera(camera), buffer(buffer), framerate(framerate) {}
|
||||||
|
|
||||||
void run() override;
|
void run() override;
|
||||||
@ -29,7 +29,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
bool stop_request = false;
|
bool stop_request = false;
|
||||||
PylonWrapper *camera;
|
SingleCamWrapper *camera;
|
||||||
ImageBuffer *buffer;
|
ImageBuffer *buffer;
|
||||||
int framerate;
|
int framerate;
|
||||||
double exposure, gain;
|
double exposure, gain;
|
||||||
@ -51,4 +51,4 @@ signals:
|
|||||||
void terminated();
|
void terminated();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // GRABBER_H
|
#endif // SINGLECAMGRABBER_H
|
@ -1,19 +1,19 @@
|
|||||||
#include "pylonwrapper.h"
|
#include "singlecamwrapper.h"
|
||||||
|
|
||||||
PylonWrapper::PylonWrapper(const std::string &fullName):
|
SingleCamWrapper::SingleCamWrapper(const std::string &fullName):
|
||||||
valid(false), fullName(fullName), camera(nullptr), withLayout(false) {
|
valid(false), fullName(fullName), camera(nullptr), withLayout(false) {
|
||||||
qDebug() << "Constructor with name";
|
qDebug() << "Constructor with name";
|
||||||
Pylon::PylonInitialize();
|
Pylon::PylonInitialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
PylonWrapper::PylonWrapper(const CameraLayout &layout): valid(false), withLayout(true), camera(nullptr) {
|
SingleCamWrapper::SingleCamWrapper(const CameraLayout &layout): valid(false), withLayout(true), camera(nullptr) {
|
||||||
qDebug() << "Constructor with layout";
|
qDebug() << "Constructor with layout";
|
||||||
this->fullName = layout.devices[0];
|
this->fullName = layout.devices[0];
|
||||||
this->layout = layout;
|
this->layout = layout;
|
||||||
Pylon::PylonInitialize();
|
Pylon::PylonInitialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
PylonWrapper::~PylonWrapper() {
|
SingleCamWrapper::~SingleCamWrapper() {
|
||||||
qDebug() << "wrapper destructor";
|
qDebug() << "wrapper destructor";
|
||||||
if (camera != nullptr){
|
if (camera != nullptr){
|
||||||
if (camera->IsOpen()) {
|
if (camera->IsOpen()) {
|
||||||
@ -27,7 +27,7 @@ PylonWrapper::~PylonWrapper() {
|
|||||||
qDebug() << "Successfully deleted camera";
|
qDebug() << "Successfully deleted camera";
|
||||||
}
|
}
|
||||||
|
|
||||||
void PylonWrapper::terminate() {
|
void SingleCamWrapper::terminate() {
|
||||||
qDebug() << "Terminate";
|
qDebug() << "Terminate";
|
||||||
try {
|
try {
|
||||||
Pylon::PylonTerminate();
|
Pylon::PylonTerminate();
|
||||||
@ -36,11 +36,11 @@ void PylonWrapper::terminate() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PylonWrapper::isOpen() {
|
bool SingleCamWrapper::isOpen() {
|
||||||
return valid;
|
return valid;
|
||||||
}
|
}
|
||||||
|
|
||||||
double PylonWrapper::maxFrameRate() {
|
double SingleCamWrapper::maxFrameRate() {
|
||||||
double max_rate = -1;
|
double max_rate = -1;
|
||||||
if (valid) {
|
if (valid) {
|
||||||
GenApi::INodeMap& nodemap = camera->GetNodeMap();
|
GenApi::INodeMap& nodemap = camera->GetNodeMap();
|
||||||
@ -51,7 +51,7 @@ double PylonWrapper::maxFrameRate() {
|
|||||||
return max_rate;
|
return max_rate;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PylonWrapper::frameRate(uint new_framerate) {
|
bool SingleCamWrapper::frameRate(uint new_framerate) {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
GenApi::INodeMap& nodemap = camera->GetNodeMap();
|
GenApi::INodeMap& nodemap = camera->GetNodeMap();
|
||||||
GenApi::INode* n = nodemap.GetNode( "AcquisitionFrameRateEnable" );
|
GenApi::INode* n = nodemap.GetNode( "AcquisitionFrameRateEnable" );
|
||||||
@ -66,7 +66,7 @@ bool PylonWrapper::frameRate(uint new_framerate) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
double PylonWrapper::frameRate() {
|
double SingleCamWrapper::frameRate() {
|
||||||
double rate = -1.;
|
double rate = -1.;
|
||||||
if (valid) {
|
if (valid) {
|
||||||
GenApi::INodeMap& nodemap = camera->GetNodeMap();
|
GenApi::INodeMap& nodemap = camera->GetNodeMap();
|
||||||
@ -77,7 +77,7 @@ double PylonWrapper::frameRate() {
|
|||||||
return rate;
|
return rate;
|
||||||
}
|
}
|
||||||
|
|
||||||
double PylonWrapper::exposureTime() {
|
double SingleCamWrapper::exposureTime() {
|
||||||
double time = -1.;
|
double time = -1.;
|
||||||
if (valid) {
|
if (valid) {
|
||||||
GenApi::INodeMap& nodemap = camera->GetNodeMap();
|
GenApi::INodeMap& nodemap = camera->GetNodeMap();
|
||||||
@ -88,7 +88,7 @@ double PylonWrapper::exposureTime() {
|
|||||||
return time;
|
return time;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PylonWrapper::exposureTime(double exposure_time) {
|
bool SingleCamWrapper::exposureTime(double exposure_time) {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
GenApi::INodeMap& nodemap = camera->GetNodeMap();
|
GenApi::INodeMap& nodemap = camera->GetNodeMap();
|
||||||
double d = GenApi::CFloatPtr(nodemap.GetNode("ExposureTime"))->GetValue();
|
double d = GenApi::CFloatPtr(nodemap.GetNode("ExposureTime"))->GetValue();
|
||||||
@ -105,7 +105,7 @@ bool PylonWrapper::exposureTime(double exposure_time) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
double PylonWrapper::gain() {
|
double SingleCamWrapper::gain() {
|
||||||
double gain = -1.;
|
double gain = -1.;
|
||||||
if (valid) {
|
if (valid) {
|
||||||
GenApi::INodeMap& nodemap = camera->GetNodeMap();
|
GenApi::INodeMap& nodemap = camera->GetNodeMap();
|
||||||
@ -116,7 +116,7 @@ double PylonWrapper::gain() {
|
|||||||
return gain;
|
return gain;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PylonWrapper::gain(double gain_db) {
|
bool SingleCamWrapper::gain(double gain_db) {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
GenApi::INodeMap& nodemap = camera->GetNodeMap();
|
GenApi::INodeMap& nodemap = camera->GetNodeMap();
|
||||||
GenApi::CFloatPtr(nodemap.GetNode("Gain"))->SetValue(gain_db);
|
GenApi::CFloatPtr(nodemap.GetNode("Gain"))->SetValue(gain_db);
|
||||||
@ -125,7 +125,7 @@ bool PylonWrapper::gain(double gain_db) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImageSettings PylonWrapper::getImageSettings() {
|
ImageSettings SingleCamWrapper::getImageSettings() {
|
||||||
ImageSettings settings;
|
ImageSettings settings;
|
||||||
if (valid) {
|
if (valid) {
|
||||||
Pylon::CEnumParameter pixelFormat( camera->GetNodeMap(), "PixelFormat" );
|
Pylon::CEnumParameter pixelFormat( camera->GetNodeMap(), "PixelFormat" );
|
||||||
@ -141,7 +141,7 @@ ImageSettings PylonWrapper::getImageSettings() {
|
|||||||
return settings;
|
return settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PylonWrapper::grabFrame(MyImage &img) {
|
bool SingleCamWrapper::grabFrame(MyImage &img) {
|
||||||
Pylon::CGrabResultPtr frame;
|
Pylon::CGrabResultPtr frame;
|
||||||
qDebug() << "grabFrame";
|
qDebug() << "grabFrame";
|
||||||
if (valid) {
|
if (valid) {
|
||||||
@ -162,7 +162,7 @@ bool PylonWrapper::grabFrame(MyImage &img) {
|
|||||||
return frame.IsValid();
|
return frame.IsValid();
|
||||||
}
|
}
|
||||||
|
|
||||||
void PylonWrapper::resetCamera() {
|
void SingleCamWrapper::resetCamera() {
|
||||||
int64_t dfltWidth = 2048;
|
int64_t dfltWidth = 2048;
|
||||||
int64_t dfltHeight = 1536;
|
int64_t dfltHeight = 1536;
|
||||||
qDebug() << "resetting camera to default ROI (" << dfltWidth << ", " << dfltHeight << ")";
|
qDebug() << "resetting camera to default ROI (" << dfltWidth << ", " << dfltHeight << ")";
|
||||||
@ -181,7 +181,7 @@ void PylonWrapper::resetCamera() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PylonWrapper::openCamera(std::string &message) {
|
bool SingleCamWrapper::openCamera(std::string &message) {
|
||||||
qDebug() << "opening camera";
|
qDebug() << "opening camera";
|
||||||
try {
|
try {
|
||||||
camera = new Pylon::CInstantCamera();
|
camera = new Pylon::CInstantCamera();
|
||||||
@ -215,7 +215,7 @@ bool PylonWrapper::openCamera(std::string &message) {
|
|||||||
return valid;
|
return valid;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PylonWrapper::closeCamera() {
|
void SingleCamWrapper::closeCamera() {
|
||||||
qDebug() << "Close camera!";
|
qDebug() << "Close camera!";
|
||||||
if (camera->IsOpen()) {
|
if (camera->IsOpen()) {
|
||||||
try {
|
try {
|
||||||
@ -229,11 +229,11 @@ void PylonWrapper::closeCamera() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Pylon::CInstantCamera *PylonWrapper::getCamera() {
|
Pylon::CInstantCamera *SingleCamWrapper::getCamera() {
|
||||||
return camera;
|
return camera;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString PylonWrapper::userName() {
|
QString SingleCamWrapper::userName() {
|
||||||
GenApi::INodeMap& nodemap = camera->GetNodeMap();
|
GenApi::INodeMap& nodemap = camera->GetNodeMap();
|
||||||
QString username = Pylon::CStringParameter(nodemap, "DeviceUserID").GetValue().c_str();
|
QString username = Pylon::CStringParameter(nodemap, "DeviceUserID").GetValue().c_str();
|
||||||
return username;
|
return username;
|
@ -1,5 +1,5 @@
|
|||||||
#ifndef PYLONWRAPPER_H
|
#ifndef SINGLECAMWRAPPER_H
|
||||||
#define PYLONWRAPPER_H
|
#define SINGLECAMWRAPPER_H
|
||||||
|
|
||||||
#include <pylon/PylonIncludes.h>
|
#include <pylon/PylonIncludes.h>
|
||||||
#include <pylon/BaslerUniversalInstantCamera.h>
|
#include <pylon/BaslerUniversalInstantCamera.h>
|
||||||
@ -7,12 +7,12 @@
|
|||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "myimage.h"
|
#include "myimage.h"
|
||||||
|
|
||||||
class PylonWrapper
|
class SingleCamWrapper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PylonWrapper(const std::string &name);
|
SingleCamWrapper(const std::string &name);
|
||||||
PylonWrapper(const CameraLayout &layout);
|
SingleCamWrapper(const CameraLayout &layout);
|
||||||
~PylonWrapper();
|
~SingleCamWrapper();
|
||||||
|
|
||||||
ImageSettings getImageSettings();
|
ImageSettings getImageSettings();
|
||||||
bool isOpen();
|
bool isOpen();
|
||||||
@ -41,4 +41,4 @@ private:
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // PYLONWRAPPER_H
|
#endif // SINGLECAMWRAPPER_H
|
2
writer.h
2
writer.h
@ -6,7 +6,7 @@
|
|||||||
#include <pylon/PylonIncludes.h>
|
#include <pylon/PylonIncludes.h>
|
||||||
#include <nix.hpp>
|
#include <nix.hpp>
|
||||||
|
|
||||||
#include "pylonwrapper.h"
|
#include "singlecamwrapper.h"
|
||||||
#include "imagebuffer.h"
|
#include "imagebuffer.h"
|
||||||
#include "projectsettings.h"
|
#include "projectsettings.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
Loading…
Reference in New Issue
Block a user