From 5307c06c464dc0c9aebe8e70fbf7e97974855fd7 Mon Sep 17 00:00:00 2001 From: RCi <15089880081@163.com> Date: Tue, 25 Jun 2024 02:06:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=83=A8=E5=88=86=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E4=BF=AE=E6=94=B9=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../front/pages/configSettingWidget.h | 417 ++++++++---------- HanddleAI/HandleAiUi-new/globalStruct.h | 4 +- .../uiModule/components/fancyWarnWindow.h | 2 +- lib/Hd_3DCameraLMI_module_PointLazer.exp | Bin 774 -> 774 bytes lib/Hd_3DCameraLMI_module_PointLazer.lib | Bin 2276 -> 2276 bytes lib/Hd_DalsaCamera_module.exp | Bin 753 -> 753 bytes lib/Hd_DalsaCamera_module.lib | Bin 2120 -> 2120 bytes lib/Hd_FinsTcp_module.exp | Bin 745 -> 745 bytes lib/Hd_FinsTcp_module.lib | Bin 2064 -> 2064 bytes lib/Hd_MvCamera_module_GENTL.exp | Bin 758 -> 758 bytes lib/Hd_MvCamera_module_GENTL.lib | Bin 2164 -> 2164 bytes lib/Hd_MvCamera_module_GIGE.exp | Bin 757 -> 757 bytes lib/Hd_MvCamera_module_GIGE.lib | Bin 2148 -> 2148 bytes lib/Hd_ResultsSummary_module.exp | Bin 758 -> 758 bytes lib/Hd_ResultsSummary_module.lib | Bin 2164 -> 2164 bytes lib/Hd_SocketModule_ModbusTcp.exp | Bin 1503 -> 1503 bytes lib/Hd_SocketModule_ModbusTcp.lib | Bin 3446 -> 3446 bytes 17 files changed, 178 insertions(+), 245 deletions(-) diff --git a/HanddleAI/HandleAiUi-new/front/pages/configSettingWidget.h b/HanddleAI/HandleAiUi-new/front/pages/configSettingWidget.h index 32ab0fdc..8fff5d1d 100644 --- a/HanddleAI/HandleAiUi-new/front/pages/configSettingWidget.h +++ b/HanddleAI/HandleAiUi-new/front/pages/configSettingWidget.h @@ -13,11 +13,13 @@ #include #include #include +#include +#include +#include /**************格式****************/ //... //{ -// "className":"className",//大类名 // "showName":"Name", //仅显示 // "valueName":"Name2",//检索 // "value":"value" //值 @@ -25,35 +27,10 @@ // } // ... /***********************************/ -class simpleJsonSearch : public std::unordered_map < QString, std::unordered_map> -{ - //对于此界面来说,第一层QString为按钮名,如通用设置 - //第二层为其子项,QString为valuename,QString为值 -public: - void insertData(QString btnName, QString valueName,QVariant data) - { - if (this->find(btnName) == this->end()) - this->insert({ btnName,std::unordered_map() }); - - auto mapData = this->find(btnName); - mapData->second.insert(std::make_pair(valueName, data)); - } - //第一层QString为按钮名,第二层为valuename - QVariant searchData(QString btnName, QString valueName) - { - auto it1=this->find(btnName); - if (it1 != this->end()) - { - auto it2 = it1->second.find(valueName); - if (it2 != it1->second.end()) - { - return it2->second; - } - } - return "notFind"; - } -}; - +static bool isNumeric(const QString& str) { + QRegExp re("^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$"); + return re.exactMatch(str); +} class configSettingWidget :public QWidget { Q_OBJECT @@ -69,7 +46,6 @@ public: }; struct aLineData { - QString className; QString showName; QString valueName; QVariant value; @@ -81,8 +57,7 @@ public: std::vectorbtns; QLabel* icon, * Title; QStackedWidget* stackedWidgets; - simpleJsonSearch configJsonDatas; - + int currentPageIndex = 0; configSettingWidget() { QPalette palette; @@ -129,6 +104,14 @@ public: { switch (_formatPolicy) { + case number: + if (!isNumeric(compareStr)) + { + textOut = u8"格式错误,非数字"; + colorOut = "red"; + return true; + } + break; case filePath: if (QFile(compareStr).exists() == false) { @@ -164,7 +147,7 @@ public: } void addConfigWidget(QString btnText,QString jsonPath) { - int currentPageIndex = privateJsondatas.size(); + int thistPageIndex = privateJsondatas.size(); QPalette palette; palette.setColor(QPalette::WindowText, Qt::white); QFont font("微软雅黑", 13, QFont::Bold); @@ -180,9 +163,9 @@ public: for (auto btnPtr : btns) btnPtr->toDefault(); btn->pressed(); - stackedWidgets->setCurrentIndex(currentPageIndex); + currentPageIndex = thistPageIndex; + stackedWidgets->setCurrentIndex(thistPageIndex); }); - privateWidgets.push_back(std::vector()); //页面widget QWidget* widget = new QWidget(); @@ -215,111 +198,81 @@ public: jsonLayouts.push_back(jsonLayout); //参数列表读取以及初始化 - std::unordered_map> jsonData=loadJson(jsonPath); - privateJsondatas.push_back(jsonData); - int index = 0; - for (auto& classData : jsonData) + std::vector widgets; + std::vector< aLineData> jsonData=loadJson(jsonPath); + for (auto& data : jsonData) { - QString className = classData.first; - std::vector< aLineData> classDatas = classData.second; + QWidget* tempWidget = new QWidget(); + QVBoxLayout* tempVLayout = new QVBoxLayout(tempWidget); + tempVLayout->setAlignment(Qt::AlignLeft | Qt::AlignTop); + tempVLayout->setContentsMargins(0, 0, 0, 0); - QWidget* classWidget = new QWidget(); - classWidget->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); - QVBoxLayout* classVLayout = new QVBoxLayout(classWidget); - classVLayout->setSpacing(0); - classVLayout->setContentsMargins(0, 0, 0, 0); + QLabel* showLabel = new QLabel(data.showName); + showLabel->setFont(font); + showLabel->setPalette(palette); + showLabel->setAlignment(Qt::AlignLeft | Qt::AlignTop); - QLabel* label = new QLabel(className); - label->setFont(font3); - label->setPalette(palette); - label->setFixedHeight(50); - classVLayout->addWidget(label); + QLabel* warningLabel = new QLabel(""); + warningLabel->setFixedHeight(30); + warningLabel->setFont(font2); - for (auto& data : classDatas) + if (data._formatPolicy == boolType) { - QWidget* tempWidget = new QWidget(); - QVBoxLayout* tempVLayout = new QVBoxLayout(tempWidget); - tempVLayout->setAlignment(Qt::AlignLeft | Qt::AlignTop); - tempVLayout->setContentsMargins(0, 0, 0, 0); + QCheckBox* checkBox = new QCheckBox(); + checkBox->setFont(font); + checkBox->setPalette(palette); + checkBox->setFixedWidth(500); - QLabel* showLabel = new QLabel(data.showName); - showLabel->setFont(font); - showLabel->setPalette(palette); - showLabel->setAlignment(Qt::AlignLeft|Qt::AlignTop); + QHBoxLayout* tempLayout = new QHBoxLayout(); - QLabel* warningLabel = new QLabel(""); - warningLabel->setFixedHeight(30); - warningLabel->setFont(font2); + tempLayout->addWidget(showLabel); + tempLayout->addWidget(checkBox); + tempVLayout->addLayout(tempLayout); - if (data._formatPolicy == boolType) - { - QCheckBox* checkBox = new QCheckBox(); - checkBox->setFont(font); - checkBox->setPalette(palette); - checkBox->setFixedWidth(500); - - QHBoxLayout* tempLayout = new QHBoxLayout(); - - tempLayout->addWidget(showLabel); - tempLayout->addWidget(checkBox); - tempVLayout->addLayout(tempLayout); + tempVLayout->addWidget(warningLabel); + } + else + { + QLineEdit* lineEdit = new QLineEdit(data.value.toString()); + lineEdit->setFont(font); + lineEdit->setPalette(palette); + lineEdit->setFixedWidth(500); - tempVLayout->addWidget(warningLabel); - } - else - { - QLineEdit* lineEdit = new QLineEdit(data.value.toString()); - lineEdit->setFont(font); - lineEdit->setPalette(palette); - lineEdit->setFixedWidth(500); - - tempVLayout->addWidget(showLabel); - tempVLayout->addWidget(lineEdit); - tempVLayout->addWidget(warningLabel); - //修改时警告 - connect(lineEdit, &QLineEdit::textChanged, [=]() + tempVLayout->addWidget(showLabel); + tempVLayout->addWidget(lineEdit); + tempVLayout->addWidget(warningLabel); + //修改时警告 + connect(lineEdit, &QLineEdit::textChanged, [=]() + { + if (lineEdit->text().compare(data.value.toString()))//修改后的值不匹配 { - if (lineEdit->text().compare(data.value.toString()))//修改后的值不匹配 + QString text, color; + if (formatPolicyCompare(data._formatPolicy, lineEdit->text(), text, color)) { - QString text, color; - if (formatPolicyCompare(data._formatPolicy, lineEdit->text(), text, color)) - { - warningLabel->setText(text); - warningLabel->setStyleSheet(QString("color:%1;").arg(color)); - lineEdit->setStyleSheet(QString("border: 2px solid %1;").arg(color)); - } - else - { - warningLabel->setText("此项被修改!"); - warningLabel->setStyleSheet("color:yellow"); - lineEdit->setStyleSheet("border: 2px solid yellow;"); - } + warningLabel->setText(text); + warningLabel->setStyleSheet(QString("color:%1;").arg(color)); + lineEdit->setStyleSheet(QString("border: 2px solid %1;").arg(color)); } else { - warningLabel->setText(""); - lineEdit->setStyleSheet(""); - warningLabel->setText(""); + warningLabel->setText("此项被修改!"); + warningLabel->setStyleSheet("color:yellow"); + lineEdit->setStyleSheet("border: 2px solid yellow;"); } - }); - } - tempWidget->setFixedHeight(100); - classVLayout->addWidget(tempWidget); + } + else + { + warningLabel->setText(""); + lineEdit->setStyleSheet(""); + warningLabel->setText(""); + } + }); } - // json数据 - for (auto& classData : jsonData) - { - std::vector< aLineData> classDatas = classData.second; - for (auto& data : classDatas) - configJsonDatas.insertData(btnText,data.valueName,data.value); - } - setMinimumSizePolicy(classWidget); - classWidget->adjustSize(); - classWidget->setFixedSize(classWidget->size()); - privateWidgets[currentPageIndex].push_back(classWidget); - //jsonLayout->addWidget(classWidget,index,0); - index++; + tempWidget->setFixedHeight(100); + widgets.push_back(tempWidget); + jsonLayout->addWidget(tempWidget); } + privateWidgets.push_back(widgets); //保存按钮 fancyButtonText* saveBtn = new fancyButtonText(160, 50, u8"保存", u8"保存当前配置文件"); connect(saveBtn, &QPushButton::clicked, this, [=]() {saveJson(jsonPath); }); @@ -335,138 +288,118 @@ public: } } //读取json - std::unordered_map> loadJson(const QString& fileName) { - QFile file(fileName); - std::unordered_map> returnDatas; - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { - //QMessageBox::warning(this, tr(u8"路径失效!!!"), tr(fileName.toStdString().c_str())); - return returnDatas; + std::vector< aLineData> loadJson(const QString& fileName) { + std::vector< aLineData> returnData; + nlohmann::json json = readJsonFromPath(fileName.toStdString()); + for (auto data : json) + { + aLineData lineData; + std::string policyStr = data["policy"]; + std::string showName = data["showName"]; + std::string value = data["value"]; + std::string valueName = data["valueName"]; + formatPolicy _formatPolicy = formatPolicy::none; + if (!policyStr.compare("filepath")) + _formatPolicy = filePath; + else if (!policyStr.compare("bhdpath")) + _formatPolicy = bhdPath; + else if (!policyStr.compare("ip")) + _formatPolicy = IP; + else if (!policyStr.compare("number")) + _formatPolicy = number; + else if (!policyStr.compare("bool")) + _formatPolicy = boolType; + + lineData.showName = QString::fromStdString(showName); + lineData._formatPolicy = _formatPolicy; + lineData.value = QString::fromStdString(value); + lineData.valueName = QString::fromStdString(valueName); + returnData.push_back(lineData); } - QByteArray jsonData = file.readAll(); - QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData); - QJsonArray jsonArray = jsonDoc.array(); - for (const QJsonValue& value : jsonArray) { - if (value.isObject()) { - QJsonObject obj = value.toObject(); - QString className = obj.value("className").toString(); - QString showName = obj.value("showName").toString(); - QString valueName = obj.value("valueName").toString(); - QString valueStr = obj.value("value").toString(); - QString policyStr = obj.value("policy").toString().toLower(); - formatPolicy _formatPolicy = formatPolicy::none; - if (policyStr.contains("filepath")) - _formatPolicy = filePath; - else if (policyStr.contains("bhdpath")) - _formatPolicy = bhdPath; - else if (policyStr.contains("ip")) - _formatPolicy = IP; - else if (policyStr.contains("number")) - _formatPolicy = number; - else if (policyStr.contains("bool")) - _formatPolicy = boolType; - - //无分类 - if (className == "") - className = "none"; - - if (returnDatas.find(className) == returnDatas.end()) - returnDatas.insert({ className ,std::vector< aLineData>() }); - - auto classVec = returnDatas.find(className); - classVec->second.push_back({ className, showName ,valueName ,valueStr ,policyStr ,_formatPolicy }); - } - } - file.close(); - return returnDatas; + return returnData; } void updateLayout() { - for (int widgetIndex = 0; widgetIndex < privateWidgets.size(); widgetIndex++) + QMainWindow* mainWindow = qobject_cast(this->window()); + QSize stackedWidgetSize = mainWindow->size(); + int xCount = stackedWidgetSize.width() / 600; + if (xCount == 0) + return; + int eachWidth = stackedWidgetSize.width() / xCount; + std::vectoreachHeightCount(xCount, 0); + std::vectoreachHeightIndexCount(xCount, 0); + if (xCount == 1) { - QMainWindow* mainWindow = qobject_cast(this->window()); - QSize stackedWidgetSize = mainWindow->size(); - //QSize stackedWidgetSize = stackedWidgets->size(); - std::vector widgets = privateWidgets[widgetIndex]; - int xCount = stackedWidgetSize.width() / 600; - if (xCount == 0) - continue; - int eachWidth = stackedWidgetSize.width() / xCount; - std::vectoreachHeightCount(xCount,0); - std::vectoreachHeightIndexCount(xCount, 0); - if (xCount == 1) - { - for (int i = 0; i < widgets.size(); i++) - jsonLayouts[widgetIndex]->addWidget(widgets[i], i, 0); - continue; - } - for (int i = 0; i < widgets.size(); i++) - { - int xIndex = 0; - for (xIndex = eachHeightCount.size() - 1; xIndex > 0; xIndex--) - if (eachHeightCount[xIndex - 1] > eachHeightCount[xIndex]) - { - break; - } - eachHeightCount[xIndex] += widgets[i]->size().height(); - jsonLayouts[widgetIndex]->addWidget(widgets[i], eachHeightIndexCount[xIndex], xIndex); - eachHeightIndexCount[xIndex]++; - } + for (int i = 0; i < privateWidgets[currentPageIndex].size(); i++) + jsonLayouts[currentPageIndex]->addWidget(privateWidgets[currentPageIndex][i], i, 0); + } + for (int i = 0; i < privateWidgets[currentPageIndex].size(); i++) + { + int xIndex = 0; + for (xIndex = eachHeightCount.size() - 1; xIndex > 0; xIndex--) + if (eachHeightCount[xIndex - 1] > eachHeightCount[xIndex]) + { + break; + } + eachHeightCount[xIndex] += privateWidgets[currentPageIndex][i]->size().height(); + jsonLayouts[currentPageIndex]->addWidget(privateWidgets[currentPageIndex][i], eachHeightIndexCount[xIndex], xIndex); + eachHeightIndexCount[xIndex]++; } //jsonLayout->addLayout(classVLayout, jsonDataIndex, 0); } void saveJson(QString path) { // 构建 JSON 对象 - QJsonArray jsonArray; - for (auto& classData : privateJsondatas) - { - for(auto& jsonData: classData) - for (auto& data : jsonData.second) - { - QJsonObject obj1; - obj1["className"] = data.className; - obj1["showName"] = data.showName; - obj1["valueName"] = data.valueName; + //QJsonArray jsonArray; + //for (auto& classData : privateJsondatas) + //{ + // for(auto& jsonData: classData) + // for (auto& data : jsonData.second) + // { + // QJsonObject obj1; + // obj1["className"] = data.className; + // obj1["showName"] = data.showName; + // obj1["valueName"] = data.valueName; - switch (data.value.type()) { - case QVariant::Bool: - obj1["value"] = data.value.toBool(); - break; - case QVariant::Int: - obj1["value"] = data.value.toInt(); - break; - case QVariant::Double: - obj1["value"] = data.value.toDouble(); - break; - case QVariant::String: - obj1["value"] = data.value.toString(); - break; - default: - obj1["value"] = "error"; - break; - } + // switch (data.value.type()) { + // case QVariant::Bool: + // obj1["value"] = data.value.toBool(); + // break; + // case QVariant::Int: + // obj1["value"] = data.value.toInt(); + // break; + // case QVariant::Double: + // obj1["value"] = data.value.toDouble(); + // break; + // case QVariant::String: + // obj1["value"] = data.value.toString(); + // break; + // default: + // obj1["value"] = "error"; + // break; + // } - obj1["policy"] = data.formatPolicyStr; - jsonArray.append(obj1); - } - } - std::string sss = path.toStdString(); + // obj1["policy"] = data.formatPolicyStr; + // jsonArray.append(obj1); + // } + //} + //std::string sss = path.toStdString(); - QJsonDocument jsonDocument(jsonArray); + //QJsonDocument jsonDocument(jsonArray); - // 保存 JSON 文档到文件 - QFile file(path); - if (file.open(QIODevice::WriteOnly | QIODevice::Text)) { - QTextStream out(&file); - out.setCodec("UTF-8"); - out << jsonDocument.toJson(); - file.close(); - QMessageBox::information(this, "成功", ""); - qDebug() << "JSON 文件保存成功"; - } - else { - qDebug() << "无法保存 JSON 文件"; - } + //// 保存 JSON 文档到文件 + //QFile file(path); + //if (file.open(QIODevice::WriteOnly | QIODevice::Text)) { + // QTextStream out(&file); + // out.setCodec("UTF-8"); + // out << jsonDocument.toJson(); + // file.close(); + // QMessageBox::information(this, "成功", ""); + // qDebug() << "JSON 文件保存成功"; + //} + //else { + // qDebug() << "无法保存 JSON 文件"; + //} } protected: void resizeEvent(QResizeEvent* event) override { @@ -475,7 +408,7 @@ protected: } private: - std::vector>> privateJsondatas;//路径与数据 + std::vector> privateJsondatas;//路径与数据 std::vector> privateWidgets;//路径与数据 std::vectorjsonLayouts; }; diff --git a/HanddleAI/HandleAiUi-new/globalStruct.h b/HanddleAI/HandleAiUi-new/globalStruct.h index 6cfa7508..bf917186 100644 --- a/HanddleAI/HandleAiUi-new/globalStruct.h +++ b/HanddleAI/HandleAiUi-new/globalStruct.h @@ -17,8 +17,8 @@ #define sColor_Black "22, 22, 22" #define sColor_BlackWithWhite "45, 45, 45" -#define enableHandleAiModel 1 -#define disableBackEndCheck 0 +#define enableHandleAiModel 0 +#define disableBackEndCheck 1 #define disableeAlgo 0 //绐楀彛璁剧疆 diff --git a/HanddleAI/HandleAiUi-new/uiModule/components/fancyWarnWindow.h b/HanddleAI/HandleAiUi-new/uiModule/components/fancyWarnWindow.h index 25ad2ad0..176f236f 100644 --- a/HanddleAI/HandleAiUi-new/uiModule/components/fancyWarnWindow.h +++ b/HanddleAI/HandleAiUi-new/uiModule/components/fancyWarnWindow.h @@ -13,7 +13,7 @@ public: { Warning, tip - }; + }; QPushButton* closeBtn = new QPushButton(this); fancyButtonText* continueBtn = new fancyButtonText(120,60,"继续","继续"); fancyWarnWindow(type typeIn,QString title,QString detail) diff --git a/lib/Hd_3DCameraLMI_module_PointLazer.exp b/lib/Hd_3DCameraLMI_module_PointLazer.exp index b70953a7e7fc9e91207cc4d455ce99548d3726db..83d8b980fd844b8edafa878828258deb6487fb70 100644 GIT binary patch delta 71 zcmZo;Yh&AB!N}-2*^<$VMV;Yu)8uwWIUsi#qqcmok%5s>Oqg>_NPd1!ag1*;kZEY5 XXKblwY;0<1Ir#&l6BAH_3DYG2+CLS5 delta 71 zcmZo;Yh&AB!N}+~*^<$VMU5e=adJDO9FV(=QCq&)$iT=bCd@e|BtJi=IL0>^$TT$3 XGq%t(Ha0XinEZj!i3zB|gy|9hynPgT diff --git a/lib/Hd_3DCameraLMI_module_PointLazer.lib b/lib/Hd_3DCameraLMI_module_PointLazer.lib index b506c2adaff32453f920896da4a99bad9470fc31..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)&oUkH^Ptn_hnE-_7?>uX wWRjj-#99wirapNBI|o$hWCyl5&b6m&4}62FG@E>vtp}!38LD#gEOswO00)UE^Z)<= diff --git a/lib/Hd_DalsaCamera_module.exp b/lib/Hd_DalsaCamera_module.exp index 9c60276f802863889f4f8b46777d38a8571c40e5..efae2b9e0625c5eac1fbb210c3bea307dc61f2ea 100644 GIT binary patch delta 78 zcmey!`jK^m9wVdYWPL_^Wp#$nO$-danaM@@#rbI^3K~J03O=5G-VC`6wt@`FOqT$Orxy(X delta 78 zcmey!`jK^m9wVdMWPL_^Wi^JZMg|7o%;ci{;{3D{1&tt01s_j8Z-!h3TS128@)QQQ i$rBm18H*?HWfW((&@(nRG&Y!go6(6Wt8ubC(ha6({12NTP2)AOe%_b}~YQD^wvG}(taoe4U!8q3ha6({12NR3#l2yki_b}~YQDewzob1D#&IF|7*`+q0XO?DU7G=zs{FY@ZOj3RF rT2>CIg2@+IV_DC4{(bR!@_QEf$!nOTC+D&?!c;0lRc@AN*JK0$_5&nj diff --git a/lib/Hd_FinsTcp_module.exp b/lib/Hd_FinsTcp_module.exp index 2ba9e5fa238c310ab173aa51d35cc4dbf6f01844..3de4f63b98d2685208a2831ec96d38f2a0fd0f6c 100644 GIT binary patch delta 71 zcmaFK`jT~n79*qQWNk)k7IlWtO_Q@2<$&ByMs4|EBLgF&m@wy+! delta 71 zcmaFK`jT~n79*qEWNk)k7Bz;f#>rWXazJh;qqcmpk%5s>Oqg>_NPd1!ag1*;kZEY5 XXKbNoY;0(3F!?g06BAH_IMXEn+Z`01 diff --git a/lib/Hd_FinsTcp_module.lib b/lib/Hd_FinsTcp_module.lib index e7784b3ea75952388bfd4c57a0b8fb3be8e54022..f679fdae9df129fa1e4d394f63100284f9d61348 100644 GIT binary patch delta 113 zcmbOrFhO8L2@~f(^@6+dj0_AMllj@qCU0h{Wl?AN+%!3kRef?avkeoF+0QDqc{8&x wBa6wYtap=7u}pxe(1*yDvp75wyE2)JZ3j$3nad$LKes?HGX<)hmz|jr0D+b!iU0rr delta 113 zcmbOrFhO8L2@@xiS>+3PMg|6s$^2|)lQ%QfvZyg+HBOFWRi7NqY{LX(_OnWD-pnk_ w$nsyM=EdYwEE8ZV^dYk4EOPCyj!oub+X0hM=5k2R&n?i)Oo3|WWoKpt0HB~E>;M1& diff --git a/lib/Hd_MvCamera_module_GENTL.exp b/lib/Hd_MvCamera_module_GENTL.exp index 5b9c4dde2edb2cae0af9714a2673a0b041f52325..d493372202fb127678b045cafaea808eabe2b26b 100644 GIT binary patch delta 71 zcmeyy`i*si0VAX5WJ5+L7IlWtO_R$R<$&C2jN0Uv9PE0@zDomFE3PctL delta 71 zcmeyy`i*si0VAW^WJ5+L7Bz;f#>wT3azO4hMs4|GBLgF&m@wy~j?V diff --git a/lib/Hd_MvCamera_module_GENTL.lib b/lib/Hd_MvCamera_module_GENTL.lib index 4010f0a3da11c6819056f7133313cf8a23370e79..578b535ee41c6c12f7e6ab81feeae0134eac1aaf 100644 GIT binary patch delta 118 zcmew&@I_$53?`PPzk+^Dp2M`CMV;Yu)8u&OY^Kjmo6j&?F>yJ8=D$hPQK6R!~~R9 HX1W9bwa5^4 delta 53 zcmey$`jvHq0VAW^WJ5+r7Bz;f#>r)jazO4>Ms3F8$p;z5*)8;pjSYXYl4otS{k)2vdP?=s6XvY5Ryxjl(> s8ccycM6#SUOQrAa+sTZq@{`lp=D}o@xg3)7a|`q`Q=mrpvx_nU04H}TWB>pF delta 108 zcmaDN@I+w4Bqo;p>l@!pp2oC~MU5e=aq=uy^~v?jPE0`NX;!JtcbVlGS)TPV-XJB3aIQ)aT5(x04xJn+a diff --git a/lib/Hd_ResultsSummary_module.exp b/lib/Hd_ResultsSummary_module.exp index 4426c9158939bd437ac3d718d6f0ee003c7bf6ee..b54e9ed317260737a576b6a3335ccbe71aa9f79f 100644 GIT binary patch delta 71 zcmeyy`i*si0VAX5WJ5+L7IlWtO_R$R<$&C2jN0Uv9PE0@zDomFE3PctL delta 71 zcmeyy`i*si0VAW^WJ5+L7Bz;f#>wT3azO4hMs4|GBLgF&m@wy~j?V diff --git a/lib/Hd_ResultsSummary_module.lib b/lib/Hd_ResultsSummary_module.lib index 8baafc1c7adb77e35051dfe8ea37dc3b629b4297..ff33633f3db52aec9c9ccb88fc9c624c2109a9d1 100644 GIT binary patch delta 117 zcmew&@I_$53?}BnwZ|vVW;(#4&hWWuay)Z3)90qmXPB)RIsaXl@bDA^0|V3Kg-p_u ywOGqxO4KKxVdVfSn|y{@YVrrxI8L`KOHaRpsx+J2%hm!@sf`}O0&tmY%MUA$_SOxn`7C<83B{oC#(Pf diff --git a/lib/Hd_SocketModule_ModbusTcp.exp b/lib/Hd_SocketModule_ModbusTcp.exp index e9596cc01c1c38db6e71b88ab1589e1289d9b642..b95b63b171c0f8ac61a20249a5e95da79fb27b19 100644 GIT binary patch delta 72 zcmcc5eV==S3lpQ~WLG9<7IlWtO_O_=aqS&zL?pZNAIQ!~_5`(-#2% delta 72 zcmcc5eV==S3lpQ;WLG9<7Bz;f#>qWQazO5CCT;m*BLgF&m@wyN7c@4(_u=wNxPHmXh?VS6W0bcJXg#Z8m delta 108 zcmew+^-XHSI~LA!vnzk