You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

136 lines
4.1 KiB
C

#ifndef _H_CMAINWIN_H_
#define _H_CMAINWIN_H_
#include <QMainWindow>
#include "ui_CMainWin.h"
#include "QUserBase.h"
#include "BaseSerialport.h"
#include <QTimer>
#include <QLabel>
#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"
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) {}//<2F><><EFBFBD>ã<EFBFBD><C3A3><EFBFBD>IVariantMapToUI()<29><><EFBFBD><EFBFBD>
virtual void ICameraTrigger(bool bStartOrStop) {};//<2F><><EFBFBD>ã<EFBFBD><C3A3><EFBFBD>ICommInterval()<29><><EFBFBD><EFBFBD>
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; };//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ񴥷<C7B7><F1B4A5B7><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>
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://<2F><>Ӣ<EFBFBD><D3A2><EFBFBD><EFBFBD>
void SearchQmFile(const QString & strDir);
void SetTranslator(const QString strPath);
void SetLanguage(QString strLangage);
void rmTranslator();
void readConfig();
void writeConfig();
private:
IDetectorUI* GetDesignerInterface() const;
QDetectorDesignerMgr m_DesignerMgr;
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<QTranslator* > m_VecTranPtr;
QString m_strCurLanguage{ "Chinese" };
StationInfo m_StationInfo_1;
StationInfo m_StationInfo_2;
//status ״̬<D7B4><CCAC>
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};
ICoreCtrl* m_pCoreCtrl{nullptr};
IDetectorEngine* m_pDetectorEngine{nullptr};
StationDB *m_db{nullptr};
class AutoTrigger *m_pCameraTrig;
class AutoTrigger *m_pStatusTrig;
class ModelLists *m_pModelList;
class IWfCtrl *m_pWfCtrl;
class WfColossus *m_pColossus;
class WfStatus *m_pStatus;
class CVersion *m_pVersion;
QTestModeWid m_testWid;
QModelMangerUI m_mangeWid;
};
#endif