//#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("D:\\DIT_Review\\ReviewServerConfig\\") //210805 #define REVIEW_OFFSET_CONFIGFILE_NAME _T("ReviewOffSet.cfg") #define REVIEW_OFFSET_CONFIGFILE_FULL_PATHNAME _T("D:\\DIT_Review\\ReviewServerConfig\\ReviewOffSet.cfg") #define REVIEW_OFFSET_BACKUP_FORDER_NAME _T("OffsetBackup") #define REVIEW_OFFSET_BACKUP_FORDER_PATH _T("D:\\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 VecOffSetData; typedef std::vector VecOffSetScanData; typedef std::vector 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(); };