#pragma once #include "CHReviewResult/GlassResult.h" #include "ModuleStatus.h" #include "CameraController.h" #include "CHAlignFinder/AlignFinder.h" enum ReviewViewMode { View_Live=0, View_Buffer }; interface IReviewCameraControl2Parent { virtual BOOL IRCC2P_GetCurrentFrame(int nModuleIndex, int nCameraIndex, int nFrameWidth, int nFrameHeight, int nFrameChannels, CCHImageData *pImageData) = 0; virtual void IRCC2P_FrameCaptured(int nModuleIndex, int nCameraIndex, int nFrameIndex, CCHImageData* pImageData) = 0; virtual void IRCC2P_ReviewResult(int nModuleIndex, int nPointIndex, VectorImageData& vectorImageData) = 0; virtual void IRCC2P_CameraControl(int nModuleIndex, int nValue) = 0; virtual CString IRCC2P_GetTotalPitchImageName() = 0; }; class CCameraControlReview : public CCameraController, public IUpdateProcessStatus, public IUpdateCameraControl, public IUpdateReviewProcessStatus { public: CCameraControlReview(int nModuleIndex, int nLensType = 0); virtual ~CCameraControlReview(void); void SetRCCP(IReviewCameraControl2Parent* pRCC2P) { m_pRCC2P = pRCC2P; } void SetViewMode(int nViewMode) { m_nViewMode = nViewMode; } int GetModuleIndex() { return m_nModuleIndex; } int ConnectCamera(const VectorCameraControlInfo& vecCameraControlInfo); BOOL FindReviewAlignMark(double &dPosX, double &dPosY, double dRatio); void SetDigitalZoomInfo(const CRect& rtSubRect, int nResizeWidth, int nResizeHeight); virtual int Camera_Control(int nControlType); virtual void UpdateProcessStatus(int nLineType, int nMachineType, int nProcessStatus, const CGlassResult* pGlassResult); virtual void UpdateCameraControl(int nModuleIndex, const SCameraControl* pCameraControl, const SCameraInfo* pCameraInfo); virtual void UpdateReviewProcessStatus(int nReviewStatus, int nPlanIndex=0); virtual BOOL ICC2P_GetCurrentFrame(int nCameraIndex, int nFrameWidth, int nFrameHeight, int nFrameChannels, CCHImageData* pImageData); virtual BOOL ICC2P_FrameCaptured(int nCameraIndex, int nFrameIndex, int nFrameCount); virtual void ICC2P_DisplayMessage(int nIndex, const TCHAR* lpstrFormat, ...){}; protected: void SendReviewResult(int nCameraIndex, int nPointIndex); IReviewCameraControl2Parent* m_pRCC2P; int m_nModuleIndex; int m_nViewMode; int m_nControlType; int m_nZoomLevel; BOOL m_bDigitalZoom; int m_nReviewProcessStatus; int m_nReviewPlanIndex; int m_nReviewPointCount; CRect m_rtSubRect; int m_nResizeWidth; int m_nResizeHeight; int m_nLensType; // align finder VectorAlignFinder m_vecAlignFinder; CAlignRecipe m_AlignRecipe; }; typedef std::vector VectorCameraControlReview; typedef std::vector::iterator VectorCameraControlReviewIt;