#pragma once #include enum MapDrawType { MapDrawCell=0, MapDrawDefect, MapDrawReviewDefect, MapDrawReviewPath, MapDrawWsiDefect, MapDrawWsiPath, MapDrawSelectedDefect, MapDrawCameraPosition, MapDrawUserPoint, MapDrawUserPath, MapDrawMeasurePoint, MapDrawMeasurePath, MapDrawWsiReflowDefect, MapDrawWsiReflowPath, MapDrawWsiUserDefect, MapDrawWsiUserPath, MapDrawCount }; struct SDefectFilter { SDefectFilter() { Reset(); } void Reset() { bMeasurePoint = FALSE; bUseWSI = FALSE; bUseWSIMeasurement = FALSE; bAutoSelectCamera = FALSE; bUseSimulation = FALSE; for (int i=0; i*/ BOOL bJudgeND; /*< LYW 20211220 - #0000 ADD End >*/ BOOL bProcessNormal; BOOL bProcessMask; BOOL bProcessCommon; BOOL bProcessCrack; BOOL bPositionFront; BOOL bPositionBack; }; struct SCameraControl { SCameraControl() { bSelected = FALSE; bAFMTracking = FALSE; bDigitalZoom = FALSE; nCameraControl = 0; nZoomLevel = 0; //tEST 0702 strAFMRecipe = _T(""); nAFMRecipe = 0; nAFMLevel = 0; nReviewedDefectCount =0; nLightLevel = 0; nLightStatus = 100; nLightLevelMin = 0; nLightLevelMax = 255; nExposureTime = 500; } BOOL bSelected; BOOL bAFMTracking; BOOL bDigitalZoom; int nCameraControl; int nZoomLevel; CString strAFMRecipe; int nAFMRecipe; int nAFMLevel; int nReviewedDefectCount; int nLightStatus; int nLightLevel; int nLightLevelMin; int nLightLevelMax; int nExposureTime; }; struct SCameraInfo { SCameraInfo() { nFrameWidth = 0; nFrameHeight = 0; nFrameChannels = 0; nDirectionX = 1; nDirectionY = 1; dOffsetX = 0.0; dOffsetY = 0.0; dTriangleGab = 100.0;// dResolution = 1.0; // um/pixel } int nFrameWidth; int nFrameHeight; int nFrameChannels; int nDirectionX; int nDirectionY; double dOffsetX; double dOffsetY; double dTriangleGab; double dResolution; }; typedef std::vector VectorSCameraInfo; typedef std::vector::iterator VectorSCameraInfoIt; struct SMotorPosition { SMotorPosition() { dMotorPosX = 0.0; dMotorPosY = 0.0; dMotorPosZ = 0.0; dGlassPosX = 0.0; dGlassPosY = 0.0; dGlassPosZ = 0.0; bUseWSI = FALSE; dWSIOffsetX = 0.0; dWSIOffsetY = 0.0; dWSIPosX = 0.0; dWSIPosY = 0.0; } double dMotorPosX; double dMotorPosY; double dMotorPosZ; double dGlassPosX; double dGlassPosY; double dGlassPosZ; BOOL bUseWSI; double dWSIOffsetX; double dWSIOffsetY; double dWSIPosX; double dWSIPosY; }; struct SMotorStatus { SMotorStatus() { lMotorStatusX = 0; lMotorStatusY = 0; lMotorStatusSx = 0; nBitCount = 8; } BOOL AxisStatusX(int nIndex) { long nTemp = 1 << nIndex; return (lMotorStatusX & nTemp); } BOOL AxisStatusY(int nIndex) { long nTemp = 1 << nIndex; return (lMotorStatusY & nTemp); } BOOL AxisStatusSx(int nIndex) { long nTemp = 1 << nIndex; return (lMotorStatusSx & nTemp); } long lMotorStatusX; long lMotorStatusY; long lMotorStatusSx; int nBitCount; }; struct SThetaMotorInfo { SThetaMotorInfo() { lStatus = 0; dPosition = 0.0; } BOOL AxisStatus(int nIndex) { long nTemp = 1 << nIndex; return (lStatus & nTemp); } long lStatus; double dPosition; }; struct SSignalIOStatus { SSignalIOStatus() { Reset(); } void Reset() { nSignalRead = 0; nSignalWrite = 0; nBitCount = 16; } int GetBitCount() const { return nBitCount; } BOOL GetReadSignal(int nIndex) const { UINT nTemp = 1 << nIndex; return (nSignalRead & nTemp); } BOOL GetWriteSignal(int nIndex) const { UINT nTemp = 1 << nIndex; return (nSignalWrite & nTemp); } UINT nSignalRead; UINT nSignalWrite; int nBitCount; }; struct SAxisIndex { SAxisIndex() { nAxisIndexX = -1; nAxisIndexY = -1; nAxisIndexSx = -1; } int nAxisIndexX; int nAxisIndexY; int nAxisIndexSx; }; struct SCoordInfo { SCoordInfo() { bStandard = FALSE; nDirectionX = 1; nDirectionY = 1; dDistanceX = 0.0; dDistanceY = 0.0; dOffsetX = 0.0; dOffsetY = 0.0; } BOOL bStandard; short nDirectionX; short nDirectionY; double dDistanceX; double dDistanceY; double dOffsetX; double dOffsetY; }; struct SExternalIndex { SExternalIndex() { nLight_Index = -1; nLight_Channel = 0; nAFM_Index = -1; nAFM_Channel = 0; nRevolver_Index = -1; nRevolver_Channel = 0; nWSI_Index = -1; nWSI_Channel = 0; } int nLight_Index; int nLight_Channel; int nAFM_Index; int nAFM_Channel; int nRevolver_Index; int nRevolver_Channel; int nWSI_Index; int nWSI_Channel; }; struct SMagnificInfo { SMagnificInfo() { strMagnificName = _T("1.0X"); dMagnification = 1.0; dMagnificOffsetX = 0.0; dMagnificOffsetY = 0.0; //dTestOffsetX = 0.0; //dTestOffsetY = 0.0; nMsgHomePosition = 0; } double dMagnification; CString strMagnificName; double dMagnificOffsetX; double dMagnificOffsetY; //double dTestOffsetX; //배율별 오프셋 //double dTestOffsetY; int nMsgHomePosition; }; // //struct _ProtocalReviewModlueData //{ // _ProtocalReviewModlueData() // { // //모듈 현재 좌표 // int m_nModuleGlassPosX; //글라스 X위치 // int m_nModuleGlassPosY; //글라스 Y위치 // // int m_nPlanDefectNum; //리뷰할 결함 갯수 // int m_nReviewedDefectNum; //리뷰한 결함 갯수 // // //리뷰할 결함 위치 // int m_nPlanReviewPosX; // int m_nPlanReviewPosY; // } //}; typedef std::vector VectorSMagnificInfo; typedef std::vector::iterator VectorSMagnificInfoIt; typedef std::vector::const_iterator constVectorSMagnificInfoIt; class CModuleStatus { public: CModuleStatus(int nType, int nLens, int nModuleIdx, int nGantryIdx, int nHeaderIdx); virtual ~CModuleStatus(void); void SetStandard(BOOL bStandard) { sCoordInfo.bStandard = bStandard; } void SetSelected(BOOL bSelected); int GetModuleType() const { return nModuleType; } int GetLensType() const { return nLensType; } int GetModuleIndex() const { return nModuleIndex; } int GetGantryIndex() const { return nGantryIndex; } int GetHeaderIndex() const { return nHeaderIndex; } BOOL GetStandard() const { return sCoordInfo.bStandard; } BOOL GetSelected() const { return sCameraControl.bSelected; } int GetCameraInfoCount() const; int GetMagnificInfoCount() const; SExternalIndex* GetExternalIndex(); SCameraControl* GetCameraControl(); SMotorPosition* GetMotorPosition(); SMotorStatus* GetMotorStatus(); SAxisIndex* GetAxisIndex(); SCoordInfo* GetCoordInfo(); SCameraInfo* GetCameraInfo(int nIndex); SCameraInfo* GetCurrentCameraInfo(); SMagnificInfo* GetCurrentMagnificInfo(); SMagnificInfo* GetMagnificInfo(int nIndex); VectorSCameraInfo* GetVectorCameraInfo(); VectorSMagnificInfo* GetVectorSMagnificInfo(); // _ProtocalReviewModlueData* GetProtocolReviewModuleData(); //181031 const SExternalIndex* GetExternalIndex() const; const SCameraControl* GetCameraControl() const; const SMotorPosition* GetMotorPosition() const; const SMotorStatus* GetMotorStatus() const; const SAxisIndex* GetAxisIndex() const; const SCoordInfo* GetCoordInfo() const; const SCameraInfo* GetCameraInfo(int nIndex) const; const SCameraInfo* GetCurrentCameraInfo() const; const SMagnificInfo* GetMagnificInfo(int nIndex) const; const SMagnificInfo* GetCurrentMagnificInfo() const; const VectorSCameraInfo* GetVectorCameraInfo() const; const VectorSMagnificInfo* GetVectorSMagnificInfo() const; // _ProtocalReviewModlueData* GetProtocolReviewModuleData()const; //181031 void SetRevolverType(int nType); void SetExternalIndex(const SExternalIndex& externalIndex); void SetCameraControl(const SCameraControl& cameraControl); void SetMotorPosition(const SMotorPosition& motorPosition); void SetMotorStatus(const SMotorStatus& motorStatus); void SetAxisIndex(const SAxisIndex& axisIndex); void SetCoordInfo(const SCoordInfo& coordInfo); void SetCameraInfo(int nIndex, const SCameraInfo& cameraInfo); void SetVectorCameraInfo(const VectorSCameraInfo& vectorCameraInfo); void SetMagnificInfo(int nIndex, const SMagnificInfo& magnificInfo); void SetVectorMagnificInfo(const VectorSMagnificInfo& vectorMagnificInfo); // void SetProtocolReviewModuleData1(const _ProtocalReviewModlueData& moduleData); //181031 void AddCameraInfo(const SCameraInfo& cameraInfo); void AddMagnificInfo(const SMagnificInfo& magnificInfo); private: int nModuleType; int nLensType; int nModuleIndex; int nGantryIndex; int nHeaderIndex; SExternalIndex sExternalIndex; SCameraControl sCameraControl; SMotorPosition sMotorPosition; SMotorStatus sMotorStatus; SAxisIndex sAxisIndex; SCoordInfo sCoordInfo; VectorSMagnificInfo vectorMagnificInfo; VectorSCameraInfo vectorCameraInfo; }; typedef std::vector VectorModuleStatus; typedef std::vector::iterator VectorModuleStatusIt; typedef std::vector::const_iterator constVectorModuleStatusIt; interface IUpdateSelectedModuleIndex { virtual void UpdateSelectedModuleIndex(int nModuleIndex, const CModuleStatus* pModuleStatus) = 0; }; typedef std::vector ObserverUpdateSelectedModuleIndex; typedef std::vector::iterator ObserverUpdateSelectedModuleIndexIt; interface IUpdateCameraControl { virtual void UpdateCameraControl(int nModuleIndex, const SCameraControl* pCameraControl, const SCameraInfo* pCameraInfo) = 0; }; typedef std::vector ObserverUpdateCameraControl; typedef std::vector::iterator ObserverUpdateCameraControlIt; interface IUpdateCameraInfo { virtual void UpdateCameraInfo(int nModuleIndex, const SCameraInfo* pCameraInfo) = 0; }; typedef std::vector ObserverUpdateCameraInfo; typedef std::vector::iterator ObserverUpdateCameraInfoIt; interface IUpdateMotorPosition { virtual void UpdateMotorPosition(int nModuleIndex, BOOL bSelected, const SMotorPosition* pMotorPosition) = 0; }; typedef std::vector ObserverUpdateMotorPosition; typedef std::vector::iterator ObserverUpdateMotorPositionIt; interface IUpdateMotorStatus { virtual void UpdateMotorStatus(int nModuleIndex, const SMotorStatus* pMotorStatus) = 0; }; typedef std::vector ObserverUpdateMotorStatus; typedef std::vector::iterator ObserverUpdateMotorStatusIt; interface IUpdateThetaMotorInfo { virtual void UpdateThetaMotorInfo(const SThetaMotorInfo* pThetaMotorInfo) = 0; }; typedef std::vector ObserverUpdateThetaMotorInfo; typedef std::vector::iterator ObserverUpdateThetaMotorInfoIt; interface IUpdatePCControlIOSignal { virtual void UpdateSignalIOStatus(const SSignalIOStatus* pSignalIOStatus) = 0; }; typedef std::vector ObserverUpdatePCControlIOSignal; typedef std::vector::iterator ObserverUpdatePCControlIOSignalIt; interface IUpdateDefectFilter { virtual void UpdateDefectFilter(const SDefectFilter* pDefectFilter) = 0; }; typedef std::vector ObserverUpdateDefectFilter; typedef std::vector::iterator ObserverUpdateDefectFilterIt; interface IUpdateReviewProcessStatus { virtual void UpdateReviewProcessStatus(int nReviewStatus, int nPlanIndex=0) = 0; }; typedef std::vector ObserverUpdateReviewProcessStatus; typedef std::vector::iterator ObserverUpdateReviewProcessStatusIt; interface IUpdateDefocusList { virtual void UpdateDefocusList() = 0; }; typedef std::vector ObserverUpdateDefocusList; typedef std::vector::iterator ObserverUpdateDefocusListIt;