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/backup/akTimeManager.h |   93 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 93 insertions(+), 0 deletions(-)

diff --git a/ReviewHistory/include/akSTL/backup/akTimeManager.h b/ReviewHistory/include/akSTL/backup/akTimeManager.h
new file mode 100644
index 0000000..376df37
--- /dev/null
+++ b/ReviewHistory/include/akSTL/backup/akTimeManager.h
@@ -0,0 +1,93 @@
+#pragma once
+
+#include "akLinker.h"
+#include <Windows.h>
+
+
+namespace akSTL
+{
+	class akSTL_DLLSPEC CakTimeManager
+	{
+	public:
+		enum PlayMode
+		{
+			Play,
+			Stop,
+			Pause,
+			Playing,
+			PlayEnd,
+			SettingTime
+		};
+	public:
+		CakTimeManager(void);
+		virtual ~CakTimeManager(void);
+
+		//시작 중지(구버전) //배속 적용 안받음
+		inline void SetBegin();
+		inline void SetEnd();
+		inline double GetRunTimeSec(); //시작시간 저장하고 종료시간까지의 타임(초단위)
+		inline double GetRunTimeMsec(); //시작시간 저장하고 종료시간까지의 타임(초단위)
+		inline double GetFrameRate();
+
+		//플레이바 기능(신버전)
+		void SetInit();//초기 설정으로 되돌림
+		virtual inline void SetPlay();
+		virtual inline void SetStop();
+		virtual inline void SetTime(int msec);
+		virtual inline void SetPause();
+		
+		
+		virtual inline double GetTime(int type=0); //0=Sec, 1=MSec
+		virtual inline void GetTime(int* h, int* m, int* s, int* ms);
+		virtual inline PlayMode GetPlayMode();
+		virtual inline void SetSpeedRate(double speedrate); //배속 설정(0보다 큰 실수 입력가능)
+		virtual inline double GetSpeedRate(); //배속 설정값 읽기
+
+	protected:
+		LARGE_INTEGER m_Frequency;
+		LARGE_INTEGER m_BeginTime;
+		LARGE_INTEGER m_Endtime;
+
+		double m_PauseTime;
+		double m_LastTime;
+		PlayMode m_PlayState;
+		double m_SpeedRate; //배속
+
+		//콜백 데이터 관리
+	public:
+		typedef void (*MsgCallbackFunc) (int msg, void*);
+		void setMsgCallbackFunc(MsgCallbackFunc userFunc, void* data = NULL)
+		{
+			m_msgCallbackFunc = userFunc;
+			m_MsgCallbackFuncData = data;
+		};
+	protected:
+		void* m_MsgCallbackFuncData;
+		MsgCallbackFunc m_msgCallbackFunc;
+		int m_nSyncObject;
+	};
+
+	class akSTL_DLLSPEC CakTimeManagerAdv : public CakTimeManager
+	{
+	public:
+		CakTimeManagerAdv(void);
+		virtual ~CakTimeManagerAdv(void);
+
+	public:
+		virtual inline void SetPlay();
+		virtual inline void SetTime(int msec);
+		virtual inline void SetStop();
+	protected:
+		void setEnd();//플레이 시간이 최대 시간을 넘었을 경우 호출
+	public:
+		double m_timeMax;
+
+	public:
+		static void threadPlayer(void* arg);
+		int m_flagThreadPlayer;
+
+	private:
+		bool m_bPlaying;
+		
+	};
+}
\ No newline at end of file

--
Gitblit v1.9.3