From 6ef19c23759553d3ae34d6ee79c2f62a34367e09 Mon Sep 17 00:00:00 2001 From: Jan Grewe Date: Mon, 10 Mar 2025 11:57:41 +0100 Subject: [PATCH] [safety] some try catches at points that sometimes fail --- camerapreview.cpp | 8 ++++---- dualcamgrabber.cpp | 16 ++++++++++------ dualcamwrapper.cpp | 13 ++++++------- 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/camerapreview.cpp b/camerapreview.cpp index 6c714f3..99d7ed6 100644 --- a/camerapreview.cpp +++ b/camerapreview.cpp @@ -152,10 +152,10 @@ void CameraPreview::validate(QSpinBox *origin, QSpinBox *dest, int limit){ } int CameraPreview::ensureDivbyfour(int val) { - if (val % 4 != 0) { - int divisor = floor(val / 4); - val = divisor * 4; - } + // if (val % 4 != 0) { + // int divisor = floor(val / 4); + // val = divisor * 4; + // } return val; } diff --git a/dualcamgrabber.cpp b/dualcamgrabber.cpp index 8407695..8fcb1e9 100644 --- a/dualcamgrabber.cpp +++ b/dualcamgrabber.cpp @@ -40,12 +40,16 @@ void DualcamGrabber::run() { // auto start = high_resolution_clock::now(); MyImage *img = new MyImage(); // auto stop1 = high_resolution_clock::now(); - cameras[0].RetrieveResult( 5000, frame0, Pylon::TimeoutHandling_ThrowException ); - // auto stop2 = high_resolution_clock::now(); - cameras[1].RetrieveResult( 5000, frame1, Pylon::TimeoutHandling_ThrowException ); - // auto stop3 = high_resolution_clock::now(); - leftImage.AttachGrabResultBuffer( frame0 ); - rightImage.AttachGrabResultBuffer( frame1 ); + try { + cameras[0].RetrieveResult( 5000, frame0, Pylon::TimeoutHandling_ThrowException ); + // auto stop2 = high_resolution_clock::now(); + cameras[1].RetrieveResult( 5000, frame1, Pylon::TimeoutHandling_ThrowException ); + // auto stop3 = high_resolution_clock::now(); + leftImage.AttachGrabResultBuffer( frame0 ); + rightImage.AttachGrabResultBuffer( frame1 ); + } catch(const std::exception& e) { + qDebug() << "Grabbing frame failed! " << e.what(); + } if (leftImage.IsValid() && rightImage.IsValid()) { try { StitchImage::StitchToRight(leftImage, rightImage, &stitchedImage, errorMessage); diff --git a/dualcamwrapper.cpp b/dualcamwrapper.cpp index 5b450a1..f7f28d9 100644 --- a/dualcamwrapper.cpp +++ b/dualcamwrapper.cpp @@ -103,16 +103,15 @@ bool DualcamWrapper::exposureTime(double exposure_time, int camindex) { exposureTime(exposure_time, 0); exposureTime(exposure_time, 1); } else { - GenApi::INodeMap& nodemap = getNodemap(camindex); - double d = GenApi::CFloatPtr(nodemap.GetNode("ExposureTime"))->GetValue(); - GenApi::INode* n = nodemap.GetNode( "ExposureTime" ); try { - GenApi::CEnumerationPtr(nodemap.GetNode( "ExposureTimeMode" ))->FromString("Standard"); + GenApi::INodeMap& nodemap = getNodemap(camindex); + GenApi::INode* n = nodemap.GetNode( "ExposureTime" ); + Pylon::CFloatParameter exp_time( n ); + exp_time.SetValue( exposure_time ); + GenApi::CEnumerationPtr(nodemap.GetNode( "ExposureTimeMode" ))->FromString("Timed");; } catch (...) { - qWarning() << "Could not set exposure for cam0"; + qWarning() << "Could not set exposure for cam " << camindex; } - Pylon::CFloatParameter exp_time( n ); - exp_time.SetValue( exposure_time ); } } return false;