#pragma once
|
|
#include "ObserverInterface.h"
|
|
#include "ReviewSystemDoc.h"
|
#include "ReviewSystemView.h"
|
#include "CHReviewSetting/SystemManager.h"
|
#include "CHMotorControls/MotorControl.h"
|
#include "CHLightControls/LightControl.h"
|
#include "CHLensChangeControls/LensChangeControl.h"
|
#include "CameraControlAlign.h"
|
#include "CameraControlReview.h"
|
#include "DisplayMessage.h"
|
#include "CoordCalibrator.h"
|
#include "CHReviewRecipe/RsRecipeManager.h"
|
#include "CHCommonClasses/ProcessTimer.h"
|
#include "SharedImageData.h"
|
#include "CHReviewResult/GlassResult.h"
|
#include "CHMotorCalibrator/MotorCalibrator.h"
|
#include "CHAfmControls/AfmControl.h"
|
#include "CHVcrControls/VcrControl.h" // [2016:10:12]-[WEZASW] : VCR
|
#include "CHWsiControls/WsiControl.h"
|
#include "CHWsiControls/WsiControlInfo.h"
|
#include "SequenceProcessor.h"
|
#include "ReviewProcessor.h"
|
#include "CHWsiControls/WsiControl.h"
|
#include "CHReviewPrioritySorter/PrioritySorter.h"
|
#include "AlignServerControl.h"
|
#include "ResultServerControl.h"
|
#include "CHEdgeTriangle/RecipeManager.h"
|
#include "CHSignalControls/SignalControl.h"
|
#include "CHDefectPicker/DefectPicker.h"
|
|
#include "IOCPNetwork/NetDefinition.h"
|
#include "IOCPNetwork/NetServer.h"
|
|
#include "DlgReviewCamera.h"
|
#include "DlgGraph.h"
|
#include "DlgAlignCamera.h"
|
#include "DlgDefectMap.h"
|
#include "DlgDefectFilter.h"
|
#include "DlgDefectList.h"
|
#include "DlgDefectInfo.h" //taek 20.12.04
|
#include "DlgLog.h"
|
#include "DlgLogo.h"
|
#include "DlgCommand.h"
|
#include "DlgReviewPopUp.h"
|
#include "DlgReviewHistoryTool.h"
|
|
#include "CHTotalPitchMeasure/TotalPitchMeasure.h"
|
#include "CHResultFileManager/StringRaw.h"
|
#include "CHVirtualGlassMap/VirtualGlassMap.h"
|
#include "ReviewProcessor_CPJT.h"
|
#include "akAOISharedSystem.h" //20191017
|
|
#include "DlgDefocusList.h"
|
#include "M_AutoDiagnosisManager/DiagnosisManager.h"
|
#include "DlgSelfDiagnosis.h"
|
|
typedef std::vector<CMotorCalibrator> VectorMotorCalibrator;
|
typedef std::vector<CMotorCalibrator>::iterator VectorMotorCalibratorIt;
|
typedef std::vector<CMotorCalibrator>::const_iterator constVectorMotorCalibratorIt;
|
|
typedef std::vector<CLensChangeControl*> VectorLensChangeControl;
|
typedef std::vector<CLensChangeControl*>::iterator VectorLensChangeControlIt;
|
|
typedef std::vector<CAfmControl*> VectorAfmControl;
|
typedef std::vector<CAfmControl*>::iterator VectorAfmControlIt;
|
|
typedef std::vector<CWsiControl*> VectorWsiControl;
|
typedef std::vector<CWsiControl*>::iterator VectorWsiControlIt;
|
|
typedef std::vector<CVcrControl*> VectorVCRControl;
|
typedef std::vector<CVcrControl*>::iterator VectorVCRControlIt;
|
|
class CReviewInterface : public CObserverInterface,
|
public IMotorControl2Parent,
|
public ILightControl2Parent,
|
public ILensChangeControl2Parent,
|
public IAfmControl2Parent,
|
public IAlignCameraControl2Parent,
|
public IReviewCameraControl2Parent,
|
public ISequenceProcessor2Parent,
|
public IReviewProcessor2Parent,
|
public IDisplayMessage2Parent,
|
public IWsiControl2Parnet,
|
public IVcrControl2Parent,
|
public IPrioritySorter2Parent,
|
public ICameraImageView2Parent,
|
public IDialogReviewCamera2Parent,
|
public IDialogGraph2Parent,
|
public IDialogAlignCamera2Parent,
|
public IDialogDefectMap2Parent,
|
public IDialogDefectFilter2Parent,
|
public IDialogDefectList2Parent,
|
public IDialogLog2Parent,
|
public IDialogUserCmd2Parent,
|
public IDialogCommand2Parent,
|
public IDialogControl2Parent,
|
public IDialogModuleInfo2Parent,
|
public ISignalControl2Parnet,
|
public IDialogLogo2Parent,
|
public IDialogTabCtrl2Parent,
|
public akAOISharedParent,
|
public ITotalPitchMeasure2Parnet,
|
public IDialogDefocusList2Parent,
|
public IDialogReviewPopUP2Parent,
|
public IDiagnosisProcessor2Parent,
|
public IDialogReviewOffSet2Parent,
|
public IDialogReviewHistory2Parent
|
{
|
public:
|
CReviewInterface(void);
|
virtual ~CReviewInterface(void);
|
|
void SetDoc(CReviewSystemDoc* pDoc) { m_pDoc = pDoc; }
|
void SetView(CReviewSystemView* pView)
|
{
|
m_pView = pView;
|
InitReviewInterface();
|
}
|
|
public:
|
// camera image view 2 parent
|
virtual void CIV2P_GetImagePathName(CString& strFilename);
|
virtual void CIV2P_ManualSimulation(CCHImageData* pImageData);
|
|
// motor control 2 parent
|
virtual void IMC2P_DisplayMessage(int nIndex, const TCHAR* lpstrFormat, ...);
|
virtual void IMC2P_AxisMotionEnd(int nIndex, int nAxisIdx, BOOL bMotionEnd);
|
virtual void IMC2P_GantryMotionEnd(int nIndex, int nGantryIdx, BOOL bMotionEnd);
|
virtual void IMC2P_UpdatePosition(int nIndex, int nAxisIdx, double dPosition); //현재 위치좌표
|
virtual void IMC2P_UpdateStatus(int nIndex, int nAxisIdx, long lStatus);
|
virtual void IMC2P_UpdateThetaPosition(int nIndex, double dPosition);
|
virtual void IMC2P_UpdateThetaStatus(int nIndex, long lStatus);
|
virtual void IMC2P_GantrySoftWareTrigger(int nIndex, int nGantryIdx, int nTrigger);
|
virtual void IMC2P_WsiGantrySoftWareTrigger(int nIndex, int nGantryIdx, int nTrigger);
|
virtual void IMC2P_UpdateWsiMotionEnd(int nIndex, int nGantryIdx);
|
virtual BOOL IMC2P_GetUseWsi();
|
|
// WSI Controller 2 parent
|
virtual void IWC2P_DisplayMessage(int nIndex, const TCHAR* lpstrFormat, ...);
|
virtual BOOL IWC2P_SetMeasureInfo(int nIndex, int nPointIndex, const CString& strImagFilename);
|
virtual BOOL IWC2P_SetMeasureInfo(int nIndex, int nPointIndex, const CString& strImagFilename, const CString& strImagFilename2);
|
virtual BOOL IWC2P_SetMeasureInfo(int nModuleIndex, int nPointIndex, const CString& strImageFilename, int nWsiType);
|
virtual void IWC2P_SetWSIErrorCheck(int nIndex,CString strAlarmMessage);
|
virtual void IWC2P_SetWSIAliveCheck();
|
virtual BOOL IWC2P_GetMeasureInfo(int nModuleIndex, int nPointIndex, short& nLoc, short& nOptic, short& nGray, CString& strCellID);
|
virtual int IWC2P_GetCurrentStatus(int nModuleIndex, CString& strGlassID, CString& strRecipeID, int& nType);
|
virtual void IWC2P_SetConnectedStatus(int nModuleIndex, int nConnectStatus);
|
virtual void IWC2P_RecvMeasureMessage(int nModuleIndex, int nMessageType, int nMessageResult);
|
virtual void IWC2P_SetMeasureResult(int nModuleIndex, const SWsiResult& measureResut);
|
virtual void IWC2P_SetScanEnd(int nIndex, int nPointIndex, int nPositionX, int nPositionY);
|
virtual int IWC2P_GetWsiType();
|
|
// TotalPitch Measure 2 parent
|
virtual void ITP2P_DisplayMessage(int nIndex, const TCHAR* lpstrFormat, ...);
|
virtual BOOL ITP2P_GetAlignMarkPosition(double &dPositionX, double &dPositionY);
|
virtual BOOL ITP2P_GetGlassSize(double &dGlassSizeX, double &dGlassSizeY);
|
virtual BOOL ITP2P_GetAlignMarkCenterPosition(double &dPositionX, double &dPositionY);
|
virtual BOOL ITP2P_GetMotionEnable();
|
virtual BOOL ITP2P_MoveMotorGlassPosition(int nModuleIndex, double dPositionX, double dPositionY);
|
virtual BOOL ITP2P_StartTemplateMatching(double &dPosX, double &dPosY);
|
virtual BOOL ITP2P_GetAlignTemplateCenterPosition(int nIdx, double &dPositionX, double &dPositionY);
|
virtual BOOL ITP2P_SetMinMagChange(int nModuleIndex);
|
virtual double ITP2P_GetCurrentResolution();
|
|
// light control 2 parent
|
virtual void ILC2P_DisplayMessage(int nIndex, const TCHAR* lpstrFormat, ...);
|
virtual void ILC2P_ChangeLightLevel(int nIndex, int nLevel);
|
|
// lens change control(revolver) 2 parent
|
virtual void ILCC2P_DisplayMessage(int nIndex, const TCHAR* lpstrFormat, ...);
|
virtual void ILCC2P_ChangePosition(int nIndex, int nPos);
|
|
// afm control 2 parent
|
virtual void IAFC2P_DisplayMessage(int nIndex, const TCHAR* lpstrFormat, ...);
|
virtual void IAFC2P_CurrentStatus(int nIndex, int nStatusCode);
|
virtual void IAFC2P_RecipeChangeComplete(int nIndex, int nResultCode);
|
|
// vcr control 2 parent
|
virtual void IVCRC2P_DisplayMessage(int nIndex, const TCHAR* lpstrFormat, ...);
|
virtual BOOL IVCRC2P_RecvDecodingData(int nIndex, CString& strCode);
|
virtual void IVCRC2P_SendDecodeTriggerSignal(int nIndex);
|
|
// signal control 2 parent
|
virtual void ISC2P_DisplayMessage(int nIndex, const TCHAR* lpstrFormat, ...);
|
virtual void ISC2P_ReceiveSignal(int nIndex, int nSignalIndex, int nSignalValue, BOOL bOn=TRUE);
|
virtual void ISC2P_SetSignalStatus(int nReadSignal, int nSendSignal, BOOL nSendSignalWord = FALSE);
|
|
// align camera control 2 parent
|
virtual BOOL IACC2P_GetCurrentFrame(int nCameraIndex, int nFrameWidth, int nFrameHeight, int nFrameChannels, CCHImageData *pImageData);
|
virtual void IACC2P_FrameCaptured(int nCameraIndex, int nFrameIndex, CCHImageData* pImageData);
|
virtual void IACC2P_AlignResult(const CAlignResult& alignResult);
|
virtual void IACC2P_CameraControl(int nValue);
|
virtual BOOL IACC2P_SetLightLevel(int nCameraIndex, int nValue);
|
virtual BOOL IACC2P_GetLightLevel(int nCameraIndex, int& nValue);
|
/*< LYW 20211014 - #3671 ADD Start >*/
|
virtual int IACC2P_GetAccumaulate();
|
virtual void IACC2P_SetAccumaulate(int dValue);
|
/*< LYW 20211014 - #3671 ADD End >*/
|
|
// review camera control 2 parent
|
virtual BOOL IRCC2P_GetCurrentFrame(int nModuleIndex, int nCameraIndex, int nFrameWidth, int nFrameHeight, int nFrameChannels, CCHImageData *pImageData);
|
virtual void IRCC2P_FrameCaptured(int nModuleIndex, int nCameraIndex, int nFrameIndex, CCHImageData* pImageData);
|
virtual void IRCC2P_ReviewResult(int nModuleIndex, int nPointIndex, VectorImageData& vectorImageData);
|
virtual void IRCC2P_CameraControl(int nModuleIndex, int nValue);
|
virtual CString IRCC2P_GetTotalPitchImageName();
|
|
// diagnosis processor
|
virtual void IDP2P_DisplayMessage(int nIndex, const TCHAR* lpstrFormat, ...);
|
// motor
|
virtual void IDP2P_MotorGo(int nModuleIdx, double dPosX, double dPosY, BOOL bWaitReturn = FALSE);
|
virtual BOOL IDP2P_GetMotionEnd(int nModuleIdx, int nTimeOut = -1);
|
virtual BOOL IDP2P_IsGantryMotionEnd(int nModuleIdx);
|
virtual BOOL IDP2P_CheckManualMode();
|
// Squareness
|
virtual int IDP2P_GetSelectedModuleIndex();
|
virtual int IDP2P_GetOrigionMotorDir();
|
virtual BOOL IDP2P_FindPanelCenter(int nModuleIdx, double& dPixelX, double& dPixelY, CString strImageName);
|
// Flatness
|
virtual BOOL IDP2P_SetAFMTracking(int nModuleIdx, BOOL bOn);
|
virtual BOOL IDP2P_GetAFMZPosition(int nModuleIdx, double& dValue);
|
virtual BOOL IDP2P_AFMHomePosition(int nModuleIndex);
|
virtual BOOL IDP2P_DiagnosisSendCompleteSig();
|
|
//#3407 KYH 자가진단 Judge 판정 및 알람 발생 기능 ADD START
|
virtual BOOL IDP2P_DiagnosisSendJudgeAlarm(); //0412 자가진단 코드추가
|
//#3407 KYH 자가진단 Judge 판정 및 알람 발생 기능 ADD END
|
|
// wsi
|
virtual void IDP2P_SetWsiManualMeasure(int nModuleIdx,double dPosX, double dPosY);
|
virtual void IDP2P_WsiMotorMotionEnd(int nModuleIdx,double dPosX, double dPosY);
|
|
// Dialog
|
virtual BOOL IDP2P_SetDlgFlatness(int nIndex);
|
virtual BOOL IDP2P_SetDlgSquareness(int nIndex); //taek 210105
|
virtual BOOL IDP2p_SetDlgWSI(int nIndex); //taek 210105
|
virtual BOOL IDP2P_SetDialogTap(int nIndex);
|
virtual void IDP2P_UpdateDialog(int nIndex = -1);
|
|
// review processor
|
virtual int IRP2P_GetWSIControlCount();
|
virtual CWsiControl* IRP2P_GetWSIControl(int nIndex);
|
virtual int IRP2P_GetModuleStatusCount(int nModuleType) const;
|
virtual CModuleStatus* IRP2P_GetModuleStatus(int nModuleIdx);
|
virtual BOOL IRP2P_GetCenterCoordinate(double& dPosX, double& dPosY);
|
virtual CSignalControl* IRP2P_GetSignalControl();
|
virtual CMotorControl* IRP2P_GetMotorControl();
|
virtual CCameraControlReview* IRP2P_GetReviewCameraControl(int nModuleIndex);
|
virtual int IRP2P_GetReviewCameraControlCount();
|
virtual void IRP2P_UpdateReviewResult(int nModuleIndex, const CGlassResult* pGlassResult, int nPlanIndex=0);
|
virtual void IRP2P_UpdateCameraControl(int nModuleIdx, const SCameraControl *pCameraControl, const SCameraInfo* pCameraInfo);
|
virtual const CRsRcpReviewInfo* IRP2P_Recipe_GetRsRcpReviewInfo();
|
virtual const CSystemInfo* IRP2P_GetReviewSysteminfo();
|
virtual const CSignalControlInfo* IRP2P_GetReviewSignalinfo();
|
virtual CGlassResult* IRP2P_GetCurrentGlassResult();
|
virtual void IRP2P_DisplayMessage(const TCHAR* lpstrFormat, ...);
|
virtual CResultServerControl* IRP2P_GetResultServerControl();
|
virtual CSequenceProcessor* IRP2P_GetSequenceProcessor();
|
virtual void IRP2P_CompletePlanIndex(int nReviewStatus, int nPlanIndex);
|
virtual void IRP2P_UpdateReviewProcessStatus(int nReviewStatus, int nPlanIndex=0);
|
virtual CRecipeManager* IRP2P_GetEdgeRecipeManager();
|
virtual BOOL IRP2P_GetFirstReviewLeft();
|
virtual BOOL IRP2P_GetFirstReviewRight();
|
virtual void IRP2P_SetFirstReviewLeft(BOOL b_Check);
|
virtual void IRP2P_SetFirstReviewRight(BOOL b_Check);
|
|
BOOL m_bFirstReviewLeft;
|
BOOL m_bFirstReviewRight;
|
int m_daccumulate;
|
|
virtual BOOL IRP2P_SaveDefectMap(const CString& strPath);
|
|
// review priority sorter new
|
virtual int PS2P_GetModuleStatusCount(int nModuleType = 0);
|
virtual double PS2P_GetCurrentModuleResolution(int nModuleIndex);
|
virtual void PS2P_GetCurrentModuleZoomData(int nModuleIndex, int& nZoomIdx, double& dZoomInfo);
|
|
// Review OffSetTools
|
virtual BOOL IDRO2P_GetMotorPos(int nModule,double &dXpos, double &dYpos);
|
// GetOffSetValue
|
virtual BOOL GetOffSetValue(int nModule, int nCam, int nScan, double dGlassXPos, double &dXpos, double &dYpos);
|
|
virtual BOOL IDRO2P_SetGlassMode(BOOL bMode, int nCamidx, int nScanidx, double nXpos, double nYpos);
|
|
|
protected: // Sequence Processor
|
// common
|
virtual void ISP2P_DisplayMessage(const TCHAR* lpstrFormat, ...);
|
virtual void ISP2P_MeasureGraph(CGlassResult* pGlassResult);
|
|
// system info
|
virtual const BOOL ISP2P_System_ReadConfigFile();
|
virtual const CSystemInfo* ISP2P_System_GetSystemInfo();
|
virtual const CGlassTypeInfo* ISP2P_System_GetGlassTypeInfo(int nIndex);
|
virtual const CGlassTypeInfo* ISP2P_System_GetStandardGlassTypeInfo();
|
virtual const CAlignCameraInfo* ISP2P_System_GetAlignCameraInfo(int nIndex);
|
virtual const CSignalControlInfo* ISP2P_System_GetPCControlInfo();
|
virtual const CMotorControlInfo* ISP2P_System_GetMotorInfo();
|
virtual const CNetworkInfo* ISP2P_System_GetNetworkInfo();
|
|
virtual void ISP2P_SetCurrentWsiMode(int nMode);
|
|
//#3561 210908 LYW ADD Start
|
virtual void ISP2P_InitAlignCamera();
|
//#3561 210908 LYW ADD End
|
|
virtual CTotalPitchMeasure* ISP2P_GetTotalPitchMeasure();
|
|
// recipe info
|
virtual CRsRecipeManager* ISP2P_Recipe_GetRsRecipeManager();
|
virtual CRsRcpReviewInfo* ISP2P_Recipe_GetRsRcpReviewInfo();
|
virtual CRsRcpMeasureInfo* ISP2P_Recipe_GetRsRcpMeasureInfo();
|
virtual CRsRcpAlignInfo* ISP2P_Recipe_GetRsRcpAlignInfo();
|
virtual CRsRcpDefectFindInfo* ISP2P_Recipe_GetRsRcpDefectFindInfo();
|
|
// single control
|
virtual CSignalControl* ISP2P_GetSignalControl(); // Signal Control
|
virtual CMotorControl* ISP2P_GetMotorControl(); // Motor Control
|
virtual CAlignServerControl* ISP2P_GetAlignServerControl(); // Align Server Control
|
virtual CCameraControlAlign* ISP2P_GetAlignCameraControl(); // Align Camera Control
|
virtual CPrioritySorter* ISP2P_GetPrioritySorter(); // new Priority Sorter// Review Priority Sorter
|
virtual CDefectPicker* ISP2P_GetDefectPicker(int nIdx=-1); // Review Defect Picker
|
virtual CPathScheduler* ISP2P_GetReviewScheduler(int nIdx=-1); // Review Scheduler
|
// virtual CMeasureScheduler* ISP2P_GetMeasureScheduler(); // Measure Scheduler
|
virtual CCoordCalibrator* ISP2P_GetCoordCalibrator(); // coordination calibrator
|
virtual CReviewProcessor* ISP2P_GetReviewProcessor(); // Review Processor
|
|
// aoi shared memory control
|
virtual _ProtocolReview* ISP2P_GetAoiMemoryProtocol(); // aoi shared memory control
|
|
// multi control
|
virtual int ISP2P_GetReviewLightControlCount(); // Review Light Control vector
|
virtual int ISP2P_GetAlignLightControlCount(); // Align Light Control vector
|
virtual int ISP2P_GetRevolverControlCount(); // Revolver Control vector
|
virtual int ISP2P_GetAFMControlCount(); // AFM Control vector
|
virtual int ISP2P_GetWSIControlCount(); // WSI Control vector
|
virtual int ISP2P_GetReviewCameraControlCount(); // Review Camera control vector
|
virtual int ISP2P_GetMotorCalibratorCount(); // motor calibrator
|
virtual void ISP2P_GlassPositionUpdate(); // Glass Position Update
|
|
virtual CLightControl* ISP2P_GetReviewLightControl(int nIndex); // Review Light Control vector
|
virtual CLightControl* ISP2P_GetAlignLightControl(int nIndex); // Align Light Control vector
|
virtual CLensChangeControl* ISP2P_GetRevolverControl(int nIndex); // Revolver Control vector
|
virtual CAfmControl* ISP2P_GetAFMControl(int nIndex); // AFM Control vector
|
virtual CWsiControl* ISP2P_GetWSIControl(int nIndex); // WSI Control vector
|
virtual CCameraControlReview* ISP2P_GetReviewCameraControl(int nIndex); // Review Camera control vector
|
virtual CMotorCalibrator* ISP2P_GetMotorCalibrator(int nIndex); // motor calibrator
|
virtual CVcrControl* ISP2P_GetVcrControl(int nIndex); // Vcr Control vector
|
|
// single variable
|
virtual SDefectFilter* ISP2P_GetDefectFilter(); // Defect Filter
|
virtual SSignalIOStatus* ISP2P_GetPCControlIOSignal(); // PCControl IO Signal
|
virtual CSharedImageData* ISP2P_GetSharedImageData(); // shared image data
|
virtual CConnectionStatus* ISP2P_GetConnectionStatus(); // Connection Status
|
virtual SThetaMotorInfo* ISP2P_GetThetaMotorInfo(); // Theta Motor Info
|
|
// multi variable
|
virtual int ISP2P_GetModuleStatusCount(int nModuleType=0); // Review Module Status Vector
|
virtual CModuleStatus* ISP2P_GetModuleStatus(int nIndex); // Review Module Status Vector
|
virtual CModuleStatus* ISP2P_GetSelectedModuleStatus(); // Review Module Status Vector
|
|
// glass result
|
virtual CGlassResult* ISP2P_GetNewGlassResult(int& nGlassResultCount); // new glass result
|
virtual CGlassResult* ISP2P_GetGlassResult(int nIndex); // get glass result
|
virtual CGlassResult* ISP2P_GetCurrentGlassResult(); // get current glass result
|
virtual STransferData* ISP2P_GetCurrentTransferData(); // get current transfer data
|
|
// History result
|
virtual CGlassResult* ISP2P_GetNewHistoryResult(int& nHistoryResultCount); // new glass result
|
virtual CGlassResult* ISP2P_GetHistoryResult(int nIndex); // get glass result
|
|
// Read AOI Memory
|
virtual BOOL ISP2P_ReadAOIResultMemory();
|
virtual BOOL ISP2P_ReadAOIResultMemory2(CGlassResult *pGlassResult);
|
|
|
// AOI Raw file
|
virtual BOOL ISP2P_ReadAOIRawFileToGlassResult(const CString& strRawPath);
|
virtual BOOL ISP2P_WriteGlassResultToAOIRawFile(CGlassResult* pGlassResult, const CString& strResultFilePath, int nStackType);
|
virtual BOOL ISP2P_SetReviewResultData(CGlassResult *pGlassResult);
|
virtual BOOL ISP2P_SetUserResultData(CGlassResult *pGlassResult);
|
virtual BOOL ISP2P_SetReflowResultData(CGlassResult *pGlassResult);
|
virtual BOOL ISP2P_SetWsiReflowResultData(CGlassResult *pGlassResult);
|
|
virtual BOOL ISP2P_SetMeasureResultData(CGlassResult *pGlassResult); //Add by Juneki 2016-03-01
|
virtual BOOL ISP2P_CreateRawDataFormat(int* pnCnt); //Add by Juneki 2006-03-01
|
virtual BOOL ISP2P_WriteGlassResultToMeasureRawFile(const CString& strResultFilePath); //Add by Juneki 2006-03-01
|
virtual void ISP2P_UpdateAlignResult(int nResultCode, const SAlignResult* pAlignResult);
|
|
// Review Defect Map
|
virtual BOOL ISP2P_SaveDefectMap(const CString strPath);
|
|
// recipe
|
virtual CRecipeManager* ISP2P_GetEdgeRecipeManager();
|
|
// Observer interface
|
virtual void ISP2P_UpdateReviewProcessStatus(int nReviewStatus, int nPlanIndex=0); // review process status
|
virtual void ISP2P_UpdateDefectFilter(const SDefectFilter* pDefectFilter); // Map Option
|
virtual void ISP2P_UpdateReviewResult(int nModuleIndex, const CGlassResult* pGlassResult); // Review Result
|
virtual void ISP2P_UpdateProcessStatus(int nProcessStatus, const CGlassResult* pGlassResult); // Process Status
|
virtual void ISP2P_UpdateCameraControl(int nModuleIndex, const SCameraControl *pCameraControl, const SCameraInfo* pCameraInfo); // camera status
|
virtual void ISP2P_UpdateMotorPosition(int nModuleIndex, BOOL bSelected, const SMotorPosition *pMotorPosition); // motor position
|
virtual void ISP2P_UpdateMotorStatus(int nModuleIndex, const SMotorStatus *pMotorStatus); // motor status
|
virtual void ISP2P_UpdatePCControlIOSignal(const SSignalIOStatus *pSignalIOStatus); // PCControl IO signal
|
virtual void ISP2P_UpdateConnectionStatus(const CConnectionStatus* pConnectionStatus); // connection status
|
virtual void ISP2P_UpdateAlignResultStatus(int nModuleIndex, const CGlassResult* pGlassResult); // Align Result
|
|
virtual void ISP2P_GetDiagnosisHistory();
|
virtual void ISP2P_GetDiagnosisHistory2();
|
|
virtual CDiagnosisManager* ISP2P_GetDiagnosisManager();
|
|
virtual CDlgSelfDiagnosis* ISP2P_GetDlgDiagnosis();
|
|
virtual CDlgReviewHistoryTool* ISP2P_GetDlgHistory();
|
|
virtual BOOL ISP2P_GetFirstReviewLeft();
|
virtual BOOL ISP2P_GetFirstReviewRight();
|
virtual void ISP2P_SetFirstReviewLeft(BOOL b_Check);
|
virtual void ISP2P_SetFirstReviewRight(BOOL b_Check);
|
|
public:
|
|
virtual BOOL ISP2P_Motor_CameraGo(int nModuleIndex, double dPosX, double dPosY, int nMoveAxis, BOOL bAutoSelectCamera=FALSE, BOOL bGoEnd=FALSE);
|
|
public: // dialog interface
|
// display message 2 parent
|
virtual void DM2P_DisplayMessage(const CString& strMessage);
|
virtual void DM2P_DisplayMessage(const TCHAR* lpstrFormat, ...);
|
|
// dialog review camera 2 parent
|
virtual void DRC2P_MoveMotorMouseDoubleClick(int nDiffPixelX, int nDiffPixelY);
|
|
virtual void DC2P_SetSelectedCamera(int nModuleIndex, int nValue);
|
virtual void DC2P_SetLightLevel(int nModuleIndex, int nValue);
|
|
virtual void DC2P_SetZoomLevel(int nModuleIndex, int nValue);
|
virtual void DC2P_SetCameraControl(int nModuleIndex, int nValue);
|
virtual void DC2P_SetJogCommand(int nModuleIndex, int nValue);
|
virtual void DC2P_SetAFMTracking(int nModuleIndex, BOOL bValue);
|
virtual CModuleStatus* DC2P_Get_Selected_module_Status();
|
virtual void DC2P_SetCameraGo(int nModuleIndex, int nMoveAxis, double dPosX, double dPosY);
|
virtual void DC2P_SetCameraCenterGo(int nModuleIndex, int nMoveAxis, double dPosX, double dPosY);
|
|
virtual void DC2P_MoveCommand(int nModuleIndex, int nCmdCode, double dX, double dY, double dR);
|
virtual void DC2P_JogCommand(int nModuleIndex, int nAxisFlag, int nCommandFlag);
|
|
virtual void DC2P_MoveCommandTheta(double dTheta);
|
virtual void DC2P_JogCommandTheta(int nCommandFlag);
|
virtual void DC2P_JogSpeed(double dSpeedValue);
|
virtual void DC2P_ShowReviewPopUP();
|
|
virtual void DC2P_SetOffSetOn();
|
virtual BOOL GetOffSetOn() { return m_bIsOffSetOn; }
|
virtual void DC2P_SetSimulation();
|
virtual BOOL GetSimulationOn() { return m_bIsSimulation; }
|
|
BOOL GetJogAxisIndexCommand(const CMotorControlInfo* pControlInfo, const SAxisIndex* pAxisIndex, const SCoordInfo *pCoordInfo, int nJogDir, int nGoStopFlag, int& nAxisIdx, int& nJogCmd , int nModulelIdx); //taek 201230
|
|
// dialog align camera 2 parent
|
virtual BOOL DAC2P_GetAlignImage(int nType, int nIndex, CCHImageData* pImageData);
|
virtual void DAC2P_SetLightLevel(int nModuleIndex, int nValue);
|
virtual void DAC2P_ManualAlignProcess();
|
virtual void DAC2P_SaveAlignTempImage();
|
virtual CCoordCalibrator* DAC2P_GetCoordCalibrator();
|
virtual void DAC2P_SetActiveAlignCameraDialog();
|
|
// dialog defect filter 2 parent
|
virtual CString DDF2P_GetProgramVersion();
|
virtual void DDF2P_SetDefectFilter(const SDefectFilter *pDefectFilter);
|
|
// dialog defect map 2 parent
|
virtual void DDM2P_SelectDefect(int nDefectPosX, int nDefectPosY, int nDefectMarginX, int nDefectMarginY);
|
virtual void DDM2P_SelectDefect2(int nDefectPosX, int nDefectPosY, int nDefectMarginX, int nDefectMarginY, CGlassResult* pHistoryResult); //taek 210213
|
virtual void DDM2P_MoveGlassPos(double dGlassPosX, double dGlassPosY);
|
|
// dialog defect list 2 parent
|
virtual void DDL2P_SelectDefect(int nDefectIdx);
|
|
// dialog command 2 parent
|
virtual void DC2P_SetUserCommand(int nCommand);
|
|
// dialog user cmd 2 parent
|
virtual void DUC2P_SetUserCommand(int nCommand);
|
|
// dialog Module info 2 parent
|
virtual const CSystemInfo* DMI2P_GetSystemInfo();
|
virtual const CMotorControlInfo* DMI2P_GetMotorInfo();
|
virtual void DMI2P_SetSelectedModuleIndex(int nModuleIdx, BOOL bExcute=FALSE);
|
virtual const CGlassTypeInfo* DMI2P_StandardGlassTypeInfo();
|
virtual const CRsRcpReviewInfo* DMI2P_Recipe_GetRsRcpReviewInfo();
|
virtual BOOL DMI2P_GetCenterCoordinate(double& dPosX, double& dPosY);
|
virtual BOOL ISP2P_MakeDirectory(CString strPath);
|
virtual int CReviewInterface::ISP2P_CopyFolder( TCHAR* strSrc, TCHAR* strDest, bool bSubDir=true );
|
virtual const CNetworkInfo* IDL2P_System_GetNetworkInfo();
|
virtual void IDL2P_DisplayMessage(const TCHAR* lpstrFormat, ...);
|
virtual void IDL2P_OpenOffSetTool();
|
virtual void IDL2P_OpenHistoryTool();
|
|
protected:
|
// Motor Control command
|
BOOL Motor_ReadAddress(long nAddress, double &dValue);
|
BOOL Motor_ReadAddress(long nAddress, long &nValue);
|
BOOL Motor_WriteAddress(long nAddress, double dValue);
|
BOOL Motor_WriteAddress(long nAddress, long nValue);
|
BOOL Motor_AxisGoSpeed(int nAxisIndex, double dSpeed, int nAccel=0);
|
BOOL Motor_AxisJogSpeed(int nAxisIndex, double dSpeed, int nAccel=0);
|
BOOL Motor_AxisJogCommand(int nAxisIndex, int nCommand);
|
|
BOOL Motor_AxisThetaGoSpeed(double dSpeed, int nAccel=0);
|
BOOL Motor_AxisThetaJogSpeed(double dSpeed, int nAccel=0);
|
BOOL Motor_AxisThetaGo(double dPos, BOOL bGoEnd=FALSE);
|
BOOL Motor_AxisThetaJogCommand(int nCommand);
|
|
BOOL Motor_AxisGo(int nModuleIndex, int nAxisType, int nDefectPos, BOOL bAutoSelectCamera=FALSE, BOOL bGoEnd=FALSE);
|
BOOL Motor_AxisGo(int nModuleIndex, int nAxisType, double dPos, BOOL bAutoSelectCamera=FALSE, BOOL bGoEnd=FALSE);
|
BOOL Motor_CameraGo(int nModuleIndex, int nDefectPosX, int nDefectPosY, int nMoveAxis,CDefectResult* pDefectResult ,BOOL bAutoSelectCamera=FALSE, BOOL bGoEnd=FALSE);
|
BOOL Motor_CameraGo(int nModuleIndex, double dPosX, double dPosY, int nMoveAxis, BOOL bAutoSelectCamera=FALSE, BOOL bGoEnd=FALSE);
|
BOOL Motor_CameraGo2(int nModuleIndex, double dPosX, double dPosY, int nMoveAxis, BOOL bAutoSelectCamera=FALSE, BOOL bGoEnd=FALSE);
|
|
BOOL Motor_CameraCenterGo(int nModuleIndex, int nDefectPosX, int nDefectPosY, int nMoveAxis, BOOL bAutoSelectCamera=FALSE, BOOL bGoEnd=FALSE);
|
BOOL Motor_CameraCenterGo(int nModuleIndex, double dPosX, double dPosY, int nMoveAxis, BOOL bAutoSelectCamera=FALSE, BOOL bGoEnd=FALSE);
|
|
BOOL Motor_GantryGo(int nModuleIndex, int nDefectPosX, int nDefectPosY, BOOL bGoEnd=FALSE);
|
BOOL Motor_GantryGo(int nModuleIndex, double dPosX, double dPosY, BOOL bGoEnd=FALSE);
|
|
BOOL Motor_GantryGo(int nModuleIndex, const VectorInteger& vecMovePos, int nMoveType, BOOL bGoEnd=FALSE);
|
BOOL Motor_GantryGo(int nModuleIndex, const VectorDouble& vecMovePos, int nMoveType, BOOL bGoEnd=FALSE);
|
|
BOOL Motor_GantryWsiNextPosMove(int nModuleIndex, int nNextDefectIndex);
|
|
BOOL Motor_HomeGoExceptOne(int nModuleIndex, BOOL bAutoSelectCamera = FALSE, BOOL bGoEnd = FALSE);
|
BOOL Motor_CollisionDetect(int nModuleIndx, double dGlassPosX, double dGlassPosY);
|
|
BOOL Motor_GetMotorDirection(int nModuleIndx, int& nDirX, int& nDirY);
|
|
// Align Camera Control command
|
BOOL AlignCamera_CameraControl(int nControlCmd);
|
|
// Review Light Control command
|
BOOL ReviewLight_SetLightLevel(int nModuleIndex, int nValue);
|
BOOL ReviewLight_GetLightLevel(int nModuleIndex, int& nValue);
|
|
// Align Light Control command
|
BOOL AlignLight_SetLightLevel(int nCameraIndex, int nValue);
|
BOOL AlignLight_GetLightLevel(int nCameraIndex, int& nValue);
|
|
// Revolver Control Command
|
BOOL Revolver_SetRevolverLevel(int nModuleIndex, int nValue);
|
BOOL Revolver_GetRevolverLevel(int nModuleIndex, int& nValue);
|
|
// AFM Control Command
|
BOOL AFM_SetAFMRecipeIndex(int nRecipeIndex, int nValue);
|
BOOL AFM_SetAFMRecipeName(const CString& strRecipeName, int nValue);
|
BOOL AFM_SetAFMZoomLevel(int nValue);
|
BOOL AFM_SetAFMTracking(BOOL bValue);
|
BOOL AFM_SetAFMJogCommand(int nCmd);
|
BOOL AFM_SetAFMJogSpeed(double dSpeed);
|
|
BOOL AFM_SetAFMRecipeIndex(int nModuleIndex, int nRecipeIndex, int nValue);
|
BOOL AFM_GetAFMRecipeIndex(int nModuleIndex, int& nRecipeIndex, int& nValue);
|
BOOL AFM_SetAFMRecipeName(int nModuleIndex, const CString& strRecipeName, int nValue);
|
BOOL AFM_GetAFMRecipeName(int nModuleIndex, CString& strRecipeName, int& nValue);
|
|
BOOL AFM_SetAFMZoomLevel(int nModuleIndex, int nValue);
|
BOOL AFM_GetAFMZoomLevel(int nModuleIndex, int& nValue);
|
BOOL AFM_SetAFMTracking(int nModuleIndex, BOOL bValue);
|
BOOL AFM_GetAFMTracking(int nModuleIndex, BOOL& bValue);
|
BOOL AFM_SetAFMJogCommand(int nModuleIndex,int nCmd);
|
BOOL AFM_SetAFMJogSpeed(int nModuleIndex,double dSpeed);
|
BOOL AFM_GetAFMZPosition(int nModuleIndex, double& dValue);
|
|
// [2017:2:2]-[WEZASW] : Verycode 판독 결과 리턴
|
BOOL VCR_GetDecodingData(int nIndex, CString& strCode);
|
BOOL VCR_SetDecodeTriggerSignal(int nIndex);
|
|
// 20190207 SJB, 센터좌표 변환
|
BOOL GetCenterCoordinate(double& dPosX, double& dPosY);
|
|
|
// [2016:11:14]-[WEZASW] : WSI Manual 측정 기능
|
BOOL WSI_SetManualMeasurement(int nModuleIndex, int nDefectPosX, int nDefectPosY, int nDefectgPosX, int nDefectgPosY, BOOL bValue);
|
|
|
// Review Camera Control command
|
void ReviewCamera_CameraControl(int nControlCmd);
|
BOOL ReviewCamera_CameraControl(int nModuleIndex, int nControlCmd);
|
int ReviewCamera_GetReviewCameraControlCount() const;
|
|
// module status
|
int Module_GetModuleStatusCount(int nModuleType=0) const;
|
CModuleStatus* Module_GetModuleStatus(int nModuleIdx);
|
SExternalIndex* Module_GetExternalIndex(int nModuleIdx);
|
SCameraControl* Module_GetCameraControl(int nModuleIdx);
|
SMotorPosition* Module_GetMotorPosition(int nModuleIdx); //Mot Pos
|
SMotorStatus* Module_GetMotorStatus(int nModuleIdx);
|
SAxisIndex* Module_GetAxisIndex(int nModuleIdx);
|
SCoordInfo* Module_GetCoordInfo(int nModuleIdx);
|
SCameraInfo* Module_GetCurrentCameraInfo(int nModuleIdx);
|
SCameraInfo* Module_GetCameraInfo(int nModuleIdx, int nZoomIdx=0);
|
SMagnificInfo* Module_GetCurrentMagnificInfo(int nModuleIdx);
|
SMagnificInfo* Module_GetMagnificInfo(int nModuleIdx, int nZoomIdx=0);
|
int Module_GetMoveIndex(int nSelectedModuleIndex, int nUMGlassX, int nUMGlassY, BOOL bAutoSelectCamera = FALSE);
|
|
// standard module status
|
int Module_GetStandardModuleIndex() const;
|
CModuleStatus* Module_GetStandardModuleStatus();
|
SMotorPosition* Module_GetStandardMotorPosition();
|
SAxisIndex* Module_GetStandardAxisIndex();
|
|
// selected module status
|
int Module_GetSelectedModuleIndex() const;
|
CModuleStatus* Module_GetSelectedModuleStatus();
|
SMotorPosition* Module_GetSelectedMotorPosition();
|
SAxisIndex* Module_GetSelectedAxisIndex();
|
|
|
|
|
|
// setter internal
|
double GetFreeSpaceOfDrive() const;
|
void SetProgramVersion();
|
|
void ApplySystemSettingValue();
|
void SetDefaultValue();
|
void CreateSystemDirectory();
|
|
|
|
protected:
|
// interface
|
BOOL InitReviewInterface();
|
void DeinitReviewInterface();
|
|
// shared image
|
int InitSharedImage();
|
void DeinitSharedImage();
|
|
// Align Server
|
int InitAlignServerControl();
|
void DeinitAlignServerControl();
|
|
// review camera
|
int InitReviewCamera();
|
void DeinitReviewCamera();
|
int ConnectReviewCamera();
|
void DisconnectReviewCamera();
|
|
// review Light Control
|
int InitReviewLightControl();
|
void DeinitReviewLightControl();
|
|
// revolver control
|
int InitRevolverControl();
|
void DeinitRevolverControl();
|
|
// AFM Control
|
int InitAFMControl();
|
void DeinitAFMControl();
|
|
// WSI Control
|
int InitWSIController();
|
void DeinitWSIController();
|
|
// align camera
|
int InitAlignCamera();
|
void DeinitAlignCamera();
|
|
// Align Light Control
|
int InitAlignLightControl();
|
void DeinitAlignLightControl();
|
|
// Motor control
|
int InitMotorControl();
|
void DeinitMotorControl();
|
|
// Signal Control
|
int InitSignalControl();
|
void DeinitSignalControl();
|
|
// review processor
|
int InitReviewProcessor();
|
void DeinitReviewProcessor();
|
|
// sequence processor
|
int InitSequenceProcessor();
|
void DeinitSequenceProcessor();
|
|
// new Priority Sorter
|
int InitPrioritySorter();
|
void DeinitPrioritySorter();
|
|
// Review Defect Picker
|
int InitDefectPicker();
|
void DeinitDefectPicker();
|
|
// Review Scheduler
|
int InitReviewScheduler();
|
void DeinitReviewScheduler();
|
|
// Measure Scheduler
|
// int InitMeasureScheduler();
|
// void DeinitMeasureScheduler();
|
|
// Coord Calibrator
|
int InitCoordCalibrator();
|
void DeinitCoordCalibrator();
|
|
// Motor Calibrator
|
int InitMotorCalibrator();
|
void DeinitMotorCalibrator();
|
|
// Result Server Control
|
int InitResultServerControl();
|
void DeinitResultServerControl();
|
|
// edge triangle manger
|
int InitEdgeRecipeManager();
|
void DeinitEdgeRecipeManager();
|
|
// virtual glass map
|
int InitVirtualGlassMap();
|
void DeinitVirtualGlassMap();
|
|
// Auto Diagnosis
|
int InitDiagnosisManager();
|
void DeinitDiagnosisManager();
|
|
int InitDlgDiagnosis();
|
void DeinitDlgDiagnosis();
|
|
|
// [2018/10/15 08:42:52 by jylee] related Shared Memory
|
int InitAOISharedMemory();
|
void DeinitAOISharedMemory();
|
virtual void INA2P_RecvSignal(int nSystemType, int nSignal, int nParam1=0, int nParam2=0);
|
|
int InitTotalPitchMeasure();
|
void DeinitTotalPitchMeasure();
|
|
protected:
|
|
// loading process func
|
BOOL Recipe_ApplyRecipeData();
|
int Recipe_GetRcpAFMRecipeInfoCount() const;
|
int Recipe_GetRcpReflowParameterCount() const;
|
int Recipe_GetRcpUserDefectInfoCount() const;
|
int Recipe_GetRcpPlanInfoCount() const;
|
int Recipe_GetRcpPriorityInfoCount() const;
|
int Recipe_GetRcpLightInfoCount() const;
|
|
const CRcpAFMRecipeInfo* Recipe_GetRcpAFMRecipeInfo(int nModuleIndex) const;
|
const CRcpReflowParameter* Recipe_GetRcpReflowParameter(int nModuleIndex) const;
|
const CRcpUserDefectInfo* Recipe_GetRcpUserDefectInfo(int nModuleIndex) const;
|
const CRcpPlanInfo* Recipe_GetRcpPlanInfo(int nModuleIndex) const;
|
const CRcpPriorityInfo* Recipe_GetRcpPriorityInfo(int nModuleIndex) const;
|
const CRcpLightInfo* Recipe_GetRcpLightInfo(int nModuleIndex) const;
|
|
BOOL IsManualProcessMode();
|
public:
|
void WsiAliveCheckThread ();
|
protected:
|
|
// for system value
|
BOOL m_bChangeSysConfig;
|
CReviewSystemDoc* m_pDoc;
|
CReviewSystemView* m_pView;
|
|
// single control
|
CSignalControl* m_pSignalControl; // Signal Control
|
CMotorControl* m_pMotorControl; // Motor Control
|
CAlignServerControl* m_pAlignServerControl; // Align Server Control
|
CCameraControlAlign* m_pAlignCameraControl; // Align Camera Control
|
CSharedImageData* m_pSharedImageData; // shared image data
|
CReviewProcessor* m_pReviewProcessor; // Review Processor
|
CSequenceProcessor* m_pSequenceProcessor; // sequence processor
|
CPrioritySorter* m_pPrioritySorter; // new Priority Sorter
|
CDefectPicker* m_pDefectPicker; // Review Defect Picker
|
CPathScheduler* m_pReviewScheduler; // Review Scheduler
|
// CMeasureScheduler* m_pMeasureScheduler; // Measure Scheduler
|
CCoordCalibrator* m_pCoordCalibrator; // coordination calibrator
|
CResultServerControl* m_pResultServerControl; // Send Result to Server Control
|
CVirtualGlassMap* m_pVirtualGlassMap; // virtual glass map
|
CDiagnosisManager* m_pDiagnosisManager; // Self Auto Diagnosis Manager
|
CDlgSelfDiagnosis* m_pDlgDiagnosis;
|
CDlgReviewHistoryTool* m_pDlgHistoryTool;
|
|
// [2017:1:16]-[WEZASW] : VCR Control 기능 추가(Ing)
|
CVcrControl* m_pVCRControl; // VCR Control
|
|
// 190624 SJB TotalPitchMeasure Add
|
CTotalPitchMeasure* m_pTotalPitchMeasure;
|
|
// multi control
|
VectorLightControl m_vecReviewLightControl; // Review Light Control vector
|
VectorLightControl m_vecAlignLightControl; // Align Light Control vector
|
VectorLensChangeControl m_vecRevolverControl; // Revolver Control vector
|
VectorAfmControl m_vecAFMControl; // AFM Control vector
|
VectorWsiControl m_vecWSIControl; // WSI Control vector
|
VectorVCRControl m_vecVCRControl; // VCR Control vector
|
VectorCameraControlReview m_vecReviewCameraControl; // Review Camera control vector
|
VectorMotorCalibrator m_vecMotorCalibrator; // motor calibrator
|
|
|
// single variable
|
CString m_strProgramVersion; // program version
|
CProcessTimer m_ProcessTimer; // process timer
|
SThetaMotorInfo m_sThetaMotorInfo; // theta motor info
|
|
// multi variable
|
VectorModuleStatus m_vecModuleStatus; // Review Module Status Vector
|
|
// edge triangle manager
|
CRecipeManager* m_pEdgeRecipeManager; // Edge Triangle recipe manager
|
|
// AOI Shared Memory
|
protected:
|
static CakAOISharedSystem m_AOISharedMemory;//20191017
|
//static akIPCNetAOISystem m_AOISharedMemory;//cmark
|
|
public:
|
static CakAOISharedSystem* GetInstance();
|
//static akIPCNetAOISystem* GetInstance();
|
int ApplyMagAndGlassOffset(int nModuleIndex ,int wicthPos,double posX,double posY); //0:Xpos 1:Ypos
|
|
|
void SetCurrentWsiMode(int nMode) { m_nCurrentWsiMode = nMode; }
|
int GetCurrentWsiMode() { return m_nCurrentWsiMode; }
|
void IRP2P_UpdateDefocusList();
|
|
protected:
|
// critical section
|
CRITICAL_SECTION m_csReviewResult; // review result
|
CRITICAL_SECTION m_csReviewSignal;
|
|
int m_nSimualData[10];
|
int m_nCurrentWsiMode;
|
|
BOOL m_bIsOffSetOn;
|
BOOL m_bIsSimulation;
|
};
|