From b4a18bfef6cb9f5d48a12b455dfa78f9ef67e348 Mon Sep 17 00:00:00 2001
From: kojingeun <diteam.co.kr>
Date: 수, 07 6월 2023 10:29:07 +0900
Subject: [PATCH] Revert "Ongoing50 #4517 CF AOI Review 결과 파일 찾기 실패 개선"

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

diff --git a/ReviewSystem/CHSignalControls/SignalControl_DitSharedMemorySync.cpp b/ReviewSystem/CHSignalControls/SignalControl_DitSharedMemorySync.cpp
index bc35c12..a9a3bf6 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)
 {
@@ -262,19 +284,24 @@
 	}
 	else if (GetTickCount64() - signalData.ullStartTick < signalData.dwOnTime)	// Check Holding Time
 	{
+		//< KEJ 20230310 - #4403 ADD >
+		Sleep(1);
 		CSignalData NewSignalData = signalData;
 		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