SDC C-Project CF Review 프로그램
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
// PADRecipe.h: interface for the CPADRecipe class.
//
//////////////////////////////////////////////////////////////////////
 
#if !defined(AFX_PADRECIPE_H__928151D6_F446_4542_A3C5_F70BC2C255B2__INCLUDED_)
#define AFX_PADRECIPE_H__928151D6_F446_4542_A3C5_F70BC2C255B2__INCLUDED_
 
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
 
#include "PADRecipeModel.h"
 
const int PAD_LIGHTSETTING_MAXCOUNT = 4;
 
typedef struct _PADLightSetting
{
    enum emLightEvalMode{MODE_AVERAGE=0,MODE_MIN,MODE_MAX,MODE_NONE};
 
    emLightEvalMode emLightMode;
    int                nSetValue;
    int                nMinValue;
    int                nMaxValue;
 
    _PADLightSetting()
    {
        Reset();
    }    
    void Reset()
    {
        emLightMode = MODE_NONE;
        nSetValue = 0;
        nMinValue = 0;
        nMaxValue = 0;
    }
    _PADLightSetting& operator=(const _PADLightSetting &rh)
    {        
        emLightMode = rh.emLightMode;
        nSetValue = rh.nSetValue;
        nMinValue = rh.nMinValue;
        nMaxValue = rh.nMaxValue;
        return *this;
    }
} PADLightSetting, *pPADLightSetting;
 
typedef struct _PADGENPARM
{
    BOOL                    m_bUseInspect;
    BOOL                    m_bSavePADImage;
    BOOL                    m_bUsePRNU;
    int                        m_nSmarLEDVolume;
    int                        m_nCaliCoef;
    double                    m_dCameraGain;    
    BOOL                    m_bUsePADResultFile;    
 
    int                        m_nInspectLeft_T_Margin;
    int                        m_nInspectLeft_R_Margin;
    int                        m_nInspectLeft_B_Margin;
    int                        m_nInspectLeft_Width;    
    int                        m_nInspectTop_L_Margin;
    int                        m_nInspectTop_B_Margin;
    int                        m_nInspectTop_R_Margin;
    int                        m_nInspectTop_Height;
    int                        m_nInspectRight_T_Margin;
    int                        m_nInspectRight_R_Margin;
    int                        m_nInspectRight_B_Margin;
    int                        m_nInspectRight_Width;
    int                        m_nInspectBottom_L_Margin;
    int                        m_nInspectBottom_B_Margin;
    int                        m_nInspectBottom_R_Margin;
    int                        m_nInspectBottom_Height;
    
    _PADGENPARM()
    {
        Reset();
    }
    void Reset()
    {
        m_bUseInspect = FALSE;
        m_bSavePADImage = FALSE;
        m_bUsePRNU    = FALSE;        
        m_nSmarLEDVolume = 0;
        m_nCaliCoef = 0;
        m_dCameraGain = 0;
        m_bUsePADResultFile = FALSE;
        m_nInspectLeft_T_Margin = m_nInspectLeft_R_Margin = m_nInspectLeft_B_Margin = m_nInspectLeft_Width = 0;        
        m_nInspectRight_T_Margin = m_nInspectRight_R_Margin = m_nInspectRight_B_Margin = m_nInspectRight_Width = 0;        
        m_nInspectTop_L_Margin = m_nInspectTop_B_Margin = m_nInspectTop_R_Margin = m_nInspectTop_Height = 0;        
        m_nInspectBottom_L_Margin = m_nInspectBottom_B_Margin = m_nInspectBottom_R_Margin = m_nInspectBottom_Height = 0;        
    }
    _PADGENPARM& operator=(const _PADGENPARM &rh)
    {
        m_bUseInspect = rh.m_bUseInspect;    
        m_bSavePADImage = rh.m_bSavePADImage;    
        m_bUsePRNU = rh.m_bUsePRNU;    
        m_nSmarLEDVolume = rh.m_nSmarLEDVolume;    
        m_nCaliCoef = rh.m_nCaliCoef;    
        m_dCameraGain = rh.m_dCameraGain;    
        m_bUsePADResultFile = rh.m_bUsePADResultFile;            
 
        m_nInspectLeft_T_Margin = rh.m_nInspectLeft_T_Margin;    
        m_nInspectLeft_R_Margin = rh.m_nInspectLeft_R_Margin;    
        m_nInspectLeft_B_Margin = rh.m_nInspectLeft_B_Margin;    
        m_nInspectLeft_Width = rh.m_nInspectLeft_Width;    
        m_nInspectRight_T_Margin = rh.m_nInspectRight_T_Margin;    
        m_nInspectRight_R_Margin = rh.m_nInspectRight_R_Margin;    
        m_nInspectRight_B_Margin = rh.m_nInspectRight_B_Margin;    
        m_nInspectRight_Width = rh.m_nInspectRight_Width;    
        m_nInspectTop_L_Margin = rh.m_nInspectTop_L_Margin;    
        m_nInspectTop_B_Margin = rh.m_nInspectTop_B_Margin;    
        m_nInspectTop_R_Margin = rh.m_nInspectTop_R_Margin;    
        m_nInspectTop_Height = rh.m_nInspectTop_Height;    
        m_nInspectBottom_L_Margin = rh.m_nInspectBottom_L_Margin;    
        m_nInspectBottom_B_Margin = rh.m_nInspectBottom_B_Margin;    
        m_nInspectBottom_R_Margin = rh.m_nInspectBottom_R_Margin;    
        m_nInspectBottom_Height = rh.m_nInspectBottom_Height;            
        return *this;
    }
} PADGENPARM, *pPADGENPARM;
 
#define PAD_FILENAME_STRING "PAD"
#define PAD_RECIPE_PATH "C:\\°Ë»ç¼³ºñ\\RecipeNew\\"
 
class AFX_EXT_CLASS CPADRecipe  
{
public:
    CPADRecipe();
    virtual ~CPADRecipe();
    CPADRecipe(CPADRecipe& rhs);
    CPADRecipe& operator=(CPADRecipe& rhs);
 
public:
    void                    SetRecipeName(CString strRecipeName);
    BOOL                    ReadRecipeFile();
    BOOL                    WriteRecipeFile(BOOL bCheck=TRUE);
    BOOL                    ReadModelRecipeFile();
    BOOL                    ReadRecipe(CMosisPacket *pPacket);
    BOOL                    WriteRecipe(CMosisPacket *pPacket);
 
    void                    ResetPADRecipe();    
    BOOL                    SetPADModel(int iModel,CPADRecipeModel *pModel);
    CPADRecipeModel*        GetPADModel(int iModel);
 
    int                        GetPADModelCount(){return m_nPADModelCount;}
    void                    SetModelCount(int nCount);
 
    pPADLightSetting        GetLightSetting(int iSide);
    BOOL                    SetLightSetting(int iSide,PADLightSetting stLight);
 
    pPADGENPARM                GetGenParm(){return &m_pPADGenParm;}
    void                    SetGenParm(PADGENPARM pParm){m_pPADGenParm=pParm;}
 
protected:
    void                    ResetModelList();
 
protected:    
    CHMRegiConfig            m_PADRecipeFile;
    CString                    m_strPADRecipeFileName;
    CPADRecipeModel            *m_pPADModel;    
    int                        m_nPADModelCount;
    PADLightSetting            m_pPADLightSetting[PAD_LIGHTSETTING_MAXCOUNT];
    PADGENPARM                m_pPADGenParm;
 
};
 
#endif // !defined(AFX_PADRECIPE_H__928151D6_F446_4542_A3C5_F70BC2C255B2__INCLUDED_)