From 997b3c5db04f9a4fbdbff8beb035a2a940a136b5 Mon Sep 17 00:00:00 2001 From: Grant Date: Wed, 20 Nov 2019 21:42:12 -0800 Subject: [PATCH] Correct Event Loop Connections --- FaultFinder.cpp | 8 ++++---- ImageManager.cpp | 2 +- ImageManager.hpp | 2 -- StreamManager.cpp | 13 +++++++++++-- StreamManager.hpp | 2 +- StreamReader.cpp | 2 +- 6 files changed, 18 insertions(+), 11 deletions(-) diff --git a/FaultFinder.cpp b/FaultFinder.cpp index 71f8bec..c8c6870 100644 --- a/FaultFinder.cpp +++ b/FaultFinder.cpp @@ -2,10 +2,10 @@ FaultFinder::FaultFinder(QObject *parent) : QObject(parent) { - fault_mgr = new FaultManager(parent); - image_mgr = new ImageManager(parent); - config_mgr = new ConfigManager(parent); - stream_mgr = new StreamManager(parent); + fault_mgr = new FaultManager(this); + image_mgr = new ImageManager(this); + config_mgr = new ConfigManager(this); + stream_mgr = new StreamManager(this); } FaultFinder::~FaultFinder() diff --git a/ImageManager.cpp b/ImageManager.cpp index 2eb00e8..919bcab 100644 --- a/ImageManager.cpp +++ b/ImageManager.cpp @@ -3,8 +3,8 @@ #include #include +#include "FaultFinder.hpp" #include "ImageManager.hpp" -#include "FaultManager.hpp" #define ZERO 0 #define BITS8 0xff diff --git a/ImageManager.hpp b/ImageManager.hpp index 8796601..4cd104c 100644 --- a/ImageManager.hpp +++ b/ImageManager.hpp @@ -25,6 +25,4 @@ private: }; -#include "FaultFinder.hpp" - #endif \ No newline at end of file diff --git a/StreamManager.cpp b/StreamManager.cpp index 504a80c..97341ae 100644 --- a/StreamManager.cpp +++ b/StreamManager.cpp @@ -1,9 +1,11 @@ #include "StreamManager.hpp" +#include "FaultFinder.hpp" StreamManager::StreamManager(QObject *parent) : QObject(parent) { - // Listen for New Emissivity Signal - //connect(&config_mgr, &ConfigManager::NewEmissivity, this, &StreamManager::SetEmissivity); + // Connect Signals + connect(((FaultFinder *)parent)->config_mgr, &ConfigManager::NewEmissivity, this, &StreamManager::SetEmissivity); + PvResult res; res = FindDevice(); @@ -28,6 +30,7 @@ StreamManager::StreamManager(QObject *parent) : QObject(parent) StartStream(); ImageThread = new StreamReader(Device, Stream, Pipeline); + connect(ImageThread, &StreamReader::NewImage, this, &StreamManager::SendForProcessing, Qt::QueuedConnection); ImageThread->start(QThread::TimeCriticalPriority); } @@ -39,8 +42,14 @@ StreamManager::~StreamManager() Disconnect(); } +void StreamManager::SendForProcessing(uint32_t width, uint32_t height, uint8_t *imgPointer) +{ + ((FaultFinder *)parent())->image_mgr->ProcessImage(width, height, imgPointer); +} + void StreamManager::SetEmissivity(double emissivity) { + qInfo() << "HERE"; if (lDeviceParams) lDeviceParams->SetFloatValue("ObjectEmissivity", emissivity); } diff --git a/StreamManager.hpp b/StreamManager.hpp index 77ad928..762c73c 100644 --- a/StreamManager.hpp +++ b/StreamManager.hpp @@ -10,7 +10,6 @@ #include #include #include - #include "StreamReader.hpp" #define BUFFER_COUNT (32) @@ -25,6 +24,7 @@ public: public slots: void SetEmissivity(double emissivity); + void SendForProcessing(uint32_t width, uint32_t height, uint8_t *imgPointer); private: PvResult FindDevice(); diff --git a/StreamReader.cpp b/StreamReader.cpp index 2d7b5dc..4dc45e1 100644 --- a/StreamReader.cpp +++ b/StreamReader.cpp @@ -36,7 +36,7 @@ void StreamReader::run() lWidth = lImage->GetWidth(); lHeight = lImage->GetHeight(); - NewImage(lWidth, lHeight, lImage->GetDataPointer()); + emit NewImage(lWidth, lHeight, lImage->GetDataPointer()); } else {