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/akCore/akTimeManager.h | 93 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 93 insertions(+), 0 deletions(-) diff --git a/ReviewHistory/include/akCore/akTimeManager.h b/ReviewHistory/include/akCore/akTimeManager.h new file mode 100644 index 0000000..d007cc4 --- /dev/null +++ b/ReviewHistory/include/akCore/akTimeManager.h @@ -0,0 +1,93 @@ +#pragma once + +#include "akCoreLinker.h" +#include <Windows.h> + + +namespace akCore +{ + class AKCORE_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 AKCORE_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