From 9020bfb6f86ff853d5d5b3cee882132a244232da Mon Sep 17 00:00:00 2001 From: KEJ <kimeungju@diteam.co.kr> Date: 금, 24 11월 2023 15:33:29 +0900 Subject: [PATCH] Merge branch 'feature/#4528_CF_AOI_Review_Motor_Offset_기능_추가' into develop --- ReviewSystem/ReviewSystem/DlgMotorOffSetTool.h | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 151 insertions(+), 0 deletions(-) diff --git a/ReviewSystem/ReviewSystem/DlgMotorOffSetTool.h b/ReviewSystem/ReviewSystem/DlgMotorOffSetTool.h new file mode 100644 index 0000000..1fa3c1e --- /dev/null +++ b/ReviewSystem/ReviewSystem/DlgMotorOffSetTool.h @@ -0,0 +1,151 @@ +癤�#pragma once +#include <vector> +#include <map> + +#define OFFSET_LIST_GRID_ROW_COUNT 1 +#define OFFSET_LIST_GRID_COL_COUNT 3 + +#define FIXCELLCOLOR RGB(255, 102, 178) +#define NOFIXCELLCOLOR RGB(240, 240, 240) +#define MINCELLCOLOR RGB(204, 204, 255) +#define MAXCELLCOLOR RGB(204, 255, 204) +#define MOTOR_OFFSET_CONFIGFILE_DEFAULT_NAME _T("MotorOffset") +#define MOTOR_OFFSET_BACKUP_FORDER_NAME _T("OffsetBackup") +#define MOTOR_OFFSET_BACKUP_FORDER_PATH _T("D:\\DIT_Review\\ReviewServerConfig\\ReviewOffset\\OffsetBackup\\") +#define GRID_ROW_START_POINT 2 +#define GRID_COL_START_POINT 2 + +interface IDialogMotorOffSet2Parent +{ + virtual BOOL IDMO2P_GetMotorPos(int nModule, double &dXpos, double &dYpos) = 0; +}; +struct MotorOffSetInfo +{ + double dXoffSetValue; + double dYoffSetValue; + MotorOffSetInfo() { + dXoffSetValue = 0; + dYoffSetValue = 0; + } + bool operator==(const MotorOffSetInfo& input) const + { + return 0 == memcmp(&input, this, sizeof(MotorOffSetInfo)); + } +}; +typedef std::vector<MotorOffSetInfo> VecMotorOffSetData; + +class CMotorOffsetData +{ +public: + CMotorOffsetData() { ; } + + ~CMotorOffsetData() { ; } + + // Defect Review + BOOL CalcOffset(_Inout_ double& GlassPosX, _Inout_ double& GlassPos); + + // Setting Dlg + void SetRangeCountX(_In_ unsigned int nCount); + void SetRangeCountY(_In_ unsigned int nCount); + BOOL SetRangeX(_In_ unsigned int nIdx, _In_ double fX); + BOOL SetRangeY(_In_ unsigned int nIdx, _In_ double fY); + + int GetRangeCountX(); + int GetRangeCountY(); + double GetRangeX(_In_ unsigned int nIdx); + double GetRangeY(_In_ unsigned int nIdx); + + BOOL SetOffsetValue(_In_ unsigned int nXIndex, _In_ unsigned int nYIndex, _In_ MotorOffSetInfo pOffsetInfo); + + MotorOffSetInfo GetOffsetValue(_In_ int nXIndex, _In_ int nYIndex); + + // File Access + BOOL WriteConfigFile(int nIdx); + BOOL ReadConfigFile(int nIdx); + + //Read Func + BOOL LoadInfo(CString strFilePath, int nIdx); + + bool operator==(const CMotorOffsetData& input) const + { + if (this->m_vtXRange == input.m_vtXRange) + { + if (this->m_vtYRange == input.m_vtYRange) + { + if (this->m_mapOffsetInfo == input.m_mapOffsetInfo) + { + + return TRUE; + } + } + } + else FALSE; + } + +protected: + + std::vector<double> m_vtXRange; + std::vector<double> m_vtYRange; + std::map<int, std::map<int, MotorOffSetInfo>> m_mapOffsetInfo; // <YRange , <XRange , OffsetInfo> > +private: + + +}; +typedef std::map<int, CMotorOffsetData> MapMotorOffSetInfo; + + +class CDlgMotorOffSetTool : public CDialogEx +{ + DECLARE_DYNAMIC(CDlgMotorOffSetTool) + +public: + CDlgMotorOffSetTool(CWnd* pParent = nullptr); // �몴以� �깮�꽦�옄�엯�땲�떎. + virtual ~CDlgMotorOffSetTool(); + + // ���솕 �긽�옄 �뜲�씠�꽣�엯�땲�떎. +#ifdef AFX_DESIGN_TIME + enum { IDD = IDD_DLG_MOTOR_OFFSET_TOOL }; +#endif + + +protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 吏��썝�엯�땲�떎. + + DECLARE_MESSAGE_MAP() + +public: + virtual BOOL OnInitDialog(); + afx_msg void OnBnClickedOK(); + afx_msg void OnBnClickedCancel(); + afx_msg void OnXCountKillFocus(); + afx_msg void OnYCountKillFocus(); + + void InitOffSetInfoGridControl(); + void SetColorType(); + void InitProcess(); + void UpdateGridcontrol(); + void SetDMO2P(IDialogMotorOffSet2Parent* pDMO2P) { m_pDMO2P = pDMO2P; } + + BOOL CalOffsetInfo(int nModuleIdx, double &XPos, double &YPos); + ////////////============================== + void ApplyOffSetInfo(); //Grid -> Map + //////////================================ + +protected: + CRITICAL_SECTION m_csMapSafer; + + COLORTYPE Color[10]; + + int m_nEditXposCount; + int m_nEditYposCount; + // �꽕鍮꾨퀎 Offset + int m_nCurOffsetModuleIdx; +public: + CGridCtrl m_ctrlGridMotorOffSetInfo; + IDialogMotorOffSet2Parent* m_pDMO2P; + + MapMotorOffSetInfo m_mapMotorOffsetInfo; + MapMotorOffSetInfo m_mapMotorOffsetInfo_OLD; + CComboBox m_ctrlCmbModuleIdx; + afx_msg void OnSelchangeComboMotorOffsetModuleidx(); +}; -- Gitblit v1.9.3