EdgeInspector_App/Recipe/GlassRecipe.h
@@ -1,4 +1,4 @@
#pragma once
#pragma once
#include "Config.h"
#include "cv.h"
@@ -14,11 +14,11 @@
typedef struct tagJUDGEEDGE
{
   BOOL bError;         //俊矾 咯何..
   int  nRefernce;         //  扁霖
   int  nTolPlus;         // +倾侩坷瞒
   int  nTolMinus;         // -倾侩坷瞒
   int  nSlant;         //荤急
   BOOL bError;         //俊矾 咯何..
   int  nRefernce;         //  扁霖
   int  nTolPlus;         // +倾侩坷瞒
   int  nTolMinus;         // -倾侩坷瞒
   int  nSlant;         //荤急
}JUDGEEDGE, *PJUDGEEDGE;
typedef struct tagUserDefectArea
@@ -53,10 +53,10 @@
typedef struct tagEXECPTION_AREA
{
   int      nAreaType;
   CRect   rc;         // 康开 困摹 (Mark 盔痢)
   SIZE   szErrSize;  // 捞 康开俊辑 利侩瞪 Size
   int      nAppDefect; // 利侩瞪 Defect 辆幅
   int      nDetectLimitedArea;   // 荤侩磊 汲沥 ROI 荤侩 蜡公
   CRect   rc;         // 康开 困摹 (Mark 盔痢)
   SIZE   szErrSize;  // 捞 康开俊辑 利侩瞪 Size
   int      nAppDefect; // 利侩瞪 Defect 辆幅
   int      nDetectLimitedArea;   // 荤侩磊 汲沥 ROI 荤侩 蜡公
   void Init()
   {
@@ -126,9 +126,9 @@
public:
   TCHAR      m_strRecipeName[MAX_STRING_LENGTH];               // 饭矫乔 捞抚.
   TCHAR      m_strRecipeFileName[MAX_STRING_LENGTH];            // 饭乔矫 颇老疙
   TCHAR      m_strRecipeFileNameBackUp[MAX_STRING_LENGTH];      // 饭乔矫 颇老疙
   TCHAR      m_strRecipeName[MAX_STRING_LENGTH];               // 饭矫乔 捞抚.
   TCHAR      m_strRecipeFileName[MAX_STRING_LENGTH];            // 饭乔矫 颇老疙
   TCHAR      m_strRecipeFileNameBackUp[MAX_STRING_LENGTH];      // 饭乔矫 颇老疙
   int         m_nSoftRevision;
   CString      m_strComment;                              // Comment
@@ -222,9 +222,9 @@
   BOOL WriteRecipe(CConfig *pFile, int nSideIdx, int nNotchIdx);
public:
   int      m_nGlassStartLine_pxl;   // Notch 殿废 且 锭 Glass Start Line..
   CPoint m_ptTopMarkPos;         // Notch 殿废 且 锭 Top Align Mark..
   CPoint m_ptBotMarkPos;         // Notch 殿废 且 锭 Bot Align Mark..
   int      m_nGlassStartLine_pxl;   // Notch 殿废 且 锭 Glass Start Line..
   CPoint m_ptTopMarkPos;         // Notch 殿废 且 锭 Top Align Mark..
   CPoint m_ptBotMarkPos;         // Notch 殿废 且 锭 Bot Align Mark..
   BOOL   m_bNotch_Use;
   CRect  m_rtNotch_Area_pxl;
@@ -258,8 +258,8 @@
   // Notch Circle
   int      m_nNotch_Circle_Count;
   BOOL   m_bNotch_Circle_Use[MAX_SIDE_NOTCH_CIRCLE_COUNT];
   CPoint m_ptNotch_Circle_TopMarkPos[MAX_SIDE_NOTCH_CIRCLE_COUNT];         // Notch Circle 殿废 且 锭 Top Align Mark..
   CPoint m_ptNotch_Circle_BotMarkPos[MAX_SIDE_NOTCH_CIRCLE_COUNT];         // Notch Circle 殿废 且 锭 Bot Align Mark..
   CPoint m_ptNotch_Circle_TopMarkPos[MAX_SIDE_NOTCH_CIRCLE_COUNT];         // Notch Circle 殿废 且 锭 Top Align Mark..
   CPoint m_ptNotch_Circle_BotMarkPos[MAX_SIDE_NOTCH_CIRCLE_COUNT];         // Notch Circle 殿废 且 锭 Bot Align Mark..
   CRect  m_rtNotch_Circle_Area_pxl[MAX_SIDE_NOTCH_CIRCLE_COUNT];
   double m_dNotch_Circle_Spec_Radius_um[MAX_SIDE_NOTCH_CIRCLE_COUNT];
   double m_dNotch_Circle_Spec_Radius_Min_um[MAX_SIDE_NOTCH_CIRCLE_COUNT];
@@ -318,6 +318,45 @@
   int      m_nJudge_Size_Min_OR_AND;   // 0 : No Use, 1 : OR, 2 : AND
};
// RIP Thickness
struct CRIP_THICKNESS_PARM
{
   // Inspect
   //RIP measure of precision
   BOOL m_bUseInspect = FALSE;
   int  m_nLeftThres = 0;
   int  m_nRightThres = 0;
   int  m_nGlassThres = 0;
   int  m_nRipDir = 0;            // 0:L 1:R 2:L+R
   int  m_nRectLeft = 0;         // Inspect Rect L
   int  m_nTopOffset = 0;         // Inspect Top Offset
   int  m_nRectRight = 0;         // Inspect Rect R
   int  m_nBottomOffset = 0;       // Inspect Bottom Offset
   // RIP chip detection
   BOOL m_bRipUseInspect = FALSE;
   int    m_nRipInspect_Range_um=0;
   int    m_nRipInspect_SideLine_Offset_um=0;
   int    m_nRipMin_Threshold = 0;
   int    m_nRipMax_Threshold = 0;
   // Judgement
   int  m_nGlassSizeMin_um = 0;
   int  m_nGlassSizeMax_um = 0;
   int  m_nLeftRipSizeMin_um = 0;
   int  m_nLeftRipSizeMax_um = 0;
   int  m_nRightRipSizeMin_um = 0;
   int  m_nRightRipSizeMax_um = 0;
   int    m_nRipJudge_Size_Min_X_um = 0;
   int    m_nRipJudge_Size_Min_Y_um = 0;
   int    m_nRipJudge_Size_Min_OR_AND = 0;// 0 : No Use, 1 : OR, 2 : AND
   void Reset();
   BOOL ReadRecipe(CConfig* pFile, int nSideIdx);
   BOOL WriteRecipe(CConfig* pFile, int nSideIdx);
};
class CSIDE_PARM
{   
public:
@@ -330,7 +369,7 @@
   BOOL         WriteRecipe(CConfig *pFile, int nSideIdx);
public:   
   int            m_nSidePanelSize_um;      // Scan 搁狼 技肺 规氢 农扁
   int            m_nSidePanelSize_um;      // Scan 搁狼 技肺 规氢 农扁
   int            m_nFindStartEndLine_X_pxl;   // Start/End Find Pos X
   int            m_nFindStartEndLine_Threshold;
   int            m_nSideLineThreshold;
@@ -453,6 +492,9 @@
   // User Defect
   int                  m_nUserDefectAreaCount;
   CUSER_DEFECT_AREA_PARM   m_UserDefectPrm[MAX_SIDE_USER_DEFECT_AREA_COUNT];
   // Rip Thickness
   CRIP_THICKNESS_PARM      m_RipThk;
};
class CGlassRecipe