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

diff --git a/ReviewHistory/include/akCore/akFileDB.h b/ReviewHistory/include/akCore/akFileDB.h
new file mode 100644
index 0000000..1bef2aa
--- /dev/null
+++ b/ReviewHistory/include/akCore/akFileDB.h
@@ -0,0 +1,80 @@
+#pragma once
+
+#include "akCoreLinker.h"
+
+#include <atlstr.h>
+#include <map>
+#include <vector>
+#include <Windows.h>
+
+//hash_map을 사용하는 경우
+//1. 많은 자료를 저장하고, 검색 속도가 빨라야 한다.
+//2. 너무 빈번하게 자료를 삽입, 삭제 하지 않는다. 
+#define ITEMSEP "_#" //구분자
+
+#define mapIDVal std::map<CString, CString>
+#define mapIDValIt mapIDVal::iterator
+
+
+
+class AKCORE_DLLSPEC CakFileDB
+{
+public:
+	CakFileDB(void);
+	~CakFileDB(void);
+
+	bool openfile(char* filename);
+	bool savefile(char* filename);
+	void clear();
+
+	void setWriteEnter(); //동기화 객체 시작
+	void setWriteRelease();  //동기화 객체 중지
+
+	//단일 데이터
+	void setItem(char* strKey, char* strVal);
+	void setItem(char* strKey, int nVal);
+	void setItem(char* strKey, float fVal);
+	void setItem(char* strKey, double dVal);
+	void setItem(char* strKey, long dVal);
+
+	void getItem(char* strKey, CString* strVal, char* strDefaultVal = "");
+	void getItem(char* strKey, char* strVal, char* strDefaultVal = "");
+	void getItem(char* strKey, int* nVal, int nDefaultVal = 0);
+	void getItem(char* strKey, float* fVal, float fDefaultVal = 0);
+	void getItem(char* strKey, double* dVal, double dDefaultVal = 0);
+	void getItem(char* strKey, long* dVal, long dDefaultVal = 0);
+	
+	char* getItemPoint(char* strKey);
+
+	//다중 데이터 관리
+	void setItemClear(char* strKey);
+	int  getItemNum(char* strKey);
+
+	void setItem(int nIndex, char* strKey, char* strVal);
+	void setItem(int nIndex, char* strKey, int nVal);
+	void setItem(int nIndex, char* strKey, float fVal);
+	void setItem(int nIndex, char* strKey, double dVal);
+	
+	void getItem(int nIndex, char* strKey, CString* strVal, char* strDefaultVal = "");
+	void getItem(int nIndex, char* strKey, char* strVal, char* strDefaultVal = "");
+	void getItem(int nIndex, char* strKey, int* nVal, int nDefaultVal = 0);
+	void getItem(int nIndex, char* strKey, float* fVal, float fDefaultVal = 0);
+	void getItem(int nIndex, char* strKey, double* dVal, double dDefaultVal = 0);
+	
+	char* getItemPoint(int nIndex, char* strKey);
+
+	
+
+
+	int deleteItem(char* strKey); //
+	int deleteItem(int nIndex); //
+	 
+	
+
+protected:
+	mapIDVal m_mapData;
+	std::vector<mapIDValIt> m_vecOrder;
+
+	CRITICAL_SECTION m_csAkFileDB;
+
+};

--
Gitblit v1.9.3