From ef6c229b7dd70ef82a068ae198f23bc9a44dfad2 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期五, 21 三月 2025 15:12:33 +0800
Subject: [PATCH] 1.修复因对齐线未清0导致点击子项自动移动的问题;
---
SourceCode/Bond/Servo/CBonder.cpp | 89 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 89 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/Servo/CBonder.cpp b/SourceCode/Bond/Servo/CBonder.cpp
index 03774a9..136a15f 100644
--- a/SourceCode/Bond/Servo/CBonder.cpp
+++ b/SourceCode/Bond/Servo/CBonder.cpp
@@ -34,6 +34,8 @@
{
// 加入Pin初始化代码
LOGI("<CBonder>initPins");
+ addPin(SERVO::PinType::INPUT, _T("In"));
+ addPin(SERVO::PinType::OUTPUT, _T("Out"));
}
void CBonder::onTimer(UINT nTimerid)
@@ -45,4 +47,91 @@
{
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);
+
+ CPin* pFromPin = pPin->getConnectedPin();
+ ASSERT(pFromPin);
+
+ 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());
+
+
+
+ // 以下解释处理数据
+ 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