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/CBonder.cpp |   71 +++++++++++++++++++++++++++++++++--
 1 files changed, 67 insertions(+), 4 deletions(-)

diff --git a/SourceCode/Bond/Servo/CBonder.cpp b/SourceCode/Bond/Servo/CBonder.cpp
index 40d014a..136a15f 100644
--- a/SourceCode/Bond/Servo/CBonder.cpp
+++ b/SourceCode/Bond/Servo/CBonder.cpp
@@ -48,6 +48,26 @@
 		CEquipment::serialize(ar);
 	}
 
+	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,7 +78,6 @@
 		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(),
@@ -66,9 +85,53 @@
 			pFromPin->getName().c_str(),
 			pIntent->getCode(),
 			pIntent->getMsg(),
-			pIntent->getContext()
-			);
+			pIntent->getContext());
 
-		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