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/CBonder.cpp | 80 +++++++++++++++++++++++++++++++++++++---
1 files changed, 74 insertions(+), 6 deletions(-)
diff --git a/SourceCode/Bond/Servo/CBonder.cpp b/SourceCode/Bond/Servo/CBonder.cpp
index e67978f..136a15f 100644
--- a/SourceCode/Bond/Servo/CBonder.cpp
+++ b/SourceCode/Bond/Servo/CBonder.cpp
@@ -48,7 +48,27 @@
CEquipment::serialize(ar);
}
- int CBonder::recvSample(CPin* pPin, CSample* pSample)
+ void CBonder::getAttributeVector(CAttributeVector& attrubutes)
+ {
+ __super::getAttributeVector(attrubutes);
+
+ for (auto item : m_inputPins) {
+ attrubutes.addAttribute(new CAttribute(item->getName().c_str(),
+ std::to_string((int)item->getType()).c_str(), ""));
+ }
+
+ for (auto item : m_outputPins) {
+ 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(), ""));
+ }
+ }
+
+ int CBonder::recvIntent(CPin* pPin, CIntent* pIntent)
{
ASSERT(pPin);
@@ -58,12 +78,60 @@
CEquipment* pFromEq = pFromPin->getEquipment();
ASSERT(pFromEq);
+ LOGI("<CBonder><%s-%s>收到来自<%s.%s>的Intent<%d,%s,0x%x>",
+ this->getName().c_str(),
+ pPin->getName().c_str(),
+ pFromEq->getName().c_str(),
+ pFromPin->getName().c_str(),
+ pIntent->getCode(),
+ pIntent->getMsg(),
+ pIntent->getContext());
- LOGI("<CBonder><%s-%s>收到来自<%s.%s>的Sample",
- this->getName().c_str(), pPin->getName().c_str(),
- pFromEq->getName().c_str(), pFromPin->getName().c_str());
- delete pSample;
- return 0;
+
+ // 以下解释处理数据
+ int code = pIntent->getCode();
+
+
+ // 测试
+ if (code == FLOW_TEST) {
+ AfxMessageBox(pIntent->getMsg());
+ return FLOW_ACCEPT;
+ }
+
+
+ // 信号
+ if (code == FLOW_SIGNAL) {
+ return FLOW_ACCEPT;
+ }
+
+
+ // 数据
+ if (code == FLOW_SIGNAL) {
+ return FLOW_ACCEPT;
+ }
+
+
+ // 物料
+ if (code == FLOW_MOVE_MATERIAL) {
+ // 如果我这里是空的,可以接受
+ Lock();
+ if (m_panelList.size() < 15) {
+ CPanel* pPanel = (CPanel*)pIntent->getContext();
+ ASSERT(pPanel);
+ pPanel->addRef();
+ m_panelList.push_back(pPanel);
+ Unlock();
+ return FLOW_ACCEPT;
+ }
+ else {
+ Unlock();
+ return FLOW_REJECT;
+ }
+ }
+
+
+
+ return FLOW_ACCEPT;
}
}
--
Gitblit v1.9.3