优化结构

This commit is contained in:
RCi
2025-07-29 19:56:39 +08:00
parent aa74dfcd15
commit ec3b751acb
30 changed files with 19 additions and 9 deletions
@@ -1,5 +1,5 @@
#include "Logic_myiothread.h"
#include <qmutex.h>
//QString trigger_signal_condition_name = "";
//QMutex *commond_pack_lock = new QMutex;
static int startSign[4] = { 0 };
@@ -1123,14 +1123,14 @@ void Logic_myiothread::checkTriggerCameraSub(
//一个信号,对应相机拍多张图?
// 添加被触发的相机名称;运行相机及取图
if (!m_pack.vector_camera.isEmpty()){
if (!m_pack.vector_camera.isEmpty()) {
QStringList trigger_camera_name_getImgNumS;
for (int val = 0; val < m_pack.vector_camera.size(); val++){
for (int val = 0; val < m_pack.vector_camera.size(); val++) {
QString trigger_camera_name_getImgNum = m_pack.vector_camera.at(val) + "_" + trigger_getImgNum;
if (!trigger_camera_name_getImgNum.isEmpty()){
if (!trigger_camera_name_getImgNum.isEmpty()) {
//多工站需考虑加锁?
//注意,信号不可重入。
//开线程去运行;一个信号对应相机拍多张图的情况
@@ -1146,9 +1146,13 @@ void Logic_myiothread::checkTriggerCameraSub(
yh_getImageSignal.append({ QString::number(vec_value.at(trigger_index)),
QString::number(vec_value.at(trigger_index + 2)),
QString::number(vec_value.at(trigger_index + 4)),
QString::number(vec_value.at(trigger_index + 6)) });
QString::number(vec_value.at(trigger_index + 6)) });
#endif
m_runAndCheck_cameraThread->runCameraKey_num.enqueue(trigger_camera_name_getImgNumS);
//{
// //在此因入队发生报错,因此加锁操作
// QMutexLocker lockerx(&m_runAndCheck_cameraThread->runCameraKey_num_Lock);
// m_runAndCheck_cameraThread->runCameraKey_num.enqueue(trigger_camera_name_getImgNumS);
//}
if (!m_pack.trigger_signal_condition.isEmpty())
{
station_list.value(m_stationName)->set_trigger_signal(trigger_signal);
@@ -1649,7 +1653,7 @@ runAndCheck_cameraThread::runAndCheck_cameraThread(QObject* parent)
}
runAndCheck_cameraThread::~runAndCheck_cameraThread()
{
runCameraKey_num.clear();
//runCameraKey_num.clear();
qDebug() << __FUNCTION__ << "line:" << __LINE__ << " delete success! ";
}
@@ -1,6 +1,7 @@
#ifndef Logic_myiothread_H
#define Logic_myiothread_H
#include <qmutex.h>
#include <QMap>
#include <QSet>
#include <QTimer>
@@ -80,7 +81,8 @@ public:
bool ifTaskDoneFlag = false; //是否检查任务完成标志(按照SN容器是否为空)
//要运行的相机key_取图次数
QQueue<QStringList> runCameraKey_num;
//QMutex runCameraKey_num_Lock;;
//QQueue<QStringList> runCameraKey_num;
QMap<QString, trigger_signal_pack> map_trigger_signal_pack; // 相机信号触发包
@@ -145,7 +145,7 @@ bool rpc_finsTcp::writeData(std::vector<cv::Mat>& vec_mat, QByteArray& data){
bool rpc_finsTcp::initParas(QByteArray& data){
startProcess("./json_rpc_server.exe");
startProcess("./json_rpc_server_1_0_0.exe");
write_JsonRpcClient = new JsonRpcClientSubThread(m_IP,m_port);
connect(this, &rpc_finsTcp::writeCallSignal,
write_JsonRpcClient, &JsonRpcClientSubThread::writeCallSlot);
@@ -0,0 +1,4 @@
使用前把rpc_server.exe复制到bin中
请勿修改exe名称以实现版本控制
writeHeart_short_Dxxxx_xx 不会打印到日志中
write_xxxx_Dxxx_null 不会发送数据
Binary file not shown.