From 980d4fc1690b4f8a81dc65e8573d2898f34a406f Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期五, 21 三月 2025 09:49:26 +0800
Subject: [PATCH] 1.加入连接图示
---
SourceCode/Bond/Servo/CLoadPort.cpp | 41 +++++++++++++++++++++++++++++++++++++----
1 files changed, 37 insertions(+), 4 deletions(-)
diff --git a/SourceCode/Bond/Servo/CLoadPort.cpp b/SourceCode/Bond/Servo/CLoadPort.cpp
index b455e4f..71169c4 100644
--- a/SourceCode/Bond/Servo/CLoadPort.cpp
+++ b/SourceCode/Bond/Servo/CLoadPort.cpp
@@ -61,15 +61,48 @@
attrubutes.addAttribute(new CAttribute(item->getName().c_str(),
std::to_string((int)item->getType()).c_str(), ""));
}
+
+ for (auto item : m_panelList) {
+ attrubutes.addAttribute(new CAttribute("Panel",
+ item->getID().c_str(), ""));
+ }
}
void CLoadPort::outputPanel()
{
CPin* pOutPin = getPin("Out");
- CIntent intent;
- intent.setCode(1);
- intent.setMsg("Hello");
- pOutPin->sendIntent(&intent);
+
+ // 如果列表中没有Panel,模拟生成10张
+ if (m_panelList.empty()) {
+ static int ii = 0;
+ char szBuffer[64];
+ LOGI("<CLoadPort>模拟生成10张PANEL");
+ for (int i = 0; i < 10; i++) {
+ sprintf_s(szBuffer, "P20250320A1A%d", ++ii);
+ CPanel* pPanel = new CPanel();
+ pPanel->setID(szBuffer);
+ addPanelToList(pPanel);
+ }
+ }
+
+
+ // 模拟取出第一张Panel,传送到下一环节
+ Lock();
+ CPanel* pContext = m_panelList.front();
+ pContext->addRef();
+
+ CIntent intent(FLOW_MOVE_MATERIAL, "", pContext);
+ int nRet = pOutPin->sendIntent(&intent);
+ if (nRet == FLOW_REJECT) {
+ AfxMessageBox("对方拒绝接受");
+ }
+ else if (nRet == FLOW_ACCEPT) {
+ m_panelList.pop_front();
+ pContext->release(); // 添加到列队时addRef, 取出时release
+ }
+
+ pContext->release();
+ Unlock();
}
}
--
Gitblit v1.9.3