From a0022a4e7d8da7391db2926acd69b3c712135762 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期一, 01 九月 2025 11:49:28 +0800
Subject: [PATCH] 1.仅在千传模式下显示千传计数;

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

diff --git a/SourceCode/Bond/Servo/CVariable.cpp b/SourceCode/Bond/Servo/CVariable.cpp
index 21ddb44..e7b916c 100644
--- a/SourceCode/Bond/Servo/CVariable.cpp
+++ b/SourceCode/Bond/Servo/CVariable.cpp
@@ -7,6 +7,7 @@
 	{
 		m_nVarialbeId = 0;
 		m_format = SVFromat::U1;
+		m_nValue = 0;
 	}
 
 	CVariable::CVariable(const char* pszId, const char* pszName, const char* pszFormat, const char* pszRemark)
@@ -42,6 +43,9 @@
 		if (_strcmpi("A20", pszFormat) == 0) {
 			return SVFromat::A20;
 		}
+		if (_strcmpi("L", pszFormat) == 0) {
+			return SVFromat::L;
+		}
 
 		return SVFromat::U1;
 	}
@@ -63,6 +67,9 @@
 		}
 		if (SVFromat::A20 == format) {
 			return "A20";
+		}
+		if (SVFromat::L == format) {
+			return "L";
 		}
 
 		return "U1";
@@ -87,4 +94,60 @@
 	{
 		return m_strRemark;
 	}
+
+	void CVariable::setValue(__int64 value)
+	{
+		if (m_format == SVFromat::U1 || m_format == SVFromat::U2 || m_format == SVFromat::I2) {
+			m_nValue = value;
+		}
+	}
+
+	void CVariable::setValue(const char* pszValue)
+	{
+		std::string strTemp = pszValue;
+		if (m_format == SVFromat::A20) {
+			if (strTemp.length() > 20) {
+				strTemp = strTemp.substr(0, 20);
+			}
+		}
+		else if (m_format == SVFromat::A50) {
+			if (strTemp.length() > 50) {
+				strTemp = strTemp.substr(0, 50);
+			}
+		}
+
+		m_strValue = strTemp;
+	}
+
+	void CVariable::setValue(std::vector<CVariable>& vars)
+	{
+		m_varsValue = vars;
+	}
+
+	std::string CVariable::getValue()
+	{
+		std::string strRet;
+		if (m_format == SVFromat::U1 || m_format == SVFromat::U2 || m_format == SVFromat::I2) {
+			strRet = std::to_string(m_nValue);
+		}
+		else if(m_format == SVFromat::A20 || m_format == SVFromat::A50) {
+			strRet = m_strValue;
+		}
+
+		return strRet;
+	}
+
+	__int64 CVariable::getIntValue()
+	{
+		if (m_format == SVFromat::U1 || m_format == SVFromat::U2 || m_format == SVFromat::I2) {
+			return m_nValue;
+		}
+
+		return 0;
+	}
+
+	std::vector<CVariable>& CVariable::getVarsValue()
+	{
+		return m_varsValue;
+	}
 }
\ No newline at end of file

--
Gitblit v1.9.3