diff --git a/BaseModules/Hd_3DCameraLMI_module_PointLazer/Hd_3DCameraLMI_module_PointLazer_Range.cpp b/BaseModules/Hd_3DCameraLMI_module_PointLazer/Hd_3DCameraLMI_module_PointLazer_Range.cpp index a6177a52..e051e9ec 100644 --- a/BaseModules/Hd_3DCameraLMI_module_PointLazer/Hd_3DCameraLMI_module_PointLazer_Range.cpp +++ b/BaseModules/Hd_3DCameraLMI_module_PointLazer/Hd_3DCameraLMI_module_PointLazer_Range.cpp @@ -217,10 +217,16 @@ bool Hd_3DCameraLMI_module::sendData(std::vector& vecPic, QByteArray &d if(dataVec.size()>0) { m_mutex->lock(); - double rangeData = dataVec[dataVec.size()-1]; + double avgData = 0; + for (auto data : dataVec) + { + avgData += data; + } + avgData /= dataVec.size(); + //double rangeData = dataVec[dataVec.size()-1]; dataVec.clear(); m_mutex->unlock(); - data = QByteArray::number(rangeData); + data = QByteArray::number(avgData); } return true; @@ -261,17 +267,18 @@ bool Hd_3DCameraLMI_module::initParas(QByteArray &) bool Hd_3DCameraLMI_module::run() { + dataVec.clear(); + for(auto i = 0 ;i<20000;i++) GoSensor_Trigger(sensor); bool result = false; //qDebug() << "[info]" << __FUNCTION__ << " line:" << __LINE__ << " run start" << id; try { int timeOut = 0; - dataVec.clear(); - while (timeOut < 10000) + while (timeOut < 2000) { m_mutex->lock(); - if (dataVec.size() > 0) + if (dataVec.size() >= 9000) { result = true; m_mutex->unlock(); @@ -281,6 +288,7 @@ bool Hd_3DCameraLMI_module::run() timeOut += 10; QThread::msleep(10); } + std::cout << "size" << dataVec.size() << std::endl; } catch (QString ev) { diff --git a/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqlManager.cpp b/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqlManager.cpp index c16ff3e8..24afe956 100644 --- a/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqlManager.cpp +++ b/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqlManager.cpp @@ -148,7 +148,7 @@ bool sqlManager::updateData(std::string SN,sqlRowDatas data) dbPtr->Update(getCurrentDate(), data, "SN", SN); } mutex.unlock(); - + return true; } //将数æ�®å­˜å…¥æ•°æ�®åº“ bool sqlManager::addData(std::string SN,std::vector data) diff --git a/HanddleAI/HandleAiUi-new/detProcess.hpp b/HanddleAI/HandleAiUi-new/detProcess.hpp index 14814b5c..2687a263 100644 --- a/HanddleAI/HandleAiUi-new/detProcess.hpp +++ b/HanddleAI/HandleAiUi-new/detProcess.hpp @@ -11,17 +11,17 @@ class detProcess : public QThread { public: - detProcess() - { - _threadManager.initialization(this); - _manualDetThread.initialization(this); - _cameraManager.initialization(); - _triggerManager.initialization(this); + detProcess() + { + _threadManager.initialization(this); + _manualDetThread.initialization(this); + _cameraManager.initialization(); + _triggerManager.initialization(this); detProcessCallbackRegister(); - } + } //³õʼ»¯ - void run() - { + void run() + { _cameraManager.start(); _handleAiModelManager.start(); _lightSourceManager.start(); @@ -35,16 +35,16 @@ public: _triggerManager.start(); res3 = waitrForInitResult(&_triggerManager); } - std::cout << "_cameraManager-initReuslt-->" << std::to_string(res1) << "\n" + std::cout << "_cameraManager-initReuslt-->" << std::to_string(res1) << "\n" << "_handleAiModelManager-initReuslt-->" << std::to_string(res2) << "\n" << "_triggerManager-initReuslt-->" << std::to_string(res3) << "\n" << std::endl; - if(res1 == true&&res2 == true && res3 == true) + if (res1 == true && res2 == true && res3 == true) emit _core._qtFunc.sendInitFinished(InitOK); else emit _core._qtFunc.sendInitFinished(InitFailure); - } + } //µÈ´ý·þÎñ·µ»ØOK/NGÖ±µ½³¬Ê± - bool waitrForInitResult(serviceModule* ptr,int timeout=-1) + bool waitrForInitResult(serviceModule* ptr, int timeout = -1) { if (timeout == -1)//²»»á³¬Ê± { @@ -52,7 +52,7 @@ public: { if (ptr->status == InitFailure) return false; - else if(ptr->status == InitOK) + else if (ptr->status == InitOK) return true; QThread::msleep(100); } @@ -75,18 +75,18 @@ public: } } simpleSiemensTcp _simpleSiemensTcp; - detDataManager _detDataManager;//¼ì²âÖеÄÊý¾Ý ²»ÐèÒª³õʼ»¯ - imgSaveThreadManager _imgSaveThreadManager;//´æÍ¼Ïß³Ì ²»ÐèÒª³õʼ»¯ - detThreadManager _threadManager;//Òì²½¼ì²âÏß³Ì ²»ÐèÒª³õʼ»¯ - - handleAiModelManager _handleAiModelManager;//Ä£ÐÍ - cameraManager _cameraManager;//Ïà»ú - lightSourceManager _lightSourceManager;//¹âÔ´ + detDataManager _detDataManager;//¼ì²âÖеÄÊý¾Ý ²»ÐèÒª³õʼ»¯ + imgSaveThreadManager _imgSaveThreadManager;//´æÍ¼Ïß³Ì ²»ÐèÒª³õʼ»¯ + detThreadManager _threadManager;//Òì²½¼ì²âÏß³Ì ²»ÐèÒª³õʼ»¯ - triggerManager _triggerManager;//MODBUS´¥·¢Æ÷ - manualDetThread _manualDetThread;//ÊÖ¶¯´¥·¢Ïß³Ì + handleAiModelManager _handleAiModelManager;//Ä£ÐÍ + cameraManager _cameraManager;//Ïà»ú + lightSourceManager _lightSourceManager;//¹âÔ´ - /////////////////////////////// + triggerManager _triggerManager;//MODBUS´¥·¢Æ÷ + manualDetThread _manualDetThread;//ÊÖ¶¯´¥·¢Ïß³Ì + + /////////////////////////////// bool startDet = false; QMutex detMutex; std::string currentSn; @@ -99,7 +99,8 @@ public: _triggerManager.registerCallback(361, 2, [this](QByteArray& byteArray) {detectionSwitch2(byteArray); }, "¼ì²â½áÊø1"); _triggerManager.registerCallback(362, 1, [this](QByteArray& byteArray) {detectionEnd(byteArray); }, "¼ì²â½áÊø2"); _triggerManager.registerCallback(364, 1, [this](QByteArray& byteArray) {frontBackDet(); }, "¼ì²âÕý·´Ãæ"); - + _triggerManager.registerCallback(369, 1, [this](QByteArray& byteArray) {testFunc(); }, "¼ì²âÕý·´Ãæ"); + _threadManager.registerCallback([this](std::shared_ptrdata) {correctionResultHandle(data); }); _threadManager.registerCallback([this](std::shared_ptrdata) {detectionResultHandle(data); }); } @@ -109,7 +110,7 @@ public: bool currentBack = false; //¼¤¹âУ׼Êý¾Ý»º´æ //SN Êý¾Ý pointsOffsetStruct lastPointsOffsetStruct_; - correctionStruct laserDataCache; + correctionStruct laserDataCache; //×ÜÁ÷³Ì¿ªÊ¼£¬»úÆ÷ÈË·¢ËÍ1ÖÁ¼Ä´æÆ÷259 //ÉÏλ»úÈ·ÈÏOKÖ®ºó£¬ÇåÁã¼Ä´æÆ÷259£¬²¢·¢ËÍ1ÖÁ¼Ä´æÆ÷260 //Èç²úÆ·ÐͺÅΪProduct_1ÇÒΪÕýÃæ£¬ÔòÉÏλ»ú·¢ËÍ1ÖÁ¼Ä´æÆ÷256£¬·¢ËÍ0ÖÁ¼Ä´æÆ÷257 @@ -132,12 +133,12 @@ public: //ÉÏλ»úÈ·ÈÏ»úÆ÷È˵½´ïµãλ1(264)ʱ£¬È·ÈÏOKºó£¬¼Ä´æÆ÷262ÖÁ1£¬261ÖÁ0£¬È¡µãÍê³Éºó£¬·¢ËͼĴæÆ÷263ÖÁ1 //У׼º¯Êý 261 void calibrationFunc(QByteArray& byteArray) - { + { QThread::msleep(3000); int armPos = _triggerManager.getValue(264, byteArray); int xValue1 = _triggerManager.getValue(265, byteArray); - int xValue2 = _triggerManager.getValue(266, byteArray); + int xValue2 = _triggerManager.getValue(266, byteArray); int xValue3 = _triggerManager.getValue(267, byteArray); int yValue1 = _triggerManager.getValue(268, byteArray); @@ -154,31 +155,33 @@ public: auto cameraPtr = _cameraManager.getCamera("181964"); if (cameraPtr == nullptr) return; - std::vector values; - for (int i = 0; i < 10; i++)//ÆúÓà - { - cameraPtr->trigger(); - double rangeData1 = cameraPtr->getCameraValue(); - } - for (int i = 0; i < 70; i++) - { - cameraPtr->trigger(); - double rangeData1 = cameraPtr->getCameraValue(); - values.push_back(rangeData1); - } + cameraPtr->trigger(); + double rangeData = cameraPtr->getCameraValue(); + //std::vector values; + //for (int i = 0; i < 10; i++)//ÆúÓà + //{ + // cameraPtr->trigger(); + // double rangeData1 = cameraPtr->getCameraValue(); + //} + //for (int i = 0; i < 70; i++) + //{ + // cameraPtr->trigger(); + // double rangeData1 = cameraPtr->getCameraValue(); + // values.push_back(rangeData1); + //} - double avgData = 0; - for (auto data : values) - { - avgData += data; - } - avgData /= values.size(); + //double avgData = 0; + //for (auto data : values) + //{ + // avgData += data; + //} + //avgData /= values.size(); - double maxData = *std::max_element(values.begin(), values.end()); - double minData = *std::min_element(values.begin(), values.end()); - double rangeData = avgData; - qDebug() << " max:" << maxData << " min:" << minData << " avg:" << avgData; - std::cout << " max:" << maxData << " min:" << minData << " avg:" << avgData << std::endl; + //double maxData = *std::max_element(values.begin(), values.end()); + //double minData = *std::min_element(values.begin(), values.end()); + //double rangeData = avgData; + /*qDebug() << " max:" << maxData << " min:" << minData << " avg:" << avgData; + std::cout << " max:" << maxData << " min:" << minData << " avg:" << avgData << std::endl;*/ qDebug() << "jiaozhun xValue:" << xValue << " yValue:" << yValue << " zValue:" << zValue << " rangeData:" << rangeData; std::cout << "jiaozhun xValue:" << xValue << " yValue:" << yValue << " zValue:" << zValue << " rangeData:" << rangeData << std::endl; if (rangeData == 0) @@ -205,13 +208,13 @@ public: laserDataCache.in_X_Y0Z_Value.push_back(rangeData); } else if (armPos <= 9) - { + { laserDataCache.in_X_X0Z.push_back(xValue); laserDataCache.in_Y_X0Z.push_back(yValue); laserDataCache.in_Z_X0Z.push_back(zValue); laserDataCache.in_Y_X0Z_Value.push_back(rangeData); } - + _triggerManager.sendFinsMsg("write_short_261_0");//ÇåÁã _triggerManager.sendFinsMsg("write_short_262_1"); _triggerManager.sendFinsMsg("write_short_263_1"); @@ -226,7 +229,7 @@ public: _threadManager.addTask(data);//Ìí¼ÓÈÎÎñ laserDataCache = correctionStruct(); } - } + } //ÅÄÕÕ²¢¼ì²â 300 void captureImageAndDetection(QByteArray& byteArray) { @@ -237,7 +240,7 @@ public: _triggerManager.sendFinsMsg("write_short_300_0");//´¥·¢ÐźÅÇåÁã _triggerManager.sendFinsMsg("write_short_301_1");//¿ªÊ¼¼ì²âÐźŠint Pos = _triggerManager.getValue(303, byteArray); - emit _core._qtFunc.uiModuleLocationMap_SetProductSignStatus(Pos,1); + emit _core._qtFunc.uiModuleLocationMap_SetProductSignStatus(Pos, 1); std::cout << "arm @Pos:" << Pos; std::shared_ptr data = _detDataManager.insertDetData("Camera1", currentSn, 1, 1); @@ -306,17 +309,17 @@ public: if (!data.value.compare("NG")) result = false; //Êý¾Ý¿â½á¹ûΪfalseʱ ²»¸ù¾Ýµ±Ç°ÅÜÁÏÊý¾ÝÅÐ¶Ï - if(result == false) + if (result == false) { emit _core._qtFunc.uiModuleSummaryDataManager_SetSummaryResultText("NG", Qt::red); return; } //Êý¾Ý¿â½á¹ûΪtrue»òÕßûÓвéѯµ½Êý¾Ýʱʱ ¼ÌÐøÅÐ¶Ï - if(productData->ngPinCount >0 || productData->ngCount>0)//NG + if (productData->ngPinCount > 0 || productData->ngCount > 0)//NG { emit _core._qtFunc.uiModuleSummaryDataManager_SetSummaryResultText("NG", Qt::red); - _core._appConfig._sqlManager.updateData(currentSn, {{"detResult","NG"}}); + _core._appConfig._sqlManager.updateData(currentSn, { {"detResult","NG"} }); } else { @@ -330,7 +333,7 @@ public: if (currentBack == true) currentBack = false; else if ( - _core._appConfig.productDatas[currentProductIndex].isBackExist == true + _core._appConfig.productDatas[currentProductIndex].isBackExist == true && result == true && startDet == true) { @@ -352,7 +355,7 @@ public: void detectionResultHandle(std::shared_ptrdata) { data->sqlVec.push_back({ "SN",data->SNcode }); - data->sqlVec.push_back({ "ARMPOS",std::to_string(data->armPos)}); + data->sqlVec.push_back({ "ARMPOS",std::to_string(data->armPos) }); //·¢ËÍͼƬ if (data->resultImgs.size() > 0) { @@ -396,7 +399,7 @@ public: pack.type = 2; } - if(data->halconOK == true) + if (data->halconOK == true) emit _core._qtFunc.addDashBoardData(0, data->halconOK); else if (data->resultImgs.size() >= 2) { @@ -407,16 +410,16 @@ public: pack.type = 1; } if (finalOk == true) - emit _core._qtFunc.uiModuleLocationMap_SetProductSignStatus(data->armPos,2); + emit _core._qtFunc.uiModuleLocationMap_SetProductSignStatus(data->armPos, 2); + - perConnector _perConnectorData; _perConnectorData.aiOk = data->aiDetOK; _perConnectorData.halconOk = data->halconOK; _perConnectorData.maxPinDetValue = data->maxPinDetValue; auto productData = _core._productDataCache.get(currentSn); productData->connectorResults.push_back(_perConnectorData); - data->sqlVec.push_back({ "Result",std::to_string(finalOk)}); + data->sqlVec.push_back({ "Result",std::to_string(finalOk) }); } //ct¼ÆËãÒÔ¼°·¢Ë͵½½çÃæ auto totalCt = std::chrono::duration_cast(data->halconEndTime - data->algoStartTime); @@ -451,28 +454,54 @@ public: //ʹÓõ㼤¹â²âÁ¿¼ì²âÊÇ·ñΪÕýÃæ£¬Ã»Êý¾Ý¾ÍÊÇÕýÃæ void frontBackDet() { - _triggerManager.sendFinsMsg("write_short_364_1"); + QThread::msleep(1000); + _triggerManager.sendFinsMsg("write_short_364_0"); + _triggerManager.sendFinsMsg("write_short_365_0"); auto cameraPtr = _cameraManager.getCamera("181964"); if (cameraPtr == nullptr) return; - for (int i = 0; i < 10; i++)//ÆúÓà + //for (int i = 0; i < 10; i++)//ÆúÓà + //{ + // cameraPtr->trigger(); + // cameraPtr->getCameraValue(); + //} + //for (int i = 0; i < 100; i++)//¼ì²âÊÇ·ñÓÐÊý¾Ý + //{ + // cameraPtr->trigger(); + // if (cameraPtr->getCameraValue() > -100)//ÓÐÊý¾Ý ÊÇ·´Ãæ + // { + // _triggerManager.sendFinsMsg("write_short_365_2"); + // break; + // } + //} + + //1ÊÇÕýÃæ£¬¶Á²»µ½£¬2ÊÇ·´Ã棬¿ÉÒÔ¶Áµ½ + + cameraPtr->trigger(); + double value = cameraPtr->getCameraValue(); + std::cout << "camera value" << value; + if (value > -100)//ÓÐÊý¾Ý ÊÇ·´Ãæ { - cameraPtr->trigger(); - cameraPtr->getCameraValue(); - } - for (int i = 0; i < 100; i++)//¼ì²âÊÇ·ñÓÐÊý¾Ý - { - cameraPtr->trigger(); - if (cameraPtr->getCameraValue() > -100)//ÓÐÊý¾Ý ÊÇ·´Ãæ - { - _triggerManager.sendFinsMsg("write_short_365_2"); - break; - } + _triggerManager.sendFinsMsg("write_short_365_2"); + return; } _triggerManager.sendFinsMsg("write_short_365_1");//ÎÞÊý¾Ý ÊÇÕýÃæ + //ÕýÃæ·´ÃæÊÇ·ñ¼ÌÐø¼ì²â£¬ÔÚ»úе±Û½Å±¾Öоö¶¨ } - + void testFunc() + { + auto cameraPtr = _cameraManager.getCamera("181964"); + if (cameraPtr == nullptr) + return; + std::vector values; + for (int i = 0; i < 1000; i++) + { + cameraPtr->trigger(); + double v = cameraPtr->getCameraValue(); + std::cout << v << std::endl; + } + } public slots: void runBackDet() { diff --git a/lib/Hd_3DCameraLMI_module_PointLazer.exp b/lib/Hd_3DCameraLMI_module_PointLazer.exp index c128f721..97d8b87b 100644 Binary files a/lib/Hd_3DCameraLMI_module_PointLazer.exp and b/lib/Hd_3DCameraLMI_module_PointLazer.exp differ diff --git a/lib/Hd_3DCameraLMI_module_PointLazer.lib b/lib/Hd_3DCameraLMI_module_PointLazer.lib index b506c2ad..36c75b14 100644 Binary files a/lib/Hd_3DCameraLMI_module_PointLazer.lib and b/lib/Hd_3DCameraLMI_module_PointLazer.lib differ diff --git a/lib/Hd_DalsaCamera_module.exp b/lib/Hd_DalsaCamera_module.exp index d51dd347..ab118790 100644 Binary files a/lib/Hd_DalsaCamera_module.exp and b/lib/Hd_DalsaCamera_module.exp differ diff --git a/lib/Hd_DalsaCamera_module.lib b/lib/Hd_DalsaCamera_module.lib index c271a24e..cc2d36e5 100644 Binary files a/lib/Hd_DalsaCamera_module.lib and b/lib/Hd_DalsaCamera_module.lib differ diff --git a/lib/Hd_FinsTcp_module.exp b/lib/Hd_FinsTcp_module.exp index 63243947..05dc8bab 100644 Binary files a/lib/Hd_FinsTcp_module.exp and b/lib/Hd_FinsTcp_module.exp differ diff --git a/lib/Hd_FinsTcp_module.lib b/lib/Hd_FinsTcp_module.lib index e7784b3e..a50e177e 100644 Binary files a/lib/Hd_FinsTcp_module.lib and b/lib/Hd_FinsTcp_module.lib differ diff --git a/lib/Hd_MvCamera_module_GENTL.exp b/lib/Hd_MvCamera_module_GENTL.exp index f0a89b55..cd7a0985 100644 Binary files a/lib/Hd_MvCamera_module_GENTL.exp and b/lib/Hd_MvCamera_module_GENTL.exp differ diff --git a/lib/Hd_MvCamera_module_GENTL.lib b/lib/Hd_MvCamera_module_GENTL.lib index 4010f0a3..a65c613a 100644 Binary files a/lib/Hd_MvCamera_module_GENTL.lib and b/lib/Hd_MvCamera_module_GENTL.lib differ diff --git a/lib/Hd_MvCamera_module_GIGE.exp b/lib/Hd_MvCamera_module_GIGE.exp index baf010b9..564b8062 100644 Binary files a/lib/Hd_MvCamera_module_GIGE.exp and b/lib/Hd_MvCamera_module_GIGE.exp differ diff --git a/lib/Hd_MvCamera_module_GIGE.lib b/lib/Hd_MvCamera_module_GIGE.lib index 110ae8d7..b1396b9b 100644 Binary files a/lib/Hd_MvCamera_module_GIGE.lib and b/lib/Hd_MvCamera_module_GIGE.lib differ diff --git a/lib/Hd_ResultsSummary_module.exp b/lib/Hd_ResultsSummary_module.exp index 72272a70..1880b09b 100644 Binary files a/lib/Hd_ResultsSummary_module.exp and b/lib/Hd_ResultsSummary_module.exp differ diff --git a/lib/Hd_ResultsSummary_module.lib b/lib/Hd_ResultsSummary_module.lib index 8baafc1c..a61fbd40 100644 Binary files a/lib/Hd_ResultsSummary_module.lib and b/lib/Hd_ResultsSummary_module.lib differ diff --git a/lib/Hd_SocketModule_ModbusTcp.exp b/lib/Hd_SocketModule_ModbusTcp.exp index 25890329..f9780641 100644 Binary files a/lib/Hd_SocketModule_ModbusTcp.exp and b/lib/Hd_SocketModule_ModbusTcp.exp differ diff --git a/lib/Hd_SocketModule_ModbusTcp.lib b/lib/Hd_SocketModule_ModbusTcp.lib index b3ff8f19..5ec47732 100644 Binary files a/lib/Hd_SocketModule_ModbusTcp.lib and b/lib/Hd_SocketModule_ModbusTcp.lib differ