#pragma once #ifndef ORIGINALWND_H #define ORIGINALWND_H #include #include "DbTreeViewManager.h" #include #include #include #include #include #include #include "gen_interface.h" #include "Src/CameraBind.h" #include "JOriginalMainWnd.h" #include "CameraDistribute.h" #include "Src/RewriteControl/Sidebar/LogStatePage.h" //#include "CViewInterface.h" QT_BEGIN_NAMESPACE namespace Ui { class OriginalWnd; } QT_END_NAMESPACE // 3个切换窗口 enum EN_WND_SWITCH { ChartsAnd = 1, MainAndSecondary, SingleCameraOperation }; class OriginalWnd : public QMainWindow { Q_OBJECT public: explicit OriginalWnd(QWidget* parent = nullptr, CameraBind* pCameraBind = nullptr); ~OriginalWnd(); /**相机初始化 */ void CameraBindInit(CameraBind* pCameraBind); /**所有接口初始化 */ void RegFun(); QWidget* getWidgetLeft() const; // 访问 widget 的接口 /**切换配置 * */ void SwitchToConfig(const QString& name, int configId, int menuArrayIndex, bool isMenuArray = true); // 切换不同配置 void switchToHomeConfig(); void switchToProductionConfig(); void switchToDiagnosisConfig(); void switchToDispositionConfig(); void switchToModuleConfig(); void switchToProgramConfig(); void switchToSystemConfig(); void setChineseMode(QMainWindow* OriginalWnd); enum DEVICE_STATUS { IDLE,//停机待机 RUNING,//生产 CALIB,//校准 WARN,//报警 FAULT, //故障 DIAGNOSE//诊断 }; enum CONNECT_STATUS { NO_CONNECT,//未连接 灰色 CONNECT_ING,//连接中 黄色 MACHINE_TIMEOUT,//机台超时 橙色 HOST_TIMEOUT,//主机超时 蓝色 CONNECT_OK,//连接成功 绿色 }; enum HOST_STATUS { HOST_OUT,//主机离线 黄色 DEVICE_OUT,//设备离线 橙色 DEVICE_ING,//设备试图连线 紫红色 DEVICE_OK,//设备在线 蓝色 HOST_CON_DEVICE,//主机控制设备 绿色 }; // 顶部状态栏 void updateCalibrationButtonColor(enum DEVICE_STATUS status); void updateMachineLinkColor(enum CONNECT_STATUS status); void updateHostStatusColor(enum HOST_STATUS status); void StatusBar(); protected: bool eventFilter(QObject* obj, QEvent* event) override; void timerEvent(QTimerEvent* event) override; void resizeEvent(QResizeEvent* event) override; void InitForm(); // 初始化表单控件 void InitTreeViewManager(); /**更新当前时间 */ void UpdateTime(); /**释放收尾 */ void Del(); /**切换快捷侧边按钮 */ void RunOrStopSwitch(); private slots: void on_ChartButton_clicked(); void on_DoubleImageButton_clicked(); void on_SingleImageButton_clicked(); void on_LogStatBut_clicked(); void on_startButton_clicked(); void on_stopButton_clicked(); public slots: void onHandleLanguageSignal(const int& data); void JRunFunSlots(ns_module::ST_BUTTON_FUN pra); private: /**设置当前选中窗口 */ void SwitchMainPage(JOriginalMainWnd* pWnd, QToolButton* tooBut); /**创建选中窗口 */ void CreateSwitchMainPage(int nlastIndex = -1); private: Ui::OriginalWnd* ui; /**相机绑定接口 */ QPointer m_pCameraBind; /**保存当前切换窗口 */ QPointer m_pJOriginalMainWnd; /**树视图管理 */ std::unique_ptr m_pdbTreeViewManager; /**数据库 */ Gen_Interface gen_if; /**相机分配,观察页面以及相机变化 */ CameraDistribute* m_pCameraDistribute; /**Loop 时间 */ int m_nTimerID = -1; /**快捷按钮切换用 */ bool m_isDisabled = true; QPointer m_pLogStateSidebar; }; #endif // ORIGINALWND_H