From 4cc9fd5bb0c0224e88ca702e6e736e1bc138dce6 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期四, 20 二月 2025 11:36:16 +0800
Subject: [PATCH] 1.测试通过Equipment Mode Change Report流程;

---
 SourceCode/Bond/Servo/CStep.cpp |   20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/SourceCode/Bond/Servo/CStep.cpp b/SourceCode/Bond/Servo/CStep.cpp
index 6f98ac8..3873ddf 100644
--- a/SourceCode/Bond/Servo/CStep.cpp
+++ b/SourceCode/Bond/Servo/CStep.cpp
@@ -19,6 +19,7 @@
 		m_hSignalOn = ::CreateEvent(NULL, TRUE, FALSE, NULL);
 		m_hSignalOff = ::CreateEvent(NULL, TRUE, FALSE, NULL);
 		m_nCurStep = 0;
+		m_pCclink = nullptr;
 		InitializeCriticalSection(&m_criticalSection);
 	}
 
@@ -33,6 +34,11 @@
 		m_hSignalOff = nullptr;
 
 		DeleteCriticalSection(&m_criticalSection);
+	}
+
+	void CStep::setCcLink(CCCLinkIEControl* pCcLink)
+	{
+		m_pCclink = pCcLink;
 	}
 
 	void CStep::init()
@@ -79,20 +85,24 @@
 
 				// 1.读取数据
 				nextStep();
-				TRACE("m_nCurStep:%d\n", m_nCurStep);
-
+				ASSERT(m_pCclink);
+				StationIdentifier station(0, 255);
+				DWordContainer dc;
+				m_pCclink->ReadDWordData(station, DeviceType::W, 0x4a8c, 1, dc);
+				int nState = dc.at(0);
+				TRACE(">> nState:%d\n", nState);
 
 				// 2.给对方写ON
 				nextStep();
-				TRACE("m_nCurStep:%d\n", m_nCurStep);
+				m_pCclink->SetBitDevice(station, DeviceType::B, 0x30);
 
 
 				// 3.等待对方OFF
 				nextStep();
-				TRACE("m_nCurStep:%d\n", m_nCurStep);
 				int nStep3Ret = ::WaitForSingleObject(m_hSignalOff, TIMEOUT * 1000);
 				if (nStep3Ret == WAIT_TIMEOUT) {
 					timeout();
+					m_pCclink->ResetBitDevice(station, DeviceType::B, 0x30);
 					goto RESET;
 				}
 				ResetEvent(m_hSignalOff);
@@ -100,6 +110,7 @@
 
 				// 4.给对方写OFF
 				nextStep();
+				m_pCclink->ResetBitDevice(station, DeviceType::B, 0x30);
 				TRACE("m_nCurStep:%d\n", m_nCurStep);
 
 
@@ -125,7 +136,6 @@
 
 	void CStep::onSignal(BOOL bSignal)
 	{
-		TRACE(">>>>>>>>>>>>>>>>>>>> setSignal:%s\n", bSignal ? "ON" : "OFF");
 		Lock();
 		if (m_nCurStep == 0 && bSignal) {
 			SetEvent(m_hSignalOn);

--
Gitblit v1.9.3