Files
ds-628/env/base_UI/include/Logic_transfer.h
T

106 lines
2.7 KiB
C++
Raw Normal View History

2024-09-27 14:31:22 +08:00
#pragma once
//ͨ���߼��ӿ�
2024-09-27 14:31:22 +08:00
#include "base_Logic.h"
//�޷����źŲ۴���ͼ��
//����ͼƬ�Ľṹ��
2024-09-27 14:31:22 +08:00
struct showImgStruct
{
QImage* show_QImage; //���ص�ͼ��
QString cameraKey_index; //�ؼ���_���
2024-09-27 14:31:22 +08:00
};
typedef base_Logic* (*CreateFunction)();
typedef void (*ReleaseFunction)(base_Logic* animal);
#pragma execution_character_set("utf-8")
//QT_CHARTS_USE_NAMESPACE
class Logic_transfer : public base_Logic
{
Q_OBJECT
public:
Logic_transfer();
~Logic_transfer();
QJsonObject load_camera_cfg();
bool checkJsonObject(QJsonObject obj, QString& errMessage)
{
if (Logic_ptr)
return Logic_ptr->checkJsonObject(obj, errMessage);
else return false;
}
bool setJsonObject(QJsonObject obj)
{
if (Logic_ptr)
Logic_ptr->setJsonObject(obj);
else return false;
return true;
}
bool initTask()
{
if (Logic_ptr)
Logic_ptr->initTask();
else return false;
return true;
}
bool startTask()
{
if (Logic_ptr)
Logic_ptr->startTask();
else return false;
return true;
}
bool stopTask()
{
if (Logic_ptr)
Logic_ptr->stopTask();
else return false;
return true;
}
bool exitTask()
{
if (Logic_ptr)
Logic_ptr->exitTask();
else return false;
return true;
}
bool restartTask()
{
if (Logic_ptr)
Logic_ptr->restartTask();
else return false;
return true;
}
QMutex* showMutex;
QQueue< showImgStruct> queue_showImgStruct;
bool getShowQImage(QQueue< showImgStruct>&);
//�ڲ�ʹ��
2024-09-27 14:31:22 +08:00
private:
QString currPath;
QString json_cfg_file_path;
QJsonObject m_jsonObj;
base_Logic* Logic_ptr;
ReleaseFunction destory_Logic = nullptr; //�ͷ�
2024-09-27 14:31:22 +08:00
void check_sendImgStruct();
//����ӿ�
2024-09-27 14:31:22 +08:00
signals:
void LogicTransfer_sendImage(QString, QImage*);
void LogicTransfer_sendTcpStatus(bool);
void LogicTransfer_writeData(QString, QString, QString, QByteArray, QString);
void LogicTransfer_cameraDisconnect(QString msg, bool status);
void LogicTransfer_CommunicationDisconnect(QString msg, bool status);
private slots:
void base_Logic_sendImage(QString key, cv::Mat mtx);
void base_Logic_sendTcpStatus(bool flag);
void base_Logic_writeData(QString key, QString cameraName, QString snInfo, QByteArray byteArray, QString sendNgInfo);
2024-09-27 14:31:22 +08:00
void base_Logic_cameraDisconnect(QString msg, bool status);
void base_Logic_CommunicationDisconnect(QString msg, bool status);
};