#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<CCameraControlReview*> VectorCameraControlReview;
|
typedef std::vector<CCameraControlReview*>::iterator VectorCameraControlReviewIt;
|