From 331f447bb0e5eccf0b3161ab287c1372b14b8480 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期五, 08 八月 2025 11:53:58 +0800
Subject: [PATCH] 1.增加千传计数,保存计数,重启软件时恢复; 2.千传测试模式,打印相关日志,方便后期提取,用于统计; 3.千传模式时烘烤两腔体都要进入; 4.千传模式时,Fliper到Bonder修改为用手臂2取料; 5.修复千传模式不计运行时的问题; 6.千传模式,最后收料强制放入第一层; 6.修复Buf, 当任务未生成(在符合条件后仍有1秒间隙)而机器单元发送FetchOutJob时,数据检验失败的问题,增加Sleep, 缩小间隙;

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

diff --git a/SourceCode/Bond/Servo/CVariable.cpp b/SourceCode/Bond/Servo/CVariable.cpp
index a0c15f0..e9c5d83 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)
@@ -46,6 +47,28 @@
 		return SVFromat::U1;
 	}
 
+
+	std::string CVariable::formatToString(SVFromat format)
+	{
+		if (SVFromat::U1 == format) {
+			return "U1";
+		}
+		if (SVFromat::U2 == format) {
+			return "U1";
+		}
+		if (SVFromat::I2 == format) {
+			return "I2";
+		}
+		if (SVFromat::A50 == format) {
+			return "A50";
+		}
+		if (SVFromat::A20 == format) {
+			return "A20";
+		}
+
+		return "U1";
+	}
+
 	unsigned int CVariable::getVarialbleId()
 	{
 		return m_nVarialbeId;
@@ -65,4 +88,41 @@
 	{
 		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;
+	}
+
+	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;
+	}
 }
\ No newline at end of file

--
Gitblit v1.9.3