#pragma once
|
|
#include <vector>
|
#include "Global_Define.h"
|
#include "Defect.h"
|
#include "GlassRecipe.h"
|
#include "HardwareSettings.h"
|
#include "Side_Data.h"
|
|
class CGlass_Data
|
{
|
public:
|
CGlass_Data(void);
|
virtual ~CGlass_Data();
|
|
void ResetGlass();
|
void ResetDefect();
|
BOOL SetDefect(CDefect* pDefect);
|
CDefect* GetDefect_NG(int nDefecIdx);
|
CDefect* GetDefect_OK(int nDefecIdx);
|
MapDefect* GetMapDefect_NG() { return &m_MapDefect_NG; }
|
MapDefect* GetMapDefect_OK() { return &m_MapDefect_OK; }
|
int GetTotalDefectCount() { return m_nCurDefectIdx_Total;}
|
int GetDefectCount_NG() { return m_nCurDefectIdx_NG;}
|
int GetDefectCount_OK() { return m_nCurDefectIdx_OK;}
|
|
int GetJudgeDefectCount() { return m_nJudgeDefectCount;}
|
|
//////////////////////////////////////////////////////////////////////////
|
// Glass Data
|
BOOL SetHardwareRecipe(CHardwareSettings *pHardware) { m_pHardwareSetting = pHardware;}
|
void SetGlassRecipe(CGlassRecipe *pRecipe) { m_pGlassRecipe=pRecipe;}
|
CGlassRecipe* GetGlassRecipe() { return m_pGlassRecipe; }
|
CHardwareSettings* GetHardwareRecipe() { return m_pHardwareSetting;}
|
|
void SetLoadingTime();
|
void SetUnloadingTime();
|
void SetScanStartTime();
|
void SetScanEndTime();
|
CTime GetLoadingTime() { return m_tLoadingTime; }
|
CString GetLoadingTimeString() { return m_strLoadingTime; }
|
CString GetUnloadingTime() { return m_strUnloadingTime; }
|
CString GetScanStartTime() { return m_strScanStartTime; }
|
CString GetScanEndTime() { return m_strScanEndTime; }
|
CString GetScanEndTimeFileName() { return m_strScanEndTimeFileName; }
|
CString GetLoadingTimeFileName() { return m_strLoadingTimeFileName; }
|
CString GetLoadingDayFileName() { return m_strLoadingDayFileName; }
|
|
// short *GetGlassResultInfo(){return m_nGlassResult;}
|
|
void GetStageTheta(int iStage,short &nLongTheta,short &nShortTheta);
|
void SetStageTheta(int iStage,BOOL bLong,short nTheta);
|
|
BOOL IsPostProcStart() {return m_bPostProcessing;}
|
void SetPostProc(BOOL bSet) {m_bPostProcessing = bSet;}
|
|
void SetScanStart(BOOL bStart);
|
BOOL GetScanStart(){return m_bScanStart;}
|
void SetScanEnd(int nScanIdx,BOOL bIsEnd);
|
BOOL GetScanEnd(int nScanIdx);
|
void SetScanStartCount(int nCount){m_nStartCount=nCount;}
|
int GetScanStartCount(){return m_nStartCount;}
|
int GetScanEndCameraCount();
|
void SetScanEndCamera(int iCam,int iScan);
|
|
CSide_Data* GetSideData(DimensionDir eDim) {return &m_SideData[(int) eDim];}
|
|
BOOL GetInspectComplete() {return m_bInspectComplete;}
|
void SetInspectComplete(BOOL bSet) {m_bInspectComplete = bSet;}
|
BOOL GetGlassJudge() {return m_bJudgeNG;}
|
void SetGlassJudge(BOOL bNG) {m_bJudgeNG = bNG;}
|
|
void SetStageNo(int nStageNo);
|
int GetStageNo() {return m_nStageNo;}
|
|
BOOL GetSimulation() {return m_bSimulation;}
|
void SetSimulation(BOOL bSimul) {m_bSimulation = bSimul;}
|
|
BOOL TrimString(const CString& strDataInput, std::vector<CString>& arrString, const CString& strSign = _T(","));
|
int DecodePose(CString strDirection);
|
int DecodeDefectPose(CDefect_Info *pDefect, CString& strResult, const int defaultInt = -1);
|
int PointToLineDistance(CPoint A, CPoint B, CPoint C);
|
CPoint RotatePoint(CPoint p, double angle);
|
CPoint TransformToGlobal(DimensionDir eDir, CPoint localPoint);
|
|
protected:
|
// Setting Params
|
CGlassRecipe *m_pGlassRecipe; // Glass Recipe
|
CHardwareSettings *m_pHardwareSetting; // Hardware Setting
|
|
// Side Data
|
CCriticalSection m_csSideData[MAX_SIDE_COUNT];
|
CSide_Data m_SideData[MAX_SIDE_COUNT];
|
|
// Judgement
|
BOOL m_bInspectComplete;
|
BOOL m_bJudgeNG; // TRUE : NG, FALSE : OK
|
// Defect
|
MapDefect m_MapDefect_NG; // 搬窃沥焊 (NG)
|
MapDefect m_MapDefect_OK; // 搬窃沥焊 (OK)
|
|
int m_nCurDefectIdx_Total;
|
int m_nCurDefectIdx_NG;
|
int m_nCurDefectIdx_OK;
|
|
int m_nJudgeDefectCount;
|
CCriticalSection m_csGlassDefect;
|
|
// Time
|
CTime m_tLoadingTime;
|
CString m_strLoadingTime;
|
CString m_strUnloadingTime;
|
CString m_strScanStartTime;
|
CString m_strScanEndTime;
|
|
//park
|
CString m_strScanEndTimeFileName;
|
CString m_strGlassResult;
|
CString m_strLoadingTimeFileName;
|
CString m_strLoadingDayFileName;
|
|
// Stage theta 焊沥
|
short m_nStageLongTheta[2];
|
short m_nStageShortTheta[2];
|
|
BOOL m_bScanEndCamera[MAX_CAMERA_COUNT][MAX_SCAN_COUNT];
|
BOOL m_bScanStart;
|
BOOL m_bScanEnd[MAX_SCAN_COUNT];
|
BOOL m_bPostProcessing;
|
|
CCriticalSection m_csProfileData;
|
int m_nStartCount;
|
CCriticalSection m_csInsEnd;
|
|
int m_nStageNo;
|
BOOL m_bSimulation;
|
};
|