V20251116-2.2.0
优化文件结构,删除较老代码文件。 优化参数修改界面,更改的参数都会实时更新到程序以及json中。 优化SQL相关功能。 更改了存图格式。
This commit is contained in:
@@ -16,6 +16,8 @@ int G_yImageSize = 0; // Number of Y lines.
|
||||
//int _lastImageSizeHeight[MAX_LJXA_DEVICENUM];
|
||||
int imgTakeNum = 0, imgTarget = 1;
|
||||
int imgIndex = 0;
|
||||
int getImageTimeOut = 3000;
|
||||
QString lastError;
|
||||
QMutex* m_mutex = nullptr;
|
||||
std::mutex bufferMutex;
|
||||
QQueue< cv::Mat> heightMatS;//高度图
|
||||
@@ -330,86 +332,35 @@ bool Hd_CameraModule_3DKeyence::writeData(std::vector<cv::Mat> &mat,QByteArray &
|
||||
//传入initParas函数,格式为:相机key+参数名1#参数值1#参数值2+参数名2#参数值1...
|
||||
bool Hd_CameraModule_3DKeyence::initParas(QByteArray& initData)
|
||||
{
|
||||
QByteArrayList valueList = initData.split('#');
|
||||
if (valueList.size() < 6) {
|
||||
qDebug() << "[Error] " << " Hd_CameraModule_HIK initParas fail--params error!参数数量不满足";
|
||||
lastError = "参数数量不满足";
|
||||
return false;
|
||||
}
|
||||
EthernetConfig.wPortNo = 24691;
|
||||
QByteArrayList valueList = initData.split('+');
|
||||
camera_name = valueList[0];
|
||||
//deviceId = valueList[0].toInt(); //相机头序号
|
||||
if (valueList.size() > 1)
|
||||
for (int i = 0; i < valueList.size(); i++)
|
||||
{
|
||||
QString valuei = byteArrayToUnicode(valueList[i]);
|
||||
if (valuei.contains("ip"))
|
||||
{
|
||||
//ip#192.168.0.1
|
||||
QStringList valueL = valuei.split("#");
|
||||
if (valueL.size() == 2)
|
||||
{
|
||||
QStringList valueL1 = valueL[1].split(".");
|
||||
if (valueL1.size() == 4)
|
||||
{
|
||||
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 (valuei.contains("deviceId"))
|
||||
{
|
||||
QStringList valueL = valuei.split('#');
|
||||
if (valueL.size() == 2)
|
||||
{
|
||||
deviceId = valueL[1].toInt();
|
||||
}
|
||||
}
|
||||
if (valuei.contains("port"))
|
||||
{
|
||||
//port#24691
|
||||
QStringList valueL = valuei.split('#');
|
||||
if (valueL.size() == 2)
|
||||
{
|
||||
EthernetConfig.wPortNo = valueL[1].toInt();
|
||||
}
|
||||
}
|
||||
if (valuei.contains("xImageSize"))
|
||||
{
|
||||
//xImageSize#1600
|
||||
QStringList valueL = valuei.split('#');
|
||||
if (valueL.size() == 2)
|
||||
{
|
||||
xImageSize = valueL[1].toInt();
|
||||
G_xImageSize = valueL[1].toInt();
|
||||
}
|
||||
}
|
||||
if (valuei.contains("yImageSize"))
|
||||
{
|
||||
//yImageSize#2000
|
||||
QStringList valueL = valuei.split('#');
|
||||
if (valueL.size() == 2)
|
||||
{
|
||||
yImageSize = valueL[1].toInt();
|
||||
G_yImageSize = valueL[1].toInt();
|
||||
}
|
||||
}
|
||||
if (valuei.contains("y_pitch_um"))
|
||||
{
|
||||
//y_pitch_um#40
|
||||
QStringList valueL = valuei.split('#');
|
||||
if (valueL.size() == 2)
|
||||
{
|
||||
y_pitch_um = valueL[1].toDouble();
|
||||
}
|
||||
}
|
||||
if (valuei.contains("imgTarget"))
|
||||
{
|
||||
QStringList valueL = valuei.split('#');
|
||||
if (valueL.size() == 2)
|
||||
{
|
||||
imgTarget = valueL[1].toInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
camera_name = valueList[0];
|
||||
auto valueL1 = valueList[0].split('.');
|
||||
if (valueL1.size() == 4)
|
||||
{
|
||||
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();
|
||||
}
|
||||
|
||||
deviceId = valueList[1].toInt();
|
||||
|
||||
xImageSize = valueList[2].toInt();
|
||||
G_xImageSize = valueList[2].toInt();
|
||||
|
||||
yImageSize = valueList[3].toInt();
|
||||
G_yImageSize = valueList[3].toInt();
|
||||
|
||||
imgTarget = valueList[4].toInt();
|
||||
|
||||
getImageTimeOut = valueList[5].toInt();
|
||||
yCounts = yImageSize;
|
||||
qDebug() << __FUNCTION__ << " line:" << __LINE__ << " camera_name:" << camera_name << " paras init is success!";
|
||||
|
||||
@@ -527,20 +478,22 @@ bool Hd_CameraModule_3DKeyence::run()
|
||||
{
|
||||
while (imgTakeNum != imgTarget)
|
||||
{
|
||||
int timeOutCnt = 0;
|
||||
while (_imageAvailable[deviceId] != 1 && timeOutCnt < 120)
|
||||
int sleepMs = 10;
|
||||
int cnt = 0;
|
||||
int timeoutCnt = getImageTimeOut / sleepMs;
|
||||
while (_imageAvailable[deviceId] != 1 )
|
||||
{
|
||||
timeOutCnt++;
|
||||
QThread::msleep(10);
|
||||
if (cnt++ >= timeoutCnt)
|
||||
{
|
||||
heightMatS.push_back(cv::Mat(G_yImageSize, G_xImageSize, CV_8UC1, cv::Scalar(0, 0, 0)));
|
||||
luminanceMatS.push_back(cv::Mat(G_yImageSize, G_xImageSize, CV_8UC1, cv::Scalar(0, 0, 0)));
|
||||
imgTakeNum++;
|
||||
qDebug() << "imgGetERROR insert blank img cameraID:" << camera_name;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (timeOutCnt >= 120)
|
||||
{
|
||||
heightMatS.push_back(cv::Mat(G_yImageSize, G_xImageSize, CV_8UC1, cv::Scalar(0, 0, 0)));
|
||||
luminanceMatS.push_back(cv::Mat(G_yImageSize, G_xImageSize, CV_8UC1, cv::Scalar(0, 0, 0)));
|
||||
imgTakeNum++;
|
||||
qDebug() << "imgGetERROR insert blank img cameraID:" << camera_name;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
std::lock_guard<std::mutex> lock(bufferMutex);
|
||||
_getParam[deviceId].luminance_enabled = profileInfo_ptr->byLuminanceOutput;
|
||||
@@ -603,7 +556,7 @@ bool Hd_CameraModule_3DKeyence::run()
|
||||
_lastImageSizeHeight[deviceId] = 0;
|
||||
imgTakeNum++;
|
||||
}
|
||||
qDebug() << "take2 Finish";
|
||||
qDebug() << camera_name <<"Finish";
|
||||
return true;
|
||||
}
|
||||
catch (QString ev)
|
||||
|
||||
Reference in New Issue
Block a user