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. 로그 시간 출력 불합리 개선  - 로그 시간이 파일 출력 시점으로 작성되어 로그 스래드 지연 시 시간이 맞지 않는 불합리 있음  - 로그 시간은 로그 발생 시점에 시간 저장, 해당 시간 이용하여 파일에 기록하도록 변경

---
 ReviewSystem/CHSignalControls/SignalControl_DitSharedMemorySync.cpp |   41 +++++++++++++++++++++++++++++++++--------
 1 files changed, 33 insertions(+), 8 deletions(-)

diff --git a/ReviewSystem/CHSignalControls/SignalControl_DitSharedMemorySync.cpp b/ReviewSystem/CHSignalControls/SignalControl_DitSharedMemorySync.cpp
index bc35c12..20ec966 100644
--- a/ReviewSystem/CHSignalControls/SignalControl_DitSharedMemorySync.cpp
+++ b/ReviewSystem/CHSignalControls/SignalControl_DitSharedMemorySync.cpp
@@ -191,6 +191,13 @@
 // 		return m_pSignalThread->AddThreadData(signalData);
 // 	}
 // 
+	/*< SWK 20221226 - #4403 ADD Start >*/
+	if (0 == nOnTime)
+	{
+		Write_SendSignal(nAddrIndex, nSignalIndex, wSignalValue != 0);
+		return TRUE;
+	}
+	/*< SWK 20221226 - #4403 ADD End >*/
 	if (m_pSignalThread == NULL) return FALSE;
 
 	CSignalData signalData;
@@ -202,6 +209,21 @@
 	return m_pSignalThread->AddThreadData(signalData);
 	/*< SWK 20221221 - #4403 MOD End >*/
 }
+
+/*< SWK 20221226 - #4403 ADD Start >*/
+inline void CSignalControl_DitSharedMemorySync::Write_SendSignal(int nAddrIndex, int nSignalIndex, bool bOn)
+{
+	int nAddress = m_pSendSignalValueAddr[nAddrIndex];
+	WORD wSendValue = 1 << nSignalIndex;
+
+	WORD wCurValue = 0;
+	CSingleLock localLock(&m_csWriteSignal, TRUE);
+	memcpy(&wCurValue, m_pMemStartAddr + nAddress, sizeof(WORD));
+	if (bOn)	wCurValue |= wSendValue;
+	else		wCurValue &= ~wSendValue;
+	memcpy(m_pMemStartAddr + nAddress, &wCurValue, sizeof(WORD));
+}
+/*< SWK 20221226 - #4403 ADD End >*/
 
 void CSignalControl_DitSharedMemorySync::IST2P_RunThreadProcess(const CSignalData& signalData)
 {
@@ -266,15 +288,18 @@
 		m_pSignalThread->AddThreadData(NewSignalData);
 		return;
 	}
+	/*< SWK 20221226 - #4403 MOD Start >*/
+// 	int nAddress = m_pSendSignalValueAddr[signalData.nAddrIndex];
+// 	WORD wSendValue = 1 << signalData.nSignalIndex;
+// 
+// 	WORD wCurValue = 0;
+// 	memcpy(&wCurValue, m_pMemStartAddr + nAddress, sizeof(WORD));
+// 	if (true == signalData.wSignalValue)	wCurValue |= wSendValue;
+// 	else									wCurValue &= ~wSendValue;
+// 	memcpy(m_pMemStartAddr + nAddress, &wCurValue, sizeof(WORD));
 
-	int nAddress = m_pSendSignalValueAddr[signalData.nAddrIndex];
-	WORD wSendValue = 1 << signalData.nSignalIndex;
-
-	WORD wCurValue = 0;
-	memcpy(&wCurValue, m_pMemStartAddr + nAddress, sizeof(WORD));
-	if (true == signalData.wSignalValue)	wCurValue |= wSendValue;
-	else									wCurValue &= ~wSendValue;
-	memcpy(m_pMemStartAddr + nAddress, &wCurValue, sizeof(WORD));
+	Write_SendSignal(signalData.nAddrIndex, signalData.nSignalIndex, signalData.wSignalValue != 0);
+	/*< SWK 20221226 - #4403 MOD End >*/
 	/*< SWK 20221221 - #4403 MOD End >*/
 }
 

--
Gitblit v1.9.3