Files

106 lines
2.7 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#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);
};