#if !defined(__GLASS_RECIPE_HEADER_INCLUDED__) #define __GLASS_RECIPE_HEADER_INCLUDED__ #include "HMRegiConfig.h" #include "ModelRecipeHeader.h" #define MAX_ZONE_NUM 16 #define MAX_MASKDATA 20 #define MAX_STRING_LENGTH 100 class AFX_EXT_CLASS CMaskShot { public: int m_nStartX; int m_nStartY; int m_nEndX; int m_nEndY; CMaskShot() { m_nStartX = 0; m_nStartY = 0; m_nEndX = 0; m_nEndY = 0; } BOOL InsideOfX(int nX) { if (m_nStartX < m_nEndX) return (nX >= m_nStartX && nX < m_nEndX) ? TRUE : FALSE; else return (nX >= m_nEndX && nX < m_nStartX) ? TRUE : FALSE; } BOOL InsideOfY(int nY) { if (m_nStartY < m_nEndY) return (nY >= m_nStartY && nY < m_nEndY) ? TRUE : FALSE; else return (nY >= m_nEndY && nY < m_nStartY) ? TRUE : FALSE; } BOOL ReadRecipe(CHMRegiConfig *pFile,int iIndex) { CString strSection; strSection.Format("GLASS_MASKSHOT_SHOTX_%d",iIndex); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nStartX); strSection.Format("GLASS_MASKSHOT_SHOTY_%d",iIndex); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nStartY); strSection.Format("GLASS_MASKSHOT_ACTIVEX_%d",iIndex); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nEndX); strSection.Format("GLASS_MASKSHOT_ACTIVEY_%d",iIndex); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nEndY); return TRUE; } BOOL WriteRecipe(CHMRegiConfig *pFile,int iIndex) { CString strSection; strSection.Format("GLASS_MASKSHOT_SHOTX_%d",iIndex); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nStartX); strSection.Format("GLASS_MASKSHOT_SHOTY_%d",iIndex); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nStartY); strSection.Format("GLASS_MASKSHOT_ACTIVEX_%d",iIndex); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nEndX); strSection.Format("GLASS_MASKSHOT_ACTIVEY_%d",iIndex); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nEndY); return TRUE; } }; class AFX_EXT_CLASS CGLASS_MASKING_CAMTYPE_PARM { public: BOOL m_bCDB; BOOL m_bCDW; BOOL m_bMDB; BOOL m_bMDW; int m_nCDSizeB; int m_nCDSizeW; int m_nCDAlarmB; int m_nCDAlarmW; int m_nMDSizeB; int m_nMDSizeW; int m_nMDAlarmB; int m_nMDAlarmW; CGLASS_MASKING_CAMTYPE_PARM() { Reset(); } void Reset() { m_bCDB = m_bCDW = m_bMDB = m_bMDW = FALSE; m_nCDSizeB = m_nCDSizeW = m_nCDAlarmB = m_nCDAlarmW = m_nMDSizeB = 0; m_nMDSizeW = m_nMDAlarmB = m_nMDAlarmW = 0; } CGLASS_MASKING_CAMTYPE_PARM& operator=(const CGLASS_MASKING_CAMTYPE_PARM &rh) { m_bCDB = rh.m_bCDB; m_bCDW = rh.m_bCDW; m_bMDB = rh.m_bMDB; m_bMDW = rh.m_bMDW; m_nCDSizeB = rh.m_nCDSizeB; m_nCDSizeW = rh.m_nCDSizeW; m_nCDAlarmB = rh.m_nCDAlarmB; m_nCDAlarmW = rh.m_nCDAlarmW; m_nMDSizeB = rh.m_nMDSizeB; m_nMDSizeW = rh.m_nMDSizeW; m_nMDAlarmB = rh.m_nMDAlarmB; m_nMDAlarmW = rh.m_nMDAlarmW; return *this; } BOOL ReadRecipe(CHMRegiConfig *pFile,CameraType CamType) { CString strSection,strTmp; switch(CamType) { case CamType_Reflex: strTmp = "R"; break; case CamType_Transfer: strTmp = "T"; break; default: return FALSE; } strSection.Format("GLASS_CDB_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_bCDB); strSection.Format("GLASS_CDW_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_bCDW); strSection.Format("GLASS_MDB_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_bMDB); strSection.Format("GLASS_MDW_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_bMDW); strSection.Format("GLASS_CDSizeB_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nCDSizeB); strSection.Format("GLASS_CDSizeW_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nCDSizeW); strSection.Format("GLASS_CDAlarmB_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nCDAlarmB); strSection.Format("GLASS_CDAlarmW_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nCDAlarmW); strSection.Format("GLASS_MDSizeB_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nMDSizeB); strSection.Format("GLASS_MDSizeW_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nMDSizeW); strSection.Format("GLASS_MDAlarmB_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nMDAlarmB); strSection.Format("GLASS_MDAlarmW_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nMDAlarmW); return TRUE; } BOOL WriteRecipe(CHMRegiConfig *pFile,CameraType CamType) { CString strSection,strTmp; switch(CamType) { case CamType_Reflex: strTmp = "R"; break; case CamType_Transfer: strTmp = "T"; break; default: return FALSE; } strSection.Format("GLASS_CDB_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_bCDB); strSection.Format("GLASS_CDW_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_bCDW); strSection.Format("GLASS_MDB_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_bMDB); strSection.Format("GLASS_MDW_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_bMDW); strSection.Format("GLASS_CDSizeB_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nCDSizeB); strSection.Format("GLASS_CDSizeW_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nCDSizeW); strSection.Format("GLASS_CDAlarmB_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nCDAlarmB); strSection.Format("GLASS_CDAlarmW_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nCDAlarmW); strSection.Format("GLASS_MDSizeB_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nMDSizeB); strSection.Format("GLASS_MDSizeW_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nMDSizeW); strSection.Format("GLASS_MDAlarmB_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nMDAlarmB); strSection.Format("GLASS_MDAlarmW_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nMDAlarmW); return TRUE; } }; class AFX_EXT_CLASS CGLASS_MASKING_PARM { public: BOOL m_bFindCommonRP; BOOL m_bFindMaskRP; int m_nMaskRPCount; int m_nCommonRPGlass; int m_nCommonRPCount; int m_nMaskShotCount; CMaskShot *m_MaskShot; BOOL m_bUseCDFilter; BOOL m_bUseMDFilter; int m_nCDFilter; // 0 : Pixel, 1 : RScale int m_nMDFilter; // 0 : Pixel, 1 : RScale CGLASS_MASKING_CAMTYPE_PARM m_pRefMaskParm; CGLASS_MASKING_CAMTYPE_PARM m_pTransMaskParm; CGLASS_MASKING_PARM() { m_MaskShot = NULL; Reset(); } ~CGLASS_MASKING_PARM() { if(m_MaskShot != NULL) delete[] m_MaskShot, m_MaskShot=NULL; } void SetMaskShot(int nShotCnt) { if(m_MaskShot != NULL) delete[] m_MaskShot, m_MaskShot=NULL; if(nShotCnt <= 0) return; m_nMaskShotCount = nShotCnt; m_MaskShot = new CMaskShot[nShotCnt]; } void Reset() { m_bFindCommonRP = m_bFindMaskRP = m_bUseCDFilter = m_bUseMDFilter = FALSE; m_nMaskRPCount = m_nCommonRPGlass = m_nCommonRPCount = m_nMaskShotCount = m_nCDFilter = m_nMDFilter = 0; if(m_MaskShot != NULL) delete[] m_MaskShot, m_MaskShot=NULL; m_pRefMaskParm.Reset(); m_pTransMaskParm.Reset(); } CGLASS_MASKING_PARM& operator=(const CGLASS_MASKING_PARM &rh) { m_bFindCommonRP = rh.m_bFindCommonRP; m_bFindMaskRP = rh.m_bFindMaskRP; m_bUseCDFilter = rh.m_bUseCDFilter; m_bUseMDFilter = rh.m_bUseMDFilter; m_nMaskRPCount = rh.m_nMaskRPCount; m_nCommonRPGlass = rh.m_nCommonRPGlass; m_nCommonRPCount = rh.m_nCommonRPCount; m_nCDFilter = rh.m_nCDFilter; m_nMDFilter = rh.m_nMDFilter; SetMaskShot(rh.m_nMaskShotCount); int iLoop; for(iLoop=0;iLoopGetItemValue("GLASS_FINDCOMMONRP", m_bFindCommonRP); pFile->GetItemValue("GLASS_FINDMASKRP", m_bFindMaskRP); pFile->GetItemValue("GLASS_CDFLTUSE", m_bUseCDFilter); pFile->GetItemValue("GLASS_MDFLTUSE", m_bUseMDFilter); pFile->GetItemValue("GLASS_MASKRPCOUNT", m_nMaskRPCount); pFile->GetItemValue("GLASS_COMMONRPGLASS", m_nCommonRPGlass); pFile->GetItemValue("GLASS_COMMONRPCOUNT", m_nCommonRPCount); pFile->GetItemValue("GLASS_CDFLT", m_nCDFilter); pFile->GetItemValue("GLASS_MDFLT", m_nMDFilter); pFile->GetItemValue("GLASS_MASKSHOTCOUNT", m_nMaskShotCount); SetMaskShot(m_nMaskShotCount); int iLoop; for(iLoop=0;iLoopSetItemValue("GLASS_FINDCOMMONRP", m_bFindCommonRP); pFile->SetItemValue("GLASS_FINDMASKRP", m_bFindMaskRP); pFile->SetItemValue("GLASS_CDFLTUSE", m_bUseCDFilter); pFile->SetItemValue("GLASS_MDFLTUSE", m_bUseMDFilter); pFile->SetItemValue("GLASS_MASKRPCOUNT", m_nMaskRPCount); pFile->SetItemValue("GLASS_COMMONRPGLASS", m_nCommonRPGlass); pFile->SetItemValue("GLASS_COMMONRPCOUNT", m_nCommonRPCount); pFile->SetItemValue("GLASS_CDFLT", m_nCDFilter); pFile->SetItemValue("GLASS_MDFLT", m_nMDFilter); pFile->SetItemValue("GLASS_MASKSHOTCOUNT", m_nMaskShotCount); int iLoop; for(iLoop=0;iLoopGetItemValue("GLASS_EDGECRACK", m_bEdgeCrack); pFile->GetItemValue("GLASS_EDGECRACKINSPRANGE", m_nEdgeCrackInspRange, 1000); pFile->GetItemValue("GLASS_EDGECRACKINSPTHRESHOLD", m_nEdgeCrackInspThreshold, 30); pFile->GetItemValue("GLASS_EDGECRACKMARGINX", m_nEdgeCrackMarginX, 5000); pFile->GetItemValue("GLASS_EDGECRACKMARGINY", m_nEdgeCrackMarginY, 5000); pFile->GetItemValue("GLASS_EDGECRACKTHRESPIXEL", m_nEdgeCrackInspThresPixel, 20); pFile->GetItemValue("GLASS_EDGECRACKUSECONV", m_bEdgeCrackUseConv, FALSE); return TRUE; } BOOL WriteRecipe(CHMRegiConfig *pFile) { pFile->SetItemValue("GLASS_EDGECRACK", m_bEdgeCrack); pFile->SetItemValue("GLASS_EDGECRACKINSPRANGE", m_nEdgeCrackInspRange); pFile->SetItemValue("GLASS_EDGECRACKINSPTHRESHOLD", m_nEdgeCrackInspThreshold); pFile->SetItemValue("GLASS_EDGECRACKMARGINX", m_nEdgeCrackMarginX); pFile->SetItemValue("GLASS_EDGECRACKMARGINY", m_nEdgeCrackMarginY); pFile->SetItemValue("GLASS_EDGECRACKTHRESPIXEL", m_nEdgeCrackInspThresPixel); pFile->SetItemValue("GLASS_EDGECRACKUSECONV", m_bEdgeCrackUseConv); return TRUE; } BOOL ReadRecipe(CMosisPacket *pPacket) { pPacket->ReadValue(m_bEdgeCrack); pPacket->ReadValue(m_nEdgeCrackInspRange); pPacket->ReadValue(m_nEdgeCrackInspThreshold); pPacket->ReadValue(m_nEdgeCrackMarginX); pPacket->ReadValue(m_nEdgeCrackMarginY); pPacket->ReadValue(m_nEdgeCrackInspThresPixel); pPacket->ReadValue(m_bEdgeCrackUseConv); return TRUE; } BOOL WriteRecipe(CMosisPacket *pPacket) { pPacket->WriteValue(m_bEdgeCrack); pPacket->WriteValue(m_nEdgeCrackInspRange); pPacket->WriteValue(m_nEdgeCrackInspThreshold); pPacket->WriteValue(m_nEdgeCrackMarginX); pPacket->WriteValue(m_nEdgeCrackMarginY); pPacket->WriteValue(m_nEdgeCrackInspThresPixel); pPacket->WriteValue(m_bEdgeCrackUseConv); return TRUE; } }; class AFX_EXT_CLASS CRECIPE_INFO_PARM { public: char m_strRecipeName[MAX_STRING_LENGTH]; // ·¹½ÃÇÇ À̸§. char m_strDelegateRecipe[MAX_STRING_LENGTH]; // ·¹½ÃÇÇ À̸§. char m_strRecipeFileName[MAX_STRING_LENGTH]; // ·¹Çǽà ÆÄÀϸí char m_strRecipeComment[MAX_STRING_LENGTH]; // Recipe ¼³¸í int m_nSoftRevision; CRECIPE_INFO_PARM() { Reset(); } void Reset() { ZeroMemory(m_strRecipeName,sizeof(char)*MAX_STRING_LENGTH); ZeroMemory(m_strDelegateRecipe,sizeof(char)*MAX_STRING_LENGTH); ZeroMemory(m_strRecipeFileName,sizeof(char)*MAX_STRING_LENGTH); ZeroMemory(m_strRecipeComment,sizeof(char)*MAX_STRING_LENGTH); m_nSoftRevision = 0; } CRECIPE_INFO_PARM& operator=(const CRECIPE_INFO_PARM &rh) { CopyMemory(m_strRecipeName,rh.m_strRecipeName,sizeof(char)*MAX_STRING_LENGTH); CopyMemory(m_strDelegateRecipe,rh.m_strDelegateRecipe,sizeof(char)*MAX_STRING_LENGTH); CopyMemory(m_strRecipeFileName,rh.m_strRecipeFileName,sizeof(char)*MAX_STRING_LENGTH); CopyMemory(m_strRecipeComment,rh.m_strRecipeComment,sizeof(char)*MAX_STRING_LENGTH); m_nSoftRevision = rh.m_nSoftRevision; return *this; } void SetRecipeName(CString strRecipe) { CopyMemory(m_strRecipeName,strRecipe.GetBuffer(0),strRecipe.GetLength()); } void SetRecipeFileName(CString strFile) { CopyMemory(m_strRecipeFileName,strFile.GetBuffer(0),strFile.GetLength()); } void SetDelegateRecipe(CString strDele) { CopyMemory(m_strDelegateRecipe,strDele.GetBuffer(0),strDele.GetLength()); } void SetRecipeComment(CString strComment) { CopyMemory(m_strRecipeComment,strComment.GetBuffer(0),strComment.GetLength()); } CString GetRecipeName() { CString strRecipe; strRecipe.Format("%s",m_strRecipeName); return strRecipe; } CString GetRecipeFileName() { CString strFile; strFile.Format("%s",m_strRecipeFileName); return strFile; } CString GetDelegateRecipe() { CString str; str.Format("%s",m_strDelegateRecipe); return str; } CString GetRecipeComment() { CString str; str.Format("%s",m_strRecipeComment); return str; } BOOL ReadRecipe(CHMRegiConfig *pFile) { CString str; pFile->GetItemValue("SOFTREV", m_nSoftRevision); pFile->GetItemValue("GLASS_DELEGATERECIPE", str); // À§ÀÓµÈ Recipe CopyMemory(m_strDelegateRecipe,str.GetBuffer(0),str.GetLength()); pFile->GetItemValue("GLASS_RECIPECOMMENT", str); // Glass ¸ðµ¨¸í. if (str.IsEmpty()) pFile->GetItemValue("GLASS_MODELNAME", str); // Glass ¸ðµ¨¸í. CopyMemory(m_strRecipeComment,str.GetBuffer(0),str.GetLength()); return TRUE; } BOOL WriteRecipe(CHMRegiConfig *pFile) { pFile->SetItemValue("SOFTREV", m_nSoftRevision); pFile->SetItemValue("GLASS_DELEGATERECIPE", m_strDelegateRecipe); // À§ÀÓµÈ Recipe pFile->SetItemValue("GLASS_RECIPECOMMENT", m_strRecipeComment); // Glass ¸ðµ¨¸í. return TRUE; } BOOL ReadRecipe(CMosisPacket *pPacket) { pPacket->ReadArray(m_strRecipeName,MAX_STRING_LENGTH); return TRUE; } BOOL WriteRecipe(CMosisPacket *pPacket) { pPacket->WriteArray(m_strRecipeName,MAX_STRING_LENGTH); return TRUE; } }; class AFX_EXT_CLASS CLIGHT_RECIPE_PARM { public: int m_nLightMax; // ¾Ë¶÷ »óÇÑ int m_nLightMin; // ¾Ë¶÷ ÇÏÇÑ int m_nLightAdjMax; // Á¶Àý »óÇÑ int m_nLightAdjMin; // Á¶Àý ÇÏÇÑ int m_nLightSet; // ¼³Á¤ int m_nLightAlarm; // ¾Ë¶÷ ¹ß»ý Á¶°Ç int m_nLightDefault; // ±âº» º¼·ý CLIGHT_RECIPE_PARM() { Reset(); } void Reset() { m_nLightMax = m_nLightMin = m_nLightAdjMax = m_nLightAdjMin = 0; m_nLightSet = m_nLightAlarm = m_nLightDefault = 0; } CLIGHT_RECIPE_PARM& operator=(const CLIGHT_RECIPE_PARM &rh) { m_nLightMax = rh.m_nLightMax; m_nLightMin = rh.m_nLightMin; m_nLightAdjMax = rh.m_nLightAdjMax; m_nLightAdjMin = rh.m_nLightAdjMin; m_nLightSet = rh.m_nLightSet; m_nLightAlarm = rh.m_nLightAlarm; m_nLightDefault = rh.m_nLightDefault; return *this; } BOOL ReadRecipe(CHMRegiConfig *pFile,CameraType Camtype) { CString strSection,strTmp; switch (Camtype) { case CamType_Reflex: strTmp = "R"; break; case CamType_Transfer: strTmp = "T"; break; default: return FALSE; } strSection.Format("GLASS_LIGHTMAX_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nLightMax); strSection.Format("GLASS_LIGHTMIN_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nLightMin); strSection.Format("GLASS_LIGHTADJMAX_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nLightAdjMax); strSection.Format("GLASS_LIGHTADJMIN_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nLightAdjMin); strSection.Format("GLASS_LIGHTSET_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nLightSet); strSection.Format("GLASS_LIGHTALARM_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nLightAlarm,2); strSection.Format("GLASS_LIGHTDEFAULT_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nLightDefault,50); return TRUE; } BOOL WriteRecipe(CHMRegiConfig *pFile,CameraType Camtype) { CString strSection,strTmp; switch (Camtype) { case CamType_Reflex: strTmp = "R"; break; case CamType_Transfer: strTmp = "T"; break; default: return FALSE; } strSection.Format("GLASS_LIGHTMAX_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nLightMax); strSection.Format("GLASS_LIGHTMIN_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nLightMin); strSection.Format("GLASS_LIGHTADJMAX_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nLightAdjMax); strSection.Format("GLASS_LIGHTADJMIN_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nLightAdjMin); strSection.Format("GLASS_LIGHTSET_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nLightSet); strSection.Format("GLASS_LIGHTALARM_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nLightAlarm); strSection.Format("GLASS_LIGHTDEFAULT_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nLightDefault); return TRUE; } }; class AFX_EXT_CLASS CCAMERA_INSPECT_PARM { public: int m_nCamNum; int m_nConvMode; int m_nThresFindGlass; BOOL m_bIsZone; BOOL m_bUseZoneData; BOOL m_bZoneFailUsePich; int m_nZonFailPitchCycleConv; int m_nZonFailPitchCycleScan; int m_nZoneFailConvMode; CCAMERA_INSPECT_PARM() { Reset(); } void Reset() { m_nConvMode = 0; m_nCamNum = 0; m_nThresFindGlass = 0; m_bIsZone = m_bUseZoneData = m_bZoneFailUsePich = FALSE; m_nZonFailPitchCycleConv = m_nZonFailPitchCycleScan = m_nZonFailPitchCycleScan = m_nZoneFailConvMode = 0; } CCAMERA_INSPECT_PARM& operator=(const CCAMERA_INSPECT_PARM &rh) { m_nCamNum = rh.m_nCamNum; m_nConvMode = rh.m_nConvMode; m_nThresFindGlass = rh.m_nThresFindGlass; m_bIsZone = rh.m_bIsZone; m_bUseZoneData = rh.m_bUseZoneData; m_bZoneFailUsePich = rh.m_bZoneFailUsePich; m_nZonFailPitchCycleConv = rh.m_nZonFailPitchCycleConv; m_nZonFailPitchCycleScan = rh.m_nZonFailPitchCycleScan; m_nZonFailPitchCycleScan = rh.m_nZonFailPitchCycleScan; m_nZoneFailConvMode = rh.m_nZoneFailConvMode; return *this; } BOOL ReadRecipe(CHMRegiConfig *pFile,CameraType Camtype) { CString strSection,strTmp; switch (Camtype) { case CamType_Reflex: strTmp = "R"; break; case CamType_Transfer: strTmp = "T"; break; default: return FALSE; } strSection.Format("INSPECT_MODE_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nConvMode); strSection.Format("INSPECT_FINDGLASS_THRES_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_nThresFindGlass); strSection.Format("INSPECT_GLASS_ZONEDATA_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection, m_bUseZoneData); strSection.Format("INSPECT_GLASS_INSPECTORZONEFAIL_USE_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection,m_bZoneFailUsePich, FALSE); strSection.Format("INSPECT_GLASS_INSPECTORZONEFAIL_CYCLECONV_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection,m_nZonFailPitchCycleConv, 2); strSection.Format("INSPECT_GLASS_INSPECTORZONEFAIL_CYCLESCAN_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection,m_nZonFailPitchCycleScan, 2); strSection.Format("INSPECT_GLASS_INSPECTORZONEFAIL_CONVMODE_%s",strTmp); pFile->GetItemValue((LPSTR)(LPCTSTR)strSection,m_nZoneFailConvMode, 0); return TRUE; } BOOL WriteRecipe(CHMRegiConfig *pFile,CameraType Camtype) { CString strSection,strTmp; switch (Camtype) { case CamType_Reflex: strTmp = "R"; break; case CamType_Transfer: strTmp = "T"; break; default: return FALSE; } strSection.Format("INSPECT_MODE_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nConvMode); strSection.Format("INSPECT_FINDGLASS_THRES_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_nThresFindGlass); strSection.Format("INSPECT_GLASS_ZONEDATA_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection, m_bUseZoneData); strSection.Format("INSPECT_GLASS_INSPECTORZONEFAIL_USE_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection,m_bZoneFailUsePich); strSection.Format("INSPECT_GLASS_INSPECTORZONEFAIL_CYCLECONV_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection,m_nZonFailPitchCycleConv); strSection.Format("INSPECT_GLASS_INSPECTORZONEFAIL_CYCLESCAN_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection,m_nZonFailPitchCycleScan); strSection.Format("INSPECT_GLASS_INSPECTORZONEFAIL_CONVMODE_%s",strTmp); pFile->SetItemValue((LPSTR)(LPCTSTR)strSection,m_nZoneFailConvMode); return TRUE; } BOOL ReadRecipe(CMosisPacket *pPacket) { pPacket->ReadValue(m_nCamNum); pPacket->ReadValue(m_nConvMode); pPacket->ReadValue(m_nThresFindGlass); pPacket->ReadValue(m_bUseZoneData); pPacket->ReadValue(m_bZoneFailUsePich); pPacket->ReadValue(m_nZonFailPitchCycleConv); pPacket->ReadValue(m_nZonFailPitchCycleScan); pPacket->ReadValue(m_nZoneFailConvMode); return TRUE; } BOOL WriteRecipe(CMosisPacket *pPacket) { pPacket->WriteValue(m_nCamNum); pPacket->WriteValue(m_nConvMode); pPacket->WriteValue(m_nThresFindGlass); pPacket->WriteValue(m_bUseZoneData); pPacket->WriteValue(m_bZoneFailUsePich); pPacket->WriteValue(m_nZonFailPitchCycleConv); pPacket->WriteValue(m_nZonFailPitchCycleScan); pPacket->WriteValue(m_nZoneFailConvMode); return TRUE; } }; class AFX_EXT_CLASS CGLASS_ALIGN_PARM { public: BOOL m_bUsePreAlign;//µµ¼® BOOL m_bDetectAlign; BOOL m_bAlignUseTM; BOOL m_bAlignTempAutoSave; int m_nAlignTH; int m_nAlignMergeRange; int m_nAlignMatchRate; BOOL m_bEdgeAlign; int m_nEdgeAlignTH; int m_nEdgeAlignFindLine; CGLASS_ALIGN_PARM() { Reset(); } void Reset() { m_nAlignTH = m_nAlignMergeRange = m_nAlignMatchRate = m_nEdgeAlignTH = m_nEdgeAlignFindLine = 0; m_bDetectAlign = m_bAlignUseTM = m_bAlignTempAutoSave = m_bEdgeAlign = FALSE; } CGLASS_ALIGN_PARM& operator=(const CGLASS_ALIGN_PARM &rh) { m_bUsePreAlign = rh.m_bUsePreAlign; m_nAlignTH = rh.m_nAlignTH; m_nAlignMergeRange = rh.m_nAlignMergeRange; m_nAlignMatchRate = rh.m_nAlignMatchRate; m_bDetectAlign = rh.m_bDetectAlign; m_bAlignUseTM = rh.m_bAlignUseTM; m_bAlignTempAutoSave = rh.m_bAlignTempAutoSave; m_bEdgeAlign = rh.m_bEdgeAlign; m_nEdgeAlignTH = rh.m_nEdgeAlignTH; m_nEdgeAlignFindLine = rh.m_nEdgeAlignFindLine; return *this; } BOOL ReadRecipe(CHMRegiConfig *pFile) { pFile->GetItemValue("GLASS_PRE_ALIGN", m_bUsePreAlign); pFile->GetItemValue("GLASS_ALIGNTH", m_nAlignTH); pFile->GetItemValue("GLASS_ALIGNMERGERANGE", m_nAlignMergeRange); pFile->GetItemValue("GLASS_ALIGNMATCHRATE", m_nAlignMatchRate); pFile->GetItemValue("GLASS_DETECTALIGN", m_bDetectAlign); pFile->GetItemValue("GLASS_ALIGNTM", m_bAlignUseTM); pFile->GetItemValue("GLASS_ALIGNTEMP_AUTOSAVE", m_bAlignTempAutoSave); pFile->GetItemValue("GLASS_EDGEALIGN", m_bEdgeAlign); pFile->GetItemValue("GLASS_EDGEALIGNTH", m_nEdgeAlignTH); pFile->GetItemValue("GLASS_EDGEALIGNFINDLINE", m_nEdgeAlignFindLine); return TRUE; } BOOL WriteRecipe(CHMRegiConfig *pFile) { pFile->SetItemValue("GLASS_PRE_ALIGN", m_bUsePreAlign); pFile->SetItemValue("GLASS_ALIGNTH", m_nAlignTH); pFile->SetItemValue("GLASS_ALIGNMERGERANGE", m_nAlignMergeRange); pFile->SetItemValue("GLASS_ALIGNMATCHRATE", m_nAlignMatchRate); pFile->SetItemValue("GLASS_DETECTALIGN", m_bDetectAlign); pFile->SetItemValue("GLASS_ALIGNTM", m_bAlignUseTM); pFile->SetItemValue("GLASS_ALIGNTEMP_AUTOSAVE", m_bAlignTempAutoSave); pFile->SetItemValue("GLASS_EDGEALIGN", m_bEdgeAlign); pFile->SetItemValue("GLASS_EDGEALIGNTH", m_nEdgeAlignTH); pFile->SetItemValue("GLASS_EDGEALIGNFINDLINE", m_nEdgeAlignFindLine); return TRUE; } BOOL ReadRecipe(CMosisPacket *pPacket) { pPacket->ReadValue(m_bUsePreAlign); pPacket->ReadValue(m_nAlignTH); pPacket->ReadValue(m_nAlignMergeRange); pPacket->ReadValue(m_nAlignMatchRate); pPacket->ReadValue(m_bDetectAlign); pPacket->ReadValue(m_bAlignUseTM); pPacket->ReadValue(m_bAlignTempAutoSave); pPacket->ReadValue(m_bEdgeAlign); pPacket->ReadValue(m_nEdgeAlignTH); pPacket->ReadValue(m_nEdgeAlignFindLine); return TRUE; } BOOL WriteRecipe(CMosisPacket *pPacket) { pPacket->WriteValue(m_bUsePreAlign); pPacket->WriteValue(m_nAlignTH); pPacket->WriteValue(m_nAlignMergeRange); pPacket->WriteValue(m_nAlignMatchRate); pPacket->WriteValue(m_bDetectAlign); pPacket->WriteValue(m_bAlignUseTM); pPacket->WriteValue(m_bAlignTempAutoSave); pPacket->WriteValue(m_bEdgeAlign); pPacket->WriteValue(m_nEdgeAlignTH); pPacket->WriteValue(m_nEdgeAlignFindLine); return TRUE; } }; class AFX_EXT_CLASS CGLASS_RECIPE_ETC_PARM { public: int m_nCellNumDir; //¿øÁ¡ ´ëºñ cell index°¡ ¾î´À ¹æÇâÀ¸·Î Áõ°¡ÇÏ´À³Ä. BOOL m_bDontStopMask; BOOL m_bUseTrimmer; int m_nTrimmerWidth; CRect m_rectMasking[2]; int m_nUseSize; BOOL m_bUseInspectorSizeTh; int m_nInspectorMergeSize; int m_nInspectorSizeThOffset; int m_nOffsetType; BOOL m_bSamsungJudge; int m_nLightMethod; BOOL m_bSaveZoneMatchingImg; CGLASS_RECIPE_ETC_PARM() { Reset(); } void Reset() { m_nCellNumDir = m_nTrimmerWidth = 0; m_bDontStopMask = m_bUseTrimmer = m_nUseSize = m_bUseInspectorSizeTh = m_bSamsungJudge = FALSE; m_rectMasking[0] = m_rectMasking[1] = CRect(0,0,0,0); m_nInspectorMergeSize = m_nInspectorSizeThOffset = m_nOffsetType = m_nLightMethod = 0; m_bSaveZoneMatchingImg = FALSE; } CGLASS_RECIPE_ETC_PARM& operator=(const CGLASS_RECIPE_ETC_PARM &rh) { m_nCellNumDir = rh.m_nCellNumDir; m_nTrimmerWidth = rh.m_nTrimmerWidth; m_bDontStopMask = rh.m_bDontStopMask; m_bUseTrimmer = rh.m_bUseTrimmer; m_rectMasking[0] = rh.m_rectMasking[0]; m_rectMasking[1] = rh.m_rectMasking[1]; m_nUseSize = rh.m_nUseSize; m_bUseInspectorSizeTh = rh.m_bUseInspectorSizeTh; m_nInspectorMergeSize = rh.m_nInspectorMergeSize; m_nInspectorSizeThOffset = rh.m_nInspectorSizeThOffset; m_nOffsetType = rh.m_nOffsetType; m_bSamsungJudge = rh.m_bSamsungJudge; m_nLightMethod = rh.m_nLightMethod; m_bSaveZoneMatchingImg = rh.m_bSaveZoneMatchingImg; return *this; } BOOL ReadRecipe(CHMRegiConfig *pFile) { pFile->GetItemValue("GLASS_CELLNUMDIR", m_nCellNumDir); pFile->GetItemValue("GLASS_TRIMMER_WIDTH", m_nTrimmerWidth); pFile->GetItemValue("GLASS_DONTSTOPMASK", m_bDontStopMask); pFile->GetItemValue("GLASS_TRIMMER", m_bUseTrimmer); int nValue; pFile->GetItemValue("GLASS_MASKING_LEFT_FIRST", nValue); m_rectMasking[0].left = nValue; pFile->GetItemValue("GLASS_MASKING_TOP_FIRST", nValue); m_rectMasking[0].top = nValue; pFile->GetItemValue("GLASS_MASKING_RIGHT_FIRST", nValue); m_rectMasking[0].right = nValue; pFile->GetItemValue("GLASS_MASKING_BOTTOM_FIRST", nValue); m_rectMasking[0].bottom = nValue; pFile->GetItemValue("GLASS_MASKING_LEFT_SECOND", nValue); m_rectMasking[1].left = nValue; pFile->GetItemValue("GLASS_MASKING_TOP_SECOND", nValue); m_rectMasking[1].top = nValue; pFile->GetItemValue("GLASS_MASKING_RIGHT_SECOND", nValue); m_rectMasking[1].right = nValue; pFile->GetItemValue("GLASS_MASKING_BOTTOM_SECOND", nValue); m_rectMasking[1].bottom = nValue; pFile->GetItemValue("GLASS_INSPECTORSIZE_USE",m_nUseSize,FALSE); pFile->GetItemValue("GLASS_INSPECTORSIZETH_USE",m_bUseInspectorSizeTh,FALSE); pFile->GetItemValue("GLASS_INSPECTORMERGE_SIZE",m_nInspectorMergeSize,10); pFile->GetItemValue("GLASS_INSPECTORSIZETH_OFFSET",m_nInspectorSizeThOffset,3); pFile->GetItemValue("GLASS_INSPECTOROFFSET_TYPE",m_nOffsetType,3); pFile->GetItemValue("GLASS_SAMSUNG_JUDGE", m_bSamsungJudge, 0); pFile->GetItemValue("GLASS_LIGHTMETHOD", m_nLightMethod, 2); pFile->GetItemValue("GLASS_SAVEZONEMATCHING_IMG", m_bSaveZoneMatchingImg, FALSE); return TRUE; } BOOL WriteRecipe(CHMRegiConfig *pFile) { pFile->SetItemValue("GLASS_CELLNUMDIR", m_nCellNumDir); pFile->SetItemValue("GLASS_TRIMMER_WIDTH", m_nTrimmerWidth); pFile->SetItemValue("GLASS_DONTSTOPMASK", m_bDontStopMask); pFile->SetItemValue("GLASS_TRIMMER", m_bUseTrimmer); int nValue; nValue = m_rectMasking[0].left; pFile->SetItemValue("GLASS_MASKING_LEFT_FIRST", nValue); nValue = m_rectMasking[0].top; pFile->SetItemValue("GLASS_MASKING_TOP_FIRST", nValue); nValue = m_rectMasking[0].right; pFile->SetItemValue("GLASS_MASKING_RIGHT_FIRST", nValue); nValue = m_rectMasking[0].bottom; pFile->SetItemValue("GLASS_MASKING_BOTTOM_FIRST", nValue); nValue = m_rectMasking[1].left; pFile->SetItemValue("GLASS_MASKING_LEFT_SECOND", nValue); nValue = m_rectMasking[1].top; pFile->SetItemValue("GLASS_MASKING_TOP_SECOND", nValue); nValue = m_rectMasking[1].right; pFile->SetItemValue("GLASS_MASKING_RIGHT_SECOND", nValue); nValue = m_rectMasking[1].bottom; pFile->SetItemValue("GLASS_MASKING_BOTTOM_SECOND", nValue); pFile->SetItemValue("GLASS_INSPECTORSIZE_USE",m_nUseSize); pFile->SetItemValue("GLASS_INSPECTORSIZETH_USE",m_bUseInspectorSizeTh); pFile->SetItemValue("GLASS_INSPECTORMERGE_SIZE",m_nInspectorMergeSize); pFile->SetItemValue("GLASS_INSPECTORSIZETH_OFFSET",m_nInspectorSizeThOffset); pFile->SetItemValue("GLASS_INSPECTOROFFSET_TYPE",m_nOffsetType); pFile->SetItemValue("GLASS_SAMSUNG_JUDGE", m_bSamsungJudge); pFile->SetItemValue("GLASS_LIGHTMETHOD", m_nLightMethod); pFile->SetItemValue("GLASS_SAVEZONEMATCHING_IMG", m_bSaveZoneMatchingImg); return TRUE; } BOOL ReadRecipe(CMosisPacket *pPacket) { pPacket->ReadValue(m_rectMasking[0].left); pPacket->ReadValue(m_rectMasking[0].top); pPacket->ReadValue(m_rectMasking[0].right); pPacket->ReadValue(m_rectMasking[0].bottom); pPacket->ReadValue(m_rectMasking[1].left); pPacket->ReadValue(m_rectMasking[1].top); pPacket->ReadValue(m_rectMasking[1].right); pPacket->ReadValue(m_rectMasking[1].bottom); pPacket->ReadValue(m_nUseSize); pPacket->ReadValue(m_bUseInspectorSizeTh); pPacket->ReadValue(m_nInspectorMergeSize); pPacket->ReadValue(m_nInspectorSizeThOffset); pPacket->ReadValue(m_nOffsetType); pPacket->ReadValue(m_bSaveZoneMatchingImg); return TRUE; } BOOL WriteRecipe(CMosisPacket *pPacket) { pPacket->WriteValue(m_rectMasking[0].left); pPacket->WriteValue(m_rectMasking[0].top); pPacket->WriteValue(m_rectMasking[0].right); pPacket->WriteValue(m_rectMasking[0].bottom); pPacket->WriteValue(m_rectMasking[1].left); pPacket->WriteValue(m_rectMasking[1].top); pPacket->WriteValue(m_rectMasking[1].right); pPacket->WriteValue(m_rectMasking[1].bottom); pPacket->WriteValue(m_nUseSize); pPacket->WriteValue(m_bUseInspectorSizeTh); pPacket->WriteValue(m_nInspectorMergeSize); pPacket->WriteValue(m_nInspectorSizeThOffset); pPacket->WriteValue(m_nOffsetType); pPacket->WriteValue(m_bSaveZoneMatchingImg); return TRUE; } }; class AFX_EXT_CLASS CGLASS_STACK_PARM { public: BOOL m_bStackFileMergeOnOff; int m_nStackFileMergeSize; int m_nStackFileMergeCount; BOOL m_bCheckCameraType; BOOL m_bCheckJudeType; BOOL m_bCheckJugeOK; BOOL m_bCheckJugePR; BOOL m_bCheckCameraTypeRB; BOOL m_bCheckCameraTypeRW; BOOL m_bCheckStackStep; BOOL m_bCheckCameraTypeTB; BOOL m_bCheckJudeTR; BOOL m_bCheckCameraTypeTW; int m_nEditRBCutSize; int m_nEditRWCutSize; int m_nEditTBCutSize; int m_nEditTWCutSize; CString m_strStackStep[CFDEFECT_STACKCOUNT]; int m_nStackStepCount; CGLASS_STACK_PARM() { Reset(); } void Reset() { m_bStackFileMergeOnOff = m_bCheckCameraType = m_bCheckJudeType = m_bCheckJugeOK = FALSE; m_bCheckJugePR = m_bCheckCameraTypeRB = m_bCheckCameraTypeRW = m_bCheckStackStep = m_bCheckCameraTypeTB = FALSE; m_bCheckJudeTR = m_bCheckCameraTypeTW = FALSE; m_nStackFileMergeSize =m_nStackFileMergeCount =m_nEditRBCutSize = m_nEditRWCutSize = m_nEditTBCutSize = 0; m_nEditTWCutSize = m_nStackStepCount = 0; int iLoop; for(iLoop=0;iLoopGetItemValue("GLASS_STACKFILEMERGE_ONOFF", m_bStackFileMergeOnOff,FALSE); pFile->GetItemValue("GLASS_STACKFILEMERGE_SIZE", m_nStackFileMergeSize,0); pFile->GetItemValue("GALSS_STACKFILEMERGE_COUNT",m_nStackFileMergeCount,2000); pFile->GetItemValue("GLASS_STACK_MERGE_CAMERA_TYPE",m_bCheckCameraType); pFile->GetItemValue("GLASS_STACK_MERGE_CAMERA_TYPE_TB",m_bCheckCameraTypeTB); pFile->GetItemValue("GLASS_STACK_MERGE_CAMERA_TYPE_TW",m_bCheckCameraTypeTW); pFile->GetItemValue("GLASS_STACK_MERGE_CAMERA_TYPE_RB",m_bCheckCameraTypeRB); pFile->GetItemValue("GLASS_STACK_MERGE_CAMERA_TYPE_RW",m_bCheckCameraTypeRW); pFile->GetItemValue("GLASS_STACK_MERGE_JUDE_TYPE",m_bCheckJudeType); pFile->GetItemValue("GLASS_STACK_MERGE_JUDE_TYPE_OK",m_bCheckJugeOK); pFile->GetItemValue("GLASS_STACK_MERGE_JUDE_TYPE_PR",m_bCheckJugePR); pFile->GetItemValue("GLASS_STACK_MERGE_JUDE_TYPE_TR",m_bCheckJudeTR); pFile->GetItemValue("GLASS_STACK_MERGE_STACK_STEP",m_bCheckStackStep); pFile->GetItemValue("GLASS_STACK_MERGE_STACK_STEP_COUNT",m_nStackStepCount); //20100506 Stack File Cut Off Size ¼³Á¤ pFile->GetItemValue("GLASS_STACK_MERGE_CUTOFF_RB",m_nEditRBCutSize,0); pFile->GetItemValue("GLASS_STACK_MERGE_CUTOFF_RW",m_nEditRWCutSize,0); pFile->GetItemValue("GLASS_STACK_MERGE_CUTOFF_TB",m_nEditTBCutSize,0); pFile->GetItemValue("GLASS_STACK_MERGE_CUTOFF_TW",m_nEditTWCutSize,0); int i; for(i = 0; i GetItemValue(i,"GLASS_STACK_MERGE_STACK_STEP_NAME",m_strStackStep[i]); } return TRUE; } BOOL WriteRecipe(CHMRegiConfig *pFile) { pFile->SetItemValue("GLASS_STACKFILEMERGE_ONOFF", m_bStackFileMergeOnOff); pFile->SetItemValue("GLASS_STACKFILEMERGE_SIZE", m_nStackFileMergeSize); pFile->SetItemValue("GALSS_STACKFILEMERGE_COUNT",m_nStackFileMergeCount); pFile->SetItemValue("GLASS_STACK_MERGE_CAMERA_TYPE",m_bCheckCameraType); pFile->SetItemValue("GLASS_STACK_MERGE_CAMERA_TYPE_TB",m_bCheckCameraTypeTB); pFile->SetItemValue("GLASS_STACK_MERGE_CAMERA_TYPE_TW",m_bCheckCameraTypeTW); pFile->SetItemValue("GLASS_STACK_MERGE_CAMERA_TYPE_RB",m_bCheckCameraTypeRB); pFile->SetItemValue("GLASS_STACK_MERGE_CAMERA_TYPE_RW",m_bCheckCameraTypeRW); pFile->SetItemValue("GLASS_STACK_MERGE_JUDE_TYPE",m_bCheckJudeType); pFile->SetItemValue("GLASS_STACK_MERGE_JUDE_TYPE_OK",m_bCheckJugeOK); pFile->SetItemValue("GLASS_STACK_MERGE_JUDE_TYPE_PR",m_bCheckJugePR); pFile->SetItemValue("GLASS_STACK_MERGE_JUDE_TYPE_TR",m_bCheckJudeTR); pFile->SetItemValue("GLASS_STACK_MERGE_STACK_STEP",m_bCheckStackStep); pFile->SetItemValue("GLASS_STACK_MERGE_STACK_STEP_COUNT",m_nStackStepCount); //20100506 Stack File Cut Off Size ¼³Á¤ pFile->SetItemValue("GLASS_STACK_MERGE_CUTOFF_RB",m_nEditRBCutSize); pFile->SetItemValue("GLASS_STACK_MERGE_CUTOFF_RW",m_nEditRWCutSize); pFile->SetItemValue("GLASS_STACK_MERGE_CUTOFF_TB",m_nEditTBCutSize); pFile->SetItemValue("GLASS_STACK_MERGE_CUTOFF_TW",m_nEditTWCutSize); int i; for(i = 0; i SetItemValue(i,"GLASS_STACK_MERGE_STACK_STEP_NAME",(LPSTR)(LPCTSTR)m_strStackStep[i]); } return TRUE; } }; class AFX_EXT_CLASS CGLASS_DEFECT_JUDG_PARM { public: int m_nSizeJudgeS; int m_nSizeJudgeM; int m_nSizeJudgeL; int m_nPeakJudgeS; int m_nPeakJudgeM; CGLASS_DEFECT_JUDG_PARM() { Reset(); } void Reset() { m_nSizeJudgeS = 0; m_nSizeJudgeM = 0; m_nSizeJudgeL = 0; m_nPeakJudgeS = 0; m_nPeakJudgeM = 0; } CGLASS_DEFECT_JUDG_PARM& operator=(const CGLASS_DEFECT_JUDG_PARM &rh) { m_nSizeJudgeS = rh.m_nSizeJudgeS; m_nSizeJudgeM = rh.m_nSizeJudgeM; m_nSizeJudgeL = rh.m_nSizeJudgeL; m_nPeakJudgeS = rh.m_nPeakJudgeS; m_nPeakJudgeM = rh.m_nPeakJudgeM; return *this; } BOOL ReadRecipe(CHMRegiConfig *pFile) { pFile->GetItemValue("GLASS_SSIZE_JUDGE", m_nSizeJudgeS, 5); pFile->GetItemValue("GLASS_MSIZE_JUDGE", m_nSizeJudgeM, 10); pFile->GetItemValue("GLASS_LSIZE_JUDGE", m_nSizeJudgeL, 15); pFile->GetItemValue("GLASS_SHEIGHT_JUDGE", m_nPeakJudgeS, 10); pFile->GetItemValue("GLASS_MHEIGHT_JUDGE", m_nPeakJudgeM, 20); return TRUE; } BOOL WriteRecipe(CHMRegiConfig *pFile) { pFile->SetItemValue("GLASS_SSIZE_JUDGE", m_nSizeJudgeS); pFile->SetItemValue("GLASS_MSIZE_JUDGE", m_nSizeJudgeM); pFile->SetItemValue("GLASS_LSIZE_JUDGE", m_nSizeJudgeL); pFile->SetItemValue("GLASS_SHEIGHT_JUDGE", m_nPeakJudgeS); pFile->SetItemValue("GLASS_MHEIGHT_JUDGE", m_nPeakJudgeM); return TRUE; } }; class AFX_EXT_CLASS CGLASS_RECIPE_PARM { public: int m_nCameraNum; int m_nScanNum; GlassType m_GlassType; // ÇöÀç GlassÀÇ Á¾·ù double m_dGlassThickness; // Glass µÎ²². int m_nSelectCellOri; CRECIPE_INFO_PARM m_pRcpInfoPrm; CCAMERA_INSPECT_PARM m_pRefInspectPrm; CCAMERA_INSPECT_PARM m_pTransInspectPrm; CEDGECRACK_RECIPE_PARM m_pEdgeCrack; // Edge Crack CLIGHT_RECIPE_PARM m_pTransLightParm; // Åõ°ú ±¤·® Parm CLIGHT_RECIPE_PARM m_pRefLightParm; // ¹Ý»ç ±¤·® Parm CGLASS_ALIGN_PARM m_pGlassAlignParm; CGLASS_MASKING_PARM m_pGlassMaskParm; CGLASS_DEFECT_JUDG_PARM m_pDefectJudge; CGLASS_STACK_PARM m_pStackParm; CGLASS_RECIPE_ETC_PARM m_pGlassEtcParm; CGLASS_RECIPE_PARM() { Reset(); } void Reset() { m_nCameraNum = 0; m_nScanNum = 0; m_GlassType.Reset(); m_dGlassThickness = 0.; m_nSelectCellOri = 0; m_pRcpInfoPrm.Reset(); m_pRefInspectPrm.Reset(); m_pTransInspectPrm.Reset(); m_pEdgeCrack.Reset(); m_pTransLightParm.Reset(); m_pRefLightParm.Reset(); m_pGlassEtcParm.Reset(); m_pGlassAlignParm.Reset(); m_pGlassMaskParm.Reset(); m_pDefectJudge.Reset(); m_pStackParm.Reset(); } void SetCamNum(int nTransCnt,int nRefCnt) { m_nCameraNum = nTransCnt+nRefCnt; m_pRefInspectPrm.m_nCamNum = nRefCnt; m_pTransInspectPrm.m_nCamNum = nTransCnt; } CGLASS_RECIPE_PARM& operator=(const CGLASS_RECIPE_PARM &rh) { m_nCameraNum = rh.m_nCameraNum; m_nScanNum = rh.m_nScanNum; m_GlassType = rh.m_GlassType; m_dGlassThickness = rh.m_dGlassThickness; m_nSelectCellOri = rh.m_nSelectCellOri; m_pRcpInfoPrm = rh.m_pRcpInfoPrm; m_pRefInspectPrm = rh.m_pRefInspectPrm; m_pTransInspectPrm = rh.m_pTransInspectPrm; m_pEdgeCrack = rh.m_pEdgeCrack; m_pTransLightParm = rh.m_pTransLightParm; m_pRefLightParm = rh.m_pRefLightParm; m_pGlassEtcParm = rh.m_pGlassEtcParm; m_pGlassAlignParm = rh.m_pGlassAlignParm; m_pGlassMaskParm = rh.m_pGlassMaskParm; m_pDefectJudge = rh.m_pDefectJudge; m_pStackParm = rh.m_pStackParm; return *this; } BOOL ReadRecipeAlong(CHMRegiConfig *pFile) { if(pFile == NULL) return FALSE; int nValue; pFile->GetItemValue("GLASS_TYPEX", m_GlassType.m_nGlassSizeX); // ÇöÀç GlassÀÇ X Å©±â pFile->GetItemValue("GLASS_TYPEY", m_GlassType.m_nGlassSizeY); // ÇöÀç GlassÀÇ Y Å©±â pFile->GetItemValue("GLASS_ORIGINDIR", nValue); // ÇöÀç GlassÀÇ Y Å©±â m_GlassType.m_OriginDirection = (GlassDirection)nValue; // ÇöÀç GlassÀÇ ¿øÁ¡ ¹æÇâ pFile->GetItemValue("GLASS_CCDIR", nValue); m_GlassType.m_CCutDirection = (GlassDirection)nValue; // ÇöÀç GlassÀÇ ÄÚ³ÊÄÆ ¹æÇâ pFile->GetItemValue("GLASS_THICKNESS", m_dGlassThickness); // Glass µÎ²². pFile->GetItemValue("GLASS_CELL_ORI", m_nSelectCellOri); m_pRcpInfoPrm.ReadRecipe(pFile); return TRUE; } BOOL ReadRecipe(CHMRegiConfig *pFile) { if(pFile == NULL) return FALSE; int nValue; pFile->GetItemValue("GLASS_TYPEX", m_GlassType.m_nGlassSizeX); // ÇöÀç GlassÀÇ X Å©±â pFile->GetItemValue("GLASS_TYPEY", m_GlassType.m_nGlassSizeY); // ÇöÀç GlassÀÇ Y Å©±â pFile->GetItemValue("GLASS_ORIGINDIR", nValue); // ÇöÀç GlassÀÇ Y Å©±â m_GlassType.m_OriginDirection = (GlassDirection)nValue; // ÇöÀç GlassÀÇ ¿øÁ¡ ¹æÇâ pFile->GetItemValue("GLASS_CCDIR", nValue); m_GlassType.m_CCutDirection = (GlassDirection)nValue; // ÇöÀç GlassÀÇ ÄÚ³ÊÄÆ ¹æÇâ pFile->GetItemValue("GLASS_THICKNESS", m_dGlassThickness); // Glass µÎ²². pFile->GetItemValue("GLASS_CELL_ORI", m_nSelectCellOri); m_pRcpInfoPrm.ReadRecipe(pFile); m_pRefInspectPrm.ReadRecipe(pFile,CamType_Reflex); m_pTransInspectPrm.ReadRecipe(pFile,CamType_Transfer); m_pEdgeCrack.ReadRecipe(pFile); m_pRefLightParm.ReadRecipe(pFile,CamType_Reflex); m_pTransLightParm.ReadRecipe(pFile,CamType_Transfer); m_pGlassAlignParm.ReadRecipe(pFile); m_pGlassEtcParm.ReadRecipe(pFile); m_pGlassMaskParm.ReadRecipe(pFile); m_pDefectJudge.ReadRecipe(pFile); m_pStackParm.ReadRecipe(pFile); return TRUE; } BOOL WriteRecipeAlong(CHMRegiConfig *pFile) { if(pFile == NULL) return FALSE; int nValue; pFile->SetItemValue("GLASS_TYPEX", m_GlassType.m_nGlassSizeX); // ÇöÀç GlassÀÇ X Å©±â pFile->SetItemValue("GLASS_TYPEY", m_GlassType.m_nGlassSizeY); // ÇöÀç GlassÀÇ Y Å©±â nValue = (int)m_GlassType.m_OriginDirection; // ÇöÀç GlassÀÇ ¿øÁ¡ ¹æÇâ pFile->SetItemValue("GLASS_ORIGINDIR", nValue); nValue = (int)m_GlassType.m_CCutDirection; // ÇöÀç GlassÀÇ ÄÚ³ÊÄÆ ¹æÇâ pFile->SetItemValue("GLASS_CCDIR", nValue); pFile->SetItemValue("GLASS_THICKNESS", m_dGlassThickness); // Glass µÎ²². pFile->SetItemValue("GLASS_CELL_ORI", m_nSelectCellOri); return TRUE; } BOOL WriteRecipe(CHMRegiConfig *pFile) { int nValue; pFile->SetItemValue("GLASS_TYPEX", m_GlassType.m_nGlassSizeX); // ÇöÀç GlassÀÇ X Å©±â pFile->SetItemValue("GLASS_TYPEY", m_GlassType.m_nGlassSizeY); // ÇöÀç GlassÀÇ Y Å©±â nValue = (int)m_GlassType.m_OriginDirection; // ÇöÀç GlassÀÇ ¿øÁ¡ ¹æÇâ pFile->SetItemValue("GLASS_ORIGINDIR", nValue); nValue = (int)m_GlassType.m_CCutDirection; // ÇöÀç GlassÀÇ ÄÚ³ÊÄÆ ¹æÇâ pFile->SetItemValue("GLASS_CCDIR", nValue); pFile->SetItemValue("GLASS_THICKNESS", m_dGlassThickness); // Glass µÎ²². pFile->SetItemValue("GLASS_CELL_ORI", m_nSelectCellOri); m_pRcpInfoPrm.WriteRecipe(pFile); m_pRefInspectPrm.WriteRecipe(pFile,CamType_Reflex); m_pTransInspectPrm.WriteRecipe(pFile,CamType_Transfer); m_pEdgeCrack.WriteRecipe(pFile); m_pRefLightParm.WriteRecipe(pFile,CamType_Reflex); m_pTransLightParm.WriteRecipe(pFile,CamType_Transfer); m_pGlassAlignParm.WriteRecipe(pFile); m_pGlassEtcParm.WriteRecipe(pFile); m_pGlassMaskParm.WriteRecipe(pFile); m_pDefectJudge.WriteRecipe(pFile); m_pStackParm.WriteRecipe(pFile); return TRUE; } BOOL ReadRecipe(CMosisPacket *pPacket) { int nValue; pPacket->ReadValue(m_GlassType.m_nGlassSizeX); pPacket->ReadValue(m_GlassType.m_nGlassSizeY); pPacket->ReadValue(nValue); m_GlassType.m_OriginDirection = (GlassDirection)nValue; pPacket->ReadValue(nValue); m_GlassType.m_CCutDirection = (GlassDirection)nValue; pPacket->ReadValue(m_dGlassThickness); pPacket->ReadValue(m_nSelectCellOri); m_pRcpInfoPrm.ReadRecipe(pPacket); m_pRefInspectPrm.ReadRecipe(pPacket); m_pTransInspectPrm.ReadRecipe(pPacket); m_pEdgeCrack.ReadRecipe(pPacket); m_pGlassAlignParm.ReadRecipe(pPacket); m_pGlassEtcParm.ReadRecipe(pPacket); return TRUE; } BOOL WriteRecipe(CMosisPacket *pPacket) { int nValue; pPacket->WriteValue(m_GlassType.m_nGlassSizeX); pPacket->WriteValue(m_GlassType.m_nGlassSizeY); nValue = (int)m_GlassType.m_OriginDirection; pPacket->WriteValue(nValue); nValue = (int)m_GlassType.m_CCutDirection; pPacket->WriteValue(nValue); pPacket->WriteValue(m_dGlassThickness); pPacket->WriteValue(m_nSelectCellOri); m_pRcpInfoPrm.WriteRecipe(pPacket); m_pRefInspectPrm.WriteRecipe(pPacket); m_pTransInspectPrm.WriteRecipe(pPacket); m_pEdgeCrack.WriteRecipe(pPacket); m_pGlassAlignParm.WriteRecipe(pPacket); m_pGlassEtcParm.WriteRecipe(pPacket); return TRUE; } }; #endif