From 62a4a8db6c05c98f180ae7f6429a9a232fce6c0c Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期四, 03 七月 2025 17:19:16 +0800
Subject: [PATCH] 1. 重构机器人动画逻辑,采用分帧动画机制,避免在 OnTimer 中阻塞主线程; 2. 动画过程中允许动态中断,确保设备状态变化时可即时响应; 3. 动画结束时自动校正位置与角度,确保最终状态准确一致;

---
 SourceCode/Bond/Servo/CFliper.cpp |   26 +++++++++++++++++++++++---
 1 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/SourceCode/Bond/Servo/CFliper.cpp b/SourceCode/Bond/Servo/CFliper.cpp
index 0b6c578..aed1fc6 100644
--- a/SourceCode/Bond/Servo/CFliper.cpp
+++ b/SourceCode/Bond/Servo/CFliper.cpp
@@ -33,9 +33,19 @@
 	{
 		// 加入Pin初始化代码
 		LOGI("<CFliper>initPins");
-		addPin(SERVO::PinType::INPUT, _T("In1"));
-		addPin(SERVO::PinType::INPUT, _T("In2"));
-		addPin(SERVO::PinType::OUTPUT, _T("Out"));
+		addPin(SERVO::PinType::INPUT, _T("In"));
+		addPin(SERVO::PinType::OUTPUT, _T("Out1"));
+		addPin(SERVO::PinType::OUTPUT, _T("Out2"));
+	}
+
+	// 必须要实现的虚函数,在此初始化Slot信息
+	void CFliper::initSlots()
+	{
+		m_slot[0].enable();
+		m_slot[0].setPosition(m_nID);
+		m_slot[0].setNo(1);
+		m_slot[0].setName("Slot 1(G2)");
+		m_slot[0].setType(MaterialsType::G2);
 	}
 
 	void CFliper::onTimer(UINT nTimerid)
@@ -47,4 +57,14 @@
 	{
 		CEquipment::serialize(ar);
 	}
+
+	void CFliper::getAttributeVector(CAttributeVector& attrubutes)
+	{
+		__super::getAttributeVector(attrubutes);
+	}
+
+	int CFliper::recvIntent(CPin* pPin, CIntent* pIntent)
+	{
+		return __super::recvIntent(pPin, pIntent);
+	}
 }

--
Gitblit v1.9.3