SDC C-Project CF Review 프로그램
LYW
2021-08-10 ebfd7a15f5c7fe5d4cf9120a49b21f3cffd050f7
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#pragma once
 
#include "CHImageControls/CHImageData.h"
 
interface ITotalPitchMeasure2Parnet
{
    virtual void    ITP2P_DisplayMessage(int nIndex, const TCHAR* lpstrFormat, ...) = 0;
    virtual BOOL    ITP2P_GetAlignMarkPosition(double &dPositionX, double &dPositionY) = 0;
    virtual BOOL    ITP2P_GetGlassSize(double &dGlassSizeX, double &dGlassSizeY) = 0;
    virtual BOOL    ITP2P_GetAlignMarkCenterPosition(double &dPositionX, double &dPositionY) = 0;
    virtual BOOL    ITP2P_GetMotionEnable() = 0;
    virtual BOOL    ITP2P_MoveMotorGlassPosition(int nModuleIndex, double dPositionX, double dPositionY) = 0;    
    virtual BOOL    ITP2P_StartTemplateMatching(double &dPosX, double &dPosY) = 0;
    virtual BOOL    ITP2P_GetAlignTemplateCenterPosition(int nIdx, double &dPositionX, double &dPositionY) = 0;
    virtual BOOL    ITP2P_SetMinMagChange(int nModuleIndex) = 0;
    virtual double    ITP2P_GetCurrentResolution() = 0;
};
 
class AFX_EXT_CLASS CTotalPitchMeasure
{
public:
    CTotalPitchMeasure();
    virtual ~CTotalPitchMeasure();
    void SetTP2P(ITotalPitchMeasure2Parnet* pTP2P)            { m_pTP2P = pTP2P; }
    void    Reset();
 
public:
    BOOL    StartTotalPitchMeasure();
    BOOL    GetMotorEnable();
 
    double    GetGlassSizeWidth()            { return m_dGlassSizeWidth; }
    double    GetGlassSizeHeight()        { return m_dGlassSizeHeight; }
 
    double    GetStandardAlignPosX()        { return m_dStandardAlignMarkGlassPositionX; }
    double    GetStandardAlignPosY()        { return m_dStandardAlignMarkGlassPositionY; }
 
    double    GetAlignMarkCenterPosX()    { return m_dAlignMarkCenterPositionX; }
    double    GetAlignMarkCenterPosY()    { return m_dAlignMarkCenterPositionY; }
 
    double    GetAlignMarkPosX(const int nIdx)    { return m_dAlignMarkPositionX[nIdx]; }
    double    GetAlignMarkPosY(const int nIdx)    { return m_dAlignMarkPositionY[nIdx]; }
 
    double    GetTotalPitchAB()                { return m_dTotlaPitchAB; }
    double    GetTotalPitchCD()                { return m_dTotlaPitchCD; }
    double    GetTotalPitchAC()                { return m_dTotlaPitchAC; }
    double    GetTotalPitchBD()                { return m_dTotlaPitchBD; }
 
    double    GetAlignShortDistance()            { return m_dAlignMarkShortDistance; }
    double    GetAlignLongDistance()            { return m_dAlignMarkLongDistance; }
 
protected:
    BOOL    GetAlignMarkCenterPosition();
    BOOL    CalculateAlignMarkPosition();
    BOOL    MoveAlignMarkPosition(const int nMarkIndx);
    BOOL    GetAlignMarkImageMatching(const int nMarkIndx);
 
    void    SetGlassSizeWidth(double dSize)        { m_dGlassSizeWidth = dSize;}
    void    SetGlassSizeHeight(double dSize)    { m_dGlassSizeHeight = dSize;}
 
    void    SetStandardAlignPosX(double dPos)    { m_dStandardAlignMarkGlassPositionX = dPos; }    
    void    SetStandardAlignPosY(double dPos)    { m_dStandardAlignMarkGlassPositionY = dPos; }    
 
    void    SetAlignMarkCenterPosX(double dPos)    { m_dAlignMarkCenterPositionX = dPos; }
    void    SetAlignMarkCenterPosY(double dPos)    { m_dAlignMarkCenterPositionY = dPos; }
 
    void    SetTotalPitchAB(double dData)        { m_dTotlaPitchAB = dData; }
    void    SetTotalPitchCD(double dData)        { m_dTotlaPitchCD = dData; }
    void    SetTotalPitchAC(double dData)        { m_dTotlaPitchAC = dData; }
    void    SetTotalPitchBD(double dData)        { m_dTotlaPitchBD = dData; }
 
    void    SetAlignShortDistance(double dData)    { m_dAlignMarkShortDistance = dData; }
    void    SetAlignLongDistance(double dData)    { m_dAlignMarkLongDistance = dData; }
 
    BOOL    TotalPitchMeasure();
 
protected:
    ITotalPitchMeasure2Parnet*        m_pTP2P;
 
    double        m_dAlignMarkPositionX[4];
    double        m_dAlignMarkPositionY[4];
 
    double        m_dAlignMarkCenterPosX[4];
    double        m_dAlignMarkCenterPosY[4];
 
    double        m_dGlassSizeWidth;
    double        m_dGlassSizeHeight;
 
    double        m_dStandardAlignMarkGlassPositionX;
    double        m_dStandardAlignMarkGlassPositionY;
 
    double        m_dAlignMarkCenterPositionX;
    double        m_dAlignMarkCenterPositionY;
 
    double        m_dAlignMarkShortDistance;
    double        m_dAlignMarkLongDistance;
 
    CCHImageData*    m_pAlignTempImage;
 
    //Result -> º°µµ ±¸Á¶·Î ±¸¼ºÇسõÁö ¾Ê°ÚÀ½ 4°³·Î Fix
    double        m_dTotlaPitchAB;
    double        m_dTotlaPitchCD;
    double        m_dTotlaPitchAC;
    double        m_dTotlaPitchBD;
};