You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

276 lines
6.2 KiB
C++

// VisionResult.h: interface for the CVisionResult class.
//
//////////////////////////////////////////////////////////////////////
#pragma once
#include <map>
#include <string>
#include <vector>
#ifdef BUILD_COMMDLL
#define COMMDLL_DLLCLASS __declspec(dllexport)
#else
#define COMMDLL_DLLCLASS __declspec(dllimport)
#endif
class COMMDLL_DLLCLASS CVisionResult
{
public:
enum RESULT_PARAM
{
fParamStart,
fX = fParamStart, // PMI2D / OCR XPos
fY, // PMI2D / OCR YPos
fA, // PMI2D / OCR Theta
fCFD, // PMI2DConfidence
fOCRContrast = fCFD, // OCR Contrast
fSC, // PMI2DSymContrast
fSCSNR, // PMI2DSymContrastSNR
fHMG, // PMI2DHorzMarkGrowth
fVMG, // PMI2DVertMarkGrowth
fDMCW, // PMI2DDataMatrixCellWidth
fDMCH, // PMI2DDataMatrixCellHeight
fHMM, // PMI2DHorzMarkMisplacement
fVMM, // PMI2DVertMarkMisplacement
fUEC, // PMI2DUnusedErrCorrection
fCD, // PMI2DCellDefects
fFPD, // PMI2DFinderPatternDefects
fSpare, // Not yet use/defined
// For $17x
fLocationXRes = fParamStart,
fLocationX,
fLocationYRes,
fLocationY,
fSizeXRes,
fSizeX,
fSizeYRes,
fSizeY,
fOriRes,
fOriVal,
fAIMSymContrastRes,
fAIMSymContrast,
fAIMHorzGrowthRes,
fAIMHorzGrowth,
fAIMVertGrowthRes,
fAIMVertGrowth,
fAIMUnusedECCRes,
fAIMUnusedECC,
fSEMIUnusedECCRes,
fSEMIUnusedECC,
fSEMISymContrastRes,
fSEMISymContrast,
fSEMISymContrastSnrRes,
fSEMISymContrastSnr,
fSEMIHorzMarkGrowthRes,
fSEMIHorzMarkGrowth,
fSEMIVertMarkGrowthRes,
fSEMIVertMarkGrowth,
fSEMIHorzMarkMisplacementRes,
fSEMIHorzMarkMisplacement,
fSEMIVertMarkMisplacementRes,
fSEMIVertMarkMisplacement,
fSEMIMatrixCellWidthRes,
fSEMIMatrixCellWidth,
fSEMIMatrixCellHeightRes,
fSEMIMatrixCellHeight,
fSEMICellDefectsRes,
fSEMICellDefects,
fSEMIFinderPatDefectsRes,
fSEMIFinderPatDefects,
fISODecodeRes,
fISODecodeGrade,
fISOSymContrastRes,
fISOSymContrastGrade,
fISOModulationRes,
fISOModulationGrade,
fISOReflectanceMarginRes,
fISOReflectanceMarginGrade,
fISOFixedPatDamageRes,
fISOFixedPatDamageGrade,
fISOAxialNonUniformityRes,
fISOAxialNonUniformityGrade,
fISOGridNonUniformityRes,
fISOGridNonUniformityGrade,
fISOUnusedECCRes,
fISOUnusedECCGrade,
fISOOverallSymRes,
fISOOverallSymGrade,
fISOHorzPrintGrowthRes,
fISOHorzPrintGrowth,
fISOVertPrintGrowthRes,
fISOVertPrintGrowth,
fAIMDPMDecodeRes,
fAIMDPMDecodeGrade,
fAIMDPMCellContrastRes,
fAIMDPMCellContrastGrade,
fAIMDPMCellModulationRes,
fAIMDPMCellModulationGrade,
fAIMDPMMinReflectanceRes,
fAIMDPMMinReflectanceGrade,
fAIMDPMFixedPatDamageRes,
fAIMDPMFixedPatDamageGrade,
fAIMDPMAxialNonUniformityRes,
fAIMDPMAxialNonUniformityGrade,
fAIMDPMGridNonUniformityRes,
fAIMDPMGridNonUniformityGrade,
fAIMDPMUnusedECCRes,
fAIMDPMUnusedECCGrade,
fAIMDPMOverallSymRes,
fAIMDPMOverallSymGrade,
fAIMDPMHorzPrintGrowthRes,
fAIMDPMHorzPrintGrowth,
fAIMDPMVertPrintGrowthRes,
fAIMDPMVertPrintGrowthValue,
NUM_RESULT_PARAMS
};
enum SUBRESULT_PARAM
{
sSINGLE,
sSLANT,
sSPARE01,
sSPARE02,
NUM_SUBRESULT_PARAMS
};
enum NOMINAL_DATA
{
NOM_DATA1,
NOM_DATA2,
NOM_DATA3,
NOM_DATA4,
NUM_NOMINAL_DATA
};
enum XYT_PVI_PARAM
{
fPVI_POSX,
fPVI_POSY,
fPVI_POSTHETA,
fPVI_SETID,
fPVI_VOIDMAXAREA,
fPVI_VOIDMAXLEN,
fPVI_VOIDMAXWIDTH,
fPVI_CRACKMAXAREA,
fPVI_CRACKMAXLEN,
fPVI_CRACKMAXWIDTH,
fPVI_PFMAXAREA,
fPVI_PFMAXLEN,
fPVI_PFMAXWIDTH,
fPVI_SCRATCHMAXAREA,
fPVI_SCRATCHMAXLEN,
fPVI_SCRATCHMAXWIDTH,
fPVI_CHIPMAXAREA,
fPVI_CHIPMAXLEN,
fPVI_CHIPMAXWIDTH,
fPVI_FMMAXAREA,
fPVI_FMMAXLEN,
fPVI_FMMAXWIDTH,
fPVI_TOPGLUEAREA,
fPVI_TOPGLUELEN,
fPVI_TOPGLUEWIDTH,
fPVI_BTMGLUEAREA,
fPVI_BTMGLUELEN,
fPVI_BTMGLUEWIDTH,
//
// C330i
fPVI_TIPHGAP,
fPVI_TIPSPARE01,
fPVI_TIPSPARE02,
//
MAX_PVI_PARAMS
};
CVisionResult();
virtual ~CVisionResult();
void ResetResultParams(double dDefaultResult = 0.0);
void GetResultParams(std::vector<double>& vecResultParam);
double GetResultParams(int nParamNo);
void SetResultParams(int nParamNo, double dResult);
//
void ResetSubResultCodeParams(const std::string& csSubResultCode = _T(""));
void GetSubResultCodeParams(std::vector<std::string>& vecSubResultCode);
std::string GetSubResultCodeParams(int nParamNo);
void SetSubResultCodeParams(int nParamNo, std::string csSubResultCode);
void ResetNominalDatas(double dDefaultData = 0.0);
void GetNominalDatas(std::vector<double>& vecNominalData);
double GetNominalDatas(int nDataNo);
void SetNominalDatas(int nDataNo, double dData);
//
std::string GetDecodedString();
void SetDecodedString(std::string csDecodedString);
//
double GetPviParams(int nParamNo);
void SetPviParams(int nParamNo, double dData);
CVisionResult& operator=(const CVisionResult& visionResult);
private:
// Methods
// Attributes
std::string m_strDecodedString;
std::vector<std::string> m_vecSubResultCode;
std::vector<double> m_vecResultParam;
std::vector<double> m_vecNominalData;
std::map<int, double> m_mapPVIParam;
};