chenluhua1980
2026-01-24 8fc148424accf484b4f331c7d5fb11eb7383cf89
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
 
// ServoDlg.h : 头文件
//
 
#pragma once
#include <vector>
#include <unordered_set>
#include "BlButton.h"
#include "PageLog.h"
#include "PageAlarm.h"
#include "PageTransferLog.h"
#include "PageRecipe.h"
#include "TerminalDisplayDlg.h"
#include "CPanelMaster.h"
#include "CPanelEquipment.h"
#include "CPanelAttributes.h"
#include "CPanelProduction.h"
#include "CPageGraph1.h"
#include "CPageGraph2.h"
#include "HmTab.h"
#include "TopToolbar.h"
#include "CMyStatusbar.h"
#include "CRobotTaskDlg.h"
#include "CPageGlassList.h"
#include "CPageVarialbles.h"
#include "CPageDataVarialbles.h"
#include "AlarmPopupDlg.h"
#include "AlarmManager.h"
 
 
// CServoDlg 对话框
class CServoDlg : public CDialogEx
{
// 构造
public:
    CServoDlg(CWnd* pParent = NULL);    // 标准构造函数
 
 
public:
    void ShowTerminalText(const char* pszText, unsigned int duration = -1);
    void AckAlarm(int alarmId);
 
private:
    void InitRxWindows();
    void RefreshAlarmBadge();
    void MarkAlarmsRead();
    void RaiseTestAlarm();
    void ClearTestAlarm();
    void Resize();
    void SetLeftPanelType(int type, bool resize = true);
    void ShowChildPage(int index);
    void UpdateLoginStatus();
    CString& GetRuntimeFormatText(CString& strText, const char* pszSuffix);
 
private:
    IObserver* m_pObserver;
    CTerminalDisplayDlg* m_pTerminalDisplayDlg;
    CRobotTaskDlg* m_pRobotTaskDlg;
    CPageGraph1* m_pPageGraph1;
    CPageGraph2* m_pPageGraph2;
    CPageGlassList* m_pPageGlassList;
    CPageRecipe* m_pPageRecipe;
    CPageAlarm*     m_pPageAlarm;
    CPageLog*     m_pPageLog;
    CPageTransferLog* m_pPageTransferLog;
    CAlarmPopupDlg* m_pAlarmPopupDlg;
    CHmTab* m_pTab;
    std::vector<AlarmData> m_unreadAlarms;
    std::unordered_set<int> m_ackAlarms;
 
// 对话框数据
#ifdef AFX_DESIGN_TIME
    enum { IDD = IDD_SERVO_DIALOG };
#endif
 
    protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持
 
 
// 实现
protected:
    HICON m_hIcon;
    COLORREF m_crBkgnd;
    HBRUSH m_hbrBkgnd;
    int m_nLeftPanelType; // 1: CPanelMaster, 2: CPanelProduction
    CTopToolbar* m_pTopToolbar;
    CPanelMaster* m_pPanelMaster;
    CPanelProduction* m_pPanelProduction;
    CPanelEquipment* m_pPanelEquipment;
    CPanelAttributes* m_pPanelAttributes;
    CMyStatusbar* m_pMyStatusbar;
 
    // 生成的消息映射函数
    virtual BOOL OnInitDialog();
    afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
    afx_msg void OnPaint();
    afx_msg HCURSOR OnQueryDragIcon();
    DECLARE_MESSAGE_MAP()
public:
    afx_msg void OnBnClickedOk();
    afx_msg void OnBnClickedCancel();
    afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
    afx_msg void OnDestroy();
    afx_msg void OnSize(UINT nType, int cx, int cy);
    afx_msg void OnClose();
    afx_msg void OnMoving(UINT fwSide, LPRECT pRect);
    afx_msg void OnMove(int x, int y);
    afx_msg void OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu);
    afx_msg void OnMenuFileSettings();
    afx_msg void OnUpdateMenuFileSettings(CCmdUI* pCmdUI);
    afx_msg void OnMenuFileSecsTest();
    afx_msg void OnUpdateMenuFileSecsTest(CCmdUI* pCmdUI);
    afx_msg void OnMenuFileExit();
    afx_msg void OnUpdateMenuFileExit(CCmdUI* pCmdUI);
    afx_msg void OnMenuProjectVarialbleList();
    afx_msg void OnUpdateMenuProjectVarialbleList(CCmdUI* pCmdUI);
    afx_msg void OnMenuTestAlarmOn();
    afx_msg void OnUpdateMenuTestAlarmOn(CCmdUI* pCmdUI);
    afx_msg void OnMenuTestAlarmOff();
    afx_msg void OnUpdateMenuTestAlarmOff(CCmdUI* pCmdUI);
    afx_msg void OnMenuTestMessageSet();
    afx_msg void OnUpdateMenuTestMessageSet(CCmdUI* pCmdUI);
    afx_msg void OnMenuTestMessageClear();
    afx_msg void OnUpdateMenuTestMessageClear(CCmdUI* pCmdUI);
    afx_msg void OnMenuToolsClientList();
    afx_msg void OnUpdateMenuToolsClientList(CCmdUI* pCmdUI);
    afx_msg void OnMenuToolsCurveEmptyMode();
    afx_msg void OnUpdateMenuToolsCurveEmptyMode(CCmdUI* pCmdUI);
    afx_msg void OnMenuToolsCurveProductionMode();
    afx_msg void OnUpdateMenuToolsCurveProductionMode(CCmdUI* pCmdUI);
    afx_msg void OnMenuWndTestPanel();
    afx_msg void OnUpdateMenuWndTestPanel(CCmdUI* pCmdUI);
    afx_msg void OnMenuWndProPanel();
    afx_msg void OnUpdateMenuWndProPanel(CCmdUI* pCmdUI);
    afx_msg void OnMenuHelpAbout();
    afx_msg void OnTimer(UINT_PTR nIDEvent);
    afx_msg LRESULT OnPanelResize(WPARAM wParam, LPARAM lParam);
    afx_msg void OnTabSelChanged(NMHDR* nmhdr, LRESULT* result);
    LRESULT OnToolbarBtnClicked(WPARAM wParam, LPARAM lParam);
    LRESULT OnStatusbarBtnClicked(WPARAM wParam, LPARAM lParam);
    virtual BOOL PreTranslateMessage(MSG* pMsg);
};