From c0d56e6ac7ec15e232fb38c457eefc89cf80e9da Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期三, 21 五月 2025 16:02:09 +0800
Subject: [PATCH] 1.Port Command功能实现;
---
SourceCode/Bond/Servo/CLoadPort.cpp | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 111 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/Servo/CLoadPort.cpp b/SourceCode/Bond/Servo/CLoadPort.cpp
index 0771f18..c7c6040 100644
--- a/SourceCode/Bond/Servo/CLoadPort.cpp
+++ b/SourceCode/Bond/Servo/CLoadPort.cpp
@@ -205,6 +205,96 @@
}
{
+ // port command
+ // Port Type Change Command
+ static char* pszName[] = { STEP_PORT1_TYPE_CHANGE, STEP_PORT2_TYPE_CHANGE, STEP_PORT3_TYPE_CHANGE, STEP_PORT4_TYPE_CHANGE };
+ static int dev[] = { 0x024, 0x02c, 0x034, 0x03c };
+
+ CEqWriteStep* pStep = new CEqWriteStep();
+ pStep->setName(pszName[m_nIndex]);
+ pStep->setWriteSignalDev(0x100 + m_nIndex);
+ pStep->setDataDev(dev[m_nIndex]);
+ if (addStep(STEP_ID_PROT1_TYPE_CHANGE_REPLY + m_nIndex, pStep) != 0) {
+ delete pStep;
+ }
+ }
+
+ {
+ // port command
+ // Port Mode Change Command
+ static char* pszName[] = { STEP_PORT1_MODE_CHANGE, STEP_PORT2_MODE_CHANGE, STEP_PORT3_MODE_CHANGE, STEP_PORT4_MODE_CHANGE };
+ static int dev[] = { 0x025, 0x02d, 0x035, 0x03d };
+
+ CEqWriteStep* pStep = new CEqWriteStep();
+ pStep->setName(pszName[m_nIndex]);
+ pStep->setWriteSignalDev(0x108 + m_nIndex);
+ pStep->setDataDev(dev[m_nIndex]);
+ if (addStep(STEP_ID_PROT1_MODE_CHANGE_REPLY + m_nIndex, pStep) != 0) {
+ delete pStep;
+ }
+ }
+
+ {
+ // port command
+ // Port Transfer Mode Change Command
+ static char* pszName[] = { STEP_PORT1_TRANSFER_MODE_CHANGE, STEP_PORT2_TRANSFER_MODE_CHANGE, STEP_PORT3_TRANSFER_MODE_CHANGE, STEP_PORT4_TRANSFER_MODE_CHANGE };
+ static int dev[] = { 0x028, 0x030, 0x038, 0x040 };
+
+ CEqWriteStep* pStep = new CEqWriteStep();
+ pStep->setName(pszName[m_nIndex]);
+ pStep->setWriteSignalDev(0x110 + m_nIndex);
+ pStep->setDataDev(dev[m_nIndex]);
+ if (addStep(STEP_ID_PROT1_TRANSFER_MODE_CHANGE_REPLY + m_nIndex, pStep) != 0) {
+ delete pStep;
+ }
+ }
+
+ {
+ // port command
+ // Port Enable Mode Change Command
+ static char* pszName[] = { STEP_PORT1_ENABLE_MODE_CHANGE, STEP_PORT2_ENABLE_MODE_CHANGE, STEP_PORT3_ENABLE_MODE_CHANGE, STEP_PORT4_ENABLE_MODE_CHANGE };
+ static int dev[] = { 0x029, 0x031, 0x039, 0x041 };
+
+ CEqWriteStep* pStep = new CEqWriteStep();
+ pStep->setName(pszName[m_nIndex]);
+ pStep->setWriteSignalDev(0x118 + m_nIndex);
+ pStep->setDataDev(dev[m_nIndex]);
+ if (addStep(STEP_ID_PROT1_ENABLE_MODE_CHANGE_REPLY + m_nIndex, pStep) != 0) {
+ delete pStep;
+ }
+ }
+
+ {
+ // port command
+ // Port Type Auto Change Command
+ static char* pszName[] = { STEP_PORT1_TYPE_AUTO_CHANGE, STEP_PORT2_TYPE_AUTO_CHANGE, STEP_PORT3_TYPE_AUTO_CHANGE, STEP_PORT4_TYPE_AUTO_CHANGE };
+ static int dev[] = { 0x02A, 0x032, 0x03A, 0x042 };
+
+ CEqWriteStep* pStep = new CEqWriteStep();
+ pStep->setName(pszName[m_nIndex]);
+ pStep->setWriteSignalDev(0x120 + m_nIndex);
+ pStep->setDataDev(dev[m_nIndex]);
+ if (addStep(STEP_ID_PROT1_TYPE_AUTO_CHANGE_REPLY + m_nIndex, pStep) != 0) {
+ delete pStep;
+ }
+ }
+
+ {
+ // port command
+ // Port Cassette Type Change Command
+ static char* pszName[] = { STEP_PORT1_CASSETTE_TYPE_CHANGE, STEP_PORT2_CASSETTE_TYPE_CHANGE, STEP_PORT3_CASSETTE_TYPE_CHANGE, STEP_PORT4_CASSETTE_TYPE_CHANGE };
+ static int dev[] = { 0x026, 0x02E, 0x036, 0x03E };
+
+ CEqWriteStep* pStep = new CEqWriteStep();
+ pStep->setName(pszName[m_nIndex]);
+ pStep->setWriteSignalDev(0x128 + m_nIndex);
+ pStep->setDataDev(dev[m_nIndex]);
+ if (addStep(STEP_ID_PROT1_TYPE_AUTO_CHANGE_REPLY + m_nIndex, pStep) != 0) {
+ delete pStep;
+ }
+ }
+
+ {
char* pszName[6][4] = {
{STEP_EQ_PORT1_EMPTY, STEP_EQ_PORT2_EMPTY, STEP_EQ_PORT3_EMPTY, STEP_EQ_PORT4_EMPTY},
{STEP_EQ_PORT1_LOAD_EADY, STEP_EQ_PORT2_LOAD_EADY, STEP_EQ_PORT3_LOAD_EADY, STEP_EQ_PORT4_LOAD_EADY},
@@ -547,6 +637,27 @@
CHECK_READ_STEP_SIGNAL2(transferMode[m_nIndex], pszData, size);
CHECK_READ_STEP_SIGNAL2(enable[m_nIndex], pszData, size);
CHECK_READ_STEP_SIGNAL2(autoType[m_nIndex], pszData, size);
+
+
+ static int typeReply[] = { STEP_ID_PROT1_TYPE_CHANGE_REPLY, STEP_ID_PROT2_TYPE_CHANGE_REPLY,
+ STEP_ID_PROT3_TYPE_CHANGE_REPLY, STEP_ID_PROT4_TYPE_CHANGE_REPLY };
+ static int modeReply[] = { STEP_ID_PROT1_MODE_CHANGE_REPLY, STEP_ID_PROT2_MODE_CHANGE_REPLY,
+ STEP_ID_PROT3_MODE_CHANGE_REPLY, STEP_ID_PROT4_MODE_CHANGE_REPLY };
+ static int transferModeReply[] = { STEP_ID_PROT1_TRANSFER_MODE_CHANGE_REPLY, STEP_ID_PROT2_TRANSFER_MODE_CHANGE_REPLY,
+ STEP_ID_PROT3_TRANSFER_MODE_CHANGE_REPLY, STEP_ID_PROT4_TRANSFER_MODE_CHANGE_REPLY };
+ static int enableModeReply[] = { STEP_ID_PROT1_ENABLE_MODE_CHANGE_REPLY, STEP_ID_PROT2_ENABLE_MODE_CHANGE_REPLY,
+ STEP_ID_PROT3_ENABLE_MODE_CHANGE_REPLY, STEP_ID_PROT4_ENABLE_MODE_CHANGE_REPLY };
+ static int typeAutoReply[] = { STEP_ID_PROT1_TYPE_AUTO_CHANGE_REPLY, STEP_ID_PROT2_TYPE_AUTO_CHANGE_REPLY,
+ STEP_ID_PROT3_TYPE_AUTO_CHANGE_REPLY, STEP_ID_PROT4_TYPE_AUTO_CHANGE_REPLY };
+ static int cassetteTypeReply[] = { STEP_ID_PROT1_CASSETTE_TYPE_CHANGE_REPLY, STEP_ID_PROT2_CASSETTE_TYPE_CHANGE_REPLY,
+ STEP_ID_PROT3_CASSETTE_TYPE_CHANGE_REPLY, STEP_ID_PROT4_CASSETTE_TYPE_CHANGE_REPLY };
+
+ CHECK_READ_STEP_SIGNAL2(typeReply[m_nIndex], pszData, size);
+ CHECK_READ_STEP_SIGNAL2(modeReply[m_nIndex], pszData, size);
+ CHECK_READ_STEP_SIGNAL2(transferModeReply[m_nIndex], pszData, size);
+ CHECK_READ_STEP_SIGNAL2(enableModeReply[m_nIndex], pszData, size);
+ CHECK_READ_STEP_SIGNAL2(typeAutoReply[m_nIndex], pszData, size);
+ CHECK_READ_STEP_SIGNAL2(cassetteTypeReply[m_nIndex], pszData, size);
}
int CLoadPort::decodePortStatusReport(CStep* pStep, const char* pszData, size_t size)
--
Gitblit v1.9.3