#pragma once #include #include #include typedef std::vector VectorString; typedef std::vector::iterator VectorStringIt; typedef std::vector::const_iterator constVectorStringIt; typedef std::vector VectorInteger; typedef std::vector::iterator VectorIntegerIt; typedef std::vector::const_iterator constVectorIntegerIt; typedef std::vector VectorDWORD; typedef std::vector::iterator VectorDWORDIt; typedef std::vector::const_iterator constVectorDWORDIt; /* #include "ReviewScheduleResult.h" typedef std::vector VectorReviewScheduleResult; typedef std::vector::iterator VectorReviewScheduleResultIt; typedef std::vector::const_iterator constVectorReviewScheduleResultIt; */ #include "CHPathScheduler/PathSchedulerResult.h" typedef std::vector VectorReviewScheduleResult; typedef std::vector::iterator VectorReviewScheduleResultIt; typedef std::vector::const_iterator constVectorReviewScheduleResultIt; #include "CHReviewResult/DefectResult.h" typedef std::multimap MapDefectResult; typedef std::multimap::iterator MapDefectResultIt; typedef std::multimap::const_iterator constMapDefectResultIt; typedef std::vector VectorDefectResult; typedef std::vector::iterator VectorDetectResultIt; typedef std::vector::const_iterator constVectorDetectResultIt; typedef std::vector VectorVDefectResult; typedef std::vector::iterator VectorVDetectResultIt; typedef std::vector::const_iterator constVectorVDetectResultIt; typedef std::vector VectorCellResult; typedef std::vector::iterator VectorCellResultIt; typedef std::vector::const_iterator constVectorCellResultIt; #include "CHReviewResult/ReviewResult.h" typedef std::vector VectorReviewResult; typedef std::vector::iterator VectorReviewResultIt; typedef std::vector::const_iterator constVectorReviewResultIt; #include "AlignResult.h" typedef std::vector VectorAlignRecipe; typedef std::vector::iterator VectorAlignRecipeIt; typedef std::vector::const_iterator constVectorAlignRecipeIt; typedef std::vector VectorAlignResult; typedef std::vector::iterator VectorAlignResultIt; typedef std::vector::const_iterator constVectorAlignResultIt; class AFX_EXT_CLASS CGlassResult { public: CGlassResult(void); virtual ~CGlassResult(void); void Reset(); void HT_Reset(); // getter int GetCellResultCount() const { return (int)m_vecCellResult.size(); } int GetDefectResultCount() const { return (int)m_mapDefectResult.size(); } VectorCellResult* GetVectorCellResult() { return &m_vecCellResult; } const VectorCellResult* GetVectorCellResult() const { return &m_vecCellResult; } MapDefectResult* GetMapDefectResult() { return &m_mapDefectResult; } const MapDefectResult* GetMapDefectResult() const { return &m_mapDefectResult; } // getter // [2018/02/05 15:15:29 by jylee] related Tack Time float GetTackTime() const { return m_nTackTime; } int GetCurDefectIdx() const { return m_nCurDefectIdx; } BOOL GetReadRawFile() const { return m_bReadRawFile; } int GetSlotNum() const { return m_nSlotNum; } int GetGlassSizeX() const { return m_nGlassSizeX; } int GetGlassSizeY() const { return m_nGlassSizeY; } int GetCollisionDistanceX() const { return m_nCollisionDistanceX; } int GetCollisionDistanceY() const { return m_nCollisionDistanceY; } double GetCollisionPosX1() const { return m_nCollisionXPos1; } double GetCollisionPosX2() const { return m_nCollisionXPos2; } int GetOriginDir() const { return m_nOriginDir; } int GetCornerCutDir() const { return m_nCornerCutDir; } int GetReviewSnapSerialNo() const { return m_nReviewSnapSerialNo; } int GetGlassJudge() const { return m_glassJudge;} double GetDistanceThreshold() const { return m_dDistanceThreshold; } void GetGlassSize(int& nGlassSizeX, int& nGlassSizeY); BOOL GetGlassCenterCoordinate() const { return m_bCenterCoordinate; } BOOL GetGlassInverseCoordinate() const { return m_bInverseCoordinate; } const CAlignRecipe* GetAlignRecipe() const { return &m_AlignRecipe; } const CAlignResult* GetAlignResult() const { return &m_AlignResult; } const CString* GetAOIRawFileName() const { return &m_strAOIRawFileName; } const CString* GetAOIRawFilePath() const { return &m_strAOIRawFilePath; } const CString* GetAOIRawCDFileName() const { return &m_strAOIRawCDFileName; } const CString* GetAOIRawCDFilePath() const { return &m_strAOIRawCDFilePath; } const CString* GetAOIRawSDFileName() const { return &m_strAOIRawSDFileName; } const CString* GetAOIRawSDFilePath() const { return &m_strAOIRawSDFilePath; } const CString* GetLocalRawFilePath() const { return &m_strLocalRawFilePath; } const CString* GetLocalRawCDFilePath() const { return &m_strLocalRawCDFilePath; } const CString* GetLocalRawSDFilePath() const { return &m_strLocalRawSDFilePath; } const CString* GetLotID() const { return &m_strLotID; } const CString* GetGlassID() const { return &m_strGlassID; } const CString* GetJobID() const { return &m_strJobID; } const CString* GetRecipeID() const { return &m_strRecipeID; } const CString* GetProcessID() const { return &m_strProcessID; } const CString* GetPPID() const { return &m_strPPID; } const CString* GetPPID_RC() const { return &m_strPPID_RC; }// Á¦¾î¿¡¼­ PPIDÀß¶óÁØ ·¹½ÃÇÇ À̸§ const CString* GetStepID() const { return &m_strStepID; } const CString* GetFlowID() const { return &m_strFlowID; } const CString* GetUnLoadingTime() const { return &m_strUnLoadingTime; } // [2017:1:9]-[WEZASW] : PLC GlassData Ç׸ñ ÀçÁ¤ÀÇ const CString* GetOperID() const { return &m_strOperID; } const CString* GetGlassCode() const { return &m_strGlassCode; } // setter void SetUnLoadingTime(const CString& strValue) { m_strUnLoadingTime = strValue; } void SetGlassSize(int nGlassSizeX, int nGlassSizeY); void SetCollisionDistanceX(int nDistance) { m_nCollisionDistanceX = nDistance; } void SetCollisionDistanceY(int nDistance) { m_nCollisionDistanceY = nDistance; } void SetGlassOriginDirection(int nGlassOriginDirection); void SetCornerCutDirection(int nCornerCutDirection); void SetGlassCenterCoordinate(BOOL bCenter); void SetGlassInverseCoordinate(BOOL bInverse); void SetCollisionXPos(int nModuleIdx, double nDistance) { if (nModuleIdx == 0) m_nCollisionXPos1 = nDistance; else m_nCollisionXPos2 = nDistance; } // adder void AddCellResult(const CCellResult& cellResult); BOOL AddDefectResult(CDefectResult* pDefectResult); void AddDefocusCount() { m_nDeFocusCount++; } // lmk 190813 image defocus void ResetDefocusCount() { m_nDeFocusCount = 0; } public: // func BOOL CheckReviewComplete(int nModuleIdx=-1); BOOL CheckUserComplete(int nModuleIdx=-1); BOOL CheckWsiComplete(int nModuleIdx=-1); BOOL CheckMeasureComplete(int nModuleIdx=-1); BOOL CheckReflowComplete(int nModuleIdx=-1); BOOL CheckWsiReflowComplete(int nModuleIdx=-1); BOOL CheckWsiUserComplete(int nModuleIdx=-1); BOOL CheckWsiMultiShotComplete(int nModuleIdx = -1); BOOL SetReviewResultData(int nModuleIdx, int nResultIdx, VectorImageData& vectorImageData, int nGlassPosX, int nGlassPosY, int nMotorPosX, int nMotorPosY, double dDurationTime); BOOL SetUserResultData(int nModuleIdx, int nResultIdx, VectorImageData& vectorImageData, int nGlassPosX, int nGlassPosY, int nMotorPosX, int nMotorPosY, double dDurationTime); BOOL SetWsiResultData(int nModuleIdx, int nResultIdx, const SReviewResult& wsiResult, int nGlassPosX, int nGlassPosY, int nMotorPosX, int nMotorPosY, double dDurationTime); BOOL SetMeasureResultData(int nModuleIdx, int nResultIdx, VectorImageData& vectorImageData, int nGlassPosX, int nGlassPosY, int nMotorPosX, int nMotorPosY, double dDurationTime); BOOL SetReflowResultData(int nModuleIdx, int nResultIdx, VectorImageData& vectorImageData, int nGlassPosX, int nGlassPosY, int nMotorPosX, int nMotorPosY, double dDurationTime); BOOL SetWsiReflowResultData(int nModuleIdx, int nResultIdx, const SReviewResult& wsiResult, int nGlassPosX, int nGlassPosY, int nMotorPosX, int nMotorPosY, double dDurationTime); BOOL SetUserWsiResultData(int nModuleIdx, int nResultIdx, const SReviewResult& wsiResult, int nGlassPosX, int nGlassPosY, int nMotorPosX, int nMotorPosY, double dDurationTime); BOOL SetWSIMultiShotResultData(int nModuleIdx, int nResultIdx, const SReviewResult& wsiResult, int nGlassPosX, int nGlassPosY, int nMotorPosX, int nMotorPosY, double dDurationTime); void ClassifyDefectResult(CDefectResult* pDefectResult); public: int GetCrackDefectResultCount() const { return (int)m_vecCrackDefectResult.size(); } int GetMaskDefectResultCount() const { return (int)m_vecMaskDefectResult.size(); } int GetPadDefectResultCount() const { return (int)m_vecPadDefectResult.size(); } int GetCommonDefectResultCount() const { return (int)m_vecCommonDefectResult.size(); } int GetAlignDefectResultCount() const { return (int)m_vecAlignDefectResult.size(); } int GetActiveDefectResultCount() const { return (int)m_vecActiveDefectResult.size(); } int GetReworkDefectResultCount() const { return (int)m_vecReworkDefectResult.size(); } const VectorDefectResult* GetVectorCrackDefectResult() const { return &m_vecCrackDefectResult; } const VectorDefectResult* GetVectorMaskDefectResult() const { return &m_vecMaskDefectResult; } const VectorDefectResult* GetVectorPadDefectResult() const { return &m_vecPadDefectResult; } const VectorDefectResult* GetVectorCommonDefectResult() const { return &m_vecCommonDefectResult; } const VectorDefectResult* GetVectorAlignDefectResult() const { return &m_vecAlignDefectResult; } const VectorDefectResult* GetVectorActiveDefectResult() const { return &m_vecActiveDefectResult; } const VectorDefectResult* GetVectorReworkDefectResult() const { return &m_vecReworkDefectResult; } VectorDefectResult* GetVectorCrackDefectResult() { return &m_vecCrackDefectResult; } VectorDefectResult* GetVectorMaskDefectResult() { return &m_vecMaskDefectResult; } VectorDefectResult* GetVectorPadDefectResult() { return &m_vecPadDefectResult; } VectorDefectResult* GetVectorCommonDefectResult() { return &m_vecCommonDefectResult; } VectorDefectResult* GetVectorAlignDefectResult() { return &m_vecAlignDefectResult; } VectorDefectResult* GetVectorActiveDefectResult() { return &m_vecActiveDefectResult; } VectorDefectResult* GetVectorReworkDefectResult() { return &m_vecReworkDefectResult; } public: // review result const VectorReviewResult* GetVectorReviewResult() const; VectorReviewResult* GetVectorReviewResult(); int GetReviewResultCount() const; CReviewResult* GetReviewResult(int nModuleIdx); const CReviewResult* GetReviewResult(int nModuleIdx) const; int GetTotalSReviewResultCount() const; int GetSReviewResultCount(int nModuleIdx) const; SReviewResult* GetSReviewResult(int nModuleIdx, int nResultIdx); const SReviewResult* GetSReviewResult(int nModuleIdx, int nResultIdx) const; void AddReviewResult(const CReviewResult& cReviewResult); void AddSReviewResult(int nModuleIdx, const SReviewResult& sReviewResult); // user result const VectorReviewResult* GetVectorUserResult() const; VectorReviewResult* GetVectorUserResult(); int GetUserResultCount() const; CReviewResult* GetUserResult(int nModuleIdx); const CReviewResult* GetUserResult(int nModuleIdx) const; int GetTotalSUserResultCount() const; int GetSUserResultCount(int nModuleIdx) const; int GetSUserCompleteResultCount(int nModuleIdx, int resultCode) const; SReviewResult* GetSUserResult(int nModuleIdx, int nResultIdx); const SReviewResult* GetSUserResult(int nModuleIdx, int nResultIdx) const; void AddUserResult(const CReviewResult& cReviewResult); void AddSUserResult(int nModuleIdx, const SReviewResult& sReviewResult); // wsi result const VectorReviewResult* GetVectorWsiResult() const; VectorReviewResult* GetVectorWsiResult(); int GetWsiResultCount() const; CReviewResult* GetWsiResult(int nModuleIdx); const CReviewResult* GetWsiResult(int nModuleIdx) const; int GetTotalSWsiResultCount() const; int GetSWsiResultCount(int nModuleIdx) const; SReviewResult* GetSWsiResult(int nModuleIdx, int nResultIdx); const SReviewResult* GetSWsiResult(int nModuleIdx, int nResultIdx) const; void AddWsiResult(const CReviewResult& cReviewResult); void AddSWsiResult(int nModuleIdx, const SReviewResult& sReviewResult); // measure result const VectorReviewResult* GetVectorMeasureResult() const; VectorReviewResult* GetVectorMeasureResult(); int GetMeasureResultCount() const; CReviewResult* GetMeasureResult(int nModuleIdx); const CReviewResult* GetMeasureResult(int nModuleIdx) const; int GetTotalSMeasureResultCount() const; int GetSMeasureResultCount(int nModuleIdx) const; SReviewResult* GetSMeasureResult(int nModuleIdx, int nResultIdx); const SReviewResult* GetSMeasureResult(int nModuleIdx, int nResultIdx) const; void AddMeasureResult(const CReviewResult& cReviewResult); void AddSMeasureResult(int nModuleIdx, const SReviewResult& sReviewResult); // reflow result const VectorReviewResult* GetVectorReflowResult() const; VectorReviewResult* GetVectorReflowResult(); int GetReflowResultCount() const; CReviewResult* GetReflowResult(int nModuleIdx); const CReviewResult* GetReflowResult(int nModuleIdx) const; int GetTotalSReflowResultCount() const; int GetSReflowResultCount(int nModuleIdx) const; SReviewResult* GetSReflowResult(int nModuleIdx, int nResultIdx); const SReviewResult* GetSReflowResult(int nModuleIdx, int nResultIdx) const; void AddReflowResult(const CReviewResult& cReviewResult); void AddSReflowResult(int nModuleIdx, const SReviewResult& sReviewResult); // wsi reflow result const VectorReviewResult* GetVectorWsiReflowResult() const; VectorReviewResult* GetVectorWsiReflowResult(); int GetWsiReflowResultCount() const; CReviewResult* GetWsiReflowResult(int nModuleIdx); const CReviewResult* GetWsiReflowResult(int nModuleIdx) const; int GetTotalSWsiReflowResultCount() const; int GetSWsiReflowResultCount(int nModuleIdx) const; SReviewResult* GetSWsiReflowResult(int nModuleIdx, int nResultIdx); const SReviewResult* GetSWsiReflowResult(int nModuleIdx, int nResultIdx) const; void AddWsiReflowResult(const CReviewResult& cReviewResult); void AddSWsiReflowResult(int nModuleIdx, const SReviewResult& sReviewResult); // wsi user result CReviewResult* GetWsiUserResult( int nModuleIdx ); const CReviewResult* GetWsiUserResult( int nModuleIdx ) const; SReviewResult* GetSWsiUserResult(int nModuleIdx, int nResultIdx); const SReviewResult* GetSWsiUserResult(int nModuleIdx, int nResultIdx) const; const VectorReviewResult* GetVectorUserWsiResult() const; VectorReviewResult* GetVectorUserWsiResult(); void AddWsiUserResult( const CReviewResult& cReviewResult ); void AddWsiUserScheduleRedult( const CPathSchedulerResult& scheduleResult ); int GetTotalSWsiUserResultCount() const; int GetWsiUserResultCount() const; //WSI MultiShot Result const VectorReviewResult* GetVectorWsiMultiShotResult() const; VectorReviewResult* GetVectorWsiMultiShotResult(); int GetWsiMultiShotResultCount() const; CReviewResult* GetWsiMultiShotResult(int nModuleIdx); const CReviewResult* GetWsiMultiShotResult(int nModuleIdx) const; int GetTotalSWsiMultiShotResultCount() const; int GetSWsiMultiShotResultCount(int nModuleIdx) const; SReviewResult* GetSWsiMultiShotResult(int nModuleIdx, int nResultIdx); const SReviewResult* GetSWsiMultiShotResult(int nModuleIdx, int nResultIdx) const; void AddWsiMultiShotResult(const CReviewResult& cReviewResult); void AddSWSIMultiShotResult(int nModuleIdx, const SReviewResult& sReviewResult); // review schedule result const VectorReviewScheduleResult* GetVectorReviewScheduleResult() const; VectorReviewScheduleResult* GetVectorReviewScheduleResult(); int GetReviewScheduleResultCount() const; CPathSchedulerResult* GetReviewScheduleResult(int nModuleIdx); const CPathSchedulerResult* GetReviewScheduleResult(int nModuleIdx) const; int GetReviewSSchedulerResultCount(int nModuleIdx) const; SSchedulerResult* GetReviewSSchedulerResult(int nModuleIdx, int nResultIdx); const SSchedulerResult* GetReviewSSchedulerResult(int nModuleIdx, int nResultIdx) const; void AddReviewScheduleResult(const CPathSchedulerResult& scheduleResult); // user schedule result const VectorReviewScheduleResult* GetVectorUserScheduleResult() const; VectorReviewScheduleResult* GetVectorUserScheduleResult(); int GetUserScheduleResultCount() const; CPathSchedulerResult* GetUserScheduleResult(int nModuleIdx); const CPathSchedulerResult* GetUserScheduleResult(int nModuleIdx) const; int GetUserSSchedulerResultCount(int nModuleIdx) const; SSchedulerResult* GetUserSSchedulerResult(int nModuleIdx, int nResultIdx); const SSchedulerResult* GetUserSSchedulerResult(int nModuleIdx, int nResultIdx) const; void AddUserScheduleResult(const CPathSchedulerResult& scheduleResult); // wsi schedule result const VectorReviewScheduleResult* GetVectorWsiScheduleResult() const; VectorReviewScheduleResult* GetVectorWsiScheduleResult(); int GetWsiScheduleResultCount() const; CPathSchedulerResult* GetWsiScheduleResult(int nModuleIdx); const CPathSchedulerResult* GetWsiScheduleResult(int nModuleIdx) const; int GetWsiSSchedulerResultCount(int nModuleIdx) const; SSchedulerResult* GetWsiSSchedulerResult(int nModuleIdx, int nResultIdx); const SSchedulerResult* GetWsiSSchedulerResult(int nModuleIdx, int nResultIdx) const; void AddWsiScheduleResult(const CPathSchedulerResult& scheduleResult); // Measure schedule result const VectorReviewScheduleResult* GetVectorMeasureScheduleResult() const; VectorReviewScheduleResult* GetVectorMeasureScheduleResult(); int GetMeasureScheduleResultCount() const; CPathSchedulerResult* GetMeausreScheduleResult(int nModuleIdx); const CPathSchedulerResult* GetMeausreScheduleResult(int nModuleIdx) const; int GetMeausreSSchedulerResultCount(int nModuleIdx) const; SSchedulerResult* GetMeausreSSchedulerResult(int nModuleIdx, int nResultIdx); const SSchedulerResult* GetMeausreSSchedulerResult(int nModuleIdx, int nResultIdx) const; void AddMeasureScheduleRedult(const CPathSchedulerResult& scheduleResult); // reflow schedule result const VectorReviewScheduleResult* GetVectorReflowScheduleResult() const; VectorReviewScheduleResult* GetVectorReflowScheduleResult(); int GetReflowScheduleResultCount() const; CPathSchedulerResult* GetReflowScheduleResult(int nModuleIdx); const CPathSchedulerResult* GetReflowScheduleResult(int nModuleIdx) const; int GetReflowSSchedulerResultCount(int nModuleIdx) const; SSchedulerResult* GetReflowSSchedulerResult(int nModuleIdx, int nResultIdx); const SSchedulerResult* GetReflowSSchedulerResult(int nModuleIdx, int nResultIdx) const; void AddReflowScheduleRedult(const CPathSchedulerResult& scheduleResult); // wsi reflow schedule result const VectorReviewScheduleResult* GetVectorWsiReflowScheduleResult() const; VectorReviewScheduleResult* GetVectorWsiReflowScheduleResult(); int GetWsiReflowScheduleResultCount() const; CPathSchedulerResult* GetWsiReflowScheduleResult(int nModuleIdx); const CPathSchedulerResult* GetWsiReflowScheduleResult(int nModuleIdx) const; int GetWsiReflowSSchedulerResultCount(int nModuleIdx) const; SSchedulerResult* GetWsiReflowSSchedulerResult(int nModuleIdx, int nResultIdx); const SSchedulerResult* GetWsiReflowSSchedulerResult(int nModuleIdx, int nResultIdx) const; void AddWsiReflowScheduleRedult(const CPathSchedulerResult& scheduleResult); // wsimultiShot schedule result const VectorReviewScheduleResult* GetVectorWsiMultiShotScheduleResult() const; VectorReviewScheduleResult* GetVectorWsiMultiShotScheduleResult(); int GetWsiMultiShotScheduleResultCount() const; CPathSchedulerResult* GetWsiMultiShotScheduleResult(int nModuleIdx); const CPathSchedulerResult* GetWsiMultiShotScheduleResult(int nModuleIdx) const; int GetWsiMultiShotSSchedulerResultCount(int nModuleIdx) const; SSchedulerResult* GetWsiMultiShotSSchedulerResult(int nModuleIdx, int nResultIdx); const SSchedulerResult* GetWsiMultiShotSSchedulerResult(int nModuleIdx, int nResultIdx) const; void AddWsiMultiShotScheduleResult(const CPathSchedulerResult& scheduleResult); public: static double CalculateDistance(int nPosX, int nPosY, int nGrabX, int nGrabY); // current status BOOL m_bReadRawFile; int m_nCurDefectIdx; double m_dDistanceThreshold; DWORD m_dwMinFrameTick; int m_nDeFocusCount; // glass info int m_nDivideType; int m_nSlotNum; int m_nGlassSizeX; int m_nGlassSizeY; int m_nCollisionDistanceX; int m_nCollisionDistanceY; double m_nCollisionXPos1; double m_nCollisionXPos2; int m_nOriginDir; int m_nCornerCutDir; int m_nReviewSnapSerialNo; int m_glassJudge; BOOL m_bCenterCoordinate; BOOL m_bInverseCoordinate; //AOI Raw File Path CString m_strAOIRawFileName; //TD CString m_strAOIRawFilePath; //TD CString m_strAOIRawCDFileName; //CD CString m_strAOIRawCDFilePath; //CD CString m_strAOIRawSDFileName; //SD CString m_strAOIRawSDFilePath; //SD CString m_strResultDate; //Local Raw File Path CString m_strLocalRawFilePath; //TD CString m_strLocalRawCDFilePath; //CD CString m_strLocalRawSDFilePath; //SD // glass transfer info CString m_strLotID; CString m_strRecipeID; CString m_strGlassID; CString m_strProcessID; CString m_strStepID; CString m_strPPID; CString m_strPPID_RC;// Á¦¾î¿¡¼­ PPIDÀß¶óÁØ ·¹½ÃÇÇ À̸§ CString m_strFlowID; CString m_strFlowHistory; CString m_strMaskSize; CString m_strMaskRotation; // [2018/01/10 01:00:23 by jylee] related PANDA Equipment ID CString m_strEquipID; CString m_strRTMSLocalAOIImageFilePath; CString m_strUploadRTMSImageFilePath; CString m_strUploadImgFileName; // CString m_strProdID; // CString m_strOperID; // CString m_strLotID; // CString m_strPPID; // CString m_strProcessingFlag; // CString m_strInspectionFlag; // CString m_strSkipFlag; // CString m_strProcessingCount;x // CString m_strInspectionJudgeData; //cmj Glass Data Ãß°¡ CString m_strJobType; CString m_strJobID; CString m_strLotSeqNum; CString m_strSlotSeqNum; CString m_strPropertyCode; CString m_strJobJudgeCode; CString m_strJobGradeCode; CString m_strSubstrateType; CString m_strJobSize; CString m_strGlassThickness; CString m_strJobAngle; CString m_strJobFlip; CString m_strCuttingGlassType; CString m_strPairJobID; CString m_strPairFlag; CString m_strOptionValue; CString m_strReserved; CString strGlassScanSchedule; //ºÐÆÇ Á¤º¸ cmark CString m_strRTMSStepID; CString m_strGlassLastName; // [2017:1:9]-[WEZASW] : PLC GlassData Ç׸ñ ÀçÁ¤ÀÇ CString m_strOperID; CString m_strGlassCode; // 20170719 smok. machine ID Ãß°¡ CString m_equipID; /////////// 20170825 smok. ph2 element Ãß°¡ CString m_strGlassJudgeCode; CString m_strGlassGradeCode; CString m_strProdID; CString m_strProcessingFlag; CString m_strInspectionJudgeData; CString m_strSkipFlag; CString m_strInspectionFlag; CString m_strMode; CString m_strGlassType; CString m_strDummyType; CString m_strProcessingCount; // time CString m_strUnLoadingTime; float m_nTackTime; // align info CAlignRecipe m_AlignRecipe; CAlignResult m_AlignResult; int m_nPlag; int nReview00ImageContrast; int nReview01ImageContrast; public: // cell info VectorCellResult m_vecCellResult; // defect info MapDefectResult m_mapDefectResult; VectorDefectResult m_vecCrackDefectResult; VectorDefectResult m_vecMaskDefectResult; VectorDefectResult m_vecPadDefectResult; VectorDefectResult m_vecCommonDefectResult; VectorDefectResult m_vecAlignDefectResult; VectorDefectResult m_vecActiveDefectResult; VectorDefectResult m_vecReworkDefectResult; // result VectorReviewResult m_vecReviewResult; VectorReviewResult m_vecUserResult; VectorReviewResult m_vecWsiResult; VectorReviewResult m_vecMeasureResult; VectorReviewResult m_vecReflowResult; VectorReviewResult m_vecWsiReflowResult; VectorReviewResult m_vecWsiUserResult; VectorReviewResult m_vecWsiMultiShotResult; // schedule result VectorReviewScheduleResult m_vecReviewScheduleResult; VectorReviewScheduleResult m_vecUserScheduleResult; VectorReviewScheduleResult m_vecWsiScheduleResult; VectorReviewScheduleResult m_vecMeasureScheduleResult; VectorReviewScheduleResult m_vecReflowScheduleResult; VectorReviewScheduleResult m_vecWsiReflowScheduleResult; VectorReviewScheduleResult m_vecWsiUserScheduleResult; VectorReviewScheduleResult m_vecWsiMultiShotScheduleResult; CRITICAL_SECTION m_csProcess; CRITICAL_SECTION m_csDefect; }; typedef std::vector VectorGlassResult; typedef std::vector::iterator VectorGlassResultIt; typedef std::vector::iterator VectorHistoryResultIt; typedef std::vector::const_iterator constVectorGlassResultIt; typedef std::list ListGlassResult; typedef std::list::iterator ListGlassResultIt; typedef std::list::const_iterator constListGlassResultIt; struct STransferData { public: STransferData() { Reset(); } void Reset() { strGlassLastName = _T(""); strGlassID = _T(""); strEGlassID = _T(""); strProcessID = _T(""); strProductID = _T(""); strStepID = _T(""); strBatchID = _T(""); strProdType = _T(""); strProdKind = _T(""); strPPID = _T(""); strPPID_RC = _T("");// Á¦¾î¿¡¼­ PPIDÀß¶óÁØ ·¹½ÃÇÇ À̸§ strFlowID = _T(""); strLotID = _T(""); strSlotNum = _T(""); strRecipeID = _T(""); strMaskSize = _T(""); strMaskRotation = _T(""); strOperID = _T(""); strGlassCode = _T(""); //vecFlowHistory.clear(); /////////// 20170825 smok. ph2 element Ãß°¡ // strLotID = _T(""); // strGlassID = _T(""); // strOperID = _T(""); // strGlassCode = _T(""); strGlassJudgeCode = _T(""); strGlassGradeCode = _T(""); strProdID = _T(""); strProcessingFlag = _T(""); strInspectionJudgeData = _T(""); strSkipFlag = _T(""); strInspectionFlag = _T(""); strMode = _T(""); strGlassType = _T(""); strDummyType = _T(""); strProcessingCount = _T(""); strJobID = _T(""); strJobType = _T(""); strLotSeqNum = _T(""); strSlotSeqNum = _T(""); strPropertyCode = _T(""); strJobJudgeCode = _T(""); strJobGradeCode = _T(""); strSubstrateType = _T(""); strJobSize = _T(""); strGlassThickness = _T(""); strJobAngle = _T(""); strJobFlip = _T(""); strCuttingGlassType = _T(""); strPairJobID = _T(""); strPairFlag = _T(""); strOptionValue = _T(""); strReserved = _T(""); strGlassScanSchedule = _T("");//±Û¶ó½º ÁÂ¿ì ÆÇº°cmark strPanelSize = _T(""); strCompCount = _T(""); strPanelState = _T(""); strReadingFlag = _T(""); strPanelPosition = _T(""); strFlowHistory = _T(""); strUnIqueID = _T(""); strCount1 = _T(""); strCount2 = _T(""); strMultiUse = _T(""); strGlassDataBigSig = _T(""); strPairID = _T(""); strEPairID = _T(""); strPairProductID = _T(""); strPairGrade = _T(""); strFlowGroup = _T(""); strDBR_RECIPE = _T(""); strRerferData = _T(""); } public: CString strGlassID; // »ç¿ë H PANEL ID CString strEGlassID;// E PANEL ID CString strProcessID; CString strProductID; CString strStepID; CString strBatchID; CString strProdType; CString strProdKind; CString strFlowID; //std::vector vecFlowHistory; CString strSlotNum; CString strRecipeID; CString strMaskSize; CString strMaskRotation; CString strGlassCode; /////////// 20170825 smok. ph2 element Ãß°¡ CString strGlassJudgeCode; CString strGlassGradeCode; CString strMode; CString strGlassType; CString strDummyType; /////////20180502 lwk b11 element Ãß°¡ CString strProdID; CString strOperID; CString strLotID; CString strPPID; CString strPPID_RC; CString strJobType; CString strJobID; CString strLotSeqNum; CString strSlotSeqNum; CString strPropertyCode; CString strJobJudgeCode; CString strJobGradeCode; CString strSubstrateType; CString strProcessingFlag; CString strInspectionFlag; CString strSkipFlag; CString strJobSize; CString strGlassThickness; CString strJobAngle; CString strJobFlip; CString strCuttingGlassType; CString strProcessingCount; CString strInspectionJudgeData; CString strPairJobID; CString strPairFlag; CString strOptionValue; CString strReserved; CString strGlassScanSchedule; //ÁÂ¿ì ºÐÆÇÁ¤º¸ CString strGlassLastName; CString strPanelSize; CString strCompCount; CString strPanelState; CString strReadingFlag; CString strPanelPosition; CString strFlowHistory; CString strUnIqueID; CString strCount1; // °í°´»ç°¡ ¹º»ý°¢À¸·Î À̵ý½ÄÀ¸·Î ³×ÀÌ¹Ö Çß´ÂÁö À߸𸣰ٴ٠±ÍÂú¾Ò³ªº¸´Ù ¤¾¤¾ CString strCount2; CString strMultiUse; CString strGlassDataBigSig; CString strPairID; CString strEPairID; CString strPairProductID; CString strPairGrade; CString strFlowGroup; CString strDBR_RECIPE; CString strRerferData; }; interface IUpdateReviewResult { virtual void UpdateReviewResult(int nModuleIndex, const CGlassResult* pGlassResult, int nPlanIndex) = 0; }; typedef std::vector ObserverUpdateReviewResult; typedef std::vector::iterator ObserverUpdateReviewResultIt; interface IUpdateProcessStatus { virtual void UpdateProcessStatus(int nLineType, int nMachineType, int nProcessStatus, const CGlassResult* pGlassResult) = 0; }; typedef std::vector ObserverUpdateProcessStatus; typedef std::vector::iterator ObserverUpdateProcessStatusIt;