#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); };