SDC C-Project CF Review 프로그램
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
#pragma once
 
#include "CHCommonControls/GridCtrl.h"
#include "CHCommonControls/FontStatic.h"
#include "CHReviewSetting/MotorParameter.h"
#include "ModuleStatus.h"
#include "DlgReviewCamera.h"
#include "afxwin.h"
#include "DlgKeyJogLogin.h"
 
#include "akControlPack/akGroupCtrl.h"
#include "akControlPack/akButtonColorCtrl.h"
#include "akControlPack/akStaticTextCtrl.h"
#include "akControlPack/akRadio.h"
 
#define MOVE_CMD_X            0x01
#define MOVE_CMD_Y            0x02
#define MOVE_CMD_R            0x04
 
enum JogDirectionType    { JogDirection_Stop = 0, JogDirection_Plus, JogDirection_Minus };
enum MoveMode        { MoveMode_Review=0}; // MoveMode_Wsi 
enum MoveAxis        { MoveAxis_Center=0}; // MoveAxis_Corner 
enum JogCommandType        { JogCommand_Left=0, JogCommand_Right, JogCommand_Top, JogCommand_Bottom, JogCommand_Clock, JogCommand_AntiClock, JogCommand_Count };
 
interface IDialogControl2Parent
{
    virtual void DC2P_SetSelectedCamera(int nModuleIndex, int nValue) = 0;
    virtual void DC2P_SetLightLevel(int nModuleIndex, int nValue) = 0;
 
    virtual void DC2P_SetZoomLevel(int nModuleIndex, int nValue) = 0;
    virtual void DC2P_SetCameraControl(int nModuleIndex, int nValue) = 0;
    virtual void DC2P_SetJogCommand(int nModuleIndex, int nValue) = 0;
    virtual void DC2P_SetAFMTracking(int nModuleIndex, BOOL bValue) = 0;
 
    virtual void DC2P_SetCameraGo(int nModuleIndex, int nMoveAxis, double dPosX, double dPosY) = 0;
    virtual void DC2P_SetCameraCenterGo(int nModuleIndex, int nMoveAxis, double dPosX, double dPosY) = 0;
    
    virtual void DC2P_MoveCommand(int nModuleIndex, int nCmdCode, double dX, double dY, double dR) = 0;
    virtual void DC2P_JogCommand(int nModuleIndex, int nAxisFlag, int nCommandFlag) = 0;
    virtual void DC2P_MoveCommandTheta(double dTheta) = 0;
    virtual void DC2P_JogCommandTheta(int nCommandFlag) = 0;
    virtual void DC2P_JogSpeed(double dSpeedValue) = 0;
    virtual void DC2P_ShowReviewPopUP() = 0;
    
    virtual void DC2P_SetOffSetOn() = 0;
    virtual void DC2P_SetSimulation() = 0;
    
    virtual CSequenceProcessor*            IRP2P_GetSequenceProcessor() = 0;
    virtual CModuleStatus* DC2P_Get_Selected_module_Status() = 0;
};
 
// CDlgControl 대화 상자입니다.
 
class CDlgControl : public CDialog,
                    public IUpdateCameraControl,
                    public IUpdateSelectedModuleIndex
{
    DECLARE_DYNAMIC(CDlgControl)
 
public:
    CDlgControl(CWnd* pParent = NULL);   // 표준 생성자입니다.
    virtual ~CDlgControl();
 
    void SetDC2P(IDialogControl2Parent* pDC2P)                    { m_pDC2P = pDC2P; }
 
    void SetModuleIndex(int nModuleIndex);
 
    // 대화 상자 데이터입니다.
    enum { IDD = IDD_DLG_CONTROL };
 
    
 
 
protected:
    static CDlgControl*          pDlgContol;
    IDialogControl2Parent*        m_pDC2P;
    int                            m_nModuleIndex;
 
    int                            m_nMoveMode;
    int                            m_nMoveAxis;
 
    CFontStatic                    m_ctrlJogCommand[JogCommand_Count];
 
    CFontStatic                    m_ctrlJogSpeed;
    CSliderCtrl                    m_ctrlSliderJogSpeed;
    CSliderCtrl                    m_ctrlLightLevel;
 
 
    //CButton                        m_ctrlCameraControl;
    CButton                        *m_pCtrlCameraControl;
    CButton                        *m_ctrlAFMTracking;
    CGridCtrl                    m_ctrlMotorPos;
    CGridCtrl                    m_ctrlGlassPos;
    CGridCtrl                    m_ctrlGlassCenterPos;
 
    CButton                        m_ctrlRadioSet[5];
 
    CButton                        *m_ctrlJogUp;
    CButton                        *m_ctrlJogDown;
 
    
    CFontStatic                    m_ctrlKeyMoveJog;
 
 
    double                        m_dGoPosX;
    double                        m_dGoPosY;
 
    virtual void UpdateCameraControl(int nModuleIndex, const SCameraControl* pCameraControl, const SCameraInfo* pCameraInfo);
    virtual void UpdateSelectedModuleIndex(int nModuleIndex, const CModuleStatus* pModuleStatus);
 
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 지원입니다.
 
    DECLARE_MESSAGE_MAP()
 
public:
    static CDlgControl* GetInstance();
    virtual BOOL OnInitDialog();
    void InitGridCameraPos();
    virtual BOOL PreTranslateMessage(MSG* pMsg);
    afx_msg void OnNMReleasedcaptureSliderJogSpeed(NMHDR *pNMHDR, LRESULT *pResult);    
    afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
    afx_msg void OnNMReleasedcaptureSliderLightLevel(NMHDR *pNMHDR, LRESULT *pResult);
    afx_msg void OnBnClickedCheckCameraControl();
    afx_msg void OnBnClickedRadioZoomLevel();
    virtual void OnCancel();
    virtual void OnBnClickedOk();
    afx_msg void OnBnClickedButtonMotorGoXy();
    afx_msg void OnBnClickedButtonGlassGoXy();
    afx_msg void OnBnClickedButtonGlasscenterGoXy();
 
    afx_msg void OnBnClickedCheckAfmTrack();    
    afx_msg    LRESULT    OnCameraStatusUpdate(WPARAM wParam, LPARAM lParam);
    afx_msg    LRESULT    OnUpdateSelectedModuleIndex(WPARAM wParam, LPARAM lParam);
 
    afx_msg void OnTimer(UINT_PTR nIDEvent);
 
    afx_msg void OnBnClickedUseKeyboardCommand();
    afx_msg void OnBnClickedButtonTest2();
 
    void KeyboardXYJogMove(MSG* pMsg);
    void KeyboardpvMagnificChange(int Magidx);
    void KeyboardMotionSpeedChange(BOOL flag);
    void KeyboardLightValueChange(BOOL flag);
    void KeyboardAFMJogMove(int flag);
    void KeyboardGlassXYInput(MSG* pMsg);
 
private:
    int m_nJogDown;
 
    BOOL m_bCheckKeyJog;
    BOOL m_bMoveKeyJogCheck;
    int m_nKeyBoardCommand;
    int m_nKeyJogDownIndex;
    CString    m_strGlassPos;
    int m_nGlassGridViewIndex;
    CDlgKeyJogLogin* KeyboardCommandMode;
 
public:
    BOOL    m_bRClicked;
 
    void    ShowControls( BOOL bCheck );
    void    MoveMainWindow( int nIdx );
 
protected:
 
    CRect    m_rtOriginal;
 
protected:
    CakGroupCtrl m_ctrlGroupCtrl;
    CakButtonColorCtrl m_ctrlButtonColorCtrl;
    CakButtonColorCtrl m_ctrlCheckBoxColorCtrl;
//     CakButtonColorCtrl m_ctrlAFMCheckBoxColorCtrl;
//     CakButtonColorCtrl m_ctrlJogUpCheckBoxColorCtrl;
//     CakButtonColorCtrl m_ctrlJogDownCheckBoxColorCtrl;
//     CakButtonColorCtrl m_ctrlRightCheckBoxColorCtrl;
//     CakButtonColorCtrl m_ctrlLEFTCheckBoxColorCtrl;
//     CakButtonColorCtrl m_ctrlREDUCECheckBoxColorCtrl;
// 
     CakButtonColorCtrl m_ctrlRadioColorCtrl[5];
// 
//     CakButtonColorCtrl m_ctrllUseWSICon;
//     CakButtonColorCtrl m_ctrlOffSetOn;
 
    CakStaticTextCtrl    m_ctrlStaticTextCtrl;
public:
    afx_msg void OnBnClickedButtonUiExpand();
    afx_msg void OnBnClickedButtonUiLeft();
 
    //CButton                        m_btnCenter;
    CButton                        *m_btnLeft;
    CButton                        *m_btnReduce;
//    CButton                        m_btnRight;
 
    CButton *m_chekreduce;
//    afx_msg void OnBnClickedButtonVersion();
//    afx_msg void OnBnClickedButtonUiRight();
    afx_msg void OnBnClickedButtonUiRight1();
    afx_msg void OnBnClickedCheckUseWsiControl();
    CButton *m_ctrlUseWSICon;
    CButton *SelectOffSetOn;
    CButton *m_ctrlUserSimulation;
    afx_msg void OnBnClickedSelectOffsetOn();
    // 센터 좌표 안쓰기
//    CButton m_ctlNotUseCenterPos;
    afx_msg BOOL OnEraseBkgnd(CDC* pDC);
    afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
    CButton *m_btnRight;
    CBrush m_brushBk;
    afx_msg void OnBnClickedBtReviewPopup();
    afx_msg void OnBnClickedCheckUseSimulation();
    afx_msg void OnDblclkStaticMagnification();
    afx_msg void OnBnClickedButtonAligncamGrab();
};