基础代码更新

This commit is contained in:
rci
2024-09-27 15:54:51 +08:00
parent 845c8f3e7f
commit 4837ca2bde
293 changed files with 320 additions and 79155 deletions
@@ -1,4 +1,4 @@
#include "Hd_CameraModule_3DKeyence.h"
#include "Hd_CameraModule_3DKeyence.h"
#include <exception>
#include <QTextCodec>
@@ -6,16 +6,16 @@
#include <qmutex.h>
const int MAX_LJXA_XDATANUM = 3200;
const unsigned int BUFFER_FULL_COUNT = 30000;
int _imageAvailable[MAX_LJXA_DEVICENUM] = { 0 };
unsigned short* _luminanceBuf[MAX_LJXA_DEVICENUM] = { 0 };
unsigned short* _heightBuf[MAX_LJXA_DEVICENUM] = { 0 };
int _lastImageSizeHeight[MAX_LJXA_DEVICENUM];
//const int MAX_LJXA_XDATANUM = 3200;
//const unsigned int BUFFER_FULL_COUNT = 30000;
//
//int _imageAvailable[MAX_LJXA_DEVICENUM] = { 0 };
//unsigned short* _luminanceBuf[MAX_LJXA_DEVICENUM] = { 0 };
//unsigned short* _heightBuf[MAX_LJXA_DEVICENUM] = { 0 };
//int _lastImageSizeHeight[MAX_LJXA_DEVICENUM];
int imgIndex = 0;
QMutex* m_mutex;
QMutex* m_mutex=nullptr;
QQueue< cv::Mat> heightMatS;//高度图
QQueue<cv::Mat> luminanceMatS;//灰度图
//data == "rest_newProductIn"时要结束run;机台报警,取图超时,复位后重新拍的情况。
@@ -334,62 +334,63 @@ bool Hd_CameraModule_3DKeyence::initParas(QByteArray& initData)
if (getImageTimeOut < 50)
getImageTimeOut = 1000;
}*/
if (valueList[i].contains("ip"))
QString valuei = byteArrayToUnicode(valueList[i]);
if (valuei.contains("ip"))
{
//ip#192.168.0.1
QByteArrayList valueL = valueList[i].split('#');
QStringList valueL = valuei.split("#");
if (valueL.size() == 2)
{
QByteArrayList valueL1 = valueL[1].split('.');
QStringList valueL1 = valueL[1].split(".");
if (valueL1.size() == 4)
{
EthernetConfig.abyIpAddress[0] = valueL.at(0).toInt();
EthernetConfig.abyIpAddress[1] = valueL.at(1).toInt();
EthernetConfig.abyIpAddress[2] = valueL.at(2).toInt();
EthernetConfig.abyIpAddress[3] = valueL.at(3).toInt();
EthernetConfig.abyIpAddress[0] = valueL1.at(0).toInt();
EthernetConfig.abyIpAddress[1] = valueL1.at(1).toInt();
EthernetConfig.abyIpAddress[2] = valueL1.at(2).toInt();
EthernetConfig.abyIpAddress[3] = valueL1.at(3).toInt();
}
}
}
if (valueList[i].contains("port"))
if (valuei.contains("port"))
{
//port#24691
QByteArrayList valueL = valueList[i].split('#');
QStringList valueL = valuei.split('#');
if (valueL.size() == 2)
{
EthernetConfig.wPortNo = valueL[1].toInt();
}
}
if (valueList[i].contains("xImageSize"))
if (valuei.contains("xImageSize"))
{
//xImageSize#1600
QByteArrayList valueL = valueList[i].split('#');
QStringList valueL = valuei.split('#');
if (valueL.size() == 2)
{
xImageSize = valueL[1].toInt();
}
}
if (valueList[i].contains("yImageSize"))
if (valuei.contains("yImageSize"))
{
//yImageSize#2000
QByteArrayList valueL = valueList[i].split('#');
QStringList valueL = valuei.split('#');
if (valueL.size() == 2)
{
yImageSize = valueL[1].toInt();
}
}
if (valueList[i].contains("y_pitch_um"))
if (valuei.contains("y_pitch_um"))
{
//y_pitch_um#40
QByteArrayList valueL = valueList[i].split('#');
QStringList valueL = valuei.split('#');
if (valueL.size() == 2)
{
y_pitch_um = valueL[1].toInt();
y_pitch_um = valueL[1].toDouble();
}
}
if (valueList[i].contains("取图超时"))
if (valuei.contains("取图超时"))
{
//timeout_ms#2900
QByteArrayList valueL = valueList[i].split('#');
QStringList valueL = valuei.split('#');
if (valueL.size() == 2)
{
timeout_ms = valueL[1].toInt();
@@ -485,6 +486,10 @@ bool Hd_CameraModule_3DKeyence::InitHighSpeed()
}
errCode = LJX8IF_StartHighSpeedDataCommunication(deviceId); // 正式开始高速通讯
qDebug() << __FUNCTION__ << " line:" << __LINE__ << " errCode: " << errCode;
//Start HighSpeed
_imageAvailable[deviceId] = 0;
_lastImageSizeHeight[deviceId] = 0;
}
catch (const QString ev)
{
@@ -506,6 +511,8 @@ bool Hd_CameraModule_3DKeyence::run()
try
{
if (_imageAvailable[deviceId] == 0)
{
JumpFlag = false;
errCode = LJX8IF_StartHighSpeedDataCommunication(deviceId); // 正式开始高速通讯
qDebug() << __FUNCTION__ << " line:" << __LINE__ << " errCode: " << errCode;
@@ -551,9 +558,6 @@ bool Hd_CameraModule_3DKeyence::run()
}
int errCode;
//Start HighSpeed
_imageAvailable[deviceId] = 0;
_lastImageSizeHeight[deviceId] = 0;
//StartMeasure(Batch Start)
if (use_external_batchStart > 0)
@@ -579,12 +583,15 @@ bool Hd_CameraModule_3DKeyence::run()
}
if (_imageAvailable[deviceId])
{
qCritical() << " [info] " << __FUNCTION__ << " line:" << __LINE__ <<" deviceId::" << deviceId << " checkImg getImg time" << ts<<" imgIndex" << imgIndex++ ;
qCritical() << " [info] " << __FUNCTION__ << " line:" << __LINE__ << " deviceId::" << deviceId << " checkImg getImg time" << ts << " imgIndex" << imgIndex++;
break;
}
Sleep(1);
}
Sleep(1);
}
if (_imageAvailable[deviceId] != 1)
{
qCritical() << __FUNCTION__ << " line:" << __LINE__ << "_imageAvailable[deviceId] != 1";
@@ -603,6 +610,9 @@ bool Hd_CameraModule_3DKeyence::run()
// KeyModify 20230301 清理控制器里的缓存数据,此处是考虑超时情况下,对数据的清理操作。
errCode = LJX8IF_ClearMemory(deviceId);
qCritical() << __FUNCTION__ << " line:" << __LINE__ << " errCode:" << errCode;
//Start HighSpeed
_imageAvailable[deviceId] = 0;
_lastImageSizeHeight[deviceId] = 0;
return false;
}
qDebug() << __FUNCTION__ << " line:" << __LINE__ << "test";
@@ -648,6 +658,9 @@ bool Hd_CameraModule_3DKeyence::run()
heightMatS.enqueue(cv::Mat(yImageSize, xImageSize, CV_16U, heightImage));
m_mutex->unlock();
qDebug() << __FUNCTION__ << " line:" << __LINE__ << " success to acquire 3d image! camera_name: " << camera_name;
//Start HighSpeed
_imageAvailable[deviceId] = 0;
_lastImageSizeHeight[deviceId] = 0;
return true;
}
catch (QString ev)