#pragma once
|
|
#include "GlassRecipe.h"
|
|
#define RECIPE_MAX_SCAN_COUNT 3
|
#define GLASS_PACKET_SIZE 10240
|
|
typedef struct _SCAN_RECIPE_PARM
|
{
|
char m_strHpanelID[MAX_STRING_LENGTH];
|
char m_strProcessID[MAX_STRING_LENGTH];
|
char m_strPPID[MAX_STRING_LENGTH];
|
CameraType m_nCamType;
|
BOOL m_bInspRegiStartLine;
|
int m_nFrameWidth;
|
int m_nFrameHeight;
|
int m_nInspRegiStartLine[RECIPE_MAX_SCAN_COUNT];
|
int m_nStartLineOffset[RECIPE_MAX_SCAN_COUNT];
|
double m_dConvResolution[RECIPE_MAX_SCAN_COUNT];
|
double m_dScanResolution;
|
int m_nMarginLeft[RECIPE_MAX_SCAN_COUNT];
|
int m_nMarginRight[RECIPE_MAX_SCAN_COUNT];
|
int m_nAccumCoordConv[RECIPE_MAX_SCAN_COUNT];
|
|
int m_nScanCount;
|
ScanDirectionIns m_nFirstScanDir;
|
int m_nThresSuppress;
|
int m_nSideThreshold;
|
|
int m_nAlignMarkNearX;
|
int m_nAlignMarkNearY;
|
int m_nAlignMarkDistX;
|
int m_nAlignMarkDistY;
|
|
int m_nAlignHSize;
|
int m_nAlignVSize;
|
int m_nAlignFindWidth;
|
int m_nAlignFindHeight;
|
int m_nAlignFindMethod;
|
int m_nAlignMatchingRate;
|
|
int m_nFindPatternWidth;
|
int m_nFindPatternHeight;
|
int m_nFindSideWidth;
|
int m_nFindSideHeight;
|
int m_nFindSideCycle;
|
int m_nFindSideSubRange;
|
|
BOOL m_bDISaveBlack;
|
BOOL m_bDISaveWhite;
|
BOOL m_bFilterCosmicRay;
|
int m_nFilterCosmicRayTH;
|
|
BOOL m_bUseShrink;
|
int m_nShrinkFrameLimit;
|
int m_nShrinkFrameMin;
|
|
BOOL m_bGetSampleImage;
|
BOOL m_bEdgeCrackVert;
|
BOOL m_bEdgeCrackHor;
|
|
BOOL m_bSavePADImg;
|
|
_SCAN_RECIPE_PARM()
|
{
|
Reset();
|
}
|
void ResetCamType()
|
{
|
m_nCamType = CamType_Unknown;
|
m_dScanResolution = 0.;
|
m_nFrameWidth = 0;
|
m_nFrameHeight = 0;
|
m_bEdgeCrackVert = FALSE;
|
m_bEdgeCrackHor = FALSE;
|
m_nThresSuppress = 255;
|
m_nSideThreshold = 0;
|
ZeroMemory(m_nInspRegiStartLine,sizeof(int)*RECIPE_MAX_SCAN_COUNT);
|
ZeroMemory(m_nStartLineOffset,sizeof(int)*RECIPE_MAX_SCAN_COUNT);
|
ZeroMemory(m_dConvResolution,sizeof(double)*RECIPE_MAX_SCAN_COUNT);
|
ZeroMemory(m_nMarginLeft,sizeof(int)*RECIPE_MAX_SCAN_COUNT);
|
ZeroMemory(m_nMarginRight,sizeof(int)*RECIPE_MAX_SCAN_COUNT);
|
ZeroMemory(m_nAccumCoordConv,sizeof(int)*RECIPE_MAX_SCAN_COUNT);
|
}
|
void Reset()
|
{
|
ResetCamType();
|
|
ZeroMemory(m_strHpanelID,sizeof(char)*MAX_STRING_LENGTH);
|
ZeroMemory(m_strProcessID,sizeof(char)*MAX_STRING_LENGTH);
|
ZeroMemory(m_strPPID,sizeof(char)*MAX_STRING_LENGTH);
|
|
m_nScanCount = 0;
|
m_nFirstScanDir = SD_Unknown;
|
m_nAlignMarkNearX = 0;
|
m_nAlignMarkNearY = 0;
|
m_nAlignMarkDistX = 0;
|
m_nAlignMarkDistY = 0;
|
m_nAlignHSize = 0;
|
m_nAlignVSize = 0;
|
m_nAlignFindWidth = 0;
|
m_nAlignFindHeight = 0;
|
m_nAlignFindMethod = 0;
|
m_nAlignMatchingRate = 0;
|
m_nFindPatternWidth = 0;
|
m_nFindPatternHeight = 0;
|
m_nFindSideWidth = 0;
|
m_nFindSideHeight = 0;
|
m_nFindSideCycle = 0;
|
m_nFindSideSubRange = 0;
|
m_bDISaveBlack = FALSE;
|
m_bDISaveWhite = FALSE;
|
m_bFilterCosmicRay = FALSE;
|
m_nFilterCosmicRayTH = 0;
|
m_bUseShrink = FALSE;
|
m_nShrinkFrameLimit = 0;
|
m_nShrinkFrameMin = 0;
|
m_bGetSampleImage = FALSE;
|
m_bSavePADImg = FALSE;
|
}
|
} SCAN_RECIPE_PARM, *pSCAN_RECIPE_PARM;
|
|
class AFX_EXT_CLASS CScanRecipe
|
{
|
public:
|
CScanRecipe(void);
|
virtual ~CScanRecipe(void);
|
|
public:
|
void Reset();
|
void ResetCamType();
|
void SetScanCount(int nCount);
|
int GetScanCount(){return m_pScanRecipePrm.m_nScanCount;}
|
void SetHPanelID(CString strName){CopyMemory(m_pScanRecipePrm.m_strHpanelID,strName.GetBuffer(0),sizeof(char)*MAX_STRING_LENGTH);}
|
void SetProcessID(CString strName){CopyMemory(m_pScanRecipePrm.m_strProcessID,strName.GetBuffer(0),sizeof(char)*MAX_STRING_LENGTH);}
|
void SetPPID(CString strName){CopyMemory(m_pScanRecipePrm.m_strPPID,strName.GetBuffer(0),sizeof(char)*MAX_STRING_LENGTH);}
|
CString GetHPanelID();
|
CString GetProcessID();
|
CString GetPPID();
|
BOOL MakePacket(CGlassRecipe *pGlassRecipe);
|
BOOL ReadPacket(CMosisPacket *pPacket,CGlassRecipe *pGlassRecipe);
|
|
BYTE *GetPacketBuffer(){return m_pGlassPacket.GetDataAddress();}
|
int GetPacketSize(){return m_pGlassPacket.GetSize();}
|
|
SCAN_RECIPE_PARM *GetScanRecipePrm(){return &m_pScanRecipePrm;}
|
|
protected:
|
BOOL WriteRecipe(CMosisPacket *pPacket);
|
BOOL ReadRecipe(CMosisPacket *pPacket);
|
|
|
protected:
|
CMosisPacket m_pGlassPacket;
|
SCAN_RECIPE_PARM m_pScanRecipePrm;
|
|
|
};
|