[ui] reading, writing works
This commit is contained in:
parent
f68dc517ae
commit
6a0570666e
@ -10,7 +10,7 @@ void Grabber::run() {
|
|||||||
Pylon::CInstantCamera *cam = camera->getCamera();
|
Pylon::CInstantCamera *cam = camera->getCamera();
|
||||||
cam->StartGrabbing();
|
cam->StartGrabbing();
|
||||||
while (!stop_request) {
|
while (!stop_request) {
|
||||||
camera->frameRate(25);
|
camera->frameRate(50);
|
||||||
MyImage img;
|
MyImage img;
|
||||||
cam->RetrieveResult( 5000, frame, Pylon::TimeoutHandling_ThrowException);
|
cam->RetrieveResult( 5000, frame, Pylon::TimeoutHandling_ThrowException);
|
||||||
img.setFrame(frame);
|
img.setFrame(frame);
|
||||||
|
@ -41,8 +41,9 @@ PylonRecorder::PylonRecorder(QWidget *parent)
|
|||||||
scrollArea->setVisible(false);
|
scrollArea->setVisible(false);
|
||||||
setCentralWidget(scrollArea);
|
setCentralWidget(scrollArea);
|
||||||
pylon = new PylonWrapper();
|
pylon = new PylonWrapper();
|
||||||
buffer = new ImageBuffer();
|
buffer = new ImageBuffer(1000);
|
||||||
grabber = new Grabber(pylon, buffer);
|
grabber = new Grabber(pylon, buffer);
|
||||||
|
writer = new Writer(buffer);
|
||||||
createActions();
|
createActions();
|
||||||
updateActions();
|
updateActions();
|
||||||
|
|
||||||
@ -69,6 +70,7 @@ PylonRecorder::~PylonRecorder(){
|
|||||||
delete pylon;
|
delete pylon;
|
||||||
delete buffer;
|
delete buffer;
|
||||||
delete grabber;
|
delete grabber;
|
||||||
|
delete writer;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PylonRecorder::loadFile(const QString &fileName) {
|
bool PylonRecorder::loadFile(const QString &fileName) {
|
||||||
@ -384,17 +386,32 @@ void PylonRecorder::disconnectCamera() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PylonRecorder::startRecording() {
|
void PylonRecorder::startRecording() {
|
||||||
|
VideoSpecs specs;
|
||||||
|
specs.fps = 25;
|
||||||
|
specs.filename = "Test.mp4";
|
||||||
|
ImageSettings settings = pylon->getImageSettings();
|
||||||
|
specs.width = static_cast<uint32_t>(settings.width);
|
||||||
|
specs.height= static_cast<uint32_t>(settings.height);
|
||||||
|
specs.pixelType = settings.pixelType;
|
||||||
|
specs.orientation = settings.orientation;
|
||||||
|
specs.quality = 95;
|
||||||
|
writer->setVideoSpecs(specs);
|
||||||
buffer->clear();
|
buffer->clear();
|
||||||
grabber->start();
|
grabber->start();
|
||||||
|
writer->start();
|
||||||
grabbing = true;
|
grabbing = true;
|
||||||
|
|
||||||
|
preassureTimer->start(50);
|
||||||
|
frameTimer->start(50);
|
||||||
updateActions();
|
updateActions();
|
||||||
preassureTimer->start(25);
|
|
||||||
frameTimer->start(100);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PylonRecorder::stopRecording() {
|
void PylonRecorder::stopRecording() {
|
||||||
grabber->requestStop();
|
grabber->requestStop();
|
||||||
|
writer->requestStop();
|
||||||
grabber->wait(10000);
|
grabber->wait(10000);
|
||||||
|
writer->wait(10000);
|
||||||
grabbing = false;
|
grabbing = false;
|
||||||
frameTimer->stop();
|
frameTimer->stop();
|
||||||
preassureTimer->stop();
|
preassureTimer->stop();
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#include "pylonwrapper.h"
|
#include "pylonwrapper.h"
|
||||||
#include "imagebuffer.h"
|
#include "imagebuffer.h"
|
||||||
#include "grabber.h"
|
#include "grabber.h"
|
||||||
|
#include "writer.h"
|
||||||
|
|
||||||
#include <QImage>
|
#include <QImage>
|
||||||
#if defined(QT_PRINTSUPPORT_LIB)
|
#if defined(QT_PRINTSUPPORT_LIB)
|
||||||
@ -78,6 +79,7 @@ private:
|
|||||||
PylonWrapper *pylon;
|
PylonWrapper *pylon;
|
||||||
ImageBuffer *buffer;
|
ImageBuffer *buffer;
|
||||||
Grabber *grabber;
|
Grabber *grabber;
|
||||||
|
Writer *writer;
|
||||||
bool grabbing;
|
bool grabbing;
|
||||||
QPalette progressPalette;
|
QPalette progressPalette;
|
||||||
|
|
||||||
|
@ -65,8 +65,11 @@ ImageSettings PylonWrapper::getImageSettings() {
|
|||||||
Pylon::CIntegerParameter width( camera->GetNodeMap(), "Width");
|
Pylon::CIntegerParameter width( camera->GetNodeMap(), "Width");
|
||||||
Pylon::CIntegerParameter height( camera->GetNodeMap(), "Height");
|
Pylon::CIntegerParameter height( camera->GetNodeMap(), "Height");
|
||||||
Pylon::CEnumParameter pixelFormat( camera->GetNodeMap(), "PixelFormat");
|
Pylon::CEnumParameter pixelFormat( camera->GetNodeMap(), "PixelFormat");
|
||||||
|
Pylon::CPixelTypeMapper pixelTypeMapper(&pixelFormat);
|
||||||
|
settings.pixelType = pixelTypeMapper.GetPylonPixelTypeFromNodeValue(pixelFormat.GetIntValue());
|
||||||
settings.width = width.GetValue();
|
settings.width = width.GetValue();
|
||||||
settings.height = height.GetValue();
|
settings.height = height.GetValue();
|
||||||
|
settings.orientation = Pylon::EImageOrientation::ImageOrientation_TopDown;
|
||||||
}
|
}
|
||||||
return settings;
|
return settings;
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
struct ImageSettings {
|
struct ImageSettings {
|
||||||
int64_t width = 0;
|
int64_t width = 0;
|
||||||
int64_t height = 0;
|
int64_t height = 0;
|
||||||
|
Pylon::EPixelType pixelType;
|
||||||
|
Pylon::EImageOrientation orientation;
|
||||||
};
|
};
|
||||||
|
|
||||||
class PylonWrapper
|
class PylonWrapper
|
||||||
|
@ -7,14 +7,16 @@ HEADERS = \
|
|||||||
imagebuffer.h \
|
imagebuffer.h \
|
||||||
myimage.h \
|
myimage.h \
|
||||||
pylonrecorder.h \
|
pylonrecorder.h \
|
||||||
pylonwrapper.h
|
pylonwrapper.h \
|
||||||
|
writer.h
|
||||||
SOURCES = \
|
SOURCES = \
|
||||||
grabber.cpp \
|
grabber.cpp \
|
||||||
imagebuffer.cpp \
|
imagebuffer.cpp \
|
||||||
myimage.cpp \
|
myimage.cpp \
|
||||||
pylonrecorder.cpp \
|
pylonrecorder.cpp \
|
||||||
pylonwrapper.cpp \
|
pylonwrapper.cpp \
|
||||||
main.cpp
|
main.cpp \
|
||||||
|
writer.cpp
|
||||||
|
|
||||||
# install
|
# install
|
||||||
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/widgets/imageviewer
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/widgets/imageviewer
|
||||||
|
Loading…
Reference in New Issue
Block a user