From 4eaefee05c987e352dd6d761e601aa450f7f92b4 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期五, 21 三月 2025 14:41:46 +0800
Subject: [PATCH] 1.添加其它机器并连接,显示连接图;
---
SourceCode/Bond/Servo/CLoadPort.cpp | 44 +++++++++++++++++++++++++++++++++++++++-----
1 files changed, 39 insertions(+), 5 deletions(-)
diff --git a/SourceCode/Bond/Servo/CLoadPort.cpp b/SourceCode/Bond/Servo/CLoadPort.cpp
index b455e4f..5b54636 100644
--- a/SourceCode/Bond/Servo/CLoadPort.cpp
+++ b/SourceCode/Bond/Servo/CLoadPort.cpp
@@ -35,7 +35,8 @@
// 加入Pin初始化代码
LOGI("<CLoadPort>initPins");
addPin(SERVO::PinType::INPUT, _T("In"));
- addPin(SERVO::PinType::OUTPUT, _T("Out"));
+ addPin(SERVO::PinType::OUTPUT, _T("Out1"));
+ addPin(SERVO::PinType::OUTPUT, _T("Out2"));
}
void CLoadPort::onTimer(UINT nTimerid)
@@ -61,15 +62,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