#pragma once #include "InspectDefect.h" #include "Global_Define.h" #define RUSULT_POINT_COUNT 5 class CCameraSettings; class CResultData { public: CResultData(void); virtual ~CResultData(void); CResultData& operator=(CResultData& rh); public: void Reset(); void TrimString(); void CalJudgement(); void SetInspectOpt(CInspectOption *pInsOpt,CProfileOption *pProfileOpt){m_pInspectOpt=pInsOpt,m_pProfileOpt=pProfileOpt;} public: BOOL m_bGlassResult; CString m_strRecipeName,m_strScanStartTime,m_strScanEndTime,m_strPCID; // Cut Area BOOL m_bCutAreaRes[2][MAX_DIMENSION_COUNT]; double m_dCutAreaPoint[2][MAX_DIMENSION_COUNT][RUSULT_POINT_COUNT]; double m_dCutAreaAvg[2][MAX_DIMENSION_COUNT]; BOOL m_bCutAreaDiagonalLine[2][MAX_DIMENSION_COUNT];//20140622 double m_dCutAreaDiagonalLine[2][MAX_DIMENSION_COUNT];//20140622 double GetCutAreaAvg(std::vector *pCamThick,CAMERA_DIR camDir); double GetCutAreaStdDev(std::vector *pCamThick,CAMERA_DIR camDir,double dAvg); BOOL GetRangeCheck(int nBase,int nMinus,int nPlus,int nValue); void GetJudgePointValue(std::vector *pVecThick,CAMERA_DIR camDir,DimensionDir enDir,int nGlassSize); BOOL GetJudgePointMaxMin(std::vector *pVecThick,int &nMinPos,int &nMaxPos); double GetJudgePointRangeValue(std::vector *pVecThick,int nGlassSize,int iPos); void Save_FullImgProc_ROI(LPBYTE pImg,CSize szImg,CRect ROI,LPBYTE lpIn); BOOL FlipImage(LPBYTE pImg,CSize szImg); // Dimension BOOL m_bDimensionRes[MAX_DIMENSION_COUNT]; double m_dDimensionAvg[MAX_DIMENSION_COUNT]; double m_dDimensionPoint[MAX_DIMENSION_COUNT][RUSULT_POINT_COUNT]; double m_dGlassSize[2]; double GetDimensionAvg(std::vector *pResult); double GetDimensionStd(std::vector *pResult,double dAvg); void GetDimensionPointValue(std::vector *pData,DimensionDir enDir); double GetDimensionPointRangeValue(std::vector *pData,double dPos); // Spline BOOL m_bSplineRes[2][2]; double m_dSplineAvg[2][2]; double m_dSplinePoint[2][2][RUSULT_POINT_COUNT]; double m_dSplineMaxDefect[MAX_DIMENSION_COUNT]; // Notch BOOL m_bUseNCutSize[MAX_DIMENSION_COUNT]; BOOL m_bUseNCutChip[MAX_DIMENSION_COUNT]; BOOL m_bNCutSize[2]; BOOL m_bNCutThick[2]; double m_dNCutThick[2]; double m_dNCutAvg[2]; double m_dNCutX[MAX_DIMENSION_COUNT]; double m_dNCutY[MAX_DIMENSION_COUNT]; double m_dNCutDiff[MAX_DIMENSION_COUNT]; CPoint m_pointCAD[2][MAX_DIMENSION_COUNT][NOTCH_RANGE_VAL_MAX_COUNT];//20140528 CPoint m_pointIMG[2][MAX_DIMENSION_COUNT][NOTCH_RANGE_VAL_MAX_COUNT];//20140528 double m_dNCutRange[2][MAX_DIMENSION_COUNT][NOTCH_RANGE_VAL_MAX_COUNT];//20140528 BOOL m_bNCutRange[2][MAX_DIMENSION_COUNT][NOTCH_RANGE_VAL_MAX_COUNT];//20140528 CPoint m_pointCAD_Dy[2][MAX_DIMENSION_COUNT][NOTCH_RANGE_VAL_MAX_COUNT];//20140528 CPoint m_pointIMG_Dy[2][MAX_DIMENSION_COUNT][NOTCH_RANGE_VAL_MAX_COUNT];//20140528 double m_dNCutRange_Dy[2][MAX_DIMENSION_COUNT][NOTCH_RANGE_VAL_MAX_COUNT];//20140528 BOOL m_bNCutRange_Dy[2][MAX_DIMENSION_COUNT][NOTCH_RANGE_VAL_MAX_COUNT];//20140528 CPoint m_pointCAD_Cham[2][MAX_DIMENSION_COUNT][NOTCH_RANGE_VAL_MAX_COUNT];//20140528 CPoint m_pointIMG_Cham[2][MAX_DIMENSION_COUNT][NOTCH_RANGE_VAL_MAX_COUNT];//20140528 double m_dNCutRange_Cham[2][MAX_DIMENSION_COUNT][NOTCH_RANGE_VAL_MAX_COUNT];//20140528 BOOL m_bNCutRange_Cham[2][MAX_DIMENSION_COUNT][NOTCH_RANGE_VAL_MAX_COUNT];//20140528 int m_nNotchInsCount[MAX_DIMENSION_COUNT];//20140528 BOOL m_bUseNotchPointIns_Dimen[MAX_DIMENSION_COUNT];//20140721 BOOL m_bUseNotchPointIns_Cham[MAX_DIMENSION_COUNT];//20140721 // Corner Cut BOOL m_bCornerResWidth[2][2]; BOOL m_bCornerResHeight[2][2]; double m_dCornerWidth[2][2]; double m_dCornerHeight[2][2]; int m_nCornerImageCamIdx[2][2]; // Defect int m_nCrackCount,m_nBrokenCount,m_nChipCount,m_nChamferCount,m_nBurrCount,m_nUnknownCount; double m_dDefectPosMax[MAX_DIMENSION_COUNT]; int m_nErrorCountCF; int m_nErrorCountTFT; int m_nMaxDefectCam; MapDefect *m_pDefectIns; int m_nDefectCnt; void SetDefectIns(MapDefect *pMapDefect,int nDefectCnt){m_pDefectIns=pMapDefect,m_nDefectCnt=nDefectCnt;} //Left Line int m_nLeftLineMargin[MAX_DIMENSION_COUNT]; CInspectOption *m_pInspectOpt; CProfileOption *m_pProfileOpt; };