diff --git a/src/algorithm/AlgorithmCompare.cpp b/src/algorithm/AlgorithmCompare.cpp index 0423e1b..4fa33dd 100644 --- a/src/algorithm/AlgorithmCompare.cpp +++ b/src/algorithm/AlgorithmCompare.cpp @@ -251,6 +251,7 @@ int CAlgorithmCompare::IImageAnalysis(class IImageObject* pImgObj) QImage srcImg = cvMat2QImage(matSrc); rltMap.insert("srcImage", srcImg); pImgObj->IVariantMapToUI(rltMap); + matSrc.release(); return 0; } @@ -303,6 +304,10 @@ cv::Mat CAlgorithmCompare::getImage(class IImageObject *pImgObj) int nBytesPerLine; BYTE* pImageData = pImgObj->IImageData(nImageW, nImageH, nBitsPerPixel, nBytesPerLine); Mat matSrc; + if (pImageData == nullptr) + return matSrc; + if (nImageH <= 0 || nImageW <= 0) + return matSrc; if (TP_COLOR_Y800 != colorFormat) { diff --git a/src/algorithm/ImageProcess.cpp b/src/algorithm/ImageProcess.cpp index c6bd257..7bfb9e0 100644 --- a/src/algorithm/ImageProcess.cpp +++ b/src/algorithm/ImageProcess.cpp @@ -64,12 +64,14 @@ cv::Mat ImageProcess::findCircle(const Mat &srcImg, Point2f& center, double &rad equalizeHist(detectImg, detectImg); detectImg = _EnhanImg_sharpen(detectImg); + float centerX = 0; + float centerY = 0; +/* EDCircles edcircles(detectImg); vector EDCircle = edcircles.getCircles(); double maxR = 0; int nIndex = -1; - float centerX = 0; - float centerY = 0; + double tmpmaxR = 0; for (int i = 0; i < EDCircle.size(); i++) { @@ -103,7 +105,7 @@ cv::Mat ImageProcess::findCircle(const Mat &srcImg, Point2f& center, double &rad center.y = (EDCircle[nIndex].center.y * REAIZE); return DetectCircle(srcImg, Mat(), center, radius, bEqual, cParam); } - else { + else */{ center.x = centerX; center.y = centerY; radius = 0; diff --git a/src/libtcp/common/tcpClientRecv.cpp b/src/libtcp/common/tcpClientRecv.cpp index f12d960..53638fc 100644 --- a/src/libtcp/common/tcpClientRecv.cpp +++ b/src/libtcp/common/tcpClientRecv.cpp @@ -104,29 +104,40 @@ void tcpClientRecv::on_connected() void tcpClientRecv::on_ready_read() { - std::lock_guard guard(m); - int size = socket_ptr_->read(pDataRecvBuf, 65536); - if (pDataRecvBuf != nullptr && pDataRecv_ != nullptr) + try { - if (current_recv_size_ >= should_recv_size_) - return; - if ((current_recv_size_ + size) > should_recv_size_) + std::lock_guard guard(m); + int size = socket_ptr_->read(pDataRecvBuf, 65536); + if (pDataRecvBuf != nullptr && pDataRecv_ != nullptr) { - size = should_recv_size_ - current_recv_size_; - } - - char* dataPtr = pDataRecv_ + current_recv_size_; - if (dataPtr != nullptr) - { - current_recv_size_ += size; - memcpy(dataPtr, pDataRecvBuf, size); + if (current_recv_size_ >= should_recv_size_) + return; + if ((current_recv_size_ + size) > should_recv_size_) + { + size = should_recv_size_ - current_recv_size_; + } + if (size <= 0 || current_recv_size_< 0) + return; + + char* dataPtr = pDataRecv_ + current_recv_size_; + if (dataPtr != nullptr) + { + current_recv_size_ += size; + memcpy(dataPtr, pDataRecvBuf, size); + } } + if (trans_timeout_timer_) + { + trans_timeout_timer_->stop(); + //trans_timeout_timer_->start(); + } } - if (trans_timeout_timer_) - { - trans_timeout_timer_->stop(); - //trans_timeout_timer_->start(); - } + catch (...) + { + + } + + } void tcpClientRecv::on_bytes_written(qint64 len) diff --git a/src/libtcp/libServer/tpTcpServer.cpp b/src/libtcp/libServer/tpTcpServer.cpp index 175af9e..79430c9 100644 --- a/src/libtcp/libServer/tpTcpServer.cpp +++ b/src/libtcp/libServer/tpTcpServer.cpp @@ -19,21 +19,7 @@ TPTcpServer::TPTcpServer(const TP_TCP_SERVER_PARAM& init_param, QObject *parent TPTcpServer::~TPTcpServer() { server_end(); -} - -bool TPTcpServer::server_begin(const QHostAddress& address, quint16 nPort) -{ - if (!this->listen(address, nPort)) - { - qWarning() << __FUNCTION__ << endl << "Could not start server. Error: " << this->errorString(); - return false; - } - return true; -} - -void TPTcpServer::server_end() -{ - //close all connected session + //close all connected session auto it = client_sessions_.begin(); while(it != client_sessions_.end()) { @@ -71,6 +57,20 @@ void TPTcpServer::server_end() { (*it).first = false; } +} + +bool TPTcpServer::server_begin(const QHostAddress& address, quint16 nPort) +{ + if (!this->listen(address, nPort)) + { + qWarning() << __FUNCTION__ << endl << "Could not start server. Error: " << this->errorString(); + return false; + } + return true; +} + +void TPTcpServer::server_end() +{ close(); } diff --git a/src/lpCoreCtrl/tpCamera/CameraPool.cpp b/src/lpCoreCtrl/tpCamera/CameraPool.cpp index 93807e8..6e42a0e 100644 --- a/src/lpCoreCtrl/tpCamera/CameraPool.cpp +++ b/src/lpCoreCtrl/tpCamera/CameraPool.cpp @@ -598,8 +598,7 @@ int CCameraPool::IPushCameraData(ICameraObject* pCamObj) int nRet = 0; if (NULL != pImage) { - // - int nRet = pImage->CopyCameraObject(pCamObj); + nRet = pImage->CopyCameraObject(pCamObj); if (-1 == nRet) { delete pImage; @@ -607,44 +606,37 @@ int CCameraPool::IPushCameraData(ICameraObject* pCamObj) } else if (1 == nRet) { -// if (pCamObj->m_pCamOpt->bAutoRunAlg == false) -// { -// -// delete pImage; -// pImage = NULL; -// } -// else - { - QString strSerial = pImage->Serial(); - QImage showImg = pImage->ToQImage(); - QFunctionTransfer::Instance()->execInMain([this, strSerial, showImg]() { - if (lpCallBackFunc::instance()->m_ImageCallBackFunc) - { - lpCallBackFunc::instance()->m_ImageCallBackFunc(strSerial, showImg); - } - }); - - try { - //获取算法参数 绑定到图像 - if (lpCallBackFunc::instance()->m_GetVariantCallBackFunc) - { - QVariant val = lpCallBackFunc::instance()->m_GetVariantCallBackFunc(pCamObj->m_pCamOpt->id); - pImage->SetVarFromUI(val); - } + QString strSerial = pImage->Serial(); + QImage showImg = pImage->ToQImage(); + QFunctionTransfer::Instance()->execInMain([this, strSerial, showImg]() { + if (lpCallBackFunc::instance()->m_ImageCallBackFunc) + { + lpCallBackFunc::instance()->m_ImageCallBackFunc(strSerial, showImg); } - catch (...) { - qCritical() << "Critical error." << __FUNCTION__; - return 0; + }); + + try { + //获取算法参数 绑定到图像 + if (lpCallBackFunc::instance()->m_GetVariantCallBackFunc) + { + QVariant val = lpCallBackFunc::instance()->m_GetVariantCallBackFunc(pCamObj->m_pCamOpt->id); + pImage->SetVarFromUI(val); } - - pImage->SetMeterCode(m_nCameraEncode); - m_imagesList.append(pImage); - pImage = NULL; } - + catch (...) { + qCritical() << "Critical error." << __FUNCTION__; + delete pImage; + pImage = nullptr; + return 0; + } + + pImage->SetMeterCode(m_nCameraEncode); + m_imagesList.append(pImage); + pImage = NULL; } m_imagesMerging.insert(pCamObj->m_pCamOpt->uniqueName, pImage); nRet = 1; + int ab = 0; } //checks to stop trigger in fixed_auto diff --git a/tpvs17/EDCircle.sln b/tpvs17/EDCircle.sln index 977e843..193270e 100644 --- a/tpvs17/EDCircle.sln +++ b/tpvs17/EDCircle.sln @@ -5,6 +5,8 @@ VisualStudioVersion = 15.0.28307.1585 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EDCircle", "EDCircle\EDCircle.vcxproj", "{1892193F-B7A3-4A27-AC59-FF7F261DBBD5}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "1_EDCircle", "EDCircle_test\1_EDCircle.vcxproj", "{4FDC5305-11FB-496A-BEBE-828569051007}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -21,11 +23,20 @@ Global {1892193F-B7A3-4A27-AC59-FF7F261DBBD5}.Release|x64.Build.0 = Release|x64 {1892193F-B7A3-4A27-AC59-FF7F261DBBD5}.Release|x86.ActiveCfg = Release|Win32 {1892193F-B7A3-4A27-AC59-FF7F261DBBD5}.Release|x86.Build.0 = Release|Win32 + {4FDC5305-11FB-496A-BEBE-828569051007}.Debug|x64.ActiveCfg = Debug|x64 + {4FDC5305-11FB-496A-BEBE-828569051007}.Debug|x64.Build.0 = Debug|x64 + {4FDC5305-11FB-496A-BEBE-828569051007}.Debug|x86.ActiveCfg = Debug|Win32 + {4FDC5305-11FB-496A-BEBE-828569051007}.Debug|x86.Build.0 = Debug|Win32 + {4FDC5305-11FB-496A-BEBE-828569051007}.Release|x64.ActiveCfg = Release|x64 + {4FDC5305-11FB-496A-BEBE-828569051007}.Release|x64.Build.0 = Release|x64 + {4FDC5305-11FB-496A-BEBE-828569051007}.Release|x86.ActiveCfg = Release|Win32 + {4FDC5305-11FB-496A-BEBE-828569051007}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution + Qt5Version = qt5.9.4-msvc2017-x64 SolutionGuid = {8B16A4A2-41EE-451E-AF3C-8975C25052BF} EndGlobalSection EndGlobal diff --git a/tpvs17/EDCircle_test/1_EDCircle.cpp b/tpvs17/EDCircle_test/1_EDCircle.cpp index 7a6101f..d083408 100644 --- a/tpvs17/EDCircle_test/1_EDCircle.cpp +++ b/tpvs17/EDCircle_test/1_EDCircle.cpp @@ -12,7 +12,7 @@ using namespace cv; int main() { - Mat SrcImg = imread("F:\\LeaperProject\\1EDCircle\\Source\\NG_223_79_041835877.png", 1); //要注意读入图片的通道数量 + Mat SrcImg = imread("C:\\Users\\Administrator\\Desktop\\Source(7)\\Image_20211224182012613.bmp", 1); //要注意读入图片的通道数量 if (SrcImg.empty())//要判断是否读取成功 { printf("Could not load image."); diff --git a/tpvs17/EDCircle_test/1_EDCircle.vcxproj b/tpvs17/EDCircle_test/1_EDCircle.vcxproj index 4e3c2f9..7628376 100644 --- a/tpvs17/EDCircle_test/1_EDCircle.vcxproj +++ b/tpvs17/EDCircle_test/1_EDCircle.vcxproj @@ -84,10 +84,10 @@ Disabled true true - .\..\..\..\lpopencv\build\include;.\..\..\..\lpopencv\build\include\opencv;.\..\..\..\lpopencv\build\include\opencv2;F:\LeaperProject\1EDCircle\srccode\include;%(AdditionalIncludeDirectories) + E:\wheelValve\3part\opencv3.4.1\include;E:\wheelValve\3part\opencv3.4.1\include\opencv;E:\wheelValve\3part\opencv3.4.1\include\opencv2;E:\wheelValve\src\edcircle\include;%(AdditionalIncludeDirectories) - .\..\..\..\lpopencv\build\x64\vc15\lib;F:\LeaperProject\1EDCircle\tp_2017\x64\Debug;%(AdditionalLibraryDirectories) + E:\wheelValve\3part\opencv3.4.1\x64\vc15\lib;E:\wheelValve\tpvs17\x64\Debug;%(AdditionalLibraryDirectories) opencv_world341d.lib;EDCircled.lib;%(AdditionalDependencies) diff --git a/tpvs17/caliCenter/caliCenter.vcxproj b/tpvs17/caliCenter/caliCenter.vcxproj index 60a5bca..d50442e 100644 --- a/tpvs17/caliCenter/caliCenter.vcxproj +++ b/tpvs17/caliCenter/caliCenter.vcxproj @@ -80,19 +80,20 @@ _UNICODE;_UNICODE;_UNICODE;ALGO2_LIB;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_NO_DEBUG;UNICODE;WIN32;WIN64;%(PreprocessorDefinitions) .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtGui;.\..\..\3part\tadpole\include\tpBase;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\..\Cyclops\include;.\..\..\3part\Cyclops\include;%(AdditionalIncludeDirectories) - - + ProgramDatabase MultiThreadedDLL true + Disabled Windows $(SolutionDir)..\runner17\algorithmLib\$(TargetName)$(TargetExt) $(QTDIR)\lib;$(OutDir);..\..\3part\opencv3.4.1\x64\vc15\lib;..\..\3part\Cyclops\lib;%(AdditionalLibraryDirectories) - false + true qtmain.lib;Qt5Core.lib;Qt5Widgets.lib;Qt5Gui.lib;luffy.lib;cyclops.lib;opencv_world341.lib;%(AdditionalDependencies) MachineX64 /SUBSYSTEM:WINDOWS + $(SolutionDir)..\runner17\algorithmLib\$(TargetName).pdb diff --git a/tpvs17/caliValve/caliValve.vcxproj b/tpvs17/caliValve/caliValve.vcxproj index 27e5d9f..bc96cea 100644 --- a/tpvs17/caliValve/caliValve.vcxproj +++ b/tpvs17/caliValve/caliValve.vcxproj @@ -80,19 +80,20 @@ _UNICODE;ALGO2_LIB;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_NO_DEBUG;UNICODE;WIN32;WIN64;%(PreprocessorDefinitions) .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtGui;.\..\..\3part\tadpole\include\tpBase;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\..\Cyclops\include;.\..\..\3part\Cyclops\include;%(AdditionalIncludeDirectories) - - + ProgramDatabase MultiThreadedDLL true + Disabled Windows $(SolutionDir)..\runner17\algorithmLib\$(TargetName)$(TargetExt) $(QTDIR)\lib;$(OutDir);..\..\3part\opencv3.4.1\x64\vc15\lib;..\..\3part\Cyclops\lib;%(AdditionalLibraryDirectories) - false + true qtmain.lib;Qt5Core.lib;Qt5Widgets.lib;Qt5Gui.lib;luffy.lib;cyclops.lib;opencv_world341.lib;%(AdditionalDependencies) MachineX64 /SUBSYSTEM:WINDOWS + $(SolutionDir)..\runner17\algorithmLib\$(TargetName).pdb diff --git a/tpvs17/tpMain/lpMainWin.cpp b/tpvs17/tpMain/lpMainWin.cpp index b5ec8c8..6c71567 100644 --- a/tpvs17/tpMain/lpMainWin.cpp +++ b/tpvs17/tpMain/lpMainWin.cpp @@ -22,9 +22,9 @@ #include "databasesql.h" #include "lpCryptokey.h" -#define VERSION_HUB "3.0.5.0" +#define VERSION_HUB "3.0.6.0" #define VERSION_ALG "3.0.1.4" -#define UPDATE_TIME "2021-12-19" +#define UPDATE_TIME "2022-01-17" #pragma execution_character_set("utf-8") #define MODEL_UI_ICON_NONE ":/image/no-img" diff --git a/tpvs17/valueMainUI/valueMainUI.cpp b/tpvs17/valueMainUI/valueMainUI.cpp index 4071184..242c359 100644 --- a/tpvs17/valueMainUI/valueMainUI.cpp +++ b/tpvs17/valueMainUI/valueMainUI.cpp @@ -29,7 +29,7 @@ valueMainUI::valueMainUI(QWidget *parent) setupTrayIcon();//后台任务栏初始化 setWindowIcon(QIcon(WINDOWICON)); - setWindowTitle(tr("识别定位一体检测系统(v1.4.1 21.12.23)")); + setWindowTitle(tr("识别定位一体检测系统(v1.5.0 22.01.17)")); lpGlobalData::instance(); lpConfig::instance()->loadConfig(); diff --git a/tpvs17/valveDetector/valveDetector.vcxproj b/tpvs17/valveDetector/valveDetector.vcxproj index 74b7ebd..36e40e2 100644 --- a/tpvs17/valveDetector/valveDetector.vcxproj +++ b/tpvs17/valveDetector/valveDetector.vcxproj @@ -147,10 +147,10 @@ _UNICODE;ALGO2_LIB;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_NO_DEBUG;UNICODE;WIN32;WIN64;%(PreprocessorDefinitions) .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtGui;.\..\..\3part\tadpole\include\tpBase;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\..\Cyclops\include;.\..\..\3part\Cyclops\include;%(AdditionalIncludeDirectories) - - + ProgramDatabase MultiThreadedDLL true + Disabled Windows @@ -161,6 +161,7 @@ true MachineX64 /SUBSYSTEM:WINDOWS + $(SolutionDir)..\runner17\algorithmLib\$(TargetName).pdb diff --git a/tpvs17/wheel.sln b/tpvs17/wheel.sln index dbac5f4..ea8876d 100644 --- a/tpvs17/wheel.sln +++ b/tpvs17/wheel.sln @@ -128,7 +128,7 @@ Global HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {CD365F32-5EAC-4A16-AD47-BFB1D8E5511A} Qt5Version = qt5.9.4-msvc2017-x64 + SolutionGuid = {CD365F32-5EAC-4A16-AD47-BFB1D8E5511A} EndGlobalSection EndGlobal