#pragma once #include // path define #define REVIEW_AUTO_DIAGNOSIS_SETTING_FILE_PATH _T("D:\\DIT_Review\\DiagnosisConfig") //210805 //#define REVIEW_AUTO_DIAGNOSIS_SETTING_FILE_PATH _T("C:\\DIT_Review\\DiagnosisConfig") #define REVIEW_AUTO_DIAGNOSIS_SETTING_FILE_NAME _T("AutoDiagnosisSetting.cfg") #define REVIEW_AUTO_DIAGNOSIS_DATA_FILE_PATH _T("D:\\ResultData\\AutoDiagnosis") #define REVIEW_AUTO_DIAGNOSIS_DATA_IMAGE_FILE_PATH _T("D:\\ResultData\\AutoDiagnosis\\ResultImage") #define REVIEW_AUTO_DIAGNOSIS_STANDARD_FILE_NAME _T("AutoDiagnosisStandard.xls") #define REVIEW_AUTO_DIAGNOSIS_RESULT_FILE_NAME _T("AutoDiagnosisResult") #define REVIEW_AUTO_DIAGNOSIS_RESULT_IMAGE_DATA_PATH _T("D:\\ResultData\\AutoDiagnosis\\ResultImage") #define REVIEW_AUTO_DIAGNOSIS_RESULT_SQUARENESS_PATH _T("D:\\ResultData\\AutoDiagnosis\\ResultSquareness") #define REVIEW_AUTO_DIAGNOSIS_RESULT_FLATNESS_PATH _T("D:\\ResultData\\AutoDiagnosis\\ResultFlatness") #define REVIEW_AUTO_DIAGNOSIS_RESULT_WSI_PATH _T("D:\\ResultData\\AutoDiagnosis\\ResultWSI") #define MAX_PANEL_COUNT 10 enum DiagnosisSignal { DiagnosisSignal_Auto = 0, DiagnosisSignal_Manual }; enum DiagnosisMode { DiagnosisMode_All = 0, DiagnosisMode_Review, DiagnosisMode_Wsi, DiagnosisMode_Squareness, DiagnosisMode_Flatness, DiagnosisMode_Flatness_Manual, DiagnosisMode_Simulation }; enum FlatnessMode { Mode_2x2 , Mode_3x3, Mode_3x4, Mode_4x5, Mode_10x10, ModeCount}; enum PanelPosition { PanelPosition_Base = 0, PanelPosition_Sub, PanelPosition_Addition }; interface IDiagnosisProcessor2Parent { virtual void IDP2P_DisplayMessage(int nIndex, const TCHAR* lpstrFormat, ...) = 0; // motor virtual void IDP2P_MotorGo(int nModuleIdx, double dPosX, double dPosY, BOOL bWaitReturn = FALSE) = 0; virtual BOOL IDP2P_GetMotionEnd(int nModuleIdx, int nTimeOut=-1) = 0; virtual BOOL IDP2P_IsGantryMotionEnd(int nModuleIdx) = 0; // Squareness virtual int IDP2P_GetSelectedModuleIndex() = 0; virtual int IDP2P_GetOrigionMotorDir() = 0; virtual BOOL IDP2P_FindPanelCenter(int nModuleIdx, double& dPixelX, double& dPixelY, CString strImageName) = 0; // Flatness virtual BOOL IDP2P_SetAFMTracking(int nModuleIdx, BOOL bOn) = 0; virtual BOOL IDP2P_GetAFMZPosition(int nModuleIdx, double& dValue) = 0; virtual BOOL IDP2P_AFMHomePosition(int nModuleIndex) = 0; // wsi virtual void IDP2P_SetWsiManualMeasure(int nModuleIdx, double dPosX, double dPosY) = 0; virtual void IDP2P_WsiMotorMotionEnd(int nModuleIdx, double dPosX, double dPosY) = 0; virtual BOOL IDP2P_DiagnosisSendCompleteSig()=0; virtual BOOL IDP2P_DiagnosisSendJudgeAlarm() = 0; //0412 AU�Ƣ�A����U ��AE�� A���Ƣ� // Dialog virtual BOOL IDP2P_SetDlgFlatness(int nIndex) = 0; virtual BOOL IDP2P_SetDialogTap(int nIndex) = 0; virtual void IDP2P_UpdateDialog(int nIndex = -1) = 0; virtual BOOL IDP2P_CheckManualMode() = 0; }; struct SPositionData { SPositionData() { Reset(); } ~SPositionData() { Reset(); } void Reset() { memset(this, 0x00, sizeof(SPositionData)); } int nIndex; int nPosMode; int nModuleIdx; BOOL bProcsss; double dPosX; // mm double dPosY; // mm double dPos2X; // mm double dPos2Y; // mm double dPos3X; // mm double dPos3Y; // mm double dPosZ; double dPixelX; double dPixelY; double dPixel2X; double dPixel2Y; double dPixel3X; double dPixel3Y; double dPosAssemX; double dPosAssemY; //taek 210105 }; typedef std::vector VectorPositionData; typedef std::vector::iterator VectorPositionDataIt; class AFX_EXT_CLASS CDiagnosisResult { public: CDiagnosisResult() { Reset(); } virtual ~CDiagnosisResult() { Reset(); } void Reset() { memset(this, 0x00, sizeof(CDiagnosisResult)); if (m_pPositionData_Flatness != NULL) delete m_pPositionData_Flatness; } BOOL PathScheduling_Flatness(SPositionData* pPositionData, int nGlassSizeX, int nGlassSizeY); BOOL PathScheduling_Flatness_TestFunc(SPositionData* pPositionData, int nGlassSizeX, int nGlassSizeY); // setter void SetModuleIndex(int nIndex) { m_nModuleIndex = nIndex; } void SetPanelCount_Squareness(int nCount) { m_nPanelCount_Squareness = nCount; } void SetGantryDegree(double dData) { m_dGantryDegree = dData; } void SetXScaleDegree(double dData) { m_dXScaleDegree = dData; } void SetPositionData_Flatness(int nIndex); void SetRangeCount_Flatness(int nCount) { m_nRangeCount_Flatness = nCount; } void SetFlatnessMode(int nMode) { m_nFlatnessMode = nMode; } void SetHeight3Sigma(double dData) { m_dHeight3Sigma = dData; } void SetACC(double dData) { m_dACC = dData; } void SetRTB(double dData) { m_dRTB = dData; } void SetDiagnosisHeight(double dData, int idx) { m_dDiagnosisHeight[idx] = dData; } // getter int GetModuleIndex() const { return m_nModuleIndex; } int GetPanelCount_Squareness() const { return m_nPanelCount_Squareness; } SPositionData* GetPositionData_Squareness(int nIndex); const SPositionData* GetPositionData_Squareness(int nIndex) const; double GetGantryDegree() const { return m_dGantryDegree; } double GetXScaleDegree() const { return m_dXScaleDegree; } SPositionData* GetPositionData_CalcResult() { return &m_PositionData_CalcResult; } const SPositionData* GetPositionData_CalcResult() const { return &m_PositionData_CalcResult; } //taek 210105 SPositionData* GetPositionData_Flatness(int nIndex); const SPositionData* GetPositionData_Flatness(int nIndex) const; int GetRangeCount_Flatness() const { return m_nRangeCount_Flatness;} int GetFlatnessMode() const { return m_nFlatnessMode; } double GetHeight3Sigma() const { return m_dHeight3Sigma; } double getWSI_ACC() const {return m_dACC;} double getWSI_RTB() const { return m_dRTB; } double GetDiagnosisHeight(int idx) const { return m_dDiagnosisHeight[idx]; } protected: int m_nModuleIndex; // Squareness int m_nPanelCount_Squareness; SPositionData m_pPositionData_Squareness[MAX_PANEL_COUNT]; double m_dGantryDegree; double m_dXScaleDegree; SPositionData m_PositionData_CalcResult; //taek 210105 // Flatness int m_nRangeCount_Flatness; int m_nFlatnessMode; SPositionData* m_pPositionData_Flatness; // wsi double m_dHeight3Sigma; double m_dACC; double m_dRTB; double m_dDiagnosisHeight[10]; }; typedef std::vector VectorDiagnosisResult; typedef std::vector::iterator VectorDiagnosisResultIt; class AFX_EXT_CLASS CDiagnosisInfo { public: CDiagnosisInfo() { Reset(); } virtual ~CDiagnosisInfo() { Reset(); } void Reset() { m_vecSettingResult_Squareness.clear(); m_nCameraFrameWidth = 0; m_nCameraFrameHeight = 0; m_dCameraResolution = 0.; m_nPanelCount_Squareness = 0; m_dJudgeData_Degree = 0.; m_dSquarenessStandard = 0.; m_dataSettingResult_Flatness.Reset(); m_nAFDelay = 0; m_dJudgeData_ZRange = 0.; m_nFlatnessMode = 0; m_nRangeCount_Flatness = 0; m_nGlassSizeX = 0; m_nGlassSizeY = 0; m_vecSettingResult_Wsi.clear(); m_nPanelCount_Wsi = 0; m_dJudgeData_3Sigma = 0.; m_dWSIStandard = 0.; m_dPanelPosX = 0; m_dPanelPosY = 0; m_dPanelPosX2 = 0; m_dPanelPosY2 = 0; m_dReviewPanelPosX=0; m_dReviewPanelPosY = 0; m_dReviewPanelPosX3 = 0; m_dReviewPanelPosY3 = 0; m_dReviewPanelPosX2 = 0; m_dReviewPanelPosY2 = 0; m_dReviewPanelPosX4 = 0; m_dReviewPanelPosY4 = 0; /*< LYW 20210719 : #3517 ADD Start >*/ m_nFlatnessSkipMode = 0; /*< LYW 20210719 : #3517 ADD End >*/ } // init BOOL LoadInfo(CString strFilePath); // setter void SetModuleCount(int nCount) { m_nModuleCount = nCount; } int SetSettingResultCount_Squareness(int nCount); void SetPanelCount_Squareness(int nCount) { m_nPanelCount_Squareness = nCount; } void SetCameraResolution(double dData) { m_dCameraResolution = dData; } void SetCameraFrameSize(int nWidth, int nHeight) { m_nCameraFrameWidth = nWidth; m_nCameraFrameHeight = nHeight; } void SetJudgeData_Degree(double dData) { m_dJudgeData_Degree = dData; } void SetAFDelay(int nData) { m_nAFDelay = nData; } void SetJudgeData_ZRange(double dData) { m_dJudgeData_ZRange = dData; } void SetPanelCount_Wsi(int nCount) { m_nPanelCount_Wsi = nCount; } void SetJudgeData_3Sigma(double dData) { m_dJudgeData_3Sigma = dData; } void SetPanelPosX_Wsi(double dData) { m_dPanelPosX = dData; } void SetPanelPosY_Wsi(double dData) { m_dPanelPosY = dData; } void SetPanelPosX2_Wsi(double dData) { m_dPanelPosX2 = dData; } void SetPanelPosY2_Wsi(double dData) { m_dPanelPosY2 = dData; } /*< LYW 20210719 : #3517 ADD Start >*/ void SetFlastnessSkipMode(double dData) { m_nFlatnessSkipMode = dData; } void SetSquarenessStandard(double dData) { m_dSquarenessStandard = dData; } void SetSquarenessStandard2(double dData) { m_dSquarenessStandard2 = dData; } void SetWSIStandard(double dData) { m_dWSIStandard = dData; } /*< LYW 20210719 : #3517 ADD End >*/ // getter int GetModuleCount() const { return m_nModuleCount; } CDiagnosisResult* GetSettingResult_Squareness(int nModuleIdx); const CDiagnosisResult* GetSettingResult_Squareness(int nModuleIdx) const; int GetCameraFrameWidth() const { return m_nCameraFrameWidth; } int GetCameraFrameHeight() const { return m_nCameraFrameHeight; } double GetCameraResolution() const { return m_dCameraResolution; } int GetPanelCount_Squareness() const { return m_nPanelCount_Squareness; } double GetJudgeData_Degree() const { return m_dJudgeData_Degree; } CDiagnosisResult* GetSettingResult_Flatness(); const CDiagnosisResult* GetSettingResult_Flatness() const; int GetAFDelay() const { return m_nAFDelay; } double GetJudgeData_ZRange() const { return m_dJudgeData_ZRange; } int GetFlatnessMode() const { return m_nFlatnessMode; } int GetRangeCount_Flatness() const { return m_nRangeCount_Flatness; } int GetGlassSizeX_Flatness() const { return m_nGlassSizeX; } int GetGlassSizeY_Flatness() const { return m_nGlassSizeY; } CDiagnosisResult* GetSettingResult_Wsi(int nModuleIdx); const CDiagnosisResult* GetSettingResult_Wsi(int nModuleIdx) const; int GetPanelCount_Wsi() const { return m_nPanelCount_Wsi; } double GetJudgeData_3Sigma() const { return m_dJudgeData_3Sigma; } double GetPanelPosX_Wsi() const { return m_dPanelPosX; } double GetPanelPosY_Wsi() const { return m_dPanelPosY; } double GetPanelPosX2_Wsi() const { return m_dPanelPosX2; } double GetPanelPosY2_Wsi() const { return m_dPanelPosY2; } /*< LYW 20210719 : #3517 ADD Start >*/ int GetFlastnessSkipMode() const { return m_nFlatnessSkipMode; } double GetSquarenessStandard() const { return m_dSquarenessStandard; } double GetSquarenessStandard2() const { return m_dSquarenessStandard2; } double GetWSIStandard() const { return m_dWSIStandard; } /*< LYW 20210719 : #3517 ADD End >*/ //Review public: double GetReviewPanelPosX() const { return m_dReviewPanelPosX; } double GetReviewPanelPosY() const { return m_dReviewPanelPosY; } double GetReviewPanelPosX3() const { return m_dReviewPanelPosX3; } double GetReviewPanelPosY3() const { return m_dReviewPanelPosY3; } double GetReviewPanelPosX5() const { return m_dReviewPanelPosX5; } double GetReviewPanelPosY5() const { return m_dReviewPanelPosY5; } double GetReviewPanelPosX2() const { return m_dReviewPanelPosX2; } double GetReviewPanelPosY2() const { return m_dReviewPanelPosY2; } double GetReviewPanelPosX4() const { return m_dReviewPanelPosX4; } double GetReviewPanelPosY4() const { return m_dReviewPanelPosY4; } double GetReviewPanelPosX6() const { return m_dReviewPanelPosX6; } double GetReviewPanelPosY6() const { return m_dReviewPanelPosY6; } protected: // common int m_nModuleCount; // Squareness VectorDiagnosisResult m_vecSettingResult_Squareness; // add module count int m_nPanelCount_Squareness; int m_nCameraFrameWidth; int m_nCameraFrameHeight; double m_dCameraResolution; double m_dJudgeData_Degree; /*< LYW 20210719 : #3517 ADD Start >*/ double m_dSquarenessStandard; double m_dSquarenessStandard2; /*< LYW 20210719 : #3517 ADD End >*/ // Flatness CDiagnosisResult m_dataSettingResult_Flatness; // single data int m_nAFDelay; double m_dJudgeData_ZRange; int m_nFlatnessMode; int m_nRangeCount_Flatness; int m_nGlassSizeX; int m_nGlassSizeY; /*< LYW 20210719 : #3517 ADD Start >*/ int m_nFlatnessSkipMode; /*< LYW 20210719 : #3517 ADD End >*/ // wsi VectorDiagnosisResult m_vecSettingResult_Wsi; // add module count int m_nPanelCount_Wsi; double m_dJudgeData_3Sigma; /*< LYW 20210719 : #3517 ADD Start >*/ double m_dWSIStandard; /*< LYW 20210719 : #3517 ADD End >*/ double m_dPanelPosX; double m_dPanelPosY; double m_dPanelPosX2; double m_dPanelPosY2; double m_dReviewPanelPosX; double m_dReviewPanelPosY; double m_dReviewPanelPosX3; double m_dReviewPanelPosY3; double m_dReviewPanelPosX5; double m_dReviewPanelPosY5; double m_dReviewPanelPosX2; double m_dReviewPanelPosY2; double m_dReviewPanelPosX4; double m_dReviewPanelPosY4; double m_dReviewPanelPosX6; double m_dReviewPanelPosY6; };