diff --git a/HanddleAI/HandleAiUi-new/appConfig/appConfig.cpp b/HanddleAI/HandleAiUi-new/appConfig/appConfig.cpp index e6bd5819..bf66f5e9 100644 --- a/HanddleAI/HandleAiUi-new/appConfig/appConfig.cpp +++ b/HanddleAI/HandleAiUi-new/appConfig/appConfig.cpp @@ -2,17 +2,16 @@ #include void appConfig::parsingGlobalData() { - nlohmann::json globalJson = readJsonFromPath("./config/settingNew.json"); + nlohmann::json globalJson = readJsonFromPath("./config/setting.json"); softwareTile = globalJson["softwareTile"]; imgSavePath = globalJson["imgSavePath"]; oriImgSavePath = globalJson["oriImgSavePath"]; resImgSavePath = globalJson["resImgSavePath"]; handleAiModelPath = globalJson["handleAiModelPath"]; productDataPath = globalJson["productDataPath"]; -} -void appConfig::parsingTriggerData() -{ - nlohmann::json triggerJson = readJsonFromPath("./config/triggerSetting.json"); + + //TRIGGER JSON + auto triggerJson = globalJson["Triggers"]; _triggerStruct.key = triggerJson["key"]; _triggerStruct.sleepTime = triggerJson["sleepTime"]; _triggerStruct.initStr = triggerJson["initStr"]; @@ -21,26 +20,24 @@ void appConfig::parsingTriggerData() _triggerStruct.modelName = triggerJson["modelName"]; _triggerStruct.readNum = triggerJson["readNum"]; _triggerStruct.writeType = triggerJson["writeType"]; - _triggerStruct.startPos = QString::fromStdString(_triggerStruct.readAllCmd).split("_")[2].toInt();; -} -void appConfig::parsingCameraData() -{ - nlohmann::json cameraJson = readJsonFromPath("./config/cameraSetting.json"); + _triggerStruct.startPos = QString::fromStdString(_triggerStruct.readAllCmd).split("_")[2].toInt(); + + //CAMERA JSON + auto cameraJson = globalJson["CameraSetting"]; for (auto data : cameraJson) { cameraStruct _cameraStruct; _cameraStruct.key = data["key"]; _cameraStruct.connectionName = data["connectionName"]; _cameraStruct.serialNum = data["serialNum"]; - _cameraStruct.triggerMode = data["triggerMode"]; + _cameraStruct.triggerMode = data["triggerMode"]; _cameraStruct.moduleName = data["moduleName"]; _cameraStructs.push_back(_cameraStruct); } -} -void appConfig::parsingSqlData() -{ - nlohmann::json sqlJson = readJsonFromPath("./config/sqlSetting.json"); - for (auto data = sqlJson["initData"].begin(); data != sqlJson["initData"].end();data++) + + //SQL + auto sqlJson = globalJson["SQL"]; + for (auto data = sqlJson["initData"].begin(); data != sqlJson["initData"].end(); data++) { _sqlConfigStruct.datas.insert(std::make_pair(data.key(), data.value())); } @@ -64,7 +61,7 @@ void appConfig::parsingProductData(std::string path) productData.basePos = { res["baseX"],res["baseY"],res["baseZ"] }; productData.baseRad = { res["baseRx"],res["baseRy"],res["baseRz"] }; productData.halconAlgoIndex = res["halconAlgoIndex"]; - productData.imgPosPath = res["imgPosPath"]; + productData.imgPosPath = res["imgPosPath"]; productData.disableHandleAiConfig = res["disableHandleAiConfig"]; productData.enableCodedAlgo = res["enableCodedAlgo"]; productData.codedAlgoIndex = res["codedAlgoIndex"]; diff --git a/HanddleAI/HandleAiUi-new/appConfig/appConfig.h b/HanddleAI/HandleAiUi-new/appConfig/appConfig.h index 649e50b2..9446b83e 100644 --- a/HanddleAI/HandleAiUi-new/appConfig/appConfig.h +++ b/HanddleAI/HandleAiUi-new/appConfig/appConfig.h @@ -1,15 +1,14 @@ #include +#include class appConfig { public: - sqlManager _sqlManager; + + sqlManager _sqlManager;//储存产品信息用 appConfig() { parsingGlobalData(); parsingProductData(productDataPath); - parsingTriggerData(); - parsingCameraData(); - parsingSqlData(); _sqlManager.initialization(this); } @@ -24,13 +23,8 @@ public: void parsingGlobalData(); triggerStruct _triggerStruct; - void parsingTriggerData(); - std::vector< cameraStruct> _cameraStructs; - void parsingCameraData(); - sqlConfigStruct _sqlConfigStruct; - void parsingSqlData(); std::mutex productDatasMutex; std::vectorproductDatas; diff --git a/HanddleAI/HandleAiUi-new/appConfig/sqlAppData.h b/HanddleAI/HandleAiUi-new/appConfig/sqlAppData.h new file mode 100644 index 00000000..e81ff7bd --- /dev/null +++ b/HanddleAI/HandleAiUi-new/appConfig/sqlAppData.h @@ -0,0 +1,11 @@ +#include +#include +#include + +//程序启动时,从数据库读取至哈希表 +//程序结束时,从哈希表保存至数据库 +class sqlAppData +{ +private: + std::unordered_mapmap; +}; \ No newline at end of file diff --git a/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqlBase.h b/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqlBase.h index 59fc7b14..8b539604 100644 --- a/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqlBase.h +++ b/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqlBase.h @@ -35,9 +35,10 @@ public: virtual sqlErr Select( std::string tableName, std::vectorselectStr, + sqlTableDatas& output = sqlTableDatas(), std::string Where = "", - std::string equal = "", - sqlTableDatas& output = sqlTableDatas()) + std::string equal = "" + ) { return sqlErr(); }; virtual bool Update( diff --git a/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqlManager.cpp b/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqlManager.cpp index 59db566f..2cd41a60 100644 --- a/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqlManager.cpp +++ b/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqlManager.cpp @@ -70,20 +70,29 @@ sqlTableDatas sqlManager::selectSingleData(std::string selectStr, std::string SN { mutex.lock(); sqlTableDatas selectResult; - dbPtr->Select(getCurrentDate(), { selectStr }, "SN", SN, selectResult); + dbPtr->Select(getCurrentDate(), { selectStr }, selectResult , "SN", SN); if (selectResult.rowDatas.size() == 0)//鏃犳寚瀹氭暟鎹� 鏌ユ壘鍓嶄竴澶� - dbPtr->Select(getPreviousDate(), { selectStr }, "SN", SN, selectResult); + dbPtr->Select(getPreviousDate(), { selectStr }, selectResult, "SN", SN); mutex.unlock(); return selectResult; } -sqlTableDatas sqlManager::selectAllData(std::string SN) +sqlTableDatas sqlManager::selectRowData(std::string SN) { mutex.lock(); //dbPtr->Update(getCurrentTableName(), { {"send","1" } }, "sn", SN); sqlTableDatas selectResult; - dbPtr->Select(getCurrentDate(), {}, "SN", SN, selectResult); + dbPtr->Select(getCurrentDate(), {}, selectResult, "SN", SN); if(selectResult.rowDatas.size()==0)//鏃犳寚瀹氭暟鎹� 鏌ユ壘鍓嶄竴澶� - dbPtr->Select(getPreviousDate(), {}, "SN", SN, selectResult); + dbPtr->Select(getPreviousDate(), {}, selectResult, "SN", SN); + mutex.unlock(); + return selectResult; +} +sqlTableDatas sqlManager::selectAllData(std::string tableName) +{ + mutex.lock(); + //dbPtr->Update(getCurrentTableName(), { {"send","1" } }, "sn", SN); + sqlTableDatas selectResult; + dbPtr->Select(tableName, {}, selectResult); mutex.unlock(); return selectResult; } @@ -100,11 +109,11 @@ void sqlManager::initialization(appConfig* _appConfig,std::string dataBasePath, for (auto data : _appConfig->_sqlConfigStruct.datas) dataStr.push_back(data.first); - //鍒涘缓鏈潵180澶╃殑琛ㄦ牸 + //鍒涘缓鏈潵鐨勮〃鏍� for (auto table : tables) dbPtr->createTable(table, dataStr); - //鏌ヨ鏄惁鏈夊悗鏈熸坊鍔犳湭鍒涘缓鐨勮〃鏍� + //鏌ヨ鏄惁鏈夊悗鏈熸坊鍔犳湭鍒涘缓鐨勫垪 for (auto table : tables) { std::vector res = dbPtr->getColumn(table); @@ -117,7 +126,7 @@ void sqlManager::initialization(appConfig* _appConfig,std::string dataBasePath, auto iter = map.find(str);//瀵绘壘 if (iter == map.end())//鎵句笉鍒� { - dbPtr->addColumn(table, str, "REAL");//鎻掑叆 + dbPtr->addColumn(table, str, "TEXT");//鎻掑叆 } } } @@ -139,7 +148,7 @@ bool sqlManager::addData(std::string SN,std::vector data) } sqlTableDatas selectResult; std::string currentTableName = getCurrentDate(); - sqlErr res=dbPtr->Select(currentTableName, {},"sn", SN, selectResult); + sqlErr res=dbPtr->Select(currentTableName, {}, selectResult, "SN", SN); //鏌ヨ鍑洪敊 if (res.customType != sqlOK) { @@ -150,7 +159,7 @@ bool sqlManager::addData(std::string SN,std::vector data) //鎵惧埌SN锛岃繘琛屾洿鏂版搷浣� if (selectResult.rowDatas.size() != 0) { - dbPtr->Update(currentTableName, data, "sn", SN); + dbPtr->Update(currentTableName, data, "SN", SN); mutex.unlock(); return true; } diff --git a/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqlManager.h b/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqlManager.h index cb806df9..8f82ac63 100644 --- a/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqlManager.h +++ b/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqlManager.h @@ -29,7 +29,8 @@ public: }; std::mutex mutex; sqlTableDatas selectSingleData(std::string selectStr, std::string SN); - sqlTableDatas selectAllData(std::string SN); + sqlTableDatas selectRowData(std::string SN); + sqlTableDatas selectAllData(std::string tableName); std::vector getTableList();//获取所有列名 void initialization(appConfig* _appConfig, std::string dataBasePath = sqlDefaultDatabasePath,bool backUp=true); diff --git a/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqliteModule.cpp b/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqliteModule.cpp index 6da6b5a0..fc8d39e6 100644 --- a/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqliteModule.cpp +++ b/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqliteModule.cpp @@ -79,7 +79,7 @@ bool sqliteModule::createTable(std::string tableName, std::vectorda std::string query = "CREATE TABLE IF NOT EXISTS \'" + tableName +"\' (SN TEXT PRIMARY KEY, timeCode TEXT,saveHour TEXT"; for (auto data : dataVec) - query += ","+data + "TEXT"; + query += ","+data + " TEXT"; query += ",updateTime TEXT);"; int rc = sqlite3_exec(sqliteDbPtr, query.c_str(), 0, 0, 0); if (rc != SQLITE_OK) { @@ -226,9 +226,9 @@ bool sqliteModule::Delete( sqlErr sqliteModule::Select( std::string tableName, std::vectorselectStr, - std::string Where, - std::string equal, - sqlTableDatas& output) + sqlTableDatas& output, + std::string Where, + std::string equal) { output.tableName = tableName; std::string query = "SELECT "; @@ -264,9 +264,9 @@ sqlErr sqliteModule::Select( std::string columnValueStr = columnValue ? std::string(columnValue) : ""; columnNameStr.erase(std::remove(columnNameStr.begin(), columnNameStr.end(), '\''), columnNameStr.end()); - if (columnNameStr.find(columnValueStr) != std::string::npos) { - columnValueStr = ""; - } + //if (columnNameStr.find(columnValueStr) != std::string::npos) { + // columnValueStr = ""; + //} row.push_back({ columnNameStr, columnValueStr }); } output.rowDatas.push_back(row); diff --git a/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqliteModule.h b/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqliteModule.h index c2fd1a19..2d08a892 100644 --- a/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqliteModule.h +++ b/HanddleAI/HandleAiUi-new/appConfig/sqlManager/sqliteModule.h @@ -25,9 +25,9 @@ public: sqlErr Select( std::string tableName, std::vectorselectStr, - std::string Where = "", - std::string equal = "", - sqlTableDatas& output = sqlTableDatas()); + sqlTableDatas& output = sqlTableDatas(), + std::string Where = "", + std::string equal = ""); bool Update(std::string,std::vector,std::string Where = "",std::string equal = ""); private: diff --git a/HanddleAI/HandleAiUi-new/appCore.hpp b/HanddleAI/HandleAiUi-new/appCore.hpp index 8edd822e..764eeafa 100644 --- a/HanddleAI/HandleAiUi-new/appCore.hpp +++ b/HanddleAI/HandleAiUi-new/appCore.hpp @@ -10,7 +10,7 @@ #include -#define disableBackEndCheck 1 +#define disableBackEndCheck 0 #define disableeAlgo 0 #define enableHideConsle 1 class detGlobalData diff --git a/HanddleAI/HandleAiUi-new/detProcess.hpp b/HanddleAI/HandleAiUi-new/detProcess.hpp index 6387c329..1db924e1 100644 --- a/HanddleAI/HandleAiUi-new/detProcess.hpp +++ b/HanddleAI/HandleAiUi-new/detProcess.hpp @@ -31,6 +31,11 @@ public: bool res1 = waitrForInitResult(&_cameraManager); bool res2 = waitrForInitResult(&_handleAiModelManager); bool res3 = waitrForInitResult(&_triggerManager); + if (res3 == false)//连不上就重试一次 + { + _triggerManager.start(); + res3 = waitrForInitResult(&_triggerManager); + } 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; @@ -39,21 +44,36 @@ public: else emit _core._qtFunc.sendInitFinished(InitFailure); } - bool waitrForInitResult(serviceModule* ptr) + //等待服务返回OK/NG直到超时 + bool waitrForInitResult(serviceModule* ptr,int timeout=-1) { - int timecnt = 0; - while (timecnt <= 100) + if (timeout == -1)//不会超时 { - if (ptr->status != NotInit) - break; - QThread::msleep(100); - timecnt++; + while (1) + { + if (ptr->status == InitFailure) + return false; + else if(ptr->status == InitOK) + return true; + QThread::msleep(100); + } + } + else + { + int timecnt = 0; + while (timecnt <= timeout) + { + if (ptr->status != NotInit) + break; + QThread::msleep(100); + timecnt++; + } + if (timecnt > 100) + return false; + if (ptr->status == InitFailure) + return false; + return true; } - if (timecnt > 100) - return false; - if (ptr->status == InitFailure) - return false; - return true; } simpleSiemensTcp _simpleSiemensTcp; detDataManager _detDataManager;//检测中的数据 不需要初始化 diff --git a/HanddleAI/HandleAiUi-new/handleAi/handleAiModelList.hpp b/HanddleAI/HandleAiUi-new/handleAi/handleAiModelList.hpp index 1ba7dfdd..10f7fb3d 100644 --- a/HanddleAI/HandleAiUi-new/handleAi/handleAiModelList.hpp +++ b/HanddleAI/HandleAiUi-new/handleAi/handleAiModelList.hpp @@ -7,6 +7,9 @@ static void handleAiModelinitialization(handleAiModelManager*ptr) ptr->insertSegModelPath("ASR-Seg.BHD", 0); ptr->insertClsModelPath("ASR-Cls.BHD", 0); + ptr->insertSegModelPath("APEX-S-Seg.BHD", 0); + ptr->insertClsModelPath("APEX-S-Cls.BHD", 0); + ptr->insertDetModelPath("connectorDet.BHD", 0); } #pragma once \ No newline at end of file diff --git a/HanddleAI/HandleAiUi-new/main.cpp b/HanddleAI/HandleAiUi-new/main.cpp index 659ab3c9..1cb89108 100644 --- a/HanddleAI/HandleAiUi-new/main.cpp +++ b/HanddleAI/HandleAiUi-new/main.cpp @@ -17,7 +17,7 @@ #include #include -#include +#include #pragma region 绋嬪簭鍚姩鍔熻兘 bool appIsRuning() { @@ -169,6 +169,7 @@ int main(int argc, char* argv[]) if (appIsRuning() == false) exit(0); ////////// + cv::utils::logging::setLogLevel(cv::utils::logging::LOG_LEVEL_ERROR); qRegisterMetaType("imgWidgetShowType"); qRegisterMetaType("showImgPack"); qRegisterMetaType("matPtr"); 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