From 3ce48f6dbeb537e252edb0d62c88a28796e36674 Mon Sep 17 00:00:00 2001
From: SWK <sungwk82@diteam.co.kr>
Date: 월, 26 12월 2022 15:04:42 +0900
Subject: [PATCH] ongoing60 #4403 CF AOI Review TACT 지연 개선 1. 신호 출력 방식 재개선  - 유지 시간이 없는 신호는 바로 출력 진행하도록 변경 2. 불필요 Delay 제거 및 시퀀스 변경  - 얼라인 측정 종료 처리 간 제어 신호 먼저 출력 후 카메라 Stop으로 변경  - 물류 정보 읽기 처리 후 1000ms Delay 삭제  - 얼라인 측정 시작(카메라 Live Start) 후 Delay 300ms -> 100ms(이미지 들어오는 시간 확보 필요)  - ReadRawFile 처리 시작 전 500ms Delay 삭제  - Path Scheduling 완료 후 Review Ready 신호 출력 전 1000ms Delay 삭제 3. 버그 수정  - 이미지 저장 경로 생성 간 예외 처리 부분 버그 수정 4. 로그 시간 출력 불합리 개선  - 로그 시간이 파일 출력 시점으로 작성되어 로그 스래드 지연 시 시간이 맞지 않는 불합리 있음  - 로그 시간은 로그 발생 시점에 시간 저장, 해당 시간 이용하여 파일에 기록하도록 변경

---
 ReviewHistory/include/akSTL/akQueue.h |  100 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 100 insertions(+), 0 deletions(-)

diff --git a/ReviewHistory/include/akSTL/akQueue.h b/ReviewHistory/include/akSTL/akQueue.h
new file mode 100644
index 0000000..92c0046
--- /dev/null
+++ b/ReviewHistory/include/akSTL/akQueue.h
@@ -0,0 +1,100 @@
+#pragma once
+
+
+#include "akSTLLinker.h"
+#include <memory.h>
+
+	class AKSTL_DLLSPEC CakQueue
+	{
+	public:
+		CakQueue(void);
+		~CakQueue(void);
+
+	public:
+		bool empty()
+		{	
+			return m_nDataSize == 0 ? true : false;
+		}
+
+		size_t size()
+		{
+			return m_nDataSize;
+		}
+
+		char* front()
+		{
+			return &m_pQueue[m_stPoint];
+		}
+
+		char* back()
+		{
+			return &m_pQueue[m_stPoint+m_nDataSize-1];
+		}
+
+		void push(char _Val)
+		{
+			if(m_stPoint+m_nDataSize >= m_nMemSize)
+			{
+				size_t newsize = m_nMemSize*2;
+				char* pNewQueue = new char [newsize];
+				memcpy(pNewQueue, &m_pQueue[m_stPoint], sizeof(char)*(m_nMemSize-m_stPoint));
+				m_nMemSize = newsize;
+				m_stPoint = 0;
+				char* pTemp = m_pQueue;
+				m_pQueue = pNewQueue;
+				delete [] pTemp;
+
+			}
+
+			
+			m_pQueue[m_stPoint+m_nDataSize] = _Val;
+			m_nDataSize++;
+		}
+
+		void push(char* pVal, int nSize)
+		{
+			if(m_stPoint+m_nDataSize + nSize >= m_nMemSize)
+			{
+				size_t newsize = m_nMemSize+nSize*2;
+				char* pNewQueue = new char [newsize];
+				memcpy(pNewQueue, &m_pQueue[m_stPoint], sizeof(char)*(m_nMemSize-m_stPoint));
+				m_nMemSize = newsize;
+				m_stPoint = 0;
+				char* pTemp = m_pQueue;
+				m_pQueue = pNewQueue;
+				delete [] pTemp;
+
+			}
+
+			//m_enPoint++;
+			memcpy(&m_pQueue[m_stPoint+m_nDataSize], pVal, sizeof(char)*nSize);
+			m_nDataSize+=nSize;
+		}
+
+		void pop()
+		{
+			m_stPoint++;
+			m_nDataSize--;
+
+			if(m_nDataSize == 0)
+			{
+				m_stPoint=m_nDataSize=0;
+			}
+		}
+		void pop(int nSize)
+		{
+			m_stPoint += nSize;
+			m_nDataSize -= nSize;
+			
+			if(m_nDataSize == 0)
+			{
+				m_stPoint=m_nDataSize=0;
+			}
+		}
+	private:
+		size_t m_stPoint; //메모리 시작위치
+		size_t m_nDataSize; //메모리 끝 위치
+		size_t m_nMemSize; //할당된 메모리 사이즈
+		char*  m_pQueue;
+		
+	};

--
Gitblit v1.9.3