From 519b84064ee22655fb78d0f656d09dc6c2e863ee Mon Sep 17 00:00:00 2001 From: Jan Grewe Date: Mon, 16 Mar 2020 11:01:18 +0100 Subject: [PATCH] fixed load meter during saving, writer emits signal when done --- imagebuffer.cpp | 2 +- images/exit.png | Bin 7322 -> 7199 bytes pylonrecorder.cpp | 23 ++++++++++++++++++++--- pylonrecorder.h | 2 ++ writer.cpp | 4 ++-- writer.h | 7 ++++--- 6 files changed, 29 insertions(+), 9 deletions(-) diff --git a/imagebuffer.cpp b/imagebuffer.cpp index af9b3ef..a489e4d 100644 --- a/imagebuffer.cpp +++ b/imagebuffer.cpp @@ -60,7 +60,7 @@ bool ImageBuffer::pop(MyImage &img) { bool ret = false; mutex.lock(); if (load > 0) { - std::cerr << "Buffer.pop, load: " << load << " read_idx: " << current_read_index << " write_idx: " << current_write_index << std::endl; + // std::cerr << "Buffer.pop, load: " << load << " read_idx: " << current_read_index << " write_idx: " << current_write_index << std::endl; img = buffer[static_cast(current_read_index)]; static_cast(current_read_index) < (buffer.capacity() - 1) ? current_read_index += 1 : current_read_index = 0; load -= 1; diff --git a/images/exit.png b/images/exit.png index 74ce7080528b7bcb505cc507e5c395fb6370dc25..f66edf38308105373717cf53b7691de5d84d1543 100644 GIT binary patch delta 5471 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 delta 5595 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 scrollArea->setVisible(false); setCentralWidget(scrollArea); + pylon = new PylonWrapper(); buffer = new ImageBuffer(1000); grabber = new Grabber(pylon, buffer); writer = new Writer(buffer); + connect(writer, &Writer::writingDone, this, &PylonRecorder::writerDone); + createActions(); updateActions(); @@ -61,8 +64,15 @@ PylonRecorder::PylonRecorder(QWidget *parent) preassureBar->setPalette(progressPalette); QLabel *preassureLabel = new QLabel("Buffer preassure:", this); + loadBar = new QProgressBar(this); + loadBar->setRange(0, 1000); + QLabel *loadLabel = new QLabel("Load:", this); + statusBar()->addWidget(preassureLabel); statusBar()->addWidget(preassureBar); + statusBar()->addWidget(loadLabel); + statusBar()->addWidget(loadBar); + resize(QGuiApplication::primaryScreen()->availableSize() * 3 / 5); } @@ -408,14 +418,18 @@ void PylonRecorder::startRecording() { } void PylonRecorder::stopRecording() { + frameTimer->stop(); grabber->requestStop(); writer->requestStop(); +} + +void PylonRecorder::writerDone() { + preassureTimer->stop(); + preassureBar->reset(); + loadBar->reset(); grabber->wait(10000); writer->wait(10000); grabbing = false; - frameTimer->stop(); - preassureTimer->stop(); - preassureBar->reset(); updateActions(); } @@ -448,6 +462,9 @@ void PylonRecorder::displayBufferPreassure() { QColor color = progressColor(value); progressPalette.setBrush(QPalette::Highlight, QBrush(color)); preassureBar->setPalette(progressPalette); + + int load = static_cast(buffer->bufferLoad()); + loadBar->setValue(load); } void PylonRecorder::grabStillFromPylon() { diff --git a/pylonrecorder.h b/pylonrecorder.h index cf049fa..2a821e8 100644 --- a/pylonrecorder.h +++ b/pylonrecorder.h @@ -56,6 +56,7 @@ private slots: void quitApplication(); void displaySingleFrame(); void displayBufferPreassure(); + void writerDone(); private: void createActions(); @@ -74,6 +75,7 @@ private: QTimer *preassureTimer; QLabel *imageLabel; QProgressBar *preassureBar; + QProgressBar *loadBar; QScrollArea *scrollArea; double scaleFactor = 1; PylonWrapper *pylon; diff --git a/writer.cpp b/writer.cpp index 93918e0..2c23712 100644 --- a/writer.cpp +++ b/writer.cpp @@ -6,6 +6,7 @@ void Writer::setVideoSpecs(VideoSpecs specs) { } void Writer::run() { + int64_t count = 0; if (valid) { stop_request = false; Pylon::CVideoWriter videoWriter; @@ -13,9 +14,7 @@ void Writer::run() { videoSpecs.fps, videoSpecs.quality); videoWriter.Open(videoSpecs.filename.c_str()); MyImage img; - int64_t count = 0; while (!stop_request || buffer->bufferLoad() > 0) { - std::cerr << "running!\n"; if (buffer->bufferLoad() > 0 ) { bool valid = buffer->pop(img); if (valid) { @@ -40,4 +39,5 @@ void Writer::run() { } else { std::cerr << "Got no video specifications, not writing!" << std::endl; } + emit writingDone(); } diff --git a/writer.h b/writer.h index a5e69dd..f87b222 100644 --- a/writer.h +++ b/writer.h @@ -26,6 +26,10 @@ public: void run() override; void stop(); +signals: + void terminated(); + void writingDone(); + private: ImageBuffer *buffer; VideoSpecs videoSpecs; @@ -36,9 +40,6 @@ public slots: void requestStop() { stop_request=true; } - -signals: - void terminated(); }; #endif // WRITER_H