#pragma once
|
|
#include <vector>
|
|
// path define
|
#define REVIEW_AUTO_DIAGNOSIS_SETTING_FILE_PATH _T("D:\\DIT_Review\\DiagnosisConfig") //210805
|
//#define REVIEW_AUTO_DIAGNOSIS_SETTING_FILE_PATH _T("C:\\DIT_Review\\DiagnosisConfig")
|
#define REVIEW_AUTO_DIAGNOSIS_SETTING_FILE_NAME _T("AutoDiagnosisSetting.cfg")
|
#define REVIEW_AUTO_DIAGNOSIS_DATA_FILE_PATH _T("D:\\ResultData\\AutoDiagnosis")
|
#define REVIEW_AUTO_DIAGNOSIS_DATA_IMAGE_FILE_PATH _T("D:\\ResultData\\AutoDiagnosis\\ResultImage")
|
#define REVIEW_AUTO_DIAGNOSIS_STANDARD_FILE_NAME _T("AutoDiagnosisStandard.xls")
|
#define REVIEW_AUTO_DIAGNOSIS_RESULT_FILE_NAME _T("AutoDiagnosisResult")
|
#define REVIEW_AUTO_DIAGNOSIS_RESULT_IMAGE_DATA_PATH _T("D:\\ResultData\\AutoDiagnosis\\ResultImage")
|
#define REVIEW_AUTO_DIAGNOSIS_RESULT_SQUARENESS_PATH _T("D:\\ResultData\\AutoDiagnosis\\ResultSquareness")
|
#define REVIEW_AUTO_DIAGNOSIS_RESULT_FLATNESS_PATH _T("D:\\ResultData\\AutoDiagnosis\\ResultFlatness")
|
#define REVIEW_AUTO_DIAGNOSIS_RESULT_WSI_PATH _T("D:\\ResultData\\AutoDiagnosis\\ResultWSI")
|
#define MAX_PANEL_COUNT 10
|
|
enum DiagnosisSignal {
|
DiagnosisSignal_Auto = 0,
|
DiagnosisSignal_Manual
|
};
|
|
enum DiagnosisMode {
|
DiagnosisMode_All = 0,
|
DiagnosisMode_Review,
|
DiagnosisMode_Wsi,
|
DiagnosisMode_Squareness,
|
DiagnosisMode_Flatness,
|
DiagnosisMode_Flatness_Manual,
|
DiagnosisMode_Simulation
|
};
|
|
enum FlatnessMode { Mode_2x2 , Mode_3x3, Mode_3x4, Mode_4x5, Mode_10x10, ModeCount};
|
|
enum PanelPosition {
|
PanelPosition_Base = 0,
|
PanelPosition_Sub,
|
PanelPosition_Addition
|
};
|
|
interface IDiagnosisProcessor2Parent
|
{
|
virtual void IDP2P_DisplayMessage(int nIndex, const TCHAR* lpstrFormat, ...) = 0;
|
// motor
|
virtual void IDP2P_MotorGo(int nModuleIdx, double dPosX, double dPosY, BOOL bWaitReturn = FALSE) = 0;
|
virtual BOOL IDP2P_GetMotionEnd(int nModuleIdx, int nTimeOut=-1) = 0;
|
virtual BOOL IDP2P_IsGantryMotionEnd(int nModuleIdx) = 0;
|
// Squareness
|
virtual int IDP2P_GetSelectedModuleIndex() = 0;
|
virtual int IDP2P_GetOrigionMotorDir() = 0;
|
virtual BOOL IDP2P_FindPanelCenter(int nModuleIdx, double& dPixelX, double& dPixelY, CString strImageName) = 0;
|
// Flatness
|
virtual BOOL IDP2P_SetAFMTracking(int nModuleIdx, BOOL bOn) = 0;
|
virtual BOOL IDP2P_GetAFMZPosition(int nModuleIdx, double& dValue) = 0;
|
virtual BOOL IDP2P_AFMHomePosition(int nModuleIndex) = 0;
|
// wsi
|
virtual void IDP2P_SetWsiManualMeasure(int nModuleIdx, double dPosX, double dPosY) = 0;
|
virtual void IDP2P_WsiMotorMotionEnd(int nModuleIdx, double dPosX, double dPosY) = 0;
|
|
virtual BOOL IDP2P_DiagnosisSendCompleteSig()=0;
|
virtual BOOL IDP2P_DiagnosisSendJudgeAlarm() = 0; //0412 AU�Ƣ�A����U ��AE�� A���Ƣ�
|
|
// Dialog
|
virtual BOOL IDP2P_SetDlgFlatness(int nIndex) = 0;
|
virtual BOOL IDP2P_SetDialogTap(int nIndex) = 0;
|
virtual void IDP2P_UpdateDialog(int nIndex = -1) = 0;
|
|
virtual BOOL IDP2P_CheckManualMode() = 0;
|
};
|
|
struct SPositionData
|
{
|
SPositionData() { Reset(); }
|
~SPositionData() { Reset(); }
|
|
void Reset()
|
{
|
memset(this, 0x00, sizeof(SPositionData));
|
}
|
|
int nIndex;
|
int nPosMode;
|
int nModuleIdx;
|
BOOL bProcsss;
|
|
double dPosX; // mm
|
double dPosY; // mm
|
double dPos2X; // mm
|
double dPos2Y; // mm
|
double dPos3X; // mm
|
double dPos3Y; // mm
|
double dPosZ;
|
double dPixelX;
|
double dPixelY;
|
double dPixel2X;
|
double dPixel2Y;
|
double dPixel3X;
|
double dPixel3Y;
|
double dPosAssemX;
|
double dPosAssemY; //taek 210105
|
|
|
};
|
typedef std::vector<SPositionData> VectorPositionData;
|
typedef std::vector<SPositionData>::iterator VectorPositionDataIt;
|
|
class AFX_EXT_CLASS CDiagnosisResult
|
{
|
public:
|
CDiagnosisResult() { Reset(); }
|
virtual ~CDiagnosisResult() { Reset(); }
|
|
void Reset()
|
{
|
memset(this, 0x00, sizeof(CDiagnosisResult));
|
if (m_pPositionData_Flatness != NULL)
|
delete m_pPositionData_Flatness;
|
}
|
|
BOOL PathScheduling_Flatness(SPositionData* pPositionData, int nGlassSizeX, int nGlassSizeY);
|
BOOL PathScheduling_Flatness_TestFunc(SPositionData* pPositionData, int nGlassSizeX, int nGlassSizeY);
|
|
// setter
|
void SetModuleIndex(int nIndex) { m_nModuleIndex = nIndex; }
|
void SetPanelCount_Squareness(int nCount) { m_nPanelCount_Squareness = nCount; }
|
void SetGantryDegree(double dData) { m_dGantryDegree = dData; }
|
void SetXScaleDegree(double dData) { m_dXScaleDegree = dData; }
|
|
void SetPositionData_Flatness(int nIndex);
|
void SetRangeCount_Flatness(int nCount) { m_nRangeCount_Flatness = nCount; }
|
void SetFlatnessMode(int nMode) { m_nFlatnessMode = nMode; }
|
void SetHeight3Sigma(double dData) { m_dHeight3Sigma = dData; }
|
void SetACC(double dData) { m_dACC = dData; }
|
void SetRTB(double dData) { m_dRTB = dData; }
|
void SetDiagnosisHeight(double dData, int idx) { m_dDiagnosisHeight[idx] = dData; }
|
|
// getter
|
int GetModuleIndex() const { return m_nModuleIndex; }
|
|
int GetPanelCount_Squareness() const { return m_nPanelCount_Squareness; }
|
SPositionData* GetPositionData_Squareness(int nIndex);
|
const SPositionData* GetPositionData_Squareness(int nIndex) const;
|
double GetGantryDegree() const { return m_dGantryDegree; }
|
double GetXScaleDegree() const { return m_dXScaleDegree; }
|
SPositionData* GetPositionData_CalcResult() { return &m_PositionData_CalcResult; }
|
const SPositionData* GetPositionData_CalcResult() const { return &m_PositionData_CalcResult; } //taek 210105
|
|
SPositionData* GetPositionData_Flatness(int nIndex);
|
const SPositionData* GetPositionData_Flatness(int nIndex) const;
|
int GetRangeCount_Flatness() const { return m_nRangeCount_Flatness;}
|
int GetFlatnessMode() const { return m_nFlatnessMode; }
|
double GetHeight3Sigma() const { return m_dHeight3Sigma; }
|
double getWSI_ACC() const {return m_dACC;}
|
double getWSI_RTB() const { return m_dRTB; }
|
double GetDiagnosisHeight(int idx) const { return m_dDiagnosisHeight[idx]; }
|
|
protected:
|
int m_nModuleIndex;
|
|
// Squareness
|
int m_nPanelCount_Squareness;
|
SPositionData m_pPositionData_Squareness[MAX_PANEL_COUNT];
|
double m_dGantryDegree;
|
double m_dXScaleDegree;
|
SPositionData m_PositionData_CalcResult; //taek 210105
|
|
// Flatness
|
int m_nRangeCount_Flatness;
|
int m_nFlatnessMode;
|
SPositionData* m_pPositionData_Flatness;
|
|
// wsi
|
double m_dHeight3Sigma;
|
double m_dACC;
|
double m_dRTB;
|
double m_dDiagnosisHeight[10];
|
};
|
typedef std::vector<CDiagnosisResult> VectorDiagnosisResult;
|
typedef std::vector<CDiagnosisResult>::iterator VectorDiagnosisResultIt;
|
|
class AFX_EXT_CLASS CDiagnosisInfo
|
{
|
public:
|
CDiagnosisInfo()
|
{
|
Reset();
|
}
|
virtual ~CDiagnosisInfo() { Reset(); }
|
|
void Reset()
|
{
|
m_vecSettingResult_Squareness.clear();
|
m_nCameraFrameWidth = 0;
|
m_nCameraFrameHeight = 0;
|
m_dCameraResolution = 0.;
|
m_nPanelCount_Squareness = 0;
|
m_dJudgeData_Degree = 0.;
|
m_dSquarenessStandard = 0.;
|
|
m_dataSettingResult_Flatness.Reset();
|
m_nAFDelay = 0;
|
m_dJudgeData_ZRange = 0.;
|
m_nFlatnessMode = 0;
|
m_nRangeCount_Flatness = 0;
|
m_nGlassSizeX = 0;
|
m_nGlassSizeY = 0;
|
m_vecSettingResult_Wsi.clear();
|
m_nPanelCount_Wsi = 0;
|
m_dJudgeData_3Sigma = 0.;
|
m_dWSIStandard = 0.;
|
|
m_dPanelPosX = 0;
|
m_dPanelPosY = 0;
|
m_dPanelPosX2 = 0;
|
m_dPanelPosY2 = 0;
|
|
|
m_dReviewPanelPosX=0;
|
m_dReviewPanelPosY = 0;
|
m_dReviewPanelPosX3 = 0;
|
m_dReviewPanelPosY3 = 0;
|
|
m_dReviewPanelPosX2 = 0;
|
m_dReviewPanelPosY2 = 0;
|
m_dReviewPanelPosX4 = 0;
|
m_dReviewPanelPosY4 = 0;
|
/*< LYW 20210719 : #3517 ADD Start >*/
|
m_nFlatnessSkipMode = 0;
|
/*< LYW 20210719 : #3517 ADD End >*/
|
|
}
|
|
|
// init
|
BOOL LoadInfo(CString strFilePath);
|
|
// setter
|
void SetModuleCount(int nCount) { m_nModuleCount = nCount; }
|
|
int SetSettingResultCount_Squareness(int nCount);
|
void SetPanelCount_Squareness(int nCount) { m_nPanelCount_Squareness = nCount; }
|
void SetCameraResolution(double dData) { m_dCameraResolution = dData; }
|
void SetCameraFrameSize(int nWidth, int nHeight) { m_nCameraFrameWidth = nWidth; m_nCameraFrameHeight = nHeight; }
|
void SetJudgeData_Degree(double dData) { m_dJudgeData_Degree = dData; }
|
|
void SetAFDelay(int nData) { m_nAFDelay = nData; }
|
void SetJudgeData_ZRange(double dData) { m_dJudgeData_ZRange = dData; }
|
|
void SetPanelCount_Wsi(int nCount) { m_nPanelCount_Wsi = nCount; }
|
void SetJudgeData_3Sigma(double dData) { m_dJudgeData_3Sigma = dData; }
|
|
void SetPanelPosX_Wsi(double dData) { m_dPanelPosX = dData; }
|
void SetPanelPosY_Wsi(double dData) { m_dPanelPosY = dData; }
|
void SetPanelPosX2_Wsi(double dData) { m_dPanelPosX2 = dData; }
|
void SetPanelPosY2_Wsi(double dData) { m_dPanelPosY2 = dData; }
|
/*< LYW 20210719 : #3517 ADD Start >*/
|
void SetFlastnessSkipMode(double dData) { m_nFlatnessSkipMode = dData; }
|
void SetSquarenessStandard(double dData) { m_dSquarenessStandard = dData; }
|
void SetSquarenessStandard2(double dData) { m_dSquarenessStandard2 = dData; }
|
void SetWSIStandard(double dData) { m_dWSIStandard = dData; }
|
/*< LYW 20210719 : #3517 ADD End >*/
|
|
|
// getter
|
int GetModuleCount() const { return m_nModuleCount; }
|
|
CDiagnosisResult* GetSettingResult_Squareness(int nModuleIdx);
|
const CDiagnosisResult* GetSettingResult_Squareness(int nModuleIdx) const;
|
int GetCameraFrameWidth() const { return m_nCameraFrameWidth; }
|
int GetCameraFrameHeight() const { return m_nCameraFrameHeight; }
|
double GetCameraResolution() const { return m_dCameraResolution; }
|
int GetPanelCount_Squareness() const { return m_nPanelCount_Squareness; }
|
double GetJudgeData_Degree() const { return m_dJudgeData_Degree; }
|
|
CDiagnosisResult* GetSettingResult_Flatness();
|
const CDiagnosisResult* GetSettingResult_Flatness() const;
|
int GetAFDelay() const { return m_nAFDelay; }
|
double GetJudgeData_ZRange() const { return m_dJudgeData_ZRange; }
|
int GetFlatnessMode() const { return m_nFlatnessMode; }
|
int GetRangeCount_Flatness() const { return m_nRangeCount_Flatness; }
|
int GetGlassSizeX_Flatness() const { return m_nGlassSizeX; }
|
int GetGlassSizeY_Flatness() const { return m_nGlassSizeY; }
|
|
CDiagnosisResult* GetSettingResult_Wsi(int nModuleIdx);
|
const CDiagnosisResult* GetSettingResult_Wsi(int nModuleIdx) const;
|
int GetPanelCount_Wsi() const { return m_nPanelCount_Wsi; }
|
double GetJudgeData_3Sigma() const { return m_dJudgeData_3Sigma; }
|
|
double GetPanelPosX_Wsi() const { return m_dPanelPosX; }
|
double GetPanelPosY_Wsi() const { return m_dPanelPosY; }
|
double GetPanelPosX2_Wsi() const { return m_dPanelPosX2; }
|
double GetPanelPosY2_Wsi() const { return m_dPanelPosY2; }
|
/*< LYW 20210719 : #3517 ADD Start >*/
|
int GetFlastnessSkipMode() const { return m_nFlatnessSkipMode; }
|
double GetSquarenessStandard() const { return m_dSquarenessStandard; }
|
double GetSquarenessStandard2() const { return m_dSquarenessStandard2; }
|
double GetWSIStandard() const { return m_dWSIStandard; }
|
/*< LYW 20210719 : #3517 ADD End >*/
|
//Review
|
public:
|
double GetReviewPanelPosX() const { return m_dReviewPanelPosX; }
|
double GetReviewPanelPosY() const { return m_dReviewPanelPosY; }
|
double GetReviewPanelPosX3() const { return m_dReviewPanelPosX3; }
|
double GetReviewPanelPosY3() const { return m_dReviewPanelPosY3; }
|
double GetReviewPanelPosX5() const { return m_dReviewPanelPosX5; }
|
double GetReviewPanelPosY5() const { return m_dReviewPanelPosY5; }
|
|
double GetReviewPanelPosX2() const { return m_dReviewPanelPosX2; }
|
double GetReviewPanelPosY2() const { return m_dReviewPanelPosY2; }
|
double GetReviewPanelPosX4() const { return m_dReviewPanelPosX4; }
|
double GetReviewPanelPosY4() const { return m_dReviewPanelPosY4; }
|
double GetReviewPanelPosX6() const { return m_dReviewPanelPosX6; }
|
double GetReviewPanelPosY6() const { return m_dReviewPanelPosY6; }
|
|
protected:
|
|
// common
|
int m_nModuleCount;
|
|
// Squareness
|
VectorDiagnosisResult m_vecSettingResult_Squareness; // add module count
|
int m_nPanelCount_Squareness;
|
int m_nCameraFrameWidth;
|
int m_nCameraFrameHeight;
|
double m_dCameraResolution;
|
double m_dJudgeData_Degree;
|
/*< LYW 20210719 : #3517 ADD Start >*/
|
double m_dSquarenessStandard;
|
double m_dSquarenessStandard2;
|
/*< LYW 20210719 : #3517 ADD End >*/
|
|
// Flatness
|
CDiagnosisResult m_dataSettingResult_Flatness; // single data
|
int m_nAFDelay;
|
double m_dJudgeData_ZRange;
|
int m_nFlatnessMode;
|
int m_nRangeCount_Flatness;
|
int m_nGlassSizeX;
|
int m_nGlassSizeY;
|
/*< LYW 20210719 : #3517 ADD Start >*/
|
int m_nFlatnessSkipMode;
|
/*< LYW 20210719 : #3517 ADD End >*/
|
|
// wsi
|
VectorDiagnosisResult m_vecSettingResult_Wsi; // add module count
|
int m_nPanelCount_Wsi;
|
double m_dJudgeData_3Sigma;
|
/*< LYW 20210719 : #3517 ADD Start >*/
|
double m_dWSIStandard;
|
/*< LYW 20210719 : #3517 ADD End >*/
|
|
double m_dPanelPosX;
|
double m_dPanelPosY;
|
double m_dPanelPosX2;
|
double m_dPanelPosY2;
|
|
double m_dReviewPanelPosX;
|
double m_dReviewPanelPosY;
|
double m_dReviewPanelPosX3;
|
double m_dReviewPanelPosY3;
|
double m_dReviewPanelPosX5;
|
double m_dReviewPanelPosY5;
|
|
double m_dReviewPanelPosX2;
|
double m_dReviewPanelPosY2;
|
double m_dReviewPanelPosX4;
|
double m_dReviewPanelPosY4;
|
double m_dReviewPanelPosX6;
|
double m_dReviewPanelPosY6;
|
};
|