diff --git a/BaseModules/Hd_CameraModule_3DKeyence/Hd_CameraModule_3DKeyence.cpp b/BaseModules/Hd_CameraModule_3DKeyence/Hd_CameraModule_3DKeyence.cpp index 80ea953..dc48b58 100644 --- a/BaseModules/Hd_CameraModule_3DKeyence/Hd_CameraModule_3DKeyence.cpp +++ b/BaseModules/Hd_CameraModule_3DKeyence/Hd_CameraModule_3DKeyence.cpp @@ -138,23 +138,23 @@ void Hd_CameraModule_3DKeyence::LJXA_ACQ_CloseDevice(int lDeviceId) } -bool Hd_CameraModule_3DKeyence::decodeInitData(QByteArray byte,QVector &vector_data) +bool Hd_CameraModule_3DKeyence::decodeInitData(QByteArray byteArray,QVector &vector_data) { - while (!byte.isEmpty()) + while (!byteArray.isEmpty()) { int type = 0; - QByteArray m_type = byte.mid(0,4); + QByteArray m_type = byteArray.mid(0,4); memcpy((void*)&type,(void*)m_type.data(), 4); - byte.remove(0,4); + byteArray.remove(0,4); int len = 0; - QByteArray m_len = byte.mid(0,4); + QByteArray m_len = byteArray.mid(0,4); memcpy((void*)&len,(void*)m_len.data(), 4); - byte.remove(0,4); + byteArray.remove(0,4); - QByteArray mm_data = byte.mid(0,len); + QByteArray mm_data = byteArray.mid(0,len); vector_data.append(mm_data); - byte.remove(0,len); + byteArray.remove(0,len); } return true; } diff --git a/BaseModules/Hd_CameraModule_3DKeyence/Hd_CameraModule_3DKeyence.h b/BaseModules/Hd_CameraModule_3DKeyence/Hd_CameraModule_3DKeyence.h index 307d38f..8ac2539 100644 --- a/BaseModules/Hd_CameraModule_3DKeyence/Hd_CameraModule_3DKeyence.h +++ b/BaseModules/Hd_CameraModule_3DKeyence/Hd_CameraModule_3DKeyence.h @@ -59,7 +59,7 @@ public: //int LJXA_ACQ_AcquireAsync(int lDeviceId, unsigned short* heightImage, unsigned short* luminanceImage, LJXA_ACQ_SETPARAM* setParam, LJXA_ACQ_GETPARAM* getParam); void LJXA_ACQ_CloseDevice(int lDeviceId); - bool decodeInitData(QByteArray byte,QVector &vector_data); + bool decodeInitData(QByteArray byteArray,QVector &vector_data); bool InitHighSpeed(); private: //int LJXA_ACQ_Acquire(int lDeviceId, unsigned short* heightImage, unsigned short* luminanceImage, LJXA_ACQ_SETPARAM* setParam, LJXA_ACQ_GETPARAM* getParam); diff --git a/BaseModules/Hd_CameraModule_HIK_hard/Hd_CameraModule_HIK_hard.cpp b/BaseModules/Hd_CameraModule_HIK_hard/Hd_CameraModule_HIK_hard.cpp index eb17b0b..14449e0 100644 --- a/BaseModules/Hd_CameraModule_HIK_hard/Hd_CameraModule_HIK_hard.cpp +++ b/BaseModules/Hd_CameraModule_HIK_hard/Hd_CameraModule_HIK_hard.cpp @@ -1,6 +1,6 @@ #include "Hd_CameraModule_HIK_hard.h" #include - +using namespace std; #include QByteArray mv_Status = "connected";//0106 新增相机断联报警 long long index = 0; //相机序号 diff --git a/BaseModules/Hd_CameraModule_HIK_hard/Hd_CameraModule_HIK_hard.h b/BaseModules/Hd_CameraModule_HIK_hard/Hd_CameraModule_HIK_hard.h index 9a94ccd..9eeb7a7 100644 --- a/BaseModules/Hd_CameraModule_HIK_hard/Hd_CameraModule_HIK_hard.h +++ b/BaseModules/Hd_CameraModule_HIK_hard/Hd_CameraModule_HIK_hard.h @@ -12,7 +12,6 @@ #include "base.h" using namespace cv; -using namespace std; #pragma execution_character_set("utf-8") class Hd_CameraModule_HIK_hard :public Base diff --git a/BaseModules/Hd_CameraModule_HIK_hard_GenTL/Hd_CameraModule_HIK_hard_GenTL.cpp b/BaseModules/Hd_CameraModule_HIK_hard_GenTL/Hd_CameraModule_HIK_hard_GenTL.cpp index 5f3b95c..bb2f524 100644 --- a/BaseModules/Hd_CameraModule_HIK_hard_GenTL/Hd_CameraModule_HIK_hard_GenTL.cpp +++ b/BaseModules/Hd_CameraModule_HIK_hard_GenTL/Hd_CameraModule_HIK_hard_GenTL.cpp @@ -1,6 +1,6 @@ #include "Hd_CameraModule_HIK_hard_GenTL.h" #include - +using namespace std; #include QByteArray mv_Status = "connected";//0106 新增相机断联报警 long long index = 0; //相机序号 diff --git a/BaseModules/Hd_CameraModule_HIK_hard_GenTL/Hd_CameraModule_HIK_hard_GenTL.h b/BaseModules/Hd_CameraModule_HIK_hard_GenTL/Hd_CameraModule_HIK_hard_GenTL.h index 223066e..495d20c 100644 --- a/BaseModules/Hd_CameraModule_HIK_hard_GenTL/Hd_CameraModule_HIK_hard_GenTL.h +++ b/BaseModules/Hd_CameraModule_HIK_hard_GenTL/Hd_CameraModule_HIK_hard_GenTL.h @@ -12,7 +12,6 @@ #include "base.h" using namespace cv; -using namespace std; #pragma execution_character_set("utf-8") class Hd_CameraModule_HIK_hard_GenTL :public Base diff --git a/BaseModules/Hd_CameraModule_HIK_soft/Hd_CameraModule_HIK_soft.cpp b/BaseModules/Hd_CameraModule_HIK_soft/Hd_CameraModule_HIK_soft.cpp index 4b0736b..32eadac 100644 --- a/BaseModules/Hd_CameraModule_HIK_soft/Hd_CameraModule_HIK_soft.cpp +++ b/BaseModules/Hd_CameraModule_HIK_soft/Hd_CameraModule_HIK_soft.cpp @@ -1,5 +1,5 @@ #include "Hd_CameraModule_HIK_soft.h" - +using namespace std; #include #include #include diff --git a/BaseModules/Hd_CameraModule_HIK_soft/Hd_CameraModule_HIK_soft.h b/BaseModules/Hd_CameraModule_HIK_soft/Hd_CameraModule_HIK_soft.h index ddef7ab..51b82b9 100644 --- a/BaseModules/Hd_CameraModule_HIK_soft/Hd_CameraModule_HIK_soft.h +++ b/BaseModules/Hd_CameraModule_HIK_soft/Hd_CameraModule_HIK_soft.h @@ -18,7 +18,6 @@ #include "base.h" using namespace cv; -using namespace std; #pragma execution_character_set("utf-8") diff --git a/BaseModules/Hd_CameraModule_readImage/Hd_CameraModule_readImage.cpp b/BaseModules/Hd_CameraModule_readImage/Hd_CameraModule_readImage.cpp index b418753..b844f39 100644 --- a/BaseModules/Hd_CameraModule_readImage/Hd_CameraModule_readImage.cpp +++ b/BaseModules/Hd_CameraModule_readImage/Hd_CameraModule_readImage.cpp @@ -1,5 +1,5 @@ #include "Hd_CameraModule_readImage.h" - +using namespace std; #include //data == "rest_newProductIn"时要结束run;机台报警,取图超时,复位后重新拍的情况。 bool ifBreak = false; @@ -192,23 +192,23 @@ bool Hd_CameraModule_readImage::writeData(std::vector &mat,QByteArray & } //数据解析, -bool Hd_CameraModule_readImage::decodeInitData(QByteArray byte, QVector& vector_data) +bool Hd_CameraModule_readImage::decodeInitData(QByteArray byteArray, QVector& vector_data) { - /*while (!byte.isEmpty()) + /*while (!byteArray.isEmpty()) { int type = 0; - QByteArray m_type = byte.mid(0, 4); + QByteArray m_type = byteArray.mid(0, 4); memcpy((void*)&type, (void*)m_type.data(), 4); - byte.remove(0, 4); + byteArray.remove(0, 4); int len = 0; - QByteArray m_len = byte.mid(0, 4); + QByteArray m_len = byteArray.mid(0, 4); memcpy((void*)&len, (void*)m_len.data(), 4); - byte.remove(0, 4); + byteArray.remove(0, 4); - QByteArray mm_data = byte.mid(0, len); + QByteArray mm_data = byteArray.mid(0, len); vector_data.append(mm_data); - byte.remove(0, len); + byteArray.remove(0, len); }*/ return true; } diff --git a/BaseModules/Hd_CameraModule_readImage/Hd_CameraModule_readImage.h b/BaseModules/Hd_CameraModule_readImage/Hd_CameraModule_readImage.h index a9338d2..f21ba44 100644 --- a/BaseModules/Hd_CameraModule_readImage/Hd_CameraModule_readImage.h +++ b/BaseModules/Hd_CameraModule_readImage/Hd_CameraModule_readImage.h @@ -17,7 +17,6 @@ #include "base.h" using namespace cv; -using namespace std; #pragma comment(lib, "winmm.lib") #pragma execution_character_set("utf-8") @@ -42,7 +41,7 @@ public: //初始化 bool initParas(QByteArray&); bool run(); - bool decodeInitData(QByteArray byte, QVector& vector_data); + bool decodeInitData(QByteArray byteArray, QVector& vector_data); bool checkStatus(); private: int timeout_ms = 5000; diff --git a/BaseModules/Hd_LogicDll_module/Hd_LogicDll_module.cpp b/BaseModules/Hd_LogicDll_module/Hd_LogicDll_module.cpp index 4136f36..6931e2b 100644 --- a/BaseModules/Hd_LogicDll_module/Hd_LogicDll_module.cpp +++ b/BaseModules/Hd_LogicDll_module/Hd_LogicDll_module.cpp @@ -246,9 +246,9 @@ void Hd_LogicDll_module::processtask_sendTcpStatus(bool flag) { emit Logic_sendTcpStatus(flag); } -void Hd_LogicDll_module::processtask_writeData(QString key, QString cameraName, QString snInfo, QByteArray byte) +void Hd_LogicDll_module::processtask_writeData(QString key, QString cameraName, QString snInfo, QByteArray byteArray) { - emit Logic_writeData(key, cameraName, snInfo, byte); + emit Logic_writeData(key, cameraName, snInfo, byteArray); } void Hd_LogicDll_module::processtask_cameraDisconnect(QString msg, bool status) { diff --git a/BaseModules/Hd_LogicDll_module/Hd_LogicDll_module.h b/BaseModules/Hd_LogicDll_module/Hd_LogicDll_module.h index f5d5c7b..4693c8b 100644 --- a/BaseModules/Hd_LogicDll_module/Hd_LogicDll_module.h +++ b/BaseModules/Hd_LogicDll_module/Hd_LogicDll_module.h @@ -56,7 +56,7 @@ signals: void Logic_CommunicationDisconnect(QString msg, bool status); private slots: void processtask_sendTcpStatus(bool flag); - void processtask_writeData(QString key, QString cameraName, QString snInfo, QByteArray byte); + void processtask_writeData(QString key, QString cameraName, QString snInfo, QByteArray byteArray); void processtask_cameraDisconnect(QString msg, bool status); void processtask_CommunicationDisconnect(QString msg, bool status); }; diff --git a/BaseModules/Hd_LogicDll_module/Logic_camera_thread.cpp b/BaseModules/Hd_LogicDll_module/Logic_camera_thread.cpp index 4a414e6..f96fd8d 100644 --- a/BaseModules/Hd_LogicDll_module/Logic_camera_thread.cpp +++ b/BaseModules/Hd_LogicDll_module/Logic_camera_thread.cpp @@ -488,12 +488,12 @@ void Logic_camera_thread::setMutex(QMutex *mutex) m_mutex = new QMutex;// mutex; } -bool Logic_camera_thread::sendDataCommond( QString m_type,cv::Mat mat,QByteArray byte ) +bool Logic_camera_thread::sendDataCommond( QString m_type,cv::Mat mat,QByteArray byteArray ) { QMutexLocker locker(m_mutex); dataPack m_pack; m_pack.mat = mat; - m_pack.byte = byte; + m_pack.byteArray = byteArray; m_pack.retFlag = m_type; m_pack.cameraName = m_name; diff --git a/BaseModules/Hd_LogicDll_module/Logic_camera_thread.h b/BaseModules/Hd_LogicDll_module/Logic_camera_thread.h index 2d69138..24d5c51 100644 --- a/BaseModules/Hd_LogicDll_module/Logic_camera_thread.h +++ b/BaseModules/Hd_LogicDll_module/Logic_camera_thread.h @@ -17,7 +17,6 @@ #include #include #include -#include #include "struct.h" #include "Logic_hdataintegration.h" @@ -33,7 +32,7 @@ public: void setRunFlag(bool flag){ m_stoprun = flag; } void setMutex( QMutex *mutex); void setSaveImage( QString save){ m_saveImage = save;} - bool sendDataCommond(QString m_type,cv::Mat mat,QByteArray byte); + bool sendDataCommond(QString m_type,cv::Mat mat,QByteArray byteArray); bool runCameraModule(); bool saveImage(std::vector mat); //设置相机key、取图超时、模块、拍照面描述、触发方式 diff --git a/BaseModules/Hd_LogicDll_module/Logic_hdataintegration.cpp b/BaseModules/Hd_LogicDll_module/Logic_hdataintegration.cpp index 41bdf75..d853bf0 100644 --- a/BaseModules/Hd_LogicDll_module/Logic_hdataintegration.cpp +++ b/BaseModules/Hd_LogicDll_module/Logic_hdataintegration.cpp @@ -315,7 +315,7 @@ bool Logic_hdataintegration::triggerConditionList() //or检测:保存路径,拍照面描述,相机key_第几张图,SN_时间戳 //and检测:保存路径,拍照面描述,相机key_第几张图,相机key_第几张图,SN_时间戳,SN_时间戳 //汇总:保存路径,触发信号_序号列表0,,SN_时间戳 - detectData.byte = reaultDir.toLocal8Bit();// encodeData(vector_byte); // 结果汇总的数据编码 + detectData.byteArray = reaultDir.toLocal8Bit();// encodeData(vector_byte); // 结果汇总的数据编码 detectData.dstImageMat = vector_mats; // 不做图片汇总 detectData.Surface = Surface; algorithmData->addDetectData(detectData); @@ -356,7 +356,7 @@ bool Logic_hdataintegration::triggerConditionList() if (or_conditionFlag == false) continue; // 提取图片和数据 - QByteArray byte; // 传递算法数据的暂时做保留 + QByteArray byteArray; // 传递算法数据的暂时做保留 QStringList index_list; HCameraData* camera_ptr = station_list.value(m_stationKey)->getCameraData(key); /* stop = clock(); @@ -414,7 +414,7 @@ bool Logic_hdataintegration::triggerConditionList() else reaultDir += ",errSN_errDataTime"; - detectData.byte = reaultDir.toLocal8Bit();// encodeSnData(vec_snData); //type:3;len:数据长度;data:数据内容(SN+时间戳) + detectData.byteArray = reaultDir.toLocal8Bit();// encodeSnData(vec_snData); //type:3;len:数据长度;data:数据内容(SN+时间戳) //detectData.SN_dataTime = vec_snData; //可以用.byte来解析 detectData.Surface = m_cameraData.Surface; algorithmData->addDetectData(detectData); diff --git a/BaseModules/Hd_LogicDll_module/Logic_hdataprocess.cpp b/BaseModules/Hd_LogicDll_module/Logic_hdataprocess.cpp index d0833d1..368b59e 100644 --- a/BaseModules/Hd_LogicDll_module/Logic_hdataprocess.cpp +++ b/BaseModules/Hd_LogicDll_module/Logic_hdataprocess.cpp @@ -463,7 +463,7 @@ QByteArray HAlgorithmData::getAlgorithmData(QString SNdataTime,QString cameraNam { Algorithm_Result_Data value = algorithm_resultData_S[i]; algorithm_resultData_S.removeAt(i); - return value.byte; + return value.byteArray; } } } @@ -485,7 +485,7 @@ QByteArray HAlgorithmData::getAlgorithmData(QString SNdataTime,QString cameraNam QByteArray HAlgorithmData::getIndexData(Algorithm_Result_Data result_data, int result_index, QString algorithm_result_index) { - //qDebug() << __FUNCTION__ << " line: " << __LINE__ << " algorithmKey:" << algorithmKey << " cameraName_and_index: " << cameraName_and_index << " result_data.byte len:" << result_data.byte.length(); + //qDebug() << __FUNCTION__ << " line: " << __LINE__ << " algorithmKey:" << algorithmKey << " cameraName_and_index: " << cameraName_and_index << " result_data.byteArray len:" << result_data.byteArray.length(); Algorithm_Result_Data_index index_pack; if (map_delete_Result_index.keys().contains(result_data.key_index)) @@ -503,10 +503,10 @@ QByteArray HAlgorithmData::getIndexData(Algorithm_Result_Data result_data, int r QString cameraName = list.at(0); QString task_index = list.at(1); //Logic_taskthread运行算法/汇总模块后,返回的数据 - QByteArray byte = result_data.byte; + QByteArray byteArray = result_data.byteArray; //result_data.byte转 QByteArrayList vec_Data; - vec_Data = byte.split('#'); + vec_Data = byteArray.split('#'); if (vec_Data.isEmpty()) { @@ -520,7 +520,7 @@ QByteArray HAlgorithmData::getIndexData(Algorithm_Result_Data result_data, int r return index_byte; } - index_byte = vec_Data[algorithm_result_index.toInt()];// byte;// QByteArray::fromStdString(sendMsg); + index_byte = vec_Data[algorithm_result_index.toInt()];// byteArray;// QByteArray::fromStdString(sendMsg); // 删除map中的数据 if (vec_Data.size() == 1) @@ -619,7 +619,7 @@ bool HAlgorithmExecData::getDetectData(testData& picVec) picVec.cameraName = picVec1.cameraName; // 提取名称 picVec.task_index = picVec1.task_index; // 任务下标 - picVec.byte = picVec1.byte; + picVec.byteArray = picVec1.byteArray; for (int i = 0; i < m_detectData.head().dstImageMat.size(); i++) { cv::Mat img = cv::Mat(); @@ -810,7 +810,7 @@ void HStationData::addAlgorithmResultData(QString algorithmKey, QString index, Q } } Algorithm_Result_Data result_data; - result_data.byte = NG_data; + result_data.byteArray = NG_data; result_data.SN_dataTime = SN_datatime; if (algorithm_ptr) diff --git a/BaseModules/Hd_LogicDll_module/Logic_hdataprocess.h b/BaseModules/Hd_LogicDll_module/Logic_hdataprocess.h index 501e29e..dfe6033 100644 --- a/BaseModules/Hd_LogicDll_module/Logic_hdataprocess.h +++ b/BaseModules/Hd_LogicDll_module/Logic_hdataprocess.h @@ -22,7 +22,7 @@ typedef struct //or检测:保存路径,拍照面描述,相机key_第几张图,SN_时间戳 //and检测:保存路径,拍照面描述,相机key_第几张图,相机key_第几张图,SN_时间戳,SN_时间戳 //汇总:保存路径,触发信号_序号列表0,,SN_时间戳 - QByteArray byte; + QByteArray byteArray; std::vector dstImageMat; //拍照面描述 QString Surface; @@ -72,7 +72,7 @@ typedef struct { QString SN_dataTime; //SN+时间戳 QString key_index; //示例:key camera1_1,algorithm1 - QByteArray byte; // 存储算法结果数据 + QByteArray byteArray; // 存储算法结果数据 std::vector dstImageMat; // 存储算法结果图 }Algorithm_Result_Data; diff --git a/BaseModules/Hd_LogicDll_module/Logic_myiothread.cpp b/BaseModules/Hd_LogicDll_module/Logic_myiothread.cpp index f19710e..dfe1a49 100644 --- a/BaseModules/Hd_LogicDll_module/Logic_myiothread.cpp +++ b/BaseModules/Hd_LogicDll_module/Logic_myiothread.cpp @@ -201,8 +201,8 @@ void Logic_myiothread::run() if (!m_heartCmd.isEmpty()) {// 发送心跳 ////QMutexLocker locker(m_iomutex);; - QByteArray byte = m_heartCmd.toUtf8(); // 设置 从起始位开始读取的指令 - if (!finstcp_ptr->writeData(vec_mat, byte)) + QByteArray byteArray = m_heartCmd.toUtf8(); // 设置 从起始位开始读取的指令 + if (!finstcp_ptr->writeData(vec_mat, byteArray)) { qCritical() << __FUNCTION__ << "line:" << __LINE__ << " finstcp_ptr reciveData error!"; } @@ -217,8 +217,8 @@ void Logic_myiothread::run() { // 修改读取多个命令 //QMutexLocker locker(m_iomutex);; - QByteArray byte = readAll_cmd.toUtf8(); // 设置 从起始位开始读取的指令 - if (!finstcp_ptr->writeData(vec_mat, byte)) + QByteArray byteArray = readAll_cmd.toUtf8(); // 设置 从起始位开始读取的指令 + if (!finstcp_ptr->writeData(vec_mat, byteArray)) { qCritical() << __FUNCTION__ << "line:" << __LINE__ << " finstcp_ptr reciveData error!"; } @@ -296,7 +296,7 @@ void Logic_myiothread::run() dataPack m_data; m_data.algorithmName = "程序号"; m_data.cameraName = m_startpos; - m_data.byte = QByteArray::number(vec_value.at(trigger_index)); + m_data.byteArray = QByteArray::number(vec_value.at(trigger_index)); m_data.retFlag = "algorithm"; QMutexLocker locker(sendProcess_mutex); @@ -362,8 +362,8 @@ void Logic_myiothread::reciveCommond() // 修改读取多个命令 //QMutexLocker locker ( m_iomutex ); m_iomutex->lock(); - QByteArray byte = readAll_cmd.toUtf8(); // 设置 从起始位开始读取的指令 - if ( !finstcp_ptr->writeData(vec_mat,byte) ) + QByteArray byteArray = readAll_cmd.toUtf8(); // 设置 从起始位开始读取的指令 + if ( !finstcp_ptr->writeData(vec_mat,byteArray) ) { qCritical() << __FUNCTION__ << "line:"<< __LINE__ << " finstcp_ptr reciveData error!"; } @@ -387,17 +387,17 @@ void Logic_myiothread::reciveCommond() } // 读取多个命令信息的解析 -void Logic_myiothread::decodeCameraCMD(QByteArray byte) +void Logic_myiothread::decodeCameraCMD(QByteArray byteArray) { - if (byte.isEmpty()) + if (byteArray.isEmpty()) return; - readsnByte = byte; + readsnByte = byteArray; vec_value.clear(); - while ( !byte.isEmpty() ) + while ( !byteArray.isEmpty() ) { - QByteArray retByte = byte.mid(0,2); - byte.remove(0,2); + QByteArray retByte = byteArray.mid(0,2); + byteArray.remove(0,2); QString msg = retByte.toHex(); int number_tmp = msg.toInt(NULL,16); @@ -426,7 +426,7 @@ void Logic_myiothread::decodeCameraCMD(QByteArray byte) //SN逻辑 // "读SN信号"满足时,代表新料来了,安装"清理容器数据"-"相机列表"及"通道序号"清理对应的容器; //SN保存到容器HSnData;下料的SN,根据"汇总-触发信号"、"汇总-读哪个SN"匹配Logic_hdataintegration,并保存SN到变量; -void Logic_myiothread::readSnInfo(QVector vec_value, QByteArray byte) +void Logic_myiothread::readSnInfo(QVector vec_value, QByteArray byteArray) { QStringList keys = map_sn_area_array.keys(); //重新加载用 @@ -566,7 +566,7 @@ void Logic_myiothread::readSnInfo(QVector vec_value, QByteArray byte) for (int aaa = 0; aaa < read_datatime_list.size(); aaa++) { //SN为""时,返回配置文件的read_sn_error_send_format值 - QString datatime = getSn(read_sn_error_send_format, read_datatime_list[aaa].toString(), byte); + QString datatime = getSn(read_sn_error_send_format, read_datatime_list[aaa].toString(), byteArray); qDebug() << __FUNCTION__ << " line: " << __LINE__ << " channel_index: " << channel_index << " read_datatime_list: " << datatime; //sn_value = snHex(sn_value); // sn方向相反,重新做转换 @@ -638,7 +638,7 @@ void Logic_myiothread::readSnInfo(QVector vec_value, QByteArray byte) for (int aaa = 0; aaa < read_sn_list.size(); aaa++) { //SN为""时,返回配置文件的read_sn_error_send_format值 - QString sn_value = getSn(read_sn_error_send_format, read_sn_list[aaa].toString(), byte); + QString sn_value = getSn(read_sn_error_send_format, read_sn_list[aaa].toString(), byteArray); qDebug() << __FUNCTION__ << " line: " << __LINE__ << " channel_index: " << channel_index << " sn_value: " << sn_value; //sn_value = snHex(sn_value); // sn方向相反,重新做转换 //异常 @@ -873,7 +873,7 @@ QString Logic_myiothread::snHex(QString sn) return resultStr; } //SN为""时,返回配置文件的"读SN异常-插值" -QString Logic_myiothread::getSn(QString errorinfo,QString area,QByteArray byte) +QString Logic_myiothread::getSn(QString errorinfo,QString area,QByteArray byteArray) { QString m_startpos = area.split("_")[0]; QString lenght = area.split("_")[1]; @@ -881,7 +881,7 @@ QString Logic_myiothread::getSn(QString errorinfo,QString area,QByteArray byte) int start_index = m_startpos.mid(1,m_startpos.length()-1).toInt(); start_index -= trigger_startpos; - QByteArray snByte = byte.mid(start_index*2,lenght.toInt()); + QByteArray snByte = byteArray.mid(start_index*2,lenght.toInt()); QString sn = snByte; if ( sn.contains("\n\r") ) diff --git a/BaseModules/Hd_LogicDll_module/Logic_processtask.cpp b/BaseModules/Hd_LogicDll_module/Logic_processtask.cpp index f7995d0..3c66f5c 100644 --- a/BaseModules/Hd_LogicDll_module/Logic_processtask.cpp +++ b/BaseModules/Hd_LogicDll_module/Logic_processtask.cpp @@ -2,6 +2,7 @@ #include "qfuture.h" #include #include +#include s //总相机线程类列表 QList camerathreadlist; @@ -121,10 +122,18 @@ bool Logic_processtask::check_cmeraCfg(QJsonObject obj, QString& allMessage) int allFailNum = 0; //QString allMessage; if (myQString.isEmpty()) - allMessage += "第 " + QString::number(allFailNum++) + "条 :保存图片总文件夹,为空\r\n"; + { + //allMessage += "第 " + QString::number(allFailNum++) + "条 :保存图片总文件夹,为空\r\n"; + allMessage += "第 " + QString::number(allFailNum) + "条 :保存图片总文件夹为空但已创建\r\n"; + fileManager::createDirectoryIfNotExists(myQString.toStdString()); + } QDir dir(myQString); if (!dir.exists()) - allMessage += "第 " + QString::number(allFailNum++) + "条 :保存图片总文件夹:" + myQString + " 不存在\r\n"; + { + //allMessage += "第 " + QString::number(allFailNum) + "条 :保存图片总文件夹:" + myQString + " 不存在\r\n"; + allMessage += "第 " + QString::number(allFailNum) + "条 :保存图片总文件夹:" + myQString + " 不存在但已创建\r\n"; + fileManager::createDirectoryIfNotExists(myQString.toStdString()); + } myQString = m_jsonObj.value("数据保存天数").toString(); if (myQString.toInt() <= 0) allMessage += "第 " + QString::number(allFailNum++) + "条 :数据保存天数,值错误\r\n"; @@ -2519,7 +2528,7 @@ void Logic_processtask::reciveImageData() QString algorithmName = m_data.algorithmName; QString retFlag = m_data.retFlag; QString sendNgInfo = m_data.sendNgInfo; - QByteArray m_byte = m_data.byte; + QByteArray m_byte = m_data.byteArray; if (snInfo.isEmpty()) Sleep(1); // 传递图片 diff --git a/BaseModules/Hd_LogicDll_module/Logic_taskthread.cpp b/BaseModules/Hd_LogicDll_module/Logic_taskthread.cpp index a96fa71..55023b0 100644 --- a/BaseModules/Hd_LogicDll_module/Logic_taskthread.cpp +++ b/BaseModules/Hd_LogicDll_module/Logic_taskthread.cpp @@ -153,7 +153,7 @@ bool Logic_taskthread::processTask() //汇总:保存路径,拍照面描述,触发信号_序号列表0,,SN_时间戳 //m_data.byte //std::cout << "camera_name_index[0]::" << camera_name_index[0].toStdString() << std::endl; - AlgorithmModuleProcessData(m_module.module_key, camera_name_index, m_data.dstImageMat, m_data.byte); + AlgorithmModuleProcessData(m_module.module_key, camera_name_index, m_data.dstImageMat, m_data.byteArray); m_ptr->deleteDetectData(); /*stop = clock(); qDebug() << "m_module.module_key::" << m_module.module_key << " Logic_taskthread cut Time ::" << stop - start ; @@ -322,14 +322,14 @@ bool Logic_taskthread::sendDataToModule(QVector camera_name_index, std: return true; } -QString Logic_taskthread::getSnDataInfo ( QByteArray byte ) +QString Logic_taskthread::getSnDataInfo ( QByteArray byteArray ) { - if ( byte.isEmpty() ) + if ( byteArray.isEmpty() ) return nullptr; else { QByteArrayList vec_ret; - if ( decodeAiValue( byte, vec_ret ) ) + if ( decodeAiValue( byteArray, vec_ret ) ) { if ( !vec_ret.isEmpty() ) { @@ -342,7 +342,7 @@ QString Logic_taskthread::getSnDataInfo ( QByteArray byte ) //添加数据到最前面 -bool Logic_taskthread::encodeAppendData(QVector append_value, QByteArray &byte) +bool Logic_taskthread::encodeAppendData(QVector append_value, QByteArray &byteArray) { try { @@ -370,13 +370,13 @@ bool Logic_taskthread::encodeAppendData(QVector append_value, QByteArra } resultByte = QByteArray::fromStdString(sendMsg); - if (byte.isEmpty()) + if (byteArray.isEmpty()) { - byte = resultByte; + byteArray = resultByte; } else { - byte = resultByte.append(byte); + byteArray = resultByte.append(byteArray); } } catch (QString ev) @@ -387,30 +387,30 @@ bool Logic_taskthread::encodeAppendData(QVector append_value, QByteArra return true; } -bool Logic_taskthread::decodereciveValue(QByteArray byte, QVector& vec_ret) +bool Logic_taskthread::decodereciveValue(QByteArray byteArray, QVector& vec_ret) { - while (!byte.isEmpty()) + while (!byteArray.isEmpty()) { int type = 0; - QByteArray m_type = byte.mid(0, 4); + QByteArray m_type = byteArray.mid(0, 4); memcpy((void*)&type, (void*)m_type.data(), 4); - byte.remove(0, 4); + byteArray.remove(0, 4); int len = 0; - QByteArray m_len = byte.mid(0, 4); + QByteArray m_len = byteArray.mid(0, 4); memcpy((void*)&len, (void*)m_len.data(), 4); - byte.remove(0, 4); + byteArray.remove(0, 4); - QByteArray mm_data = byte.mid(0, len); + QByteArray mm_data = byteArray.mid(0, len); vec_ret.append(mm_data); - byte.remove(0, len); + byteArray.remove(0, len); } return false; } //保存算法结果数据到容器 -bool Logic_taskthread::saveAlgorithmData(testData m_testdata, int index, QByteArray byte) +bool Logic_taskthread::saveAlgorithmData(testData m_testdata, int index, QByteArray byteArray) { //for (int i = 0; i < m_testdata.cameraName.size(); i++) { @@ -418,7 +418,7 @@ bool Logic_taskthread::saveAlgorithmData(testData m_testdata, int index, QByteAr QString task_index = m_testdata.task_index[index]; Algorithm_Result_Data result_data; - result_data.byte = byte; + result_data.byteArray = byteArray; if (m_testdata.SN_dataTime.size()) result_data.SN_dataTime = m_testdata.SN_dataTime[0]; //这里暂时只取了第一个SN;即一张图对应一个SN;一张图里有2个产品的情况,应该在回调函数放两次图 @@ -482,14 +482,14 @@ bool Logic_taskthread::sendCatchCommond(QVector camera_name_index) } -bool Logic_taskthread::decodeAiValue(QByteArray byte, QByteArrayList &vec_ret) +bool Logic_taskthread::decodeAiValue(QByteArray byteArray, QByteArrayList &vec_ret) { - if(byte.isEmpty()) + if(byteArray.isEmpty()) { qCritical() << __FUNCTION__ << "line:" << __LINE__ << " byte is null!"; return false; } - vec_ret = byte.split('#'); + vec_ret = byteArray.split('#'); return true; } @@ -566,7 +566,7 @@ bool Logic_taskthread::writeTcpData(QMap key_value) QByteArray Logic_taskthread::writeFormat(QString startPos, QVector vector_value) { - QByteArray byte; + QByteArray byteArray; QString write_format; // 其他格式 按照 长度+数据写入 进行编码 @@ -584,11 +584,11 @@ QByteArray Logic_taskthread::writeFormat(QString startPos, QVector vect write_format = startPos + "_" + sendData; else write_format = sendData; - byte = write_format.toLocal8Bit(); - return byte; + byteArray = write_format.toLocal8Bit(); + return byteArray; } //保存结果图到容器并UI显示;发送结果数据给PLC -bool Logic_taskthread::sendDataCommond( QString m_type, QVector camera_name_index, std::vector mat,QByteArray byte ) +bool Logic_taskthread::sendDataCommond( QString m_type, QVector camera_name_index, std::vector mat,QByteArray byteArray) { // 界面显示包 QMutexLocker locker(m_image_lock); @@ -625,7 +625,7 @@ bool Logic_taskthread::sendDataCommond( QString m_type, QVector camera_ } } - if (!byte.contains("null")) + if (!byteArray.contains("null")) { foreach(QString send_usual_result, m_send_usual_result.vector_algorithm_usual_feedback_plcpos) { @@ -644,15 +644,15 @@ bool Logic_taskthread::sendDataCommond( QString m_type, QVector camera_ if (save_data_flag == "true") { //保存算法结果数据到容器 - saveAlgorithmData(m_exec_testData, ci, byte); + saveAlgorithmData(m_exec_testData, ci, byteArray); } // 发送检测模块的结果到PLC if (send_data_flag == "true") { - QString sbyte = byte; + QString sbyte = byteArray; //发送数据给PLC - if (!writeAiCommond(m_name, camera_name_index[ci], byte)) + if (!writeAiCommond(m_name, camera_name_index[ci], byteArray)) { qCritical() << __FUNCTION__ << " line:" << __LINE__ << " ---- writeAiCommond is failed!"<<" byte,"<< sbyte; } @@ -663,7 +663,7 @@ bool Logic_taskthread::sendDataCommond( QString m_type, QVector camera_ send_ng_info.clear(); //汇总算法删除,检测算法不删。 //获取第一组sn;//获取次数是sn容器长度的倍数时,删一个数据 - bool ifdeleSn = deleteSnData(byte, sndata, send_ng_info); + bool ifdeleSn = deleteSnData(byteArray, sndata, send_ng_info); //汇总算法 // 传递给界面用来显示产品的sn码 @@ -694,7 +694,7 @@ bool Logic_taskthread::sendDataCommond( QString m_type, QVector camera_ // cv::resize(mat[ci], mat[ci], cv::Size(), 0.5, 0.5); //图像大时(内存、cpu占用大),耗时长。 m_pack.mat = mat[ci].clone(); } - m_pack.byte = byte; + m_pack.byteArray = byteArray; m_pack.retFlag = m_type; if (!queue_exec_cameraName.isEmpty()) @@ -752,7 +752,7 @@ bool Logic_taskthread::getdataPack(dataPack& myDataPack) else return false; } //汇总算法,删除SN,所有相机线程的snIndex减一 -bool Logic_taskthread::deleteSnData ( QByteArray byte, QVector& sndata,QString &send_ng_info) +bool Logic_taskthread::deleteSnData ( QByteArray byteArray, QVector& sndata,QString &send_ng_info) { // 读取sn区域的位置下标;只在汇总算法有,检测算法无 QString read_sn_area_index = m_sn_set_object.value("汇总-读哪个上料通道的SN").toString(); @@ -808,9 +808,9 @@ bool Logic_taskthread::deleteSnData ( QByteArray byte, QVector& sndata, } // 算法结果 写入plc -bool Logic_taskthread::writeAiCommond ( QString cameraName,QString camera_name_index,QByteArray byte ) +bool Logic_taskthread::writeAiCommond ( QString cameraName,QString camera_name_index,QByteArray byteArray ) { - QByteArrayList PLCvec_ret= byte.split('*'); // 存储结果的 + QByteArrayList PLCvec_ret= byteArray.split('*'); // 存储结果的 if (PLCvec_ret.isEmpty() ) { diff --git a/BaseModules/Hd_LogicDll_module/Logic_taskthread.h b/BaseModules/Hd_LogicDll_module/Logic_taskthread.h index 319f285..ba62d63 100644 --- a/BaseModules/Hd_LogicDll_module/Logic_taskthread.h +++ b/BaseModules/Hd_LogicDll_module/Logic_taskthread.h @@ -30,19 +30,19 @@ public: bool processTask();//循环取检测数据,传到检测模块运行 bool appendPlcCmd(QJsonObject); bool sendCatchCommond(QVector camera_name_index); - bool sendDataCommond( QString m_type, QVector camera_name_index, std::vector mat,QByteArray byte ); - bool saveAlgorithmData ( testData m_testdata,int index,QByteArray byte); - bool writeAiCommond(QString cameraName,QString camera_name_index,QByteArray byte); + bool sendDataCommond( QString m_type, QVector camera_name_index, std::vector mat,QByteArray byteArray ); + bool saveAlgorithmData ( testData m_testdata,int index,QByteArray byteArray); + bool writeAiCommond(QString cameraName,QString camera_name_index,QByteArray byteArray); bool writeTcpData(QMap map); - bool decodeAiValue(QByteArray byte, QByteArrayList&vec_ret); - bool AlgorithmModuleProcessData(QString key, QVector camera_name_index,std::vector camera_mat,QByteArray byte); // 处理数据 - bool deleteSnData( QByteArray byte,QVector &sndata,QString &send_ng_info); // 获取sn码,然后删除容器中的SN码,第三个参数是表示是否发送界面显示NG信息 - bool sendDataToModule(QVector name, std::vector vector_mat,QByteArray byte); - bool encodeAppendData(QVector append_value,QByteArray& byte); - bool decodereciveValue(QByteArray byte, QVector& vec_ret); + bool decodeAiValue(QByteArray byteArray, QByteArrayList&vec_ret); + bool AlgorithmModuleProcessData(QString key, QVector camera_name_index,std::vector camera_mat,QByteArray byteArray); // 处理数据 + bool deleteSnData( QByteArray byteArray,QVector &sndata,QString &send_ng_info); // 获取sn码,然后删除容器中的SN码,第三个参数是表示是否发送界面显示NG信息 + bool sendDataToModule(QVector name, std::vector vector_mat,QByteArray byteArray); + bool encodeAppendData(QVector append_value,QByteArray& byteArray); + bool decodereciveValue(QByteArray byteArray, QVector& vec_ret); QVector getWriteVector(QString& startPos, QMap& map); QByteArray writeFormat(QString startPos, QVector vector_value); // 写入的起始位置,写入的内容+长度 - QString getSnDataInfo(QByteArray byte); + QString getSnDataInfo(QByteArray byteArray); bool setmySaveImagethreadIndex(int i) { mysaveimagethreadindex = i; diff --git a/BaseModules/Hd_LogicDll_module/rlib/fileManager.h b/BaseModules/Hd_LogicDll_module/rlib/fileManager.h new file mode 100644 index 0000000..9e76f03 --- /dev/null +++ b/BaseModules/Hd_LogicDll_module/rlib/fileManager.h @@ -0,0 +1,393 @@ +//#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class fileManager +{ +public: + static QString openFolderDialog() + { + QString folderPath = QFileDialog::getExistingDirectory( + nullptr, + "Select Folder", + QDir::homePath(), // 默认路径,可以根据需要更改 + QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); + + if (!folderPath.isEmpty()) { + // 用户选择了文件夹 + qDebug() << "Selected Folder: " << folderPath; + } + else { + // 用户取消了选择 + qDebug() << "Folder selection canceled."; + } + + return folderPath; + } + /// + /// 获取所有文件夹 + /// + /// + /// + static std::vector getAllDirs(const QString& folderPath) + { + std::vector foldersVec; + QDir folderDir(folderPath); + if (!folderDir.exists()) { + return foldersVec; + } + + QStringList folders = folderDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); + + for (const QString& folder : folders) { + foldersVec.push_back(folder.toStdString()); + } + return foldersVec; + } + /// + /// 获取文件夹下格式的文件,以vector返回 + /// + /// + /// + /// + static void getAllFiles(std::string path, std::vector& files, std::string format, int targetDepth = INT_MAX, int depth = 0) + { + if (depth >= targetDepth) + return; + intptr_t hFile = 0; + struct _finddata_t fileinfo; + std::string p; + if ((hFile = _findfirst(p.assign(path).append("\\*" + format).c_str(), &fileinfo)) != -1) + { + do + { + if ((fileinfo.attrib & _A_SUBDIR)) + { + if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0) + { + files.push_back(p.assign(path).append("\\").append(fileinfo.name)); + depth++; + getAllFiles(p.assign(path).append("\\").append(fileinfo.name), files, format, targetDepth ,depth); + } + } + else + { + files.push_back(p.assign(path).append("\\").append(fileinfo.name)); + } + } while (_findnext(hFile, &fileinfo) == 0); + _findclose(hFile); + } + } + /// + /// 获取文件夹下的图片,以vector返回 + /// + /// + /// + /// + static void getAllImages(std::string path, std::vector& files, std::string format, int targetDepth = INT_MAX, int depth = 0) + { + if (depth >= targetDepth) + return; + intptr_t hFile = 0; + struct _finddata_t fileinfo; + std::string p; + if ((hFile = _findfirst(p.assign(path).append("\\*" + format).c_str(), &fileinfo)) != -1) + { + do + { + if ((fileinfo.attrib & _A_SUBDIR)) + { + if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0) + { + std::string filePath = p.assign(path).append("\\").append(fileinfo.name); + if (fileManager::isImageFile(filePath) == true) + files.push_back(filePath); + depth++; + getAllImages(filePath, files, format, targetDepth, depth); + } + } + else + { + std::string filePath = p.assign(path).append("\\").append(fileinfo.name); + if (fileManager::isImageFile(filePath) == true) + files.push_back(filePath); + } + } while (_findnext(hFile, &fileinfo) == 0); + _findclose(hFile); + } + } + /// + /// 检查磁盘剩余空间,以GB为单位返回 + /// + /// example"E://""E://111/222"支持文件夹或者磁盘路径 + /// + static int getDriveFreeSpaceAsGb(const QString& folderPath) { + QStorageInfo storageInfo(folderPath); + + if (storageInfo.isValid() && storageInfo.isReady()) { + return storageInfo.bytesAvailable() / 1073741824; + } + + return -1; // Indicate failure to retrieve disk space + } + /// + /// 检查磁盘剩余空间,以Mb为单位返回 + /// + /// example"E://""E://111/222"支持文件夹或者磁盘路径 + /// + static int getDriveFreeSpaceAsMb(const QString& folderPath) { + QStorageInfo storageInfo(folderPath); + + if (storageInfo.isValid() && storageInfo.isReady()) { + return storageInfo.bytesAvailable() / 1048576; + } + + return -1; // Indicate failure to retrieve disk space + } + /// + /// 返回最老创建时间文件夹名 + /// + /// + /// + static QString getOldestDir(const QString& folderPath) + { + std::string oldestDir; + QDateTime oldestTime; + std::vector files= getAllDirs(folderPath); + for (auto file : files) + { + QFileInfo fileInfo(QString::fromStdString(folderPath.toStdString() + "//" + file)); + QDateTime fileTime = fileInfo.created(); + QString str = fileInfo.created().toString(); + std::cout << "Current date and time: " << str.toStdString() << std::endl; + if (oldestTime.isNull() || fileTime < oldestTime) + { + oldestTime = fileTime; + oldestDir = file; + } + } + return QString::fromStdString(oldestDir); + } + /// + /// 删除最老创建时间文件夹 + /// + /// + /// + static bool deleteOldestDir(const QString& folderPath) + { + QString oldestDir =getOldestDir(folderPath); + if (oldestDir.isEmpty()) + return false; + oldestDir= folderPath+ "//" + oldestDir; + QDir dir(oldestDir); + dir.removeRecursively(); + return true; + } + /// + /// 删除最老子文件夹 + /// + /// + /// + static bool deleteOldestSonDir(const QString& folderPath) + { + QString oldestDir = getOldestDir(folderPath); + if (oldestDir.isEmpty()) + return false; + oldestDir = folderPath + "//" + oldestDir; + deleteOldestDir(oldestDir); + if (getAllDirs(oldestDir).size() == 0)//删除后文件夹为空,删除父文件夹 + { + QDir dir(oldestDir); + dir.removeRecursively(); + } + return true; + } + /// + /// 删除几天前的所有文件夹 + /// + /// + /// + /// + static bool deleteDirBeforeDays(const QString& folderPath, int day) + { + std::vector files=getAllDirs(folderPath); + for (auto file : files) + { + QFileInfo fileInfo(QString::fromStdString(file)); + QDateTime fileTime = fileInfo.created(); + QDateTime nowTime = QDateTime::currentDateTime(); + if (fileTime.daysTo(nowTime) > day) + { + QDir dir(QString::fromStdString(file)); + dir.removeRecursively(); + } + } + return true; + } + //去除重复分割符 + static QString normalizePathSeparators(const QString& path) { + QString normalizedPath = path; + + // Replace backslashes with forward slashes + normalizedPath.replace('\\', '/'); + + // Remove consecutive forward slashes + QString doubleSlash = "//"; + while (normalizedPath.contains(doubleSlash)) { + normalizedPath.replace(doubleSlash, "/"); + } + + return normalizedPath; + } + + static bool isImageFile(const std::string& filename) { + const std::string imageExtensions[] = { ".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tiff", ".webp" }; + + std::string lowerFilename = filename; + std::transform(lowerFilename.begin(), lowerFilename.end(), lowerFilename.begin(), [](unsigned char c) { return std::tolower(c); }); + + for (const std::string& ext : imageExtensions) { + if (lowerFilename.size() >= ext.size() && + lowerFilename.compare(lowerFilename.size() - ext.size(), ext.size(), ext) == 0) { + return true; + } + } + + return false; + } + static std::string getFileName(std::string path) + { + if (path.find("\\") != std::string::npos) + return path.substr(path.find_last_of("\\") + 1, path.find_last_of(".") - path.find_last_of("\\") - 1); + return path.substr(path.find_last_of("/") + 1, path.find_last_of(".") - path.find_last_of("/") - 1); + } + static QString getFileName(const QString& path) { + int lastSlashIndex = path.lastIndexOf('/'); + if (lastSlashIndex == -1) { + lastSlashIndex = path.lastIndexOf('\\'); + } + + int lastDotIndex = path.lastIndexOf('.'); + + if (lastDotIndex == -1 || lastDotIndex < lastSlashIndex) { + return path.mid(lastSlashIndex + 1); + } + else { + return path.mid(lastSlashIndex + 1, lastDotIndex - lastSlashIndex - 1); + } + } + //统一地址分隔符 + static QString normalizePathStr(const QString& address, QChar targetSeparator = '/') { + QString normalizedAddress = address; + for (int i = 0; i < normalizedAddress.size(); ++i) { + if (normalizedAddress[i] == '\\' || normalizedAddress[i] == '/') { + normalizedAddress[i] = targetSeparator; + } + } + return normalizedAddress; + } + //统一地址分隔符 + static std::string normalizePathStr(const std::string& address, char targetSeparator = '/') { + std::string normalizedAddress = address; + for (char& ch : normalizedAddress) { + if (ch == '\\' || ch == '/') { + ch = targetSeparator; + } + } + return normalizedAddress; + } + static void createDirectoryIfNotExists(const std::string& path) { + // 检查路径是否存在 + if (!std::filesystem::exists(path)) { + // 创建路径 + + std::filesystem::create_directories(path); + //std::cout << "已创建文件夹: " << path << std::endl; + } + else {/* + std::cout << "文件夹已存在: " << path << std::endl;*/ + } + } + static bool setFileReadOnly(const std::string& filePath, bool readOnly); +}; +/// +/// 自动删除文件夹,支持按日期删除,按磁盘剩余容量删除,或者两者都是,请在主线程声明qtimer +/// +class autoDelete : public QThread +{ + Q_OBJECT +public: + enum clearMode + { + dayBefore, + sizeOver, + sizeOverOrDayBefore, + }; + /// + /// 构造函数 + /// + /// 文件夹路径 + /// 删除几天前的,磁盘剩余容量小于多少,两者都是 + /// 检测间隔如果只检测日期建议设大一点,如果只检测磁盘容量建议设小一点,默认十分钟 + autoDelete(QString path,clearMode mode,QTimer *timer) + { + detPath = path; + detMode = mode; + connect(timer, &QTimer::timeout, this, [=]() {this->run(); }); + } + ~autoDelete() + { + + } + void run() override + { + exacute(); + } + void exacute() + { + switch (detMode) + { + case dayBefore://删除几天前的 + fileManager::deleteDirBeforeDays(detPath, daySet); + break; + case sizeOver://磁盘剩余容量小于多少 + if (fileManager::getDriveFreeSpaceAsGb(detPath) < sizeSet) + fileManager::deleteOldestSonDir(detPath);//删除最老的文件夹 + break; + case sizeOverOrDayBefore://两者都是 + if (fileManager::getDriveFreeSpaceAsGb(detPath) < sizeSet)//磁盘剩余容量小于多少 + fileManager::deleteOldestDir(detPath);//删除最老的文件夹 + fileManager::deleteDirBeforeDays(detPath, daySet);//同时删除几天前的 + break; + default: + qDebug() << "none mode det"; + break; + } + } + void setDay(int day) + { + daySet = day; + } + void setSize(int size) + { + sizeSet = size; + } +private: + QString detPath; + clearMode detMode; + int daySet = 15;//天 + int sizeSet = 30;//GB + int threadInterval = 0;//ms +}; + +#pragma once diff --git a/BaseModules/Hd_LogicDll_module/struct.h b/BaseModules/Hd_LogicDll_module/struct.h index 411eb58..fa6b2e4 100644 --- a/BaseModules/Hd_LogicDll_module/struct.h +++ b/BaseModules/Hd_LogicDll_module/struct.h @@ -49,7 +49,7 @@ typedef struct { QString snInfo = ""; QString sendNgInfo = ""; // -3 工位上检测到前面几个算法有NG后,做的反馈信息 cv::Mat mat; - QByteArray byte = ""; + QByteArray byteArray = ""; }dataPack; diff --git a/BaseModules/Hd_LogicDll_module/test.h b/BaseModules/Hd_LogicDll_module/test.h index 1f8eb9f..b80fa73 100644 --- a/BaseModules/Hd_LogicDll_module/test.h +++ b/BaseModules/Hd_LogicDll_module/test.h @@ -21,8 +21,6 @@ using namespace HalconCpp; -using namespace std; - cv::Mat GetOneImages(cv::Mat& oriImg, cv::Mat& oriImg2) { int width = oriImg.cols; diff --git a/BaseModules/Hd_SocketModule_FinsTcp/Hd_SocketModule_FinsTcp.h b/BaseModules/Hd_SocketModule_FinsTcp/Hd_SocketModule_FinsTcp.h index 8c3d755..9421de2 100644 --- a/BaseModules/Hd_SocketModule_FinsTcp/Hd_SocketModule_FinsTcp.h +++ b/BaseModules/Hd_SocketModule_FinsTcp/Hd_SocketModule_FinsTcp.h @@ -15,7 +15,6 @@ #using "../../bin/HslCommunication.dll" using namespace HslCommunication; -using namespace std; using namespace cli; class Hd_SocketModule_FinsTcp :public Base @@ -28,7 +27,7 @@ public: bool writeData(std::vector& vec_mat, QByteArray& data); // writeData调用PLC的收发,将需要的数据发给寄存器,返回OK/NG bool initParas(QByteArray&); bool run(); - bool decodeWriteResult(QByteArray byte, QVector& vec_ret); + bool decodeWriteResult(QByteArray byteArray, QVector& vec_ret); bool checkStatus(); private: gcroot* m_pFinsTcpNet = new gcroot; diff --git a/CMakeLists.txt b/CMakeLists.txt index 8bb846f..bf04e17 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,10 @@ project(handdleai VERSION 0.1.0) string(TIMESTAMP RUN_TIME) message( " project start : " ${RUN_TIME}) +set(CMAKE_AUTOMOC ON) +SET(CMAKE_AUTOUIC ON) +set(CMAKE_AUTORCC ON) + set(CMAKE_DISABLE_IN_SOURCE_BUILD ON) set(CMAKE_DISABLE_SOURCE_CHANGES ON) @@ -34,7 +38,17 @@ if(NE_DEVELOPER_DEFAULTS) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/lib") SET(PROJECT_ROOT_PATH ${PROJECT_SOURCE_DIR}) endif() - +if (MSVC_VERSION GREATER_EQUAL "1900") + include(CheckCXXCompilerFlag) + CHECK_CXX_COMPILER_FLAG("/std:c++17" _cpp_latest_flag_supported) + if (_cpp_latest_flag_supported) + add_compile_options("/std:c++17") + else() + message(WARNING "Compiler does not support C++17 standard.") + endif() +else() + message(WARNING "MSVC version is not supported.") +endif() ################## # 获取默认库路径 # 记录 // include // lib // 子文件夹名 diff --git a/HanddleAI/CMakeLists.txt b/HanddleAI/CMakeLists.txt index 62181f2..7e139b4 100644 --- a/HanddleAI/CMakeLists.txt +++ b/HanddleAI/CMakeLists.txt @@ -7,7 +7,9 @@ SUBDIRENAMES(OUR_LIBS ${CMAKE_CURRENT_SOURCE_DIR} "" OFF) message("OUR_LIBS :" ${OUR_LIBS}) # 遍历子库 foreach(dll ${OUR_LIBS}) - add_subdirectory(${dll}) + if(EXISTS ${dll}/CMakeLists.txt) + add_subdirectory(${dll}) + endif() endforeach(dll ${}) @@ -44,7 +46,6 @@ foreach(item ${qtlist}) list(APPEND lib_list Qt5::${item}) endforeach() - FILE(GLOB HEAD_FILES "./*.h" ) FILE(GLOB SRC_FILES "./*.cpp") FILE(GLOB UI_FILES "./*.ui") @@ -58,18 +59,23 @@ if(ANDROID) ${HEAD_FILES} ${SRC_FILES} ${UI_FILES} + ${RLIB_HEAD_FILES} ) else() if(CMAKE_BUILD_TYPE MATCHES "Debug") add_executable( ${CURRENT_FOLDER} - ${HEAD_FILES} + ${UI_FILES} ${SRC_FILES} - ${UI_FILES}) + ${UI_FILES} + ${RLIB_HEAD_FILES} + ) else() add_executable( ${CURRENT_FOLDER} ${HEAD_FILES} ${SRC_FILES} - ${UI_FILES}) + ${UI_FILES} + ${RLIB_HEAD_FILES} + ) endif() endif() diff --git a/HanddleAI/Logic_transfer.cpp b/HanddleAI/Logic_transfer.cpp index 06c5089..edaeffb 100644 --- a/HanddleAI/Logic_transfer.cpp +++ b/HanddleAI/Logic_transfer.cpp @@ -3,7 +3,7 @@ #include "qfuture.h" #include "QtConcurrent/qtconcurrent" #include "qmessagebox.h" - +#include QMutex log_mutex; void LogMsgOutput(QtMsgType type, const QMessageLogContext& context, const QString& msg) diff --git a/HanddleAI/Logic_transfer.h b/HanddleAI/Logic_transfer.h index ca1bf6b..abbd8c2 100644 --- a/HanddleAI/Logic_transfer.h +++ b/HanddleAI/Logic_transfer.h @@ -1,7 +1,7 @@ #pragma once //通用逻辑接口 #include "base_Logic.h" - +#include //无法用信号槽传递图像? //返回图片的结构体 struct showImgStruct @@ -19,7 +19,6 @@ typedef void (*ReleaseFunction)(base_Logic* animal); class Logic_transfer : public base_Logic { Q_OBJECT - public: Logic_transfer(); ~Logic_transfer(); diff --git a/HanddleAI/QtCameraDebug.cpp b/HanddleAI/QtCameraDebug.cpp index 712d590..6ceb0fc 100644 --- a/HanddleAI/QtCameraDebug.cpp +++ b/HanddleAI/QtCameraDebug.cpp @@ -760,7 +760,7 @@ bool QtCameraDebug::initCamera(int cameraIndex) } -bool QtCameraDebug::setData(int cameraIndex, const vector& ImgS, const QStringList& data) +bool QtCameraDebug::setData(int cameraIndex, const std::vector& ImgS, const QStringList& data) { if (queue_MyPbGlobalObject.size() <= cameraIndex + 1) return false; diff --git a/HanddleAI/QtCameraDebug.h b/HanddleAI/QtCameraDebug.h index 0fb201e..bc307ab 100644 --- a/HanddleAI/QtCameraDebug.h +++ b/HanddleAI/QtCameraDebug.h @@ -33,7 +33,7 @@ public: bool initCamera(int cameraIndex); //4、设置 //参数:相机序号、图像参数(不使用)、设置的相机参数 - bool setData(int cameraIndex, const vector&, const QStringList&); + bool setData(int cameraIndex, const std::vector&, const QStringList&); //5、获取数据 //参数:相机序号、获取的图像、获取的数据(实际无) bool data(int cameraIndex, std::vector&, QStringList&); diff --git a/HanddleAI/QtDefectSet.cpp b/HanddleAI/QtDefectSet.cpp index 6d4cfd8..a5ca679 100644 --- a/HanddleAI/QtDefectSet.cpp +++ b/HanddleAI/QtDefectSet.cpp @@ -21,7 +21,6 @@ ////OPT //#include "OPTApi.h" //OPT和海康有部分名称一样,OPT时使用海康 //#pragma comment(lib,"./OPTSDK.lib") -using namespace std; QtDefectSet::QtDefectSet(QMainWindow*parent) : QMainWindow(parent) { diff --git a/HanddleAI/QtDefectSet.h b/HanddleAI/QtDefectSet.h index d687a64..96328a9 100644 --- a/HanddleAI/QtDefectSet.h +++ b/HanddleAI/QtDefectSet.h @@ -9,7 +9,6 @@ #include #include #include -#include #include #include #include "QHeaderView.h" diff --git a/HanddleAI/Qt_epWindow.cpp b/HanddleAI/Qt_epWindow.cpp index 93699fc..d5830b8 100644 --- a/HanddleAI/Qt_epWindow.cpp +++ b/HanddleAI/Qt_epWindow.cpp @@ -1716,9 +1716,9 @@ void Qt_epWindow::showDefectData() QStringList offLineCameraKeyS; -void Qt_epWindow::getTransferData(QString key, QString cameraName, QString snInfo, QByteArray byte) +void Qt_epWindow::getTransferData(QString key, QString cameraName, QString snInfo, QByteArray byteArray) { - QString myByte = byte; + QString myByte = byteArray; //ui.plainTextEdit->appendPlainText("key: " + key + " cameraName:" + cameraName + " snInfo:" + snInfo + " myByte:" + myByte + " sendNgInfo:" + sendNgInfo); //qApp->processEvents(); @@ -2070,7 +2070,7 @@ void Qt_epWindow::getTransferData(QString key, QString cameraName, QString snInf { QString mycameraKey_cName_index = cameraKey_cName_surface[i][j]; QString mykey_index = mycameraKey_cName_index.split("#")[0] + "_" + mycameraKey_cName_index.split("#")[1].split("_")[1]; - if (cameraName == mykey_index && !byte.contains("1"))//匹配结果,1OK,2NG + if (cameraName == mykey_index && !byteArray.contains("1"))//匹配结果,1OK,2NG { /*QTableWidgetItem* m_Item2 = new QTableWidgetItem; m_Item2->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); diff --git a/HanddleAI/Qt_epWindow.h b/HanddleAI/Qt_epWindow.h index 559f8dc..d4a2291 100644 --- a/HanddleAI/Qt_epWindow.h +++ b/HanddleAI/Qt_epWindow.h @@ -39,7 +39,7 @@ //struct LogListStruct //{ -// QString key, QString cameraName, QString snInfo, QByteArray byte +// QString key, QString cameraName, QString snInfo, QByteArray byteArray //}; struct QPieSeriesData diff --git a/HanddleAI/base_Logic.h b/HanddleAI/base_Logic.h index e6839fa..7cc30ae 100644 --- a/HanddleAI/base_Logic.h +++ b/HanddleAI/base_Logic.h @@ -1,4 +1,4 @@ -#ifndef __base_Logic_H__ +#ifndef __base_Logic_H__ #define __base_Logic_H__ #include @@ -56,8 +56,8 @@ public: virtual bool sendPLC(QString cmd) { return true; } virtual bool reLoadJsonSetParameter(QStringList moduleKeyList) { return true; } signals: - virtual void Logic_sendTcpStatus(bool); - virtual void Logic_writeData(QString, QString, QString, QByteArray); + virtual void Logic_sendTcpStatus(bool) ; + virtual void Logic_writeData(QString, QString, QString, QByteArray) ; virtual void Logic_cameraDisconnect(QString msg, bool status); virtual void Logic_CommunicationDisconnect(QString msg, bool status); private slots: diff --git a/HanddleAI/moc_base_Logic.cpp b/HanddleAI/moc_base_Logic.cpp new file mode 100644 index 0000000..58eb840 --- /dev/null +++ b/HanddleAI/moc_base_Logic.cpp @@ -0,0 +1,222 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'base_Logic.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.14.2) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "base_Logic.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'base_Logic.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.14.2. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_base_Logic_t { + QByteArrayData data[14]; + char stringdata0[255]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_base_Logic_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_base_Logic_t qt_meta_stringdata_base_Logic = { + { +QT_MOC_LITERAL(0, 0, 10), // "base_Logic" +QT_MOC_LITERAL(1, 11, 19), // "Logic_sendTcpStatus" +QT_MOC_LITERAL(2, 31, 0), // "" +QT_MOC_LITERAL(3, 32, 15), // "Logic_writeData" +QT_MOC_LITERAL(4, 48, 22), // "Logic_cameraDisconnect" +QT_MOC_LITERAL(5, 71, 3), // "msg" +QT_MOC_LITERAL(6, 75, 6), // "status" +QT_MOC_LITERAL(7, 82, 29), // "Logic_CommunicationDisconnect" +QT_MOC_LITERAL(8, 112, 21), // "processtask_sendImage" +QT_MOC_LITERAL(9, 134, 7), // "cv::Mat" +QT_MOC_LITERAL(10, 142, 25), // "processtask_sendTcpStatus" +QT_MOC_LITERAL(11, 168, 21), // "processtask_writeData" +QT_MOC_LITERAL(12, 190, 28), // "processtask_cameraDisconnect" +QT_MOC_LITERAL(13, 219, 35) // "processtask_CommunicationDisc..." + + }, + "base_Logic\0Logic_sendTcpStatus\0\0" + "Logic_writeData\0Logic_cameraDisconnect\0" + "msg\0status\0Logic_CommunicationDisconnect\0" + "processtask_sendImage\0cv::Mat\0" + "processtask_sendTcpStatus\0" + "processtask_writeData\0" + "processtask_cameraDisconnect\0" + "processtask_CommunicationDisconnect" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_base_Logic[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 9, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 4, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 1, 59, 2, 0x06 /* Public */, + 3, 4, 62, 2, 0x06 /* Public */, + 4, 2, 71, 2, 0x06 /* Public */, + 7, 2, 76, 2, 0x06 /* Public */, + + // slots: name, argc, parameters, tag, flags + 8, 2, 81, 2, 0x08 /* Private */, + 10, 1, 86, 2, 0x08 /* Private */, + 11, 4, 89, 2, 0x08 /* Private */, + 12, 2, 98, 2, 0x08 /* Private */, + 13, 2, 103, 2, 0x08 /* Private */, + + // signals: parameters + QMetaType::Void, QMetaType::Bool, 2, + QMetaType::Void, QMetaType::QString, QMetaType::QString, QMetaType::QString, QMetaType::QByteArray, 2, 2, 2, 2, + QMetaType::Void, QMetaType::QString, QMetaType::Bool, 5, 6, + QMetaType::Void, QMetaType::QString, QMetaType::Bool, 5, 6, + + // slots: parameters + QMetaType::Void, QMetaType::QString, 0x80000000 | 9, 2, 2, + QMetaType::Void, QMetaType::Bool, 2, + QMetaType::Void, QMetaType::QString, QMetaType::QString, QMetaType::QString, QMetaType::QByteArray, 2, 2, 2, 2, + QMetaType::Void, QMetaType::QString, QMetaType::Bool, 5, 6, + QMetaType::Void, QMetaType::QString, QMetaType::Bool, 5, 6, + + 0 // eod +}; + +void base_Logic::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + Q_UNUSED(_t) + switch (_id) { + case 0: _t->Logic_sendTcpStatus((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 1: _t->Logic_writeData((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2])),(*reinterpret_cast< QString(*)>(_a[3])),(*reinterpret_cast< QByteArray(*)>(_a[4]))); break; + case 2: _t->Logic_cameraDisconnect((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break; + case 3: _t->Logic_CommunicationDisconnect((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break; + case 4: _t->processtask_sendImage((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< cv::Mat(*)>(_a[2]))); break; + case 5: _t->processtask_sendTcpStatus((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 6: _t->processtask_writeData((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2])),(*reinterpret_cast< QString(*)>(_a[3])),(*reinterpret_cast< QByteArray(*)>(_a[4]))); break; + case 7: _t->processtask_cameraDisconnect((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break; + case 8: _t->processtask_CommunicationDisconnect((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (base_Logic::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&base_Logic::Logic_sendTcpStatus)) { + *result = 0; + return; + } + } + { + using _t = void (base_Logic::*)(QString , QString , QString , QByteArray ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&base_Logic::Logic_writeData)) { + *result = 1; + return; + } + } + { + using _t = void (base_Logic::*)(QString , bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&base_Logic::Logic_cameraDisconnect)) { + *result = 2; + return; + } + } + { + using _t = void (base_Logic::*)(QString , bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&base_Logic::Logic_CommunicationDisconnect)) { + *result = 3; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject base_Logic::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_base_Logic.data, + qt_meta_data_base_Logic, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *base_Logic::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *base_Logic::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_base_Logic.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int base_Logic::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 9) + qt_static_metacall(this, _c, _id, _a); + _id -= 9; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 9) + *reinterpret_cast(_a[0]) = -1; + _id -= 9; + } + return _id; +} + +// SIGNAL 0 +void base_Logic::Logic_sendTcpStatus(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void base_Logic::Logic_writeData(QString _t1, QString _t2, QString _t3, QByteArray _t4) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))), const_cast(reinterpret_cast(std::addressof(_t3))), const_cast(reinterpret_cast(std::addressof(_t4))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void base_Logic::Logic_cameraDisconnect(QString _t1, bool _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void base_Logic::Logic_CommunicationDisconnect(QString _t1, bool _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 3, _a); +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/HanddleAI/modules/Hd_AI_empty_module/Hd_AI_empty_module.cpp b/HanddleAI/modules/Hd_AI_empty_module/Hd_AI_empty_module.cpp index 48a5f96..3827322 100644 --- a/HanddleAI/modules/Hd_AI_empty_module/Hd_AI_empty_module.cpp +++ b/HanddleAI/modules/Hd_AI_empty_module/Hd_AI_empty_module.cpp @@ -486,12 +486,12 @@ bool Hd_AI_empty_module::writeData(std::vector& vec_mat, QByteArray &da //传入initParas函数,格式为:相机key+参数名1#参数值1#参数值2+参数名2#参数值1... //初始化 -bool Hd_AI_empty_module::initParas(QByteArray& byte) +bool Hd_AI_empty_module::initParas(QByteArray& byteArray) { - QByteArrayList valueList = byte.split('+'); + QByteArrayList valueList = byteArray.split('+'); QStringList valueiList; - if (byte.contains("onlySetParameter")) + if (byteArray.contains("onlySetParameter")) { qDebug() << __FUNCTION__ << " line:" << __LINE__ << "onlySetParameter,valueList[0]:" << valueList[0]; if (valueList.size() > 1) @@ -543,37 +543,37 @@ bool Hd_AI_empty_module::initParas(QByteArray& byte) return true; } // 解码 -bool Hd_AI_empty_module::decodeAiValue(QByteArray byte,QVector &vec_ret) +bool Hd_AI_empty_module::decodeAiValue(QByteArray byteArray,QVector &vec_ret) { - if(byte.isEmpty()) + if(byteArray.isEmpty()) { - qCritical() << "[Error] " << " byte is null!"; + qCritical() << "[Error] " << " byteArray is null!"; return false; } /*******************************************/ - byte.remove(0,8); - QByteArray mm_data = byte.mid(0,4); + byteArray.remove(0,8); + QByteArray mm_data = byteArray.mid(0,4); memcpy((void*)¶mNum,(void*)mm_data.data(), 4); qDebug() << "[INFO] " << " paramNum:" << paramNum; - byte.remove(0,4); + byteArray.remove(0,4); /*******************************************/ - while (!byte.isEmpty()) + while (!byteArray.isEmpty()) { int type = 0; - QByteArray m_type = byte.mid(0,4); + QByteArray m_type = byteArray.mid(0,4); memcpy((void*)&type,(void*)m_type.data(), 4); - byte.remove(0,4); + byteArray.remove(0,4); int len = 0; - QByteArray m_len = byte.mid(0,4); + QByteArray m_len = byteArray.mid(0,4); memcpy((void*)&len,(void*)m_len.data(), 4); - byte.remove(0,4); + byteArray.remove(0,4); - QByteArray mm_data = byte.mid(0,len); + QByteArray mm_data = byteArray.mid(0,len); vec_ret.append(mm_data); - byte.remove(0,len); + byteArray.remove(0,len); } return true; } diff --git a/HanddleAI/modules/Hd_AI_seg_module/Hd_AI_seg_module.cpp b/HanddleAI/modules/Hd_AI_seg_module/Hd_AI_seg_module.cpp index 4795055..9c104e0 100644 --- a/HanddleAI/modules/Hd_AI_seg_module/Hd_AI_seg_module.cpp +++ b/HanddleAI/modules/Hd_AI_seg_module/Hd_AI_seg_module.cpp @@ -388,16 +388,16 @@ bool Hd_AI_seg_module::writeData(std::vector& vec_mat, QByteArray &data return true; } //初始化 -bool Hd_AI_seg_module::initParas(QByteArray& byte) +bool Hd_AI_seg_module::initParas(QByteArray& byteArray) { - //if(byte.isEmpty()) + //if(byteArray.isEmpty()) //{ - // qCritical() << "[Error] " << " byte is null!"; + // qCritical() << "[Error] " << " byteArray is null!"; // return false; //} //QVector vec_ret; - //decodeAiValue(byte,vec_ret); + //decodeAiValue(byteArray,vec_ret); //if(vec_ret.isEmpty()) //{ // qCritical() << "[Error] " << " vec_ret is null!"; @@ -451,37 +451,37 @@ bool Hd_AI_seg_module::initParas(QByteArray& byte) return true; } // 解码 -bool Hd_AI_seg_module::decodeAiValue(QByteArray byte,QVector &vec_ret) +bool Hd_AI_seg_module::decodeAiValue(QByteArray byteArray,QVector &vec_ret) { - if(byte.isEmpty()) + if(byteArray.isEmpty()) { - qCritical() << "[Error] " << " byte is null!"; + qCritical() << "[Error] " << " byteArray is null!"; return false; } /*******************************************/ - byte.remove(0,8); - QByteArray mm_data = byte.mid(0,4); + byteArray.remove(0,8); + QByteArray mm_data = byteArray.mid(0,4); memcpy((void*)¶mNum,(void*)mm_data.data(), 4); qDebug() << "[INFO] " << " paramNum:" << paramNum; - byte.remove(0,4); + byteArray.remove(0,4); /*******************************************/ - while (!byte.isEmpty()) + while (!byteArray.isEmpty()) { int type = 0; - QByteArray m_type = byte.mid(0,4); + QByteArray m_type = byteArray.mid(0,4); memcpy((void*)&type,(void*)m_type.data(), 4); - byte.remove(0,4); + byteArray.remove(0,4); int len = 0; - QByteArray m_len = byte.mid(0,4); + QByteArray m_len = byteArray.mid(0,4); memcpy((void*)&len,(void*)m_len.data(), 4); - byte.remove(0,4); + byteArray.remove(0,4); - QByteArray mm_data = byte.mid(0,len); + QByteArray mm_data = byteArray.mid(0,len); vec_ret.append(mm_data); - byte.remove(0,len); + byteArray.remove(0,len); } return true; } diff --git a/HanddleAI/modules/Hd_AI_seg_module/Hd_AI_seg_module.h b/HanddleAI/modules/Hd_AI_seg_module/Hd_AI_seg_module.h index 5d4fdc4..4b81977 100644 --- a/HanddleAI/modules/Hd_AI_seg_module/Hd_AI_seg_module.h +++ b/HanddleAI/modules/Hd_AI_seg_module/Hd_AI_seg_module.h @@ -53,7 +53,7 @@ public: bool checkStatus();// { return true; }; bool encodeResultValue(QVector append_value,QByteArray &resultByte); - bool decodeAiValue(QByteArray byte,QVector &vec_ret); + bool decodeAiValue(QByteArray byteArray,QVector &vec_ret); //---------检测流程,根据实际项目修改--------- bool AIdetect(cv::Mat img2D, QString saveKey, QString Dir2D, QString SN, QString DataTime); diff --git a/HanddleAI/pbglobalobject.h b/HanddleAI/pbglobalobject.h index 7f67cab..942e926 100644 --- a/HanddleAI/pbglobalobject.h +++ b/HanddleAI/pbglobalobject.h @@ -1,11 +1,10 @@ -#ifndef PBGLOBALOBJECT_H +#ifndef PBGLOBALOBJECT_H #define PBGLOBALOBJECT_H #include #include #include -using namespace std; //type对应的相机、触发方式 #define HIK_Hard 0 //海康 @@ -39,7 +38,7 @@ public: virtual QMap parameters() = 0; virtual bool init() { return true; } - virtual bool setData(const vector &, const QStringList &) { return true; } + virtual bool setData(const std::vector &, const QStringList &) { return true; } virtual bool data(std::vector &, QStringList &) { return true; } public: //大类 diff --git a/env/base_UI/include/Logic_transfer.cpp b/env/base_UI/include/Logic_transfer.cpp index 40eb7ef..72ad814 100644 --- a/env/base_UI/include/Logic_transfer.cpp +++ b/env/base_UI/include/Logic_transfer.cpp @@ -164,8 +164,8 @@ Logic_transfer::Logic_transfer() { showMutex = new QMutex; ifRuntransfer = true; - //ͨÓÃÂ߼­½ӿÚ - //¼ÓÔØÂ߼­dll + //ͨ���߼��ӿ� + //�����߼�dll QLibrary* m_lib = new QLibrary("Hd_LogicDll_module.dll"); bool flag = m_lib->load(); if (!m_lib->isLoaded()) @@ -185,20 +185,20 @@ Logic_transfer::Logic_transfer() Logic_ptr = createFun(); destory_Logic = releaseFun; - //¼ÓÔز¢¼ì²éÅäÖÃÎļþ£ºbin/camera_cfg.json + //���ز���������ļ���bin/camera_cfg.json //m_jsonObj =load_camera_cfg(); //check_cmeraCfg(); //Logic_ptr->setJsonObject(m_jsonObj); - //ÐźÅÓë²Û + //�ź���� if(Logic_ptr) { - //connect(Logic_ptr, SIGNAL(Logic_sendImage(QString, cv::Mat)), this, SLOT(base_Logic_sendImage(QString, cv::Mat))); // ´«µÝͼƬ - connect(Logic_ptr, SIGNAL(Logic_writeData(QString, QString, QString, QByteArray, QString)), this, SLOT(base_Logic_writeData(QString, QString, QString, QByteArray, QString)));// ´«µÝÊý¾Ý + //connect(Logic_ptr, SIGNAL(Logic_sendImage(QString, cv::Mat)), this, SLOT(base_Logic_sendImage(QString, cv::Mat))); // ����ͼƬ + connect(Logic_ptr, SIGNAL(Logic_writeData(QString, QString, QString, QByteArray, QString)), this, SLOT(base_Logic_writeData(QString, QString, QString, QByteArray, QString)));// �������� QFuturemuf = QtConcurrent::run(this, &Logic_transfer::check_sendImgStruct); } } } Sleep(50); - //×Զ¯дLogÈÕ־¹¦Äܣ»bin/Log + //�Զ�дLog��־���ܣ�bin/Log qInstallMessageHandler(LogMsgOutput); } @@ -210,12 +210,12 @@ void Logic_transfer::check_sendImgStruct() //if (Logic_ptr->queue_sendImgStruct.size() > 0) if (Logic_ptr->get_sendImgStruct(myS)) { - //QMutexLocker locker(sendImgStructMutex); // ¼ÓËø + //QMutexLocker locker(sendImgStructMutex); // ���� //sendImgStruct mS; //mS.send_Mat = myL.send_Mat; //mS.cameraKey_index = myL.cameraKey_index; - ////¶ѻýÁˣ¬ֻÏÔʾ×îÐµÄ + ////�ѻ��ˣ�ֻ��ʾ���µ� //for (int i = 0; i < queue_sendImgStruct.size(); i++) // if (myL.cameraKey_index == queue_sendImgStruct[i].cameraKey_index) // { @@ -235,7 +235,7 @@ void Logic_transfer::check_sendImgStruct() } bool Logic_transfer::getShowQImage(QQueue< showImgStruct>& my_showImgStruct) { - QMutexLocker locker(showMutex); // ¼ÓËø + QMutexLocker locker(showMutex); // ���� //showImgStruct mS; if (queue_showImgStruct.size() > 0) { @@ -251,24 +251,24 @@ void Logic_transfer::base_Logic_sendImage(QString key, cv::Mat mtx) try { if (!mtx.empty()) { - if ((mtx.dataend - mtx.datastart) != mtx.cols * mtx.rows * mtx.channels()) //³¢ÊÔÄܷñ½â¾ömtxÄÚÈÝÒ쳣ÎÊÌâ + if ((mtx.dataend - mtx.datastart) != mtx.cols * mtx.rows * mtx.channels()) //�����ܷ���mtx�����쳣���� { - qCritical() << __FUNCTION__ << " line:" << __LINE__ << " mtx.dataend - mtx.datastart err£¡£¡:"; + qCritical() << __FUNCTION__ << " line:" << __LINE__ << " mtx.dataend - mtx.datastart err����:"; return;// false; } cv::Mat rgb; //while (mtx.cols > 2000 || mtx.rows > 2000) - // cv::resize(mtx, mtx, cv::Size(), 0.1, 0.1); //³ÔcpuÐÔÄܣ¬i7 8700£¬4800*4800µÄresizeºÄʱ100ms£»QImage*µÄscaledËõ·ţ¬ºÄʱ200ms + // cv::resize(mtx, mtx, cv::Size(), 0.1, 0.1); //��cpu���ܣ�i7 8700��4800*4800��resize��ʱ100ms��QImage*��scaled���ţ���ʱ200ms QImage* itemImage = nullptr; if (mtx.type() == CV_8UC1) { - rgb = mtx.clone(); //mtx.data¼ì²éºó£¬ֻÓÐ2¸öÊý¾ݣ¬clone±ÀÀ£ + rgb = mtx.clone(); //mtx.data����ֻ��2�����ݣ�clone���� itemImage = new QImage(QSize(rgb.cols, rgb.rows), QImage::Format_Grayscale8); QImage qim((const unsigned char*)rgb.data, rgb.cols, rgb.rows, rgb.step, QImage::Format_Grayscale8); *itemImage = qim.copy(); } - else if (mtx.type() == CV_16U) // ˫ͨµÀתµ¥ͨµÀÏÔʾ + else if (mtx.type() == CV_16U) // ˫ͨ��ת��ͨ����ʾ { cv::normalize(mtx, mtx, 0, 255, cv::NORM_MINMAX); cv::convertScaleAbs(mtx, rgb); @@ -292,12 +292,12 @@ void Logic_transfer::base_Logic_sendImage(QString key, cv::Mat mtx) } //emit LogicTransfer_sendImage(key, itemImage); - QMutexLocker locker(showMutex); // ¼ÓËø + QMutexLocker locker(showMutex); // ���� showImgStruct mS; mS.show_QImage = itemImage; mS.cameraKey_index = key; - ////¶ѻýÁˣ¬ֻÏÔʾ×îÐµÄ + ////�ѻ��ˣ�ֻ��ʾ���µ� //for (int i = 0; i < queue_showImgStruct.size(); i++) // if (key == queue_showImgStruct[i].cameraKey_index) // { @@ -321,7 +321,7 @@ Logic_transfer::~Logic_transfer() ifRuntransfer = false; Sleep(100); - //ͨÓÃÂ߼­½ӿÚ + //ͨ���߼��ӿ� destory_Logic(Logic_ptr); } @@ -330,9 +330,9 @@ void Logic_transfer::base_Logic_sendTcpStatus(bool flag) { emit LogicTransfer_sendTcpStatus(flag); } -void Logic_transfer::base_Logic_writeData(QString key, QString cameraName, QString snInfo, QByteArray byte, QString sendNgInfo) +void Logic_transfer::base_Logic_writeData(QString key, QString cameraName, QString snInfo, QByteArray byteArray, QString sendNgInfo) { - emit LogicTransfer_writeData(key, cameraName, snInfo, byte, sendNgInfo); + emit LogicTransfer_writeData(key, cameraName, snInfo, byteArray, sendNgInfo); } void Logic_transfer::base_Logic_cameraDisconnect(QString msg, bool status) { diff --git a/env/base_UI/include/Logic_transfer.h b/env/base_UI/include/Logic_transfer.h index 56f95f5..95064b2 100644 --- a/env/base_UI/include/Logic_transfer.h +++ b/env/base_UI/include/Logic_transfer.h @@ -1,13 +1,13 @@ #pragma once -//ͨÓÃÂ߼­½ӿÚ +//ͨ���߼��ӿ� #include "base_Logic.h" -//Î޷¨ÓÃÐźŲ۴«µÝͼÏñ£¿ -//·µ»ØͼƬµĽṹÌå +//�޷����źŲ۴���ͼ�� +//����ͼƬ�Ľṹ�� struct showImgStruct { - QImage* show_QImage; //·µ»صÄͼÏñ - QString cameraKey_index; //¹ؼü×Ö_ÐòºÅ + QImage* show_QImage; //���ص�ͼ�� + QString cameraKey_index; //�ؼ���_��� }; typedef base_Logic* (*CreateFunction)(); @@ -77,7 +77,7 @@ public: QMutex* showMutex; QQueue< showImgStruct> queue_showImgStruct; bool getShowQImage(QQueue< showImgStruct>&); - //Äڲ¿ʹÓà + //�ڲ�ʹ�� private: QString currPath; @@ -85,11 +85,11 @@ private: QJsonObject m_jsonObj; base_Logic* Logic_ptr; - ReleaseFunction destory_Logic = nullptr; //ÊͷÅ + ReleaseFunction destory_Logic = nullptr; //�ͷ� void check_sendImgStruct(); - //¶ÔÍâ½ӿÚ + //����ӿ� signals: void LogicTransfer_sendImage(QString, QImage*); void LogicTransfer_sendTcpStatus(bool); @@ -99,7 +99,7 @@ signals: private slots: void base_Logic_sendImage(QString key, cv::Mat mtx); void base_Logic_sendTcpStatus(bool flag); - void base_Logic_writeData(QString key, QString cameraName, QString snInfo, QByteArray byte, QString sendNgInfo); + void base_Logic_writeData(QString key, QString cameraName, QString snInfo, QByteArray byteArray, QString sendNgInfo); void base_Logic_cameraDisconnect(QString msg, bool status); void base_Logic_CommunicationDisconnect(QString msg, bool status); }; diff --git a/env/base_UI/include/base_Logic.h b/env/base_UI/include/base_Logic.h index 862ff24..e9089cf 100644 --- a/env/base_UI/include/base_Logic.h +++ b/env/base_UI/include/base_Logic.h @@ -19,7 +19,6 @@ #include #include "qimage.h" #include -#include #include #include #include diff --git a/env/myTools/include/myTools.h b/env/myTools/include/myTools.h index 63c5d89..f960081 100644 --- a/env/myTools/include/myTools.h +++ b/env/myTools/include/myTools.h @@ -10,7 +10,6 @@ #include #include #include -using namespace std; using namespace cv;