From 1fd49a571338b6c946bb05dcdf59ec1468df5c50 Mon Sep 17 00:00:00 2001
From: SWK <sungwk82@diteam.co.kr>
Date: 목, 22 12월 2022 12:31:43 +0900
Subject: [PATCH] ongoing50 #4403 CF AOI Reveiw TACT 지연 개선 1. 일정 시간 유지 신호 처리 시 동기화로 인한 불합리 개선 - 일정 시간 유지 필요 시 스래드풀 작업큐를 이용하여 루프처리 방식으로 변경 - 유지 신호 처리 중 출력 신호 발생 시 작업큐에 등록하여 유지 신호와 결합하여 출력 처리 2. FDC 보고 항목 중 SW 버전 체크 루프 불합리 개선 - 프로그램 시작 시 연동 프로그램 버전 체크 간 실행되지 않는 프로그램이 있는 경우 무한 루프 발생 - 무한 루프로 인한 CPU 점유 상승->루프 중간 Sleep추가 및 코드 간소화 3. 로그 메시지에 시간 ms단위 추가(황만수SM 작업 내역 병합)

---
 ReviewHistory/ReveiwHistory/StackResultCPJT.h |   87 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 87 insertions(+), 0 deletions(-)

diff --git a/ReviewHistory/ReveiwHistory/StackResultCPJT.h b/ReviewHistory/ReveiwHistory/StackResultCPJT.h
new file mode 100644
index 0000000..80da903
--- /dev/null
+++ b/ReviewHistory/ReveiwHistory/StackResultCPJT.h
@@ -0,0 +1,87 @@
+#pragma once
+
+#include <vector>
+#include "akCore/akFileUtil.h"
+
+
+//enum Judgement { Judge_OK = 0, Judge_RP, Judge_NG, Judge_TR, Judge_PR, Judge_PT, Judge_Review, Judge_RC, Judge_Size, Judge_VI, Judge_Rework, Judge_Unknown };//2016.07.13 LHS Judge_Size 추가
+
+struct _StackDefectCPJT
+{
+	int	m_nDefectID			;
+	//char	m_strCellID[32]	;
+	CString m_strCellName	;
+	int		m_nPosX			;
+	int		m_nPosY			;
+	int		m_nSize			;
+	int		m_nUmSizeX		;
+	int		m_nUmSizeY		;
+	int		m_nDefectRScale	;
+	CString	m_strDefectGrade;
+	CString m_strDefectType ;
+	int		m_nStackCnt		;
+	CString m_strStackStep	;
+	//char	m_strJudge[16]	;
+	//char	m_strCode[16]	;
+};
+
+class CStackResultCPJT
+{
+public:
+	CStackResultCPJT(void);
+	virtual ~CStackResultCPJT(void);
+protected:
+	enum emStackProcessState
+	{
+		SPS_StateIdle = 0,
+		SPS_StateFileRead, //읽기 수행 중
+		SPS_ResultReadOK,
+		SPS_ResultReadFail,
+		SPS_CmdFileRead, //읽기 명령 수행
+		SPS_CmdFileStop, //읽기 명령 수행 중지
+
+		SPS_Num
+	};
+public:
+	void clear()
+	{
+		m_vecStackDefect.clear();
+	}
+
+	BOOL StackFileReadStart(char* pGlassID);
+	BOOL StackFileReadStop(BOOL bWait=TRUE);
+	BOOL IsRead() { return m_nProcessState == SPS_ResultReadOK?TRUE:FALSE; }
+
+	int GetDefectNum() { return (int)m_vecStackDefect.size();}
+	_StackDefectCPJT* GetDefect(int i) { return &m_vecStackDefect[i]; }
+	
+	BOOL readOptionFile(char* pFileName = NULL);
+
+	BOOL getStackUse(){return m_bStackUse;};
+	char* getStackEquipID(){return m_strEquipID;};
+	char* getStackOperID(){return m_strParam1;};
+	char* getStackLocalPath(){return m_strLocalPath;};
+protected:
+	BOOL openFile( char* pGlassID );
+
+	static void threadStackFileRead(void* pArg);
+	int	m_nThreadStackFileReadFlag;
+	
+protected:
+	char m_strConfigFile[MAX_PATH];
+	BOOL m_bStackUse;
+	char m_strLocalPath[MAX_PATH];
+	char m_strEquipID[32];
+	char m_strParam1[32]; //operid
+
+	emStackProcessState m_nProcessState;//-1:읽기실패,0:Idle, 1:읽기성공, 2:읽기시도(읽기중)
+	std::vector<_StackDefectCPJT> m_vecStackDefect;
+
+	CString	m_strGlassID;
+protected:
+	char* getParsingData(char* pBuf, int nLen, CString* pOutData);
+	char* getParsingData(char* pBuf, int nLen, int* pOutData);
+
+
+
+};

--
Gitblit v1.9.3