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