|
// ReveiwHistoryDlg.h: 헤더 파일
|
//
|
|
#pragma once
|
|
#include "akFormationMap.h"
|
#include "akGridData.h"
|
#include "AlignDlg.h"
|
#include "akWndArrange.h"
|
#include "DitGlassRawServer.h"
|
#include "GlassRawBase.h"
|
#include "akCore/akFileDB.h"
|
#include "afxcmn.h"
|
#include "akGridCtrl/akGridCtrl.h"
|
#include "akImageView.h"
|
//#include "CameraImageView.h"
|
//#include "CHImageControls/CHRectTracker.h"
|
|
|
#define MAX_COUNT 100
|
/*< LYW 20211025 - #3684 ADD Start >*/
|
enum OFFSETCOUNT {
|
CAM_MAX_COUNT = 20, XPOS_MAX_COUNT = 10, SCAN_MAX_COUNT = 10, PROGRESS_BAR_MAX = 2000
|
};
|
|
#define REVIEW_OFFSET_CONFIGFILE_PATH _T("D:\\DIT_Review\\ReviewServerConfig\\") //210805
|
#define REVIEW_OFFSET_CONFIGFILE_NAME _T("ReviewOffSet.cfg")
|
#define REVIEW_OFFSET_CONFIGFILE_FULL_PATHNAME _T("D:\\DIT_Review\\ReviewServerConfig\\ReviewOffSet.cfg")
|
/*< LYW 20220525 - #4158 ADD Start >*/
|
#define _REVIEW_SERVER_SYSTEM_SETTING_BACKUP_PATH_CPJT _T("\\\\126.100.100.5\\d\\DIT Back up\\DIT Review\\ReviewServerConfig")
|
/*< LYW 20220525 - #4158 ADD End >*/
|
#define REVIEW_OFFSET_BACKUP_FORDER_NAME _T("OffsetBackup")
|
#define REVIEW_OFFSET_BACKUP_FORDER_PATH _T("D:\\DIT_Review\\ReviewServerConfig\\OffsetBackup\\")
|
|
/*< LYW 20211111 - #3766 ADD Start >*/
|
#define COPYDATA_REVIEWHISTORYOR2REVIEWSYSTEM 1800
|
/*< LYW 20211111 - #3766 ADD End >*/
|
/*< LYW 20211025 - #3684 ADD End >*/
|
|
struct _DefectList
|
{
|
int m_nFileTime;
|
CString m_strFileName;
|
CString m_strLoading;
|
CString m_strGlassID;
|
CString m_strPPID;
|
int m_nReviewCount;
|
int m_nAllCount;
|
CString m_strJudge;
|
};
|
|
/*< LYW 20211025 - #3684 ADD Start >*/
|
struct OffSetInfo
|
{
|
int nXposIndex;
|
int nScanIndex;
|
int nCamIndex;
|
double dXposMax;
|
double dXposMin;
|
double dYposMax;
|
double dYposMin;
|
double dXoffSetValue;
|
double dYoffSetValue;
|
BOOL bCheckSave;
|
|
};
|
typedef std::vector<OffSetInfo> VecOffSetData;
|
typedef std::vector<VecOffSetData> VecOffSetScanData;
|
typedef std::vector<VecOffSetScanData> VecOffSetCameraInfo;
|
/*< LYW 20211025 - #3684 ADD End >*/
|
|
/*< LYW 20211029 - #3684 ADD Start >*/
|
DWORD RunThreadReviewHistory(LPVOID param);
|
/*< LYW 20211029 - #3684 ADD End >*/
|
|
// CReveiwHistoryDlg 대화 상자
|
class CReveiwHistoryDlg : public CDialogEx
|
{
|
// 생성입니다.
|
public:
|
CReveiwHistoryDlg(CWnd* pParent = nullptr); // 표준 생성자입니다.
|
/*< LYW 20211029 - #3684 ADD Start >*/
|
~CReveiwHistoryDlg(void);
|
/*< LYW 20211029 - #3684 ADD End >*/
|
|
// 대화 상자 데이터입니다.
|
#ifdef AFX_DESIGN_TIME
|
enum { IDD = IDD_DLG_REVIEWHISTORY };
|
#endif
|
|
protected:
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 지원입니다.
|
|
public:
|
CFont m_Filelistfont;
|
CFont m_Defectfont;
|
|
_DefectDisplayOption m_DefectDisplayOption;
|
CakFormationMap m_FormationMap;
|
akDefectFormation m_Formation;
|
CString m_strRawFilePath;
|
CakWndArrange m_WndArrange;
|
|
CakImageView m_ImageView;
|
|
CAlignDlg* m_pDlgAlign;
|
|
CakGridCtrl m_gridMultiLIst;
|
std::vector<CString> m_vecStrGridMultiHeader;
|
|
CakGridCtrl m_gridReviewList;
|
std::vector<CString> m_vecStrGridReviewHeader;
|
std::vector<CString> m_vecStrGridReviewList;
|
std::vector<CString> m_vecStrGridReviewPath;
|
std::vector<CString> m_vecStrGridTimeList;
|
std::vector<_DefectList> m_vecStrDefectList;
|
|
CakGridCtrl m_gridDefectInfo;
|
std::vector<CString> m_vecStrGridDefectHeader;
|
|
CakGridCtrl m_gridGlassInfo;
|
std::vector<CString> m_vecStrGridGlassHeader;
|
|
std::vector<CString> m_vecStrReviewTemp;
|
std::vector<_akFormation*> m_vecSortForm;
|
|
std::vector<_akDefect> m_vectest;
|
|
CImage m_DefectImage;
|
//LYW 20210825 #3486 ADD START
|
CImage m_DefectRotateImage;
|
//LYW 20210825 #3486 ADD END
|
CImage m_ReviewImage;
|
|
CRect m_picture_rect;
|
CRect m_picture_rect2;
|
|
CImage m_AlignFirst;
|
CImage m_AlignSecend;
|
|
CRect m_Align_rect;
|
CRect m_Align_rect2;
|
|
CButton m_chkAllDefect;
|
CButton m_chkReviewDefect;
|
CButton m_chkMuti;
|
CButton m_chkSingle;
|
|
CSliderCtrl m_sldImg;
|
CEdit m_ctrCount;
|
|
CStatic m_ctrReviewImage;
|
|
CEdit m_ctlFileCount;
|
|
CProgressCtrl m_ctlProgress;
|
|
CakGridCtrl m_ctrlGridGlassList;
|
|
/*< LYW 20211018 - #3684 ADD Start >*/
|
//CurrentDefect, Offset 계산 사용
|
int m_dCurDefectIdx;
|
int m_dCurDefectID;
|
/*< LYW 20211018 - #3684 ADD End >*/
|
|
/*< LYW 20211028 - #3684 ADD Start >*/
|
CTime m_LastSaveOffsetTime;
|
CTime m_CurrentResultFileTime;
|
/*< LYW 20211028 - #3684 ADD End >*/
|
/*< LYW 20211029 - #3684 ADD Start >*/
|
DWORD m_ThreadId;
|
/*< LYW 20211029 - #3684 ADD End >*/
|
|
// tracker
|
BOOL m_bDrawTracker;
|
CPoint m_ptTrackerStart;
|
//CCHRectTracker m_rectTracker;
|
|
// Scroll Pos
|
int m_nVScroll;
|
int m_nHScroll;
|
// Max Scroll Pos
|
int m_nMaxVScroll;
|
int m_nMaxHScroll;
|
|
///////////////////////////////////////////////////////
|
CDitGlassRawServer m_Server;
|
CGlassRawBase* m_pGlassRawMaker;
|
CgrmGlassRawData m_GlassRawDataBuffer;
|
///////////////////////////////////////////////////////
|
|
int m_nSelectedCol;
|
int m_nSelectedRow;
|
|
char m_strConfigFile[MAX_PATH];
|
|
bool m_bDefectAll;
|
bool m_bFirst;
|
int m_nCount;
|
|
int m_nGlassSelect;
|
int m_nFileCount;
|
int m_nSelectFile[105];
|
int m_nDefectSize[105];
|
int m_nCellSize[105];
|
int m_nCellSizeTemp[105];
|
int m_nImageSize[105];
|
int m_nSizeDefect;
|
int m_nSizeImage;
|
int m_nDefectCount;
|
int m_nImageCount;
|
int m_nCellCount;
|
|
BOOL m_bAsending;
|
|
struct _InitOption
|
{
|
int m_nMaxDataNumCell;
|
int m_nMaxDataNumDefect;
|
|
int m_nSelectRawType;
|
|
char m_strLogFilePath[256];
|
|
int m_bUseStack;
|
char m_strStackLocalPath[256];
|
char m_strStackEquipID[32];
|
char m_strStackParam1[32];
|
char m_strStackParam2[32];
|
}m_ConfigOption;
|
|
// 구현입니다.
|
protected:
|
HICON m_hIcon;
|
|
// 생성된 메시지 맵 함수
|
virtual BOOL OnInitDialog();
|
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
afx_msg void OnPaint();
|
afx_msg HCURSOR OnQueryDragIcon();
|
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
|
DECLARE_MESSAGE_MAP()
|
|
void AddVecFileHeader();
|
void AddVecGlassHeader();
|
void AddVecDefectHeader();
|
|
void SlideInit();
|
|
void InitGridReviewLIst(CakGridCtrl* pGrid, UINT nRectCtrlID);
|
void InitGridGlassLIst(CakGridCtrl * pGrid, UINT nRectCtrlID);
|
void InitGridDefectLIst(CakGridCtrl* pGrid, UINT nRectCtrlID);
|
|
void CreateUserDirectory();
|
void CreateUserClass();
|
void DestroyUserClass();
|
|
void getDispInfoGlass(int nCol, int nRow, CString* pStrData);
|
void getDispInfoGlassInfo(int nCol, int nRow, CString * pStrData);
|
void getDispInfoDefect(int nCol, int nRow, CString* pStrData);
|
|
public:
|
afx_msg void OnBnClickedButtonMapviewFit();
|
afx_msg void OnDestroy();
|
afx_msg LRESULT OnMapDefectSelected(WPARAM wParam, LPARAM lParam);
|
afx_msg LRESULT OnDisplayWarning(WPARAM wParam, LPARAM lParam);
|
afx_msg LRESULT OnMapDefectMouseOver(WPARAM wParam, LPARAM lParam);
|
afx_msg LRESULT OnListDefectSelected(WPARAM wParam, LPARAM lParam);
|
/*< LYW 20211018 - #3684 ADD Start >*/
|
afx_msg LRESULT OnImageClick(WPARAM wParam, LPARAM lParam);
|
/*< LYW 20211018 - #3684 ADD End >*/
|
afx_msg void OnSize(UINT nType, int cx, int cy);
|
|
afx_msg void OnOptionPathsetting();
|
afx_msg void OnViewAlldefect();
|
afx_msg void OnViewReviewdefect();
|
afx_msg void OnAlignView();
|
afx_msg void OnBnClickedBtnFindBin();
|
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
|
afx_msg void OnChangeEditCount();
|
|
afx_msg void OnClickedChkAllDefect();
|
afx_msg void OnClickedChkMuti();
|
afx_msg void OnClickedChkReviewDefect();
|
afx_msg void OnClickedChkSingle();
|
afx_msg void OnChangeEditFileCount();
|
|
afx_msg void OnBnClickedButton3();
|
|
virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
|
|
void FileTime(CString strPath);
|
void OpenFileHeader(CString strPath, CString strFullPath);
|
void BinFileOpen(int nCount);
|
void OnCbnSelchangeComboRawtype();
|
/*< LYW 20211111 - #3766 ADD Start >*/
|
void DrawInsViewCenterLine(CPaintDC *pDC);
|
/*< LYW 20211111 - #3766 ADD End >*/
|
|
/*< LYW 20211025 - #3684 ADD Start >*/
|
afx_msg void OnBnClickedButtonOffsetApply();
|
afx_msg void OnBnClickedButtonOffsetSave();
|
BOOL LoadOffset(CString strFilePath);
|
BOOL SaveOffset();
|
/*< LYW 20211111 - #3766 ADD Start >*/
|
BOOL SendMsg2ReviewSystem();
|
/*< LYW 20211111 - #3766 ADD End >*/
|
BOOL ApplyOffset(int nModuleidx, int nCamIndex, int ScanIndex, double dXOffsetValue, double dYOffsetValue);
|
BOOL SetInputOffSet(int nModuleidx, int nCamIndex, int ScanIndex, int nXposIndex, double dXOffsetValue, double dYOffsetValue, double dXposMin, double dXposMax, BOOL bCheckSave = 0);
|
void InitDataInfo();
|
OffSetInfo GetOffSetInfo(int nMoudleidx, int nCamIndex, int ScanIndex, int nXposIndex);
|
|
int m_nCameraCount;
|
int m_nScanCount;
|
int m_XposCount;
|
double m_dWarnStandard;
|
double m_dHardStandard;
|
int m_nCurModelIdx;
|
|
/*< LYW 20211025 - #3684 ADD End >*/
|
|
//Xpos 위치별 실제 Offset Data 를 가지고 있는 Vector
|
VecOffSetData m_vecOffSetData;
|
//Scan Index를 통한 OffSet Data 를 관리하기위한 Vector
|
VecOffSetScanData m_vecOffSetScanData;
|
//CamIndex를 통한 관리를 위한 Vector module 0
|
VecOffSetCameraInfo m_vecOffSetCameraInfo;
|
//CamIndex를 통한 관리를 위한 Vector module 1
|
VecOffSetCameraInfo m_vecOffSetCameraInfo2;
|
|
void ShowProgressBar();
|
void setDefectShow(int nDefectID, BOOL bEnsureVisible);
|
void ImageShow(int nDefectID);
|
|
void SetScrollSetting();
|
void SetScrollRest();
|
|
void Imagenoload();
|
|
//LYW 20210825 #3486 ADD START
|
void ImageRotate(CImage& SrcImage, CImage& DstImage, double degree = 180.0);
|
//LYW 20210825 #3486 ADD END
|
|
/*< LYW 20211028 - #3684 ADD Start >*/
|
void UpdateLastSaveOffsetTime(CString FileName);
|
CTime GetCurrentResultFileTime(CString FileName);
|
/*< LYW 20211028 - #3684 ADD End >*/
|
|
BOOL GetCheckFileLoad(int nCount);
|
|
void GlassInfoRest();
|
BOOL MultiSelectCheck(int nSelectCount);
|
int MultiInsert(int nSelectCount, int nDataCount);
|
void InitSelectGlass(int nSelectCount);
|
|
void AddVecDataImage(int nDataCount);
|
void AddVecDataDefct(int nDataCount);
|
void AddVecDataDefectAll(int nDataCount);
|
void AddVecDataDefct2(int nDataCount/*, int nRawCount*/);
|
void AddVecDataDefectAll2(int nDataCount/*, int nRawCount*/);
|
void AddVecGlassData(int nCount);
|
void AddVecCellData(int nCellCount);
|
void AddVecDateSorting(int nDataCount);
|
void AddVecImageSorting(int nDataCount);
|
void AddVecCellSorting(int nCellCount);
|
|
void SelectCell(int nDataCount);
|
|
void SortFileList(int nCol);
|
void SortListDefect(int nCol);
|
|
void SetDefectCount() { m_nDefectCount = m_nDefectCount + 1; }
|
int GetDefectCount() { return m_nDefectCount; }
|
|
void SetImageCount() { m_nImageCount = m_nImageCount + 1; }
|
int GetImageCount() { return m_nImageCount; }
|
|
void SetCellCount() { m_nCellCount = m_nCellCount + 1; }
|
int GetCellCount() { return m_nCellCount; }
|
|
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
|
int m_nEditCamIdx;
|
int m_nEditScanIdx;
|
double m_dEditOffsetX;
|
double m_dEditOffsetY;
|
CString m_strGantryIdx;
|
/*< LYW 20211028 - #index ADD Start >*/
|
CString m_TextLastSaveOffsetTime;
|
/*< LYW 20211028 - #index ADD End >*/
|
CButton m_CheckInsViewCenterLine;
|
afx_msg void OnBnClickedCheckInsViewCenterLine();
|
};
|