SDC C-Project CF Review 프로그램
LYW
2021-11-15 4139a71f5c0b72f88813a15d7112fdac76756fe4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#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;