#ifndef _H_CMAINWIN_H_ #define _H_CMAINWIN_H_ #include #include "ui_CMainWin.h" #include "QUserBase.h" #include "BaseSerialport.h" #include #include #include "CDllCoreCtrl.h" #include "CDllDetectorEngine.h" #include "stationdb.h" #include "IWfCtrl.h" #include "WfColossus.h" #include "AutoTrigger.h" #include "QDetectorDesignerMgr.h" #include "QTestModeWid.h" #include "iCoreCtrl.h" #include "QModelMangerUI.h" #include "QAboutUI.h" struct StationInfo { int m_PLCID{ 0 }; bool m_bRunEnable{ false }; QString strModelName; }; class CMainWin : public QMainWindow, public IGuiCallback { Q_OBJECT public: CMainWin(QWidget *parent = Q_NULLPTR); ~CMainWin(); virtual void IOnReady() {} virtual void IUpdateShow(const QString& skey) {}; virtual void INewCameraImage(const QVariantMap& vMap) {}; virtual void IAddWindows(const QString& sWinName, const QString& sShowId) {}; virtual void ISendDataToUI(emTpUiDataType dataType, const QString& camKey, void* pData) {}//弃用,用IVariantMapToUI()替代 virtual void ICameraTrigger(bool bStartOrStop) {};//弃用,用ICommInterval()替代 virtual void IDrawDefectToScene(const QString& szWinName, IImageObject::emTpDefectType defectType, QByteArray& data) {}; virtual void ISafeDataToUI(emTpUiDataType dataType, const QString& camKey, const QByteArray& data) {}; virtual void IWarning(int nWarningCode, void* data, int nDataLen) {}; virtual void ICommInterval(const char* szCom, int nCmd, BYTE* pData, int nDataLen) {}; virtual void IAlgorithmResult(const QVariantMap& varMap) {}; virtual void IVariantMapToUI(emTpUiDataType dataType, const QString& camKey, const QVariantMap& vMap); virtual QVariant IGetVariantById(int id); virtual void IIoStatesChanged(int nOldState, int nNewState) {}; virtual void ICommAchieved(const char* szCom, int nCmd, BYTE* pData, int nDataLen) {}; virtual WORD IGetWorkState() { return 0; };//心跳包中发送的用来控制是否触发的值,返回0不触发,返回1触发 public: Q_SLOT void onAppanalysis(SComFrame frame); void onHeartComm(SComFrame &frame); Q_SLOT void onHeardBit(); Q_SLOT void onShowLog(int nID, QString strMsg); Q_SLOT void onActionClicked(); QString genSavePath(QString modelName, QImage &img); protected: virtual void timerEvent(QTimerEvent *event); virtual void closeEvent(QCloseEvent *event); protected: void onInitStatus(); void onUpdateStatus(); bool onInitCoreCtrl(); bool onInitDevice(); signals: void sgSelModel(int, QString); void sgSendChangeUI(QString, QString); void sgShowLog(int, QString); void sgShowImg(int, QImage); private://中英翻译 void SearchQmFile(const QString & strDir); void SetTranslator(const QString strPath); void SetLanguage(QString strLangage); void rmTranslator(); void readConfig(); void writeConfig(); private: IDetectorUI* GetDesignerInterface() const; void saveSolution(); int lastNum(QString str); Q_SLOT void onMainFrameClose(); Q_SLOT void onSnapImage(int nCamera = -1); Q_SLOT void onTrigImage(); Q_SLOT void onSelModel(int, QString); Q_SLOT void onChangeUI(QString strUsr, int nLevel); Q_SLOT void onLogInOut(QString strName, int level, int state); Q_SLOT void onTestMode(int); Q_SLOT void onShowImage(int ID, QImage img); Q_SLOT void onShowName(int ID, QString strName); private: Ui::CMainWin ui; IUserCtrl *m_pUserCtrl{ nullptr }; ISerialPortTool *m_pSerialPort{ nullptr }; QTimer m_HeartBit; QVector m_VecTranPtr; QString m_strCurLanguage{ "Chinese" }; StationInfo m_StationInfo_1; StationInfo m_StationInfo_2; //status 状态栏 int m_TimerID_Status{ 0 }; class QLabel *m_pLbCurrentTime; class QLabel *m_pLbOnLine; class QLabel *m_pLbConnect; class QLabel *m_pLbUser; class QLabel *m_pLbDiskSpace; private: CDllCoreCtrl* m_pDllCoreCtrl{nullptr}; CDllDetectorEngine* m_pDllDetectorEngine{nullptr}; QDetectorDesignerMgr* m_pDesignerMgr{nullptr}; ICoreCtrl* m_pCoreCtrl{nullptr}; IDetectorEngine* m_pDetectorEngine{nullptr}; StationDB *m_db{nullptr}; class AutoTrigger *m_pCameraTrig{nullptr}; class AutoTrigger *m_pStatusTrig{ nullptr }; class IWfCtrl *m_pWfCtrl{ nullptr }; class WfColossus *m_pColossus{ nullptr }; QTestModeWid m_testWid; QModelMangerUI m_mangeWid; QAboutUI m_aboutWid; QString m_strUserName; QString m_strComName; }; #endif