From 431823dd724b018a77b9d4bc9aa1bacac5d8209e Mon Sep 17 00:00:00 2001 From: RCi <15089880081@163.com> Date: Mon, 9 Sep 2024 03:09:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=BA=E4=BD=BF=E7=94=A8QL?= =?UTF-8?q?inedit=E8=BE=93=E5=85=A5=E5=9E=8B=E5=8F=B7=EF=BC=8C=E5=81=8F?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=E7=A7=BB=E9=87=8F=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HandleAiUi-new/algo/ALGO_Correction.h | 34 ++++++++--- .../HandleAiUi-new/appConfig/appConfig.cpp | 19 ++++++ .../HandleAiUi-new/appConfig/appConfig.h | 17 +++++- .../appConfig/appconfigStruct.h | 14 +++++ .../appConfig/productConfigManager.hpp | 5 ++ HanddleAI/HandleAiUi-new/appCore.hpp | 2 +- HanddleAI/HandleAiUi-new/detProcess.hpp | 2 + .../HandleAiUi-new/handleAi/handleAiModel.cpp | 2 +- .../uiModule/components/fancyProcessBar.h | 19 +++--- .../uiModule/uiModule_switchProduct.h | 56 ++++++++++++++++-- lib/Hd_3DCameraLMI_module_PointLazer.exp | Bin 798 -> 774 bytes lib/Hd_3DCameraLMI_module_PointLazer.lib | Bin 2276 -> 2276 bytes lib/Hd_DalsaCamera_module.exp | Bin 777 -> 753 bytes lib/Hd_DalsaCamera_module.lib | Bin 2120 -> 2120 bytes lib/Hd_FinsTcp_module.exp | Bin 769 -> 745 bytes lib/Hd_FinsTcp_module.lib | Bin 2064 -> 2064 bytes lib/Hd_MvCamera_module_GENTL.exp | Bin 782 -> 758 bytes lib/Hd_MvCamera_module_GENTL.lib | Bin 2164 -> 2164 bytes lib/Hd_MvCamera_module_GIGE.exp | Bin 781 -> 757 bytes lib/Hd_MvCamera_module_GIGE.lib | Bin 2148 -> 2148 bytes lib/Hd_ResultsSummary_module.exp | Bin 782 -> 758 bytes lib/Hd_ResultsSummary_module.lib | Bin 2164 -> 2164 bytes lib/Hd_SocketModule_ModbusTcp.exp | Bin 1527 -> 1503 bytes lib/Hd_SocketModule_ModbusTcp.lib | Bin 3446 -> 3446 bytes 24 files changed, 145 insertions(+), 25 deletions(-) create mode 100644 HanddleAI/HandleAiUi-new/appConfig/productConfigManager.hpp diff --git a/HanddleAI/HandleAiUi-new/algo/ALGO_Correction.h b/HanddleAI/HandleAiUi-new/algo/ALGO_Correction.h index 3a4477ff..76aea3f8 100644 --- a/HanddleAI/HandleAiUi-new/algo/ALGO_Correction.h +++ b/HanddleAI/HandleAiUi-new/algo/ALGO_Correction.h @@ -2,6 +2,7 @@ #include #include #include +#include struct CorrectionPoints { double OriginZ, OriginX, OriginY; @@ -339,21 +340,38 @@ void ALGO_Correction(std::shared_ptr data) data->writeBack("short", 274, "1"); return; CorrectionPoints resultPoints; - if (simpleCorrection(&data->laserData, resultPoints) == false) + bool correctionResult = simpleCorrection(&data->laserData, resultPoints); + std::cout << "correctionResult_X" << resultPoints.OriginX << std::endl; + std::cout << "correctionResult_Y" << resultPoints.OriginY << std::endl; + std::cout << "correctionResult_Z" << resultPoints.OriginZ << std::endl; + + if (correctionResult == false) { data->writeBack("short", 274, "1"); return; } Point3d point = getRPY(resultPoints); + auto currentProductConfig = _core._appConfig._switchProductWidgetDataPtr.getCurrentProductData(); + //json中记录的基础偏移 + double baseOffset_X = currentProductConfig._correctionConfigStruct.baseOffset_X; + double baseOffset_Y = currentProductConfig._correctionConfigStruct.baseOffset_Y; + double baseOffset_Z = currentProductConfig._correctionConfigStruct.baseOffset_Z; - //std::cout << "ox:" << resultPoints.Origin[0] << "oy:" << resultPoints.Origin[1] << "oz:" << resultPoints.Origin[2] << std::endl; - //std::cout << "Rx:" << point.x << "Ry:" << point.y << "Rz:" << point.z << std::endl; - //qDebug() << "productIndex:"<< data->productType <<"ox:" << resultPoints.Origin[0] << "oy : " << resultPoints.Origin[1] << "oz : " << resultPoints.Origin[2]; - //qDebug() << "Rx:" << point.x << "Ry:" << point.y << "Rz:" << point.z; + double correction_X = currentProductConfig._correctionConfigStruct.correction_X; + double correction_Y = currentProductConfig._correctionConfigStruct.correction_Y; + double correction_Z = currentProductConfig._correctionConfigStruct.correction_Z; - data->pointsOffsetStruct_.baseOffsetX = data->_productDataStruct.basePos[0] - resultPoints.OriginX; - data->pointsOffsetStruct_.baseOffsetY = data->_productDataStruct.basePos[1] - resultPoints.OriginY; - data->pointsOffsetStruct_.baseOffsetZ = data->_productDataStruct.basePos[2] - resultPoints.OriginZ; + double offsetLimit_X = currentProductConfig._correctionConfigStruct.offsetLimit_X; + double offsetLimit_Y = currentProductConfig._correctionConfigStruct.offsetLimit_Y; + double offsetLimit_Z = currentProductConfig._correctionConfigStruct.offsetLimit_Z; + + double correctionFinalResultX = correction_X - resultPoints.OriginX - baseOffset_X; + double correctionFinalResultY = correction_Y - resultPoints.OriginY - baseOffset_Y; + double correctionFinalResultZ = correction_Z - resultPoints.OriginZ - baseOffset_Z; + + std::cout << "correctionFinalResultX" << correctionFinalResultX << std::endl; + std::cout << "correctionFinalResultY" << correctionFinalResultY << std::endl; + std::cout << "correctionFinalResultZ" << correctionFinalResultZ << std::endl; //double offsetRx = data->_productDataStruct.baseRad[0] - point.x; //double offsetRy = data->_productDataStruct.baseRad[1] - point.y; diff --git a/HanddleAI/HandleAiUi-new/appConfig/appConfig.cpp b/HanddleAI/HandleAiUi-new/appConfig/appConfig.cpp index bf66f5e9..a32e1edc 100644 --- a/HanddleAI/HandleAiUi-new/appConfig/appConfig.cpp +++ b/HanddleAI/HandleAiUi-new/appConfig/appConfig.cpp @@ -68,6 +68,25 @@ void appConfig::parsingProductData(std::string path) productData.connectorAmout = res["connectorAmout"]; productData.isBackExist = res["isBackExist"]; productData.backArmIndex = res["backArmIndex"]; + if (res["Correction"].empty() == false) + { + productData._correctionConfigStruct.correction_X = res["Correction"]["correction_X"]; + productData._correctionConfigStruct.correction_Y = res["Correction"]["correction_Y"]; + productData._correctionConfigStruct.correction_Z = res["Correction"]["correction_Z"]; + + productData._correctionConfigStruct.baseOffset_X = res["Correction"]["baseOffset_X"]; + productData._correctionConfigStruct.baseOffset_Y = res["Correction"]["baseOffset_Y"]; + productData._correctionConfigStruct.baseOffset_Z = res["Correction"]["baseOffset_Z"]; + + productData._correctionConfigStruct.offsetLimit_X = res["Correction"]["offsetLimit_X"]; + productData._correctionConfigStruct.offsetLimit_Y = res["Correction"]["offsetLimit_Y"]; + productData._correctionConfigStruct.offsetLimit_Z = res["Correction"]["offsetLimit_Z"]; + } + + for (auto it = res["partNumberList"].begin(); it != res["partNumberList"].end(); ++it) + { + productData.partNumberList.push_back(it.value()); + } for (auto it = res["cameraSetting"].begin(); it != res["cameraSetting"].end(); ++it) { std::vector result = split(it.value(), '/'); diff --git a/HanddleAI/HandleAiUi-new/appConfig/appConfig.h b/HanddleAI/HandleAiUi-new/appConfig/appConfig.h index 9446b83e..bfbb2a7c 100644 --- a/HanddleAI/HandleAiUi-new/appConfig/appConfig.h +++ b/HanddleAI/HandleAiUi-new/appConfig/appConfig.h @@ -1,5 +1,6 @@ #include #include +#include class appConfig { public: @@ -7,11 +8,23 @@ public: sqlManager _sqlManager;//储存产品信息用 appConfig() { - parsingGlobalData(); - parsingProductData(productDataPath); + parsingGlobalData();//解析全局参数 + parsingProductData(productDataPath);//解析产品配置 + parsePartNumberWithIndex(); _sqlManager.initialization(this); } + void parsePartNumberWithIndex() + { + for (int index = 0 ;index < productDatas.size(); index++) + { + for (auto partNum : productDatas[index].partNumberList) + { + partNumberWithIndex.insert(std::make_pair(partNum, index)); + } + } + } + std::unordered_map partNumberWithIndex; switchProductWidgetDataPtr _switchProductWidgetDataPtr; std::string softwareTile;//软件标题 diff --git a/HanddleAI/HandleAiUi-new/appConfig/appconfigStruct.h b/HanddleAI/HandleAiUi-new/appConfig/appconfigStruct.h index cbb29484..b074b8c7 100644 --- a/HanddleAI/HandleAiUi-new/appConfig/appconfigStruct.h +++ b/HanddleAI/HandleAiUi-new/appConfig/appconfigStruct.h @@ -12,6 +12,18 @@ struct productSignStruct cv::Rect posRect; std::string sign; }; +struct correctionConfigStruct +{ + double correction_X = 0; + double correction_Y = 0; + double correction_Z = 0; + double baseOffset_X = 0; + double baseOffset_Y = 0; + double baseOffset_Z = 0; + double offsetLimit_X = 3; + double offsetLimit_Y = 3; + double offsetLimit_Z = 3; +}; struct productDataStruct { std::string name; @@ -37,6 +49,8 @@ struct productDataStruct int codedAlgoIndex = -1; std::unordered_map productSign; + std::vectorpartNumberList;//料号list + correctionConfigStruct _correctionConfigStruct; }; struct perConnector { diff --git a/HanddleAI/HandleAiUi-new/appConfig/productConfigManager.hpp b/HanddleAI/HandleAiUi-new/appConfig/productConfigManager.hpp new file mode 100644 index 00000000..b5481f3f --- /dev/null +++ b/HanddleAI/HandleAiUi-new/appConfig/productConfigManager.hpp @@ -0,0 +1,5 @@ + +class productConfigmanager +{ +public: +}; \ No newline at end of file diff --git a/HanddleAI/HandleAiUi-new/appCore.hpp b/HanddleAI/HandleAiUi-new/appCore.hpp index 764eeafa..8edd822e 100644 --- a/HanddleAI/HandleAiUi-new/appCore.hpp +++ b/HanddleAI/HandleAiUi-new/appCore.hpp @@ -10,7 +10,7 @@ #include -#define disableBackEndCheck 0 +#define disableBackEndCheck 1 #define disableeAlgo 0 #define enableHideConsle 1 class detGlobalData diff --git a/HanddleAI/HandleAiUi-new/detProcess.hpp b/HanddleAI/HandleAiUi-new/detProcess.hpp index 2687a263..413a65ca 100644 --- a/HanddleAI/HandleAiUi-new/detProcess.hpp +++ b/HanddleAI/HandleAiUi-new/detProcess.hpp @@ -539,7 +539,9 @@ public slots: currentSn = SN.toStdString(); _triggerManager.sendFinsMsg("write_short_350_" + QString::number(_core._appConfig.productDatas[productTypeIn].indexOfArm)); _triggerManager.sendFinsMsg("write_short_351_1"); + qDebug() << "SN:" << SN << "开始运行,型号->" << QString::fromStdString(_core._detGlobalData.productTypeStr); + } //人工复判按下NG void uiModuleImageDoubleCheckQdialog_pressNG(int armPos,int type)//1 halcon 2ai diff --git a/HanddleAI/HandleAiUi-new/handleAi/handleAiModel.cpp b/HanddleAI/HandleAiUi-new/handleAi/handleAiModel.cpp index 72bc39e5..de9ef463 100644 --- a/HanddleAI/HandleAiUi-new/handleAi/handleAiModel.cpp +++ b/HanddleAI/HandleAiUi-new/handleAi/handleAiModel.cpp @@ -1,7 +1,7 @@ #include #include -#define enableHandleAiModel 1 +#define enableHandleAiModel 0 void handleAiModelManager::handleAiModelManager::run() { if (init == true) diff --git a/HanddleAI/HandleAiUi-new/uiModule/components/fancyProcessBar.h b/HanddleAI/HandleAiUi-new/uiModule/components/fancyProcessBar.h index 45398c9b..9041b1ee 100644 --- a/HanddleAI/HandleAiUi-new/uiModule/components/fancyProcessBar.h +++ b/HanddleAI/HandleAiUi-new/uiModule/components/fancyProcessBar.h @@ -52,13 +52,16 @@ public: maxValue = getMax(value, maxValue); minValue = getMin(value, minValue); currentValue = value; - if((maxValue - minValue) ==0) + if ((maxValue - minValue) == 0) setProgress(1); else if (value == 0) setProgress(0); - else - setProgress( value/(maxValue - minValue)); - + else + { + double v = (double)((double)(value - minValue) / (double)(maxValue - minValue)); + setProgress(v); + } + } void setProgress(double newProgress) { @@ -94,17 +97,17 @@ protected: painter.drawText(rect.adjusted(10, 10, -10, 10), Qt::AlignHCenter | Qt::AlignTop, QString::number(currentValue) + "ms"); if (maxValue == INT_MIN) painter.drawText(rect.adjusted(10, 10, -10, 10), Qt::AlignRight | Qt::AlignTop, "0ms"); - else + else painter.drawText(rect.adjusted(10, 10, -10, 10), Qt::AlignRight | Qt::AlignTop, QString::number(maxValue) + "ms"); - painter.drawText(rect.adjusted(10, 30, -10, -10), Qt::AlignLeft | Qt::AlignTop, "min"); + painter.drawText(rect.adjusted(10, 30, -10, -10), Qt::AlignLeft | Qt::AlignTop, "Min"); painter.drawText(rect.adjusted(10, 30, -10, -10), Qt::AlignHCenter | Qt::AlignTop, title); painter.drawText(rect.adjusted(10, 30, -10, -10), Qt::AlignRight | Qt::AlignTop, "Max"); int barWidth = rect.width() - 20; int barHeight = 5; - QRect barRect(10, rect.height() / 2 - barHeight / 2-5, barWidth, barHeight); + QRect barRect(10, rect.height() / 2 - barHeight / 2 - 5, barWidth, barHeight); // Draw progress in the bar int progressWidth = static_cast(barRect.width() * progress); @@ -130,7 +133,7 @@ private: bool init = false; QString title; int maxValue = INT_MIN, minValue = INT_MAX, currentValue = 0; - int frequency =50; + int frequency = 50; double progress; }; #pragma once diff --git a/HanddleAI/HandleAiUi-new/uiModule/uiModule_switchProduct.h b/HanddleAI/HandleAiUi-new/uiModule/uiModule_switchProduct.h index 0e2c92ac..5696656c 100644 --- a/HanddleAI/HandleAiUi-new/uiModule/uiModule_switchProduct.h +++ b/HanddleAI/HandleAiUi-new/uiModule/uiModule_switchProduct.h @@ -29,13 +29,23 @@ public: QVBoxLayout* layout = new QVBoxLayout(this); fancyButtonText* switchBtn = new fancyButtonText(100, 60, "修改", "修改当前机型"); QLabel* armHeartBeatSign = new QLabel(); + //料号条码输入 + QLineEdit* partNumberIntputLine = new QLineEdit(); + + //运行按钮 fancyButtonText* startBtn; + //SN条码输入 QLineEdit* snIntputLine = new QLineEdit(); //料号显示 - QComboBox* productSelect = new QComboBox(this); + QComboBox* productSelect = new QComboBox(this); QLabel* currentProduct = new QLabel(this); //料号类型 QComboBox* productNameTypeSwitch = new QComboBox(this); + void clear() + { + partNumberIntputLine->clear(); + snIntputLine->clear(); + } switchProductWidget() { currentProductIndexPtr = &_core._appConfig._switchProductWidgetDataPtr.currentProductIndex; @@ -68,19 +78,28 @@ public: layout->addLayout(switchLayout); } - snIntputLine->setFixedHeight(50); - snIntputLine->setFont(font); + + + QHBoxLayout* hBtnLayout2 = new QHBoxLayout(); + partNumberIntputLine->setFixedHeight(50); + partNumberIntputLine->setFont(font); + partNumberIntputLine->setPlaceholderText("料号条码输入"); + hBtnLayout2->addWidget(partNumberIntputLine); QHBoxLayout* hBtnLayout = new QHBoxLayout(); startBtn = new fancyButtonText(80, -1, "运行", "运行检测程序"); + snIntputLine->setFixedHeight(50); + snIntputLine->setFont(font); + snIntputLine->setPlaceholderText("SN条码输入"); hBtnLayout->addWidget(snIntputLine); hBtnLayout->addWidget(startBtn); + layout->addLayout(hBtnLayout2); layout->addLayout(hBtnLayout); productSelectFresh(0); connect(startBtn, &QPushButton::clicked, this, [=]() { - emit startArmProgramSignal(productSelect->currentIndex(), snIntputLine->text()); + emit startArmProgramSignal(indexFromPartNumber, snIntputLine->text()); std::cout << "按下按钮" << std::endl; }); connect(switchBtn, &QPushButton::clicked, this, &switchProductWidget::startSwitch); @@ -93,6 +112,14 @@ public: { productSelectFresh(productNameTypeSwitch->currentIndex()); }); + connect(partNumberIntputLine, &QLineEdit::textChanged, this, [=]() + { + partNumberIntputLineSlot(partNumberIntputLine->text().toStdString()); + }); + currentProduct->setText("请输入料号"); + productSelect->hide(); + switchBtn->hide(); + startBtn->setDisabled(true); } void productSelectFresh(int index) { @@ -138,7 +165,7 @@ public slots: if (status == true) { startBtn->toDefault(); - if(disableTextChange == false) + if (disableTextChange == false) startBtn->setText("运行"); snIntputLine->setDisabled(false); std::cout << "按下软件运行" << std::endl; @@ -156,8 +183,27 @@ signals: void startArmProgramSignal(int,QString); void switchProductSignal(int); private: + int indexFromPartNumber = -1; int siwtchBtnState = 0; private slots: + void partNumberIntputLineSlot(std::string partNumber) + { + auto it = _core._appConfig.partNumberWithIndex.find(partNumber); + if(it != _core._appConfig.partNumberWithIndex.end()) + { + int index = _core._appConfig.partNumberWithIndex.find(partNumber)->second; + currentProduct->setText(QString::fromStdString(_core._appConfig.productDatas[index].name)); + *currentProductIndexPtr = index; + startBtn->setEnabled(true); + indexFromPartNumber = index; + snIntputLine->setFocus(); + } + else + { + currentProduct->setText("未找到对应料号!"); + startBtn->setDisabled(true); + } + } void startSwitch() { if(siwtchBtnState == 0) diff --git a/lib/Hd_3DCameraLMI_module_PointLazer.exp b/lib/Hd_3DCameraLMI_module_PointLazer.exp index 97d8b87b5a54ed11f0f0bf06624e98e39c3ad3b0..83d8b980fd844b8edafa878828258deb6487fb70 100644 GIT binary patch delta 127 zcmbQo*2cz}(#FK_9|*K2aym1zP4vCb`-_2r!Ipth5J)k2PPSz9QdVd9+{D1(o0(jc zU!0#-qM#9^so>-3=gpAIU@ORwT%H0{w~SF;*~Ka*EZE4v$S5YvIVL1OKc_gxHyFq? aG|@A*)H60VHME?}!Q{mBxoNTw(488 diff --git a/lib/Hd_3DCameraLMI_module_PointLazer.lib b/lib/Hd_3DCameraLMI_module_PointLazer.lib index 36c75b149f315b6d9f39a25471404d60a91a35ae..b04150d66d0bd6f8780c0ea27f1bb8d8c729edd8 100644 GIT binary patch delta 118 zcmaDN_(X8S0VbAz%oEN}KEiaIMV;Yu)8u~UVkRIpi(P879E$-XXW8l7S1&OzFfdI% w$s|3wh_xQ3OnveMb`Gf0$qsCBoC?-nr@ui}noYjT)&o6ylW|Qx-^}tjrLsf2`#qPxj05HBKZU6uP diff --git a/lib/Hd_DalsaCamera_module.exp b/lib/Hd_DalsaCamera_module.exp index ab118790922bdf283ca963bb9e26af2406b92951..efae2b9e0625c5eac1fbb210c3bea307dc61f2ea 100644 GIT binary patch delta 128 zcmeBV`^d_f(#FK_9|%Mzaym2pW|-)Ah4(!J1A`F*qacuC@SLpAXs@i!@VSYB!8bFx zD8D#Atwcd1NK?Vb)6bhBm%&z$A-OySsBR*oy0VK^Ojxjyfss*6m~%`>etu4IjBhZI bX=tKnY^i5#Y-(sZ`7@&v)90qi=1i9W&U+?@ delta 152 zcmey!+R4V5(#FK_9|&|Oayl~!Gfwoo!pqLcz+l9{D98W=&Xe^S?Ugkc1X>svd^3}a z@{9A+N)$ALG!=Y2{k$1k8Egd^lFL(o>LxO(TRU6D1O)lJ2RYUm#`tQ*oMS@r^K*)0e1m~ZLlYB&Izv5UV~feR8J(B}S|-agT>=1$xGMDk diff --git a/lib/Hd_DalsaCamera_module.lib b/lib/Hd_DalsaCamera_module.lib index cc2d36e5dd6097c8d1dffea4f0e34dc019fb0ad6..9c451b2ec75fbfd47c5b293388f4274cb1b1aa9e 100644 GIT binary patch delta 109 zcmX>ha6({12NTP2)AOe%_b}~YQD^wvG}(taoe4&fp~02Rk5eEha6({12NTODh23{1_b}~Y(O?j0ne4-y&IF|7*`+q0XO?DUVSi@ub@DrwDKJ^} s$!l3TpeiO`WQ}DF@!xsr_2l;~@{`vvNl(sYYlNv(hN|2w&#uV`01D?LO#lD@ diff --git a/lib/Hd_FinsTcp_module.exp b/lib/Hd_FinsTcp_module.exp index 05dc8bab1af3b651c13ef7421da5f9dc9813f651..3de4f63b98d2685208a2831ec96d38f2a0fd0f6c 100644 GIT binary patch delta 128 zcmZo59#y1$q bG&IpOw$w8=HZ`=I{F>2;>2uR$eWptQx1%OM delta 152 zcmaFK+Q`P4(#FK_9|%+@aym2dGfwooz{||Yz@W##D98W=&Xctnt(7$x1X>svd^3}a z@{9A+N)$ALG!=Y2{k$1k8Egd^lFL(o>N*+Kt(~o60)qVAgBouQtwvBl)ej804fEtAEWE&%{|Xqg}QqQyqQ^; wk>!eB#hJ;cSSG+!=tE@7S(vllUz^OuwgV=i%;k`rpIe}pnF7_$%g)RQ0BqkOCjbBd diff --git a/lib/Hd_MvCamera_module_GENTL.exp b/lib/Hd_MvCamera_module_GENTL.exp index cd7a09856f41e935ba31f1206b025b5c61669f5f..d493372202fb127678b045cafaea808eabe2b26b 100644 GIT binary patch delta 128 zcmeBU`^L(d(#FK_9|)u-aym2pW0>f7jrS7+1A{38qacuC@SJSO=%lR9@VSYB!8bFx zD8D#Atwcd1NK?Vb)6bhBm%&z$A-OySsBRjgy0VK^Ojxjyfss*6m~%`>etu4IjBhZI bX=tKnY^i5#Y-(sZ`3IvD)90qiHcXcQ-6>UXz+lS2D98W=&XWxpos=~g1X>svd^3}a z@{9A+N)$ALG!=Y2{k$1k8Egd^lFL(o>ZUQOTRU6D1O)lJ2RYUm#`tQ*oMS@r^K*)0e1m~ZLlYB&Izv5UV~fcT7@e2|S|+P7T>=1|#w#NL diff --git a/lib/Hd_MvCamera_module_GENTL.lib b/lib/Hd_MvCamera_module_GENTL.lib index a65c613a9788aa36e3530d6a5ccb1cad49b8c1da..578b535ee41c6c12f7e6ab81feeae0134eac1aaf 100644 GIT binary patch delta 118 zcmew&@I_$53?`PPzk+^Dp2M`CMV;Yu)8u&OY^Kjmo6j&?F>PO(O?j0nHetu4IjBhZI bX=tKnY^i5#Y-(sZ`8%T%)90qi)=ZZG+2>gbz+l3_D98W=&XWxp9hEg01X>svd^3}a z@{9A+N)$ALG!=Y2{k$1k8Egd^lFL(o>ZUTPTRU6D1O)lJ2RYUm#`tQ*oMS@r^K*)0e1m~ZLlYB&Izv5UV~ff68J(B}S|%$qT>=1^#48y9 diff --git a/lib/Hd_MvCamera_module_GIGE.lib b/lib/Hd_MvCamera_module_GIGE.lib index b1396b9be8cfc2bad5039077ec72d4077da69fd6..f5ba12df64b2f2e149f3a1b7a1622e6c2dd11692 100644 GIT binary patch delta 108 zcmaDN@I+w4BqkQ4S+m|wp2oC~MV;Yu)8tvK>XYl4otS{k)2vdP?=s6XvY5Ryxjl(> s8ccycM6#SUOQrAa+sTZq@{`lp=D}o@xg3)7a|`q`Q=mrpvx_nU04H}TWB>pF delta 108 zcmaDN@I+w4Bqo*{N6bD?p2oC~MT0@0W%4Xm^~v?jPE0`NX;!JtcbVlGS(crsyEln- s8ccycM6#TfyL!>nx04xJf7jrS7+1A{38qacuC@SJSO=%lR9@VSYB!8bFx zD8D#Atwcd1NK?Vb)6bhBm%&z$A-OySsBRjgy0VK^Ojxjyfss*6m~%`>etu4IjBhZI bX=tKnY^i5#Y-(sZ`3IvD)90qiHcXcQ-6>UXz+lS2D98W=&XWxpos=~g1X>svd^3}a z@{9A+N)$ALG!=Y2{k$1k8Egd^lFL(o>ZUQOTRU6D1O)lJ2RYUm#`tQ*oMS@r^K*)0e1m~ZLlYB&Izv5UV~fcT7@e2|S|+P7T>=1|#w#NL diff --git a/lib/Hd_ResultsSummary_module.lib b/lib/Hd_ResultsSummary_module.lib index a61fbd40216d4091ba157f7b97afab308e79a4fe..ff33633f3db52aec9c9ccb88fc9c624c2109a9d1 100644 GIT binary patch delta 118 zcmew&@I_$53?`Pswa5QWp2M`CMV;Yu)8u&OY^Kjmo6j&?F>?O9FyY}T1_lPE$qSjJ zCu^~m!<48`KEuiZR5tkxv()4dtZ|%fSC*cB2UTe{xtFa4rcxQ9QhIYNyEr2N6TK|m delta 118 zcmew&@I_$53?`PJ|NEa$p2M`CMT0@0WpX@oHj_Zh<}=JzjGU7uUOIM)fq{W(@N^g#37iR$WFG diff --git a/lib/Hd_SocketModule_ModbusTcp.exp b/lib/Hd_SocketModule_ModbusTcp.exp index f97806414b3a4e971708daad71c818bffbb5409f..b95b63b171c0f8ac61a20249a5e95da79fb27b19 100644 GIT binary patch delta 129 zcmey)eV>~%rHzT59#y1$qG&C_Ws58_vHny1jmFXFiK+ER4%uGxGM6E8V diff --git a/lib/Hd_SocketModule_ModbusTcp.lib b/lib/Hd_SocketModule_ModbusTcp.lib index 5ec47732196dc7452962b23c04a9ae6b8cb23ce6..7d987e797c1925944487933e8b6ed09e14a3773c 100644 GIT binary patch delta 108 zcmew+^-XHSI~GpM+Y9dLGcqu6Oy0<0Hd&Xol|`N5bJHXa^~rZxU6?*MO*Z6^+HA|F w%*Z-jM&-ik$!j^}C%3RyKvn5ORFt#4P6>N7c@4(_u=wNxPHmXh?VS6W0bcJXg#Z8m delta 108 zcmew+^-XHSI~LBiA5)I%Gcqu6Oy0<0Hd&Xol|_R=pk)$=`sBN;E=&R~lMOkfHrui( wGqS!kFaLLX@>&l0$t~;^P*wU673D03ub!ToyoTcdSbTB;r#4LMcFz6G0MnZzxBvhE