From d38d98d99e873d0a48e75aa9f8472cff4574c132 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期三, 30 四月 2025 17:46:50 +0800
Subject: [PATCH] 1.添加CEqReadStep, 以后大部分读数据可能要使用这个类,可以简单程序。 2.文档;
---
SourceCode/Bond/Servo/CReadStep.cpp | 28 +++++++++++++++++++++++++---
1 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/SourceCode/Bond/Servo/CReadStep.cpp b/SourceCode/Bond/Servo/CReadStep.cpp
index 7e05c00..787d92a 100644
--- a/SourceCode/Bond/Servo/CReadStep.cpp
+++ b/SourceCode/Bond/Servo/CReadStep.cpp
@@ -22,6 +22,9 @@
m_hReadSignalOff = ::CreateEvent(NULL, TRUE, FALSE, NULL);
m_nSignalType = 0;
m_nCurStep = 0;
+ m_szReturnBuf[1024] = {0};
+ m_nReturnDataSize = 0;
+ m_nReturnDevNo = 0;
}
CReadStep::~CReadStep()
@@ -38,6 +41,11 @@
void CReadStep::setWriteSignalDev(int dev)
{
m_nWriteSignalDev = dev;
+ }
+
+ void CReadStep::setReturnDev(int dev)
+ {
+ m_nReturnDevNo = dev;
}
void CReadStep::onReadSignal(int nSignalType)
@@ -88,16 +96,27 @@
m_pEquipment->onStepEvent(this, STEP_EVENT_READDATA);
}
+ // 0426新增
+ // 1.1,写return code or data
+ if (m_nReturnDataSize > 0) {
+ int nWriteRet = m_pCclink->WriteData(m_station, (short)DeviceType::W,
+ m_nReturnDevNo, m_nReturnDataSize, (short*)m_szReturnBuf);
+ if (0 != nWriteRet) {
+ onTimeout();
+ goto RESET;
+ }
+ }
+
// 2.给对方写ON
nextStep();
- m_pCclink->SetBitDevice(m_station, DeviceType::B, m_nWriteSignalDev);
+ m_pCclink->SetBitDeviceEx(m_station, (long)DeviceType::B, m_nWriteSignalDev);
// 3.等待对方OFF
nextStep();
int nStep3Ret = ::WaitForSingleObject(m_hReadSignalOff, TIMEOUT * 1000);
if (nStep3Ret == WAIT_TIMEOUT) {
- m_pCclink->ResetBitDevice(m_station, DeviceType::B, m_nWriteSignalDev);
+ m_pCclink->ResetBitDeviceEx(m_station, (long)DeviceType::B, m_nWriteSignalDev);
onTimeout();
goto RESET;
}
@@ -106,7 +125,7 @@
// 4.给对方写OFF
nextStep();
- m_pCclink->ResetBitDevice(m_station, DeviceType::B, m_nWriteSignalDev);
+ m_pCclink->ResetBitDeviceEx(m_station, (long)DeviceType::B, m_nWriteSignalDev);
// 6.完成
@@ -115,6 +134,9 @@
ASSERT(m_pEquipment);
m_pEquipment->onStepEvent(this, STEP_EVENT_COMPLETE);
}
+
+ // 回复数据清空
+ m_nReturnDataSize = 0;
}
}
--
Gitblit v1.9.3