//#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();
|
};
|