mrDarker
2025-08-22 04d89bc9216553adcd0df87985a7665882924093
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
167
168
169
170
171
172
173
174
175
176
177
#pragma once
 
#include "btnenh.h"
#include "General_Draw.h"
#include "EdgeImageViewer.h"
#include "ImageViewer.h"
#include "Global_Define.h"
#include "GridCtrl.h"
#include "DlgSideDimensionSetting.h"
#include "DlgSideNotchSetting.h"
#include "DlgSideExceptoinSetting.h"
#include "DlgSideUserDefectSetting.h"
#include "StatusMonitor.h"
#include "ViewLampControl.h"
#include "ViewRecipeList.h"
 
// CViewLedRecipeSetting 措拳 惑磊涝聪促.
 
class CViewMain_Recipe : public CDialogEx
{
    DECLARE_DYNAMIC(CViewMain_Recipe)
 
public:
    CViewMain_Recipe(CWnd* pParent = NULL);   // 钎霖 积己磊涝聪促.
    virtual ~CViewMain_Recipe();
 
    // 措拳 惑磊 单捞磐涝聪促.
    enum { IDD = IDD_MAIN_VIEW_RECIPE };
 
protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 瘤盔涝聪促.
    virtual BOOL OnInitDialog();
    virtual BOOL PreTranslateMessage(MSG* pMsg);
    LRESULT OnProcessStatus(WPARAM wParam, LPARAM lParam);
    afx_msg void OnPaint();
    afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);    
    afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
    afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
    afx_msg void OnNMCustomdrawSliderZoom2(NMHDR *pNMHDR, LRESULT *pResult);
    afx_msg void OnNMReleasedcaptureSliderZoom2(NMHDR *pNMHDR, LRESULT *pResult);
    afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
    afx_msg LRESULT OnSelectRecipe(WPARAM wParam, LPARAM lParam);
    DECLARE_MESSAGE_MAP()
    DECLARE_EVENTSINK_MAP()    
 
public:
    void            SetRecipe(CHardwareSettings *pHW,CGlassRecipe *pRecipe);
    void            SetV2M(IViewInterface2Parent* pV2M);
    void            SetGlassData(CGlass_Data *pGlass);
    void            ViewRefresh(PROG_MSG ProcMsg);
    void            InitView();
 
private:
    CBtnEnh            m_ctrlRecipeName;
    CBtnEnh            m_ctrlRecipList;
    CBtnEnh            m_ctrlRecipeComment;
    CString            m_strRecipeName;
    CString            m_strPPIDName;
 
protected:
    void            ClickImgLoadButton();
    void            ClickImgSaveButton();
    void            ClickInitProcessButton();
    void            ClickInspectProcessButton();        
    void            ClickRecipeSaveButton();
    void            ClickRecipeListButton();
 
    void            OnBnClickedBtnLightControl();
 
    void            ClickSideSelButton();
    void            ClickRdoInsType();
    void            ClickButtonLang();
    void            ClickBtnMarkUpdate();
 
protected:
    void            InitScrollInfo(BOOL bInitPos = FALSE);
    void            UpdateZoom();
 
    BOOL            LoadLinkFile(CString strFilePath);
    void            DeleteVectorList();
    BOOL            WriteLinkFile(CString strFilePath);
    void            ChangeRecipe();
    BOOL            ReadRecipe(CString strRecipe);    
 
public:
    void            UpdateRecipe(BOOL bGetData, int type = 0);
    void            UpdateMarkImage();
    void            DrawMarkImage();
 
public:
    void            ChangViewCdmSide(UINT nID);
    void            ChangInsTypeSide(UINT nID);
    void            UpdateSideImage();
    void            GetResolution(double &dH,double &dV, int& nFrameWidth, int& nFrameHeight, int& nFrameCount);    
    
#if HALCON_VISION_KEY
protected:
    CDialogEx* m_pVisionSetDlg;
    IVisionEvent* m_pVisionEvent = nullptr;
 
public:
    void            DispAllResult(void);
    void            SetFrameRegion(void);
 
public:
    static void        onMsgVisionEvent(int code, int eDir);
    static void     onMsgLogEvent(int level, std::string strText);
#endif // HALCON_VISION_KEY
 
protected:
    CvPoint2D32f    Get_MarkCenter(IplImage *IpScr,CvRect roi,int nMode,int nOffSet = 20);
    CvRect            Get_MaxPattern(IplImage *IpScr,CvRect roi,int nMode,int nOffSet = 20); 
 
protected:
    CHardwareSettings            *m_pHardware;
    CGlassRecipe                *m_pRecipe;
    CGlassRecipe                *m_pDlgRecipe;
    CGlass_Data                    *m_pGlassData;
 
    // Dialog..
    CViewRecipeList                *m_pViewRecipeList;        
    CViewLampControl            *m_pviewLightControl;
    CDlgSideDimensionSetting    *m_pViewSideDimensionSetting;
    CDlgSideNotchSetting        *m_pViewSideNotchSetting;
    CDlgSideExceptoinSetting    *m_pViewSideExceptionSetting;
    CDlgSideUserDefectSetting    *m_pViewSideUserDefectSetting;
 
    VectorLinkList                m_VectorLinkList;    
    IViewInterface2Parent        *m_IV2M;    
    
    // Image View Control
    double                        m_dZoom;
    CSliderCtrl                    m_sliderZoom;
 
    CRect                        m_rcFrameImg;
    CScrollBar                    m_ctrlScrollV;
    CScrollBar                    m_ctrlScrollH;
    CEdgeImageViewer            m_frameImg;
 
    // CString                        m_strRecipeName,m_strPPIDName;
 
    eViewCmdSide                m_eSelectSide;
    eViewCmdInsType                m_eSelectInsType;
    emLanguageType                m_eSelectLangType;
 
public:
    void                Init_PanelInfo();
    void                Init_SideInsInfo();
    void                Init_JudgementInfo();
 
    void                Fill_PanelInfo(BOOL bGetData); //(BOOL bWriete);
    void                Fill_SideInsInfo(BOOL bGetData); //(BOOL bWriete);
    void                Fill_JudgementInfo(BOOL bGetData); //(BOOL bWriete);
 
public:
    CGridCtrl                    m_PanelInfo;
    CGridCtrl                    m_SideInspectInfo;
    CGridCtrl                    m_JudgementInfo;
    double                        m_dScanTimeOut;
 
 
public:
    void Init_BitmapInfo();
 
private:
    BITMAPINFO*                    m_pBmInfo;
    BOOL                        m_bTopMarkImageAlloc[MAX_MARKER_COUNT];
    IplImage*                    m_pTopMarkImage[MAX_MARKER_COUNT];
    BOOL                        m_bBotMarkImageAlloc[MAX_MARKER_COUNT];
    IplImage*                    m_pBotMarkImage[MAX_MARKER_COUNT];
public:
    void ClickButtonOpenDimensionSettingView();
    void ClickButtonOpenNotchSettingView();
    void ClickButtonOpenExceptionSettingView();
    void ClickButtonOpenUserDefectSettingView();
    void ClickButtonVisionSetting();
};