SDC C-Project CF Review 프로그램
LYW
2021-07-01 4acd943c6f0beecd3ee573f77d8d6c7524fd5045
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
//#include "ReviewInterface.h"
 
#pragma once
enum OFFSETCOUNT {
    CAM_MAX_COUNT = 20, XPOS_MAX_COUNT = 10, SCAN_MAX_COUNT = 10, PROGRESS_BAR_MAX = 2000
};
 
enum COLORTYPE {
    FFA7A7 = RGB(255, 167, 167),
    FFC19E = RGB(255, 193, 158),
    FFE08C = RGB(255, 224, 140),
    FAED7D = RGB(250, 237, 125),
    FFB2F5 = RGB(255, 178, 245),
 
    A566FF = RGB(165, 102, 255),
    D9418C = RGB(217, 65, 140),
    A00D8FF = RGB(0, 216, 255),
    A2F9D27 = RGB(47, 157, 39),
    A4641D9 = RGB(70, 65, 217)
};
//enum MotorOringTYPE {
//    LEFT_Top = 0, RIGHT_TOP,LEFT_BOTTOM, RIGHT_BOTTOM
//};
#define    REVIEW_OFFSET_CONFIGFILE_PATH _T("C:\\DIT_Review\\ReviewServerConfig\\")
#define    REVIEW_OFFSET_CONFIGFILE_NAME _T("ReviewOffSet.cfg")
#define REVIEW_OFFSET_CONFIGFILE_FULL_PATHNAME _T("C:\\DIT_Review\\ReviewServerConfig\\ReviewOffSet.cfg")
#define    REVIEW_OFFSET_BACKUP_FORDER_NAME _T("OffsetBackup")
#define    REVIEW_OFFSET_BACKUP_FORDER_PATH _T("C:\\DIT_Review\\ReviewServerConfig\\OffsetBackup\\")
 
// CDlgDefocusList 대화 상자입니다.
interface IDialogReviewOffSet2Parent
{
    //virtual BOOL DAC2P_GetAlignImage(int nType, int nIndex, CCHImageData* pImageData) = 0;
 
    virtual BOOL IDRO2P_GetMotorPos(int nModule, double &dXpos, double &dYpos)= 0;
    virtual BOOL IDRO2P_SetGlassMode(BOOL bMode, int nCamidx, int nScanidx, double nXpos, double nYpos) = 0;
    //virtual const CSystemInfo*  SP2P_System_GetSystemInfo()= 0;
    //virtual const CMotorControlInfo*    ISP2P_System_GetMotorInfo() = 0;
};
// DlgReviewOffSetTool 대화 상자
struct OffSetInfo
{
    int nXposIndex;
    int nScanIndex;
    int nCamIndex;
    double dXposMax;
    double dXposMin;
    double dYposMax;
    double dYposMin;
    double dXoffSetValue;
    double dYoffSetValue;
 
};
typedef std::vector<OffSetInfo> VecOffSetData;
typedef std::vector<VecOffSetData> VecOffSetScanData;
typedef std::vector<VecOffSetScanData> VecOffSetCameraInfo;
 
class DlgReviewOffSetTool : public CDialogEx
{
    DECLARE_DYNAMIC(DlgReviewOffSetTool)
 
public:
    DlgReviewOffSetTool(CWnd* pParent = nullptr);   // 표준 생성자입니다.
    virtual ~DlgReviewOffSetTool();
 
// 대화 상자 데이터입니다.
#ifdef AFX_DESIGN_TIME
    enum { IDD = IDD_DLG_REVIEW_OFFSET_TOOL };
#endif
    
 
protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 지원입니다.
 
    DECLARE_MESSAGE_MAP()
public:
    //Xpos 위치별 실제 Offset Data 를 가지고 있는 Vector
    VecOffSetData  m_vecOffSetData;
    //Scan Index를 통한 OffSet Data 를 관리하기위한 Vector
    VecOffSetScanData m_vecOffSetScanData;
    //CamIndex를 통한 관리를 위한 Vector  module 0
    VecOffSetCameraInfo  m_vecOffSetCameraInfo;
    //CamIndex를 통한 관리를 위한 Vector  module 1
    VecOffSetCameraInfo  m_vecOffSetCameraInfo2;
 
    CGridCtrl m_ctrlGridReviewOffSetInfo;
 
public:
    void SetDDL2P(IDialogReviewOffSet2Parent* pDDL2P) { m_pDDL2P = pDDL2P; }
    void InitModuleCombobox();
    void InitOffSetInfoGridControl();
    void ApplyOffSetInfo(int nMode=0);
    bool SaveConfigFile();
    bool ApplyConfigFile();
    void SetColorType();
    bool ReadConfigFile();
 
    //offsetinfo 가져오기
    OffSetInfo GetOffSetInfo(int nMoudleidx, int nCamIndex, int ScanIndex, int nXposIndex);
    OffSetInfo* GetOffSetInfoCBR(int nMoudleidx, int nCamIndex, int ScanIndex, int nXposIndex);
    void GetOffSetInfo(int nModuleidx, int nCamIndex, int ScanIndex, double nGlassXPos, double &nXpos, double &nYpos);
 
    //info 변수 건들이기
    BOOL  SetOffSetValue(int nMoudleidx, int nCamIndex, int ScanIndex, int nXposIndex, double dXOffsetValue, double dYOffsetValue);
    bool SetInputOffSet(int nMoudleidx, int nCamIndex, int ScanIndex, int nXposIndex, double dXOffsetValue, double dYOffsetValue, double dXposMin, double dXposMax);
 
    void UpdateGridcontrol();
 
 
    void InitDataInfo();
 
    void InitProcess();
 
    void DissableBT();
    void EnableBT();
 
    void IncressProcessBar(double dValue);
    double dBarValue;
    //유저 입력 
    //Xpos 분별 카운트 m_nXposCount;
    //Cam 분별 카운트 m_nCamCount;
 
protected: 
    IDialogReviewOffSet2Parent* m_pDDL2P;
    int m_nCameraCount;
    int m_nScanCount;
    int m_XposCount;
    int m_nReveiwCamCount;
    COLORTYPE Color[10];
 
public:
    virtual BOOL OnInitDialog();
    afx_msg void OnBnClickedButtionTargetPos();
    afx_msg void OnBnClickedButtionCahngeTargetPos();
    afx_msg void OnGridSelChanged(NMHDR* pNMHDR, LRESULT* pResult);
    afx_msg void OnBnClickedButtonAppltOffset();
    afx_msg void OnBnClickedOk();
    afx_msg void OnEnChangeEditReviewCamcount();
    afx_msg void OnEnChangeEditScanCount();
    void ApplyToEditOffSetValue();
 
protected:
    double m_EditTargetXpos;
    double m_EditTargetYpos;
    double m_EditChangeTargetXpos;
    double m_EditChangeTargetYpos;
    CComboBox m_ctrlComboModule;
    double m_EditOffSetValueX;
    double m_EditOffSetValueY;
    int m_nEditCameraCount;
    int m_nEditScanCount;
    int m_nEditReviewCameraCount;
    int m_nEditXposCount;
public:
    CWinThread* m_pThread;
    int nThreadType;
    static UINT ThradProcess(LPVOID param);
protected:
    //UI 변경용 변수들
    int m_SelectedCellCol;
    int m_SelectedCellRow;
    int m_nSelectedModule;
    
public:
    afx_msg void OnBnClickedButtonApplyGridData();
    afx_msg void OnCbnSelchangeComboSelectModule();
    BOOL LoadInfo(CString strFilePath);
    afx_msg void OnBnClickedButtonAppltOffsetParam();
    CButton m_ctrlGradAppltbt;
    CButton m_ctrlApplyOffsetParamBt;
    CButton m_ctrlApplyOffsetBt;
    CButton m_ctrlSetTargetMotorBt;
    CButton m_ctrlSetChangeMotorBt;
    
    afx_msg LRESULT OnUserFunc(WPARAM wParam, LPARAM lParam);
    afx_msg LRESULT OnUpdatedata(WPARAM wParam, LPARAM lParam);
    CString m_strEditSettingFilePath;
    CProgressCtrl m_ctrlProcessBar;
    afx_msg void OnBnClickedButtonSaveSettingFile();
    CButton m_ctrlSaveBt;
    CButton m_ctrlOffSetMode;
    int m_editGlassOffSetmodeCamIndex;
    int m_editGlassOffSetmodeScanIndex;
    double m_editGlassOffSetmodeXpos;
    double m_editGlassOffSetmodeYpos;
    afx_msg void OnBnClickedCheckOffsetMode();
};