基础代码更新

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 "Logic_taskthread.h"
#include "Logic_taskthread.h"
//图像锁、通信指令锁
void Logic_taskthread::setMutex(QMutex* image_lock, QMutex* write_mutex) {
@@ -540,13 +540,22 @@ bool Logic_taskthread::writeTcpData(QMap<QString,QString> key_value)
//注意,支持short,string,float,double;
QByteArray write_byte = writeFormat(dm_startPos,vector_value);
QMutexLocker locker(write_data_mutex);
writeCommondPack.append(write_byte);//结果指令格式,为,例:write_short_DM3000_1;
QString key_complete_pos = m_exec_object.value("算法完成回复PLC指令").toString();
if (!writeCommondPack.contains(write_byte))
writeCommondPack.append(write_byte);//结果指令格式,为,例:write_short_DM3000_1;
/*QString key_complete_pos = m_exec_object.value("算法完成回复PLC指令").toString();
if (key_complete_pos.contains("_"))
{
QByteArray complete_cmd = key_complete_pos.toLocal8Bit();
writeCommondPack.append(complete_cmd);
}
}*/
}
QMutexLocker locker(write_data_mutex);
QString key_complete_pos = m_exec_object.value("算法完成回复PLC指令").toString();
if (key_complete_pos.contains("_"))
{
QByteArray complete_cmd = key_complete_pos.toLocal8Bit();
if (!writeCommondPack.contains(complete_cmd))
writeCommondPack.append(complete_cmd);
}
} catch (QString ev) {
qCritical() << __FUNCTION__ << " line:" << __LINE__ << " writeTcpData is failed! ev:" << ev;
@@ -641,10 +650,11 @@ bool Logic_taskthread::sendDataCommond( QString m_type, QVector<QString> camera_
// 发送检测模块的结果到PLC
if (send_data_flag == "true")
{
QString sbyte = byte;
//发送数据给PLC
if (!writeAiCommond(m_name, camera_name_index[ci], byte))
{
qCritical() << __FUNCTION__ << " line:" << __LINE__ << " ---- writeAiCommond is failed!";
qCritical() << __FUNCTION__ << " line:" << __LINE__ << " ---- writeAiCommond is failed!"<<" byte,"<< sbyte;
}
}
@@ -672,12 +682,12 @@ bool Logic_taskthread::sendDataCommond( QString m_type, QVector<QString> camera_
{
if (mat[ci].data)
{
if ((mat[ci].dataend - mat[ci].datastart)
< mat[ci].cols * mat[ci].rows * mat[ci].channels()) //尝试能否解决mtx内容异常问题
{
qCritical() << __FUNCTION__ << " line:" << __LINE__ << " mtx.dataend - mtx.datastart err!!:";
return false;
}
//if ((mat[ci].dataend - mat[ci].datastart)
// < mat[ci].cols * mat[ci].rows * mat[ci].channels()) //尝试能否解决mtx内容异常问题
//{
// qCritical() << __FUNCTION__ << " line:" << __LINE__ << " mtx.dataend - mtx.datastart err!!:";
// return false;
//}
}
else return false;
//if (mat[ci].cols > 2000 || mat[ci].rows > 2000)
@@ -711,13 +721,13 @@ bool Logic_taskthread::sendDataCommond( QString m_type, QVector<QString> camera_
m_pack.cameraName = camera_name_index[ci]; // 传递算法对应的相机名称
m_pack.algorithmName = m_name; // 传递算法名称
if (m_pack.mat.data)
if ((m_pack.mat.dataend - m_pack.mat.datastart)
< m_pack.mat.cols * m_pack.mat.rows * m_pack.mat.channels()) //尝试能否解决mtx内容异常问题
{
qCritical() << __FUNCTION__ << " line:" << __LINE__ << " mtx.dataend - mtx.datastart err!!:";
return false;
}
//if (m_pack.mat.data)
// if ((m_pack.mat.dataend - m_pack.mat.datastart)
// < m_pack.mat.cols * m_pack.mat.rows * m_pack.mat.channels()) //尝试能否解决mtx内容异常问题
// {
// qCritical() << __FUNCTION__ << " line:" << __LINE__ << " mtx.dataend - mtx.datastart err!!:";
// return false;
// }
//保存到容器,getdataPack主动取一个数据并显示到UI界面
Task_ImageDataPack.enqueue(m_pack);
@@ -800,7 +810,7 @@ bool Logic_taskthread::deleteSnData ( QByteArray byte, QVector<QString>& sndata,
// 算法结果 写入plc
bool Logic_taskthread::writeAiCommond ( QString cameraName,QString camera_name_index,QByteArray byte )
{
QByteArrayList PLCvec_ret= byte.split('#'); // 存储结果的
QByteArrayList PLCvec_ret= byte.split('*'); // 存储结果的
if (PLCvec_ret.isEmpty() )
{