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.

172 lines
4.4 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 "AutoTrigger.h"
#include "QTestModeWid.h"
#include "iCoreCtrl.h"
#include "QModelMangerUI.h"
#include "QAboutUI.h"
#include "QDeviceMgrUI.h"
#include "QCamSetDlg.h"
#include "QCameraMgrUI.h"
#include "lpdesigner.h"
#include "CDllDesigner.h"
#include "QCryptokeyUI.h"
#include "lpImageCaliUI.h"
#include "QDiskCleanThread.h"
#include "RoiImgViewer.h"
struct StationInfo
{
int m_PLCID{ 0 };
bool m_bRunEnable{ false };
QString strModelName;
};
class CMainWin : public QMainWindow
{
Q_OBJECT
public:
CMainWin(QWidget *parent = Q_NULLPTR);
~CMainWin();
//接收图像回调函数
void INewCameraImage(const QString& camKey, QImage img);
//接收算法检测结果回调函数
void IVariantMapToUI(const QString& camKey, const QVariantMap& vMap);
//传输算法参数回调函数
QVariant IGetVariantById(int id);
//Engine算法回调函数
void IEngineResult(QVariantMap vMap);
bool sendResult(int nID, double angleValue, double centerX, double centerY);
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 onPopMenu(const QPoint& pt);
Q_SLOT void onSlotAddNewModel(QString strName);
Q_SLOT void onSlotDelOldModel(QString strName);
Q_SLOT void onActionClicked();
QString genSavePath(int stationID, QString modelName, QImage &img);
QString genSaveSrcImgPath(int stationID, QString modelName, QImage &img);
Q_SLOT void onImageScale(qreal value);
protected:
virtual void timerEvent(QTimerEvent *event);
virtual void closeEvent(QCloseEvent *event);
virtual void changeEvent(QEvent *event);
protected:
void onInitStatus();
void onUpdateStatus();
bool onInitCoreCtrl();
void onInitDevice();
void onInitUser();
void onInitSerial();
void onInitUI();
void onInitDiskClean();
QString SecondTimeString(quint64 value);
Q_SLOT void onLineseCheck(bool bFlag);
void saveImage(const QImage& m_pixmap, QString m_path, QString filename);
signals:
void sgSelModel(int, QString);
void sgSendChangeUI(QString, QString);
void sgShowLog(int, QString);
void sgShowImg(int, QImage);
void sgShowSrcImg(QString strkey, QImage);
private://中英翻译
void SearchQmFile(const QString & strDir);
void SetTranslator(const QString strPath);
void SetLanguage(QString strLangage);
void rmTranslator();
private:
Q_SLOT void onSnapImage(int nCamera = -1);
Q_SLOT void onTrigImage();
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(QString ID, QString strName);
Q_SLOT void onLanguageChange(QString strLanguage);//中英文切换功能
private:
Ui::CMainWin ui;
QTimer m_HeartBit;
QVector<QTranslator* > m_VecTranPtr;
QString m_strCurLanguage{ "Chinese" };
StationInfo m_StationInfo_1;
StationInfo m_StationInfo_2;
//status 状态栏
int m_TimerID_Status{ 0 };
QLabel *m_pLbCurrentTime{ nullptr };
QLabel *m_pLbOnLine{ nullptr };
QLabel *m_pLbConnect{ nullptr };
QLabel *m_pLbUser{ nullptr };
QLabel *m_pLbDiskSpace{ nullptr };
IUserCtrl *m_pUserCtrl{ nullptr };//用户登录管理
ISerialPortTool *m_pSerialPort{ nullptr };//串口通讯模块
QLabel* m_pLabelInfo{ nullptr };
RoiImgViewer *m_ImgViewer_A{ nullptr };//展示检测图像
RoiImgViewer *m_ImgViewer_B{ nullptr };//展示检测图像
private:
//相机图像核心模块
CDllCoreCtrl* m_pDllCoreCtrl{nullptr};
ICoreCtrl* m_pCoreCtrl{nullptr};
//标定模块
CDllDesigner* m_pDllDesigner{ nullptr };
IDetectorUI* m_pDesigner{ nullptr };
//engine模块 算法管理
CDllDetectorEngine* m_pDllDetectorEngine{nullptr};
IDetectorEngine* m_pDetectorEngine{nullptr};
private:
StationDB *m_db{nullptr};
class AutoTrigger *m_pCameraTrig{nullptr};
class AutoTrigger *m_pStatusTrig{ nullptr };
QTestModeWid m_testWid;
QModelMangerUI m_mangeWid;
QAboutUI m_aboutWid;
QDeviceMgrUI m_devMgrWid;
QCamSetDlg m_camSetWid;
QString m_strUserName;
QString m_strComName;
QCameraMgrUI m_CamMgrUI;
class IWfCtrl *m_pWfCtrl{ nullptr };
quint64 m_tickCount{ 0 };
int m_heartTimeOut{ 0 };
bool m_bPLCConnect{ false };
QCryptokeyUI *m_pCheckLineseUI{ nullptr };
lpImageCaliUI* m_pImageCaliUI{ nullptr };
QList<QDiskCleanThread*> m_pDCThreadList;
};
#endif