From 0393d1ff2ebc378b3c4cff9b45f72ebc8a4ea516 Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期二, 03 六月 2025 15:13:42 +0800
Subject: [PATCH] Merge branch 'master' into liuyang

---
 SourceCode/Bond/Servo/CSlot.cpp |  152 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 152 insertions(+), 0 deletions(-)

diff --git a/SourceCode/Bond/Servo/CSlot.cpp b/SourceCode/Bond/Servo/CSlot.cpp
new file mode 100644
index 0000000..8972986
--- /dev/null
+++ b/SourceCode/Bond/Servo/CSlot.cpp
@@ -0,0 +1,152 @@
+#include "stdafx.h"
+#include "CSlot.h"
+
+
+namespace SERVO {
+	CSlot::CSlot()
+	{
+		m_nNo = 0;
+		m_materialsType = MaterialsType::G1G2;
+		m_pContext = nullptr;
+		m_bEnable = FALSE;
+		m_bLock = FALSE;
+		m_pContext = nullptr;
+	}
+
+	CSlot::~CSlot()
+	{
+		if (m_pContext != nullptr) {
+			m_pContext->release();
+			m_pContext = nullptr;
+		}
+	}
+
+	BOOL CSlot::isEnable()
+	{
+		return m_bEnable;
+	}
+
+	void CSlot::enable()
+	{
+		m_bEnable = TRUE;
+	}
+
+	void CSlot::disable()
+	{
+		m_bEnable = FALSE;
+	}
+
+	BOOL CSlot::isLock()
+	{
+		return m_bLock;
+	}
+
+	void CSlot::lock()
+	{
+		m_bLock = TRUE;
+	}
+
+	void CSlot::unlock()
+	{
+		m_bLock = FALSE;
+	}
+
+	int CSlot::getPosition()
+	{
+		return m_nPosition;
+	}
+
+	void CSlot::setPosition(int position)
+	{
+		m_nPosition = position;
+	}
+
+	int CSlot::getNo()
+	{
+		return m_nNo;
+	}
+
+	void CSlot::setNo(int no)
+	{
+		m_nNo = no;
+	}
+
+	MaterialsType CSlot::getType()
+	{
+		return m_materialsType;
+	}
+
+	void CSlot::setType(MaterialsType type)
+	{
+		m_materialsType = type;
+	}
+
+	std::string& CSlot::getName()
+	{
+		return m_strName;
+	}
+
+	void CSlot::setName(const char* pszName)
+	{
+		m_strName = pszName;
+	}
+
+	BOOL CSlot::isEmpty()
+	{
+		return m_pContext == nullptr;
+	}
+
+	void CSlot::setContext(CContext* pContext)
+	{
+		if (pContext != nullptr) {
+			pContext->release();
+		}
+
+		m_pContext = pContext;
+		if (m_pContext != nullptr) {
+			m_pContext->addRef();
+		}
+	}
+
+	CContext* CSlot::getContext()
+	{
+		return m_pContext;
+	}
+
+	void CSlot::serialize(CArchive& ar)
+	{
+		if (ar.IsStoring()) {
+			ar << m_nPosition;
+			ar << m_nNo;
+			ar << (int)m_materialsType;
+			WriteString(ar, m_strName);
+			ar << (__int64)m_pContext;
+			ar << m_bEnable;
+			ar << m_bLock;
+		}
+		else {
+			int i32;
+			__int64 i64;
+			ar >> m_nPosition;
+			ar >> m_nNo;
+			ar >> i32; m_materialsType = (MaterialsType)i32;
+			ReadString(ar, m_strName);
+			ar >> i64; m_pContext = (CContext*)i64;
+			ar >> m_bEnable;
+			ar >> m_bLock;
+		}
+	}
+
+	void CSlot::WriteString(CArchive& ar, std::string& string)
+	{
+		CString strTemp = string.c_str();
+		ar << strTemp;
+	}
+
+	void CSlot::ReadString(CArchive& ar, std::string& string)
+	{
+		CString strTemp;
+		ar >> strTemp;
+		string = (LPTSTR)(LPCTSTR)strTemp;
+	}
+}

--
Gitblit v1.9.3