106 lines
2.7 KiB
C++
106 lines
2.7 KiB
C++
#pragma once
|
||
//ͨ�����ӿ�
|
||
#include "base_Logic.h"
|
||
|
||
//�����źŲ۴���ͼ��
|
||
//����ͼƬ�Ľṹ��
|
||
struct showImgStruct
|
||
{
|
||
QImage* show_QImage; //���ص�ͼ��
|
||
QString cameraKey_index; //�ؼ���_���
|
||
};
|
||
|
||
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>&);
|
||
//�ڲ�ʹ��
|
||
private:
|
||
|
||
QString currPath;
|
||
QString json_cfg_file_path;
|
||
QJsonObject m_jsonObj;
|
||
|
||
base_Logic* Logic_ptr;
|
||
ReleaseFunction destory_Logic = nullptr; //�ͷ�
|
||
|
||
void check_sendImgStruct();
|
||
|
||
//����ӿ�
|
||
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);
|
||
void base_Logic_cameraDisconnect(QString msg, bool status);
|
||
void base_Logic_CommunicationDisconnect(QString msg, bool status);
|
||
};
|