From 0c66940a8e2cf64c9890519901f433b3668216b6 Mon Sep 17 00:00:00 2001 From: KEJ <kimeungju@diteam.co.kr> Date: 수, 26 6월 2024 15:13:18 +0900 Subject: [PATCH] Ongoing80 #4942 CF AOI Review Bin File Loading 실패 개선 1. GlassRawMessenger 동기화 2. BIN파일 FindFile 제거(RawMessenger, Review 공통) 3. Unloading 시 BIN파일 제거 --- ReviewHistory/ReveiwHistory/ReveiwHistoryDlg.h | 395 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 395 insertions(+), 0 deletions(-) diff --git a/ReviewHistory/ReveiwHistory/ReveiwHistoryDlg.h b/ReviewHistory/ReveiwHistory/ReveiwHistoryDlg.h new file mode 100644 index 0000000..55a2399 --- /dev/null +++ b/ReviewHistory/ReveiwHistory/ReveiwHistoryDlg.h @@ -0,0 +1,395 @@ +癤� +// 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") +#define MOTOR_OFFSET_CONFIGFILE_FULL_PATHNAME _T("D:\\DIT_Review\\ReviewServerConfig\\MotorOffSet.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(); +}; -- Gitblit v1.9.3