#pragma once
|
|
#include "ReviewProcessor.h"
|
#include "CHEdgeTriangle/EdgeTriangle.h"
|
#include "LineChecker/LineChecker.h"
|
|
#define ErrorCount 20
|
|
enum CSOT_OFF_PROCESS_STATUS {CSOT_OFF_REVIEW_SUCCESS = 0, CSOT_OFF_USER_SUCCESS, CSOT_OFF_MEASURE_SUCCESS, CSOT_OFF_WSI_SUCCESS,CSOT_OFF_REFLOW_SUCCESS}; //kmj
|
|
class CReviewProcessor_CSOT_OFF : public CReviewProcessor
|
{
|
public:
|
CReviewProcessor_CSOT_OFF(int nThreadCount=1);
|
virtual ~CReviewProcessor_CSOT_OFF(void);
|
|
virtual void AddWsiResultData(int nModuleIndex, const SWsiResult& measureResut);
|
virtual void AddWsiReflowResultData(int nModuleIndex, const SWsiResult& measureResut);
|
virtual void AddCameraImageData(int nModuleIndex, int nResultIndex, VectorImageData& vectorImageData);
|
virtual int AddReviewProcessData(SReviewResult* pReviewResult);
|
|
virtual int PostProcessReviewResult(int nThreadIdx, SReviewResult* pReviewResult);
|
virtual int PostProcessUserResult(int nThreadIdx, SReviewResult* pReviewResult);
|
virtual int PostProcessWsiResult(int nThreadIdx, SReviewResult* pReviewResult);
|
virtual int PostProcessMeasureResult(int nThreadIdx, SReviewResult* pReviewResult);
|
virtual int PostProcessReflowResult(int nThreadIdx, SReviewResult* pReviewResult);
|
virtual int PostProcessWsiReflowResult(int nThreadIdx, SReviewResult* pReviewResult);
|
|
// Checking Process Success kmj
|
BOOL CheckProcessSuccess(CRsRcpReviewInfo* pRsRcpReviewInfo);
|
void ProcessSuccessReset();
|
|
protected:
|
virtual void WorkThreadProcess(PVOID pParameter);
|
int CheckMotionComplete();
|
|
private:
|
int ProcessReview(int nThreadIdx, SReviewResult* pReviewResult);
|
int ProcessMeasure(int nThreadIdx, SReviewResult* pReviewResult);
|
int ProcessWSI(int nThreadIdx, SReviewResult* pReviewResult);
|
int ProcessUser(int nThreadIdx, SReviewResult* pReviewResult);
|
int ProcessReflow(int nThreadIdx, SReviewResult* pReviewResult);
|
int ProcessWSIReflow(int nThreadIdx, SReviewResult* pReviewResult);
|
|
// ProcessReview
|
BOOL MakeReviewImageFileName(SReviewResult* pReviewResult);
|
void LoadAoiImage(const CString& strGlassID, int nOpticType, int nPosX, int nPosY, CCHImageData* pAoiDark, CCHImageData *pAoiBright);
|
void FindAoiDefectImagePath(const CString& strGlassID, int nOpticType, int nPosX, int nPosY, CString& strDarkPath, CString& strBrightPath);
|
void FindDefectPos(int nThreadIdx, CCHImageData* pImageData, const SReviewDefectFindParam& findParam, SReviewDefectFindResult& findResult, SReviewResult* pReviewResult);
|
BOOL MakeUploadImage(CCHImageData *pUploadImage, CCHImageData *pReviewCam, CCHImageData *pAoiDark, CCHImageData *pAoiBright, const SReviewDefectFindResult& findResult, const SReviewResult* pReviewResult);
|
void MakeAoiImage(CCHImageData *pAoiDark, CCHImageData* pAoiBright, CCHImageData* pAoiDark1, CCHImageData* pAoiBright1, CCHImageData* pAoiDark2, CCHImageData* pAoiBright2, int& nMaxWidth, int& nMaxHeight);
|
void DrawAoiImage(CDC *pDC, CCHImageData *pAoiDark1, CCHImageData* pAoiBright1, CCHImageData *pAoiDark2, CCHImageData* pAoiBright2, int nWidth, int nHeight);
|
void DrawDefectInfo(CDC *pDC, const SReviewDefectFindResult& findResult, const SReviewResult* pReviewResult);
|
void DrawDefectInfo(CDC *pDC, const SReviewDefectFindResult& findResult, const SReviewResult* pReviewResult, CCHImageData* pAoiBright, CCHImageData* pAoiDark);// 20170720 smok. bright, dark image is exist
|
// User Defect Á¤º¸ Ãß°¡ [2017.6.22 bhs]
|
//void DrawUserDefectInfo(CDC *pDC, const SReviewDefectFindResult& findResult, const SReviewResult* pReviewResult, ReviewType rType);
|
void DrawUserDefectInfo(CDC *pDC, const SReviewDefectFindResult& findResult, const SReviewResult* pReviewResult, CCHImageData* pAoiBright, CCHImageData* pAoiDark);// 20170720 smok. bright, dark image is exist
|
void DrawUserDefectInfo(CDC *pDC, const SReviewDefectFindResult& findResult, const SReviewResult* pReviewResult);
|
|
|
void FindCDDefectIdx(SReviewResult* pReviewResult);
|
void FindSDDefectIdx(SReviewResult* pReviewResult);
|
void FindInspectionDefectImage(int nUMOriginX, int nUMOriginY, const CString& strGlassID, CString& strInspectionDefectImagePath);
|
void FindInspectionDefectImage(int nUMOriginX, int nUMOriginY, const CString& strGlassID, int nOpticType, CString& strDarkPath, CString& strBrightPath);
|
|
// ProcessMeasure
|
BOOL MakeMeasureImageFileName(SReviewResult* pReviewResult);
|
BOOL MakeUploadMeasureImage(CCHImageData *pUploadImage, CCHImageData *pReviewCam, const SReviewResult* pReviewResult, CResultTriangle * pResultTriangle, int nMeasureResult); //Modify by JuneKi 2016-02-29
|
|
// ProcessUser
|
BOOL MakeUserImageFileName(SReviewResult* pReviewResult);
|
|
// ProcessReflow
|
BOOL MakeReflowImageFileName(SReviewResult* pReviewResult);
|
|
// Checking Process Success
|
BOOL bProcessSuccess[3]; //kmj
|
|
private:
|
CRITICAL_SECTION m_csUserCriticalSection;
|
CRITICAL_SECTION m_csMeasureRcpfileCriticalSection;
|
CRITICAL_SECTION m_csMeasureRcpimageCriticalSection;
|
CRITICAL_SECTION m_csMeasureMeasureResult;
|
|
CMotorControlInfo* m_MotorControlInfo;
|
|
protected:
|
CString ErrorStringCode[ErrorCount];
|
};
|