基础代码更新
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user