From 0fb528df2c1f05ef7d52827432bd934ce6f9d8cd Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期五, 12 九月 2025 09:46:59 +0800
Subject: [PATCH] Merge branch 'clh' into liuyang

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

diff --git a/SourceCode/Bond/Servo/Configuration.cpp b/SourceCode/Bond/Servo/Configuration.cpp
index b8529b6..c853bba 100644
--- a/SourceCode/Bond/Servo/Configuration.cpp
+++ b/SourceCode/Bond/Servo/Configuration.cpp
@@ -92,6 +92,17 @@
 	return (int)texts.size();	
 }
 
+void CConfiguration::setFilterMode(int mode)
+{
+	WritePrivateProfileString(_T("Logcat"), _T("FilterMode"),
+		std::to_string(mode).c_str(), m_strFilepath);
+}
+
+int CConfiguration::getFilterMode()
+{
+	return GetPrivateProfileInt(_T("Logcat"), _T("FilterMode"), 0, m_strFilepath);
+}
+
 int CConfiguration::getP2RemoteEqReconnectInterval()
 {
 	return GetPrivateProfileInt(_T("P2"), _T("RemoteEqReconnectInterval"), 20, m_strFilepath);
@@ -103,3 +114,65 @@
 		std::to_string(second).c_str(), m_strFilepath);
 }
 
+BOOL CConfiguration::getPortParms(unsigned int index, BOOL& bEnable, int& type, int& mode,
+	int& cassetteType, int& transferMode, BOOL& bAutoChangeEnable)
+{
+	if (index >= 4) return FALSE;
+
+	static char* pszSection[] = {"Port1", "Port2", "Port3", "Port4"};
+	bEnable = GetPrivateProfileInt(pszSection[index], _T("Enable"), 0, m_strFilepath) == 1;
+	type = GetPrivateProfileInt(pszSection[index], _T("Type"), 0, m_strFilepath);
+	mode = GetPrivateProfileInt(pszSection[index], _T("Mode"), 0, m_strFilepath);
+	cassetteType = GetPrivateProfileInt(pszSection[index], _T("CassetteType"), 0, m_strFilepath);
+	transferMode = GetPrivateProfileInt(pszSection[index], _T("TransferMode"), 0, m_strFilepath);
+	bAutoChangeEnable = GetPrivateProfileInt(pszSection[index], _T("AutoChangeEnable"), 0, m_strFilepath) == 1;
+
+	// type, mode, cassetteType, transferMode 范围检查
+	type = max(1, min(type, 7));
+	mode = max(0, min(mode, 5));
+	cassetteType = max(1, min(cassetteType, 3));
+	transferMode = max(1, min(transferMode, 3));
+
+	return TRUE;
+}
+
+BOOL CConfiguration::setPortCassetteType(unsigned int index, int cassetteType)
+{
+	if (index >= 4) return FALSE;
+	if (cassetteType < 1 || 3 < cassetteType) return FALSE;
+
+	static char* pszSection[] = { "Port1", "Port2", "Port3", "Port4" };
+	WritePrivateProfileString(pszSection[index], _T("CassetteType"), std::to_string(cassetteType).c_str(), m_strFilepath);
+	return true;
+}
+
+BOOL CConfiguration::setPortEnable(unsigned int index, BOOL bEnable)
+{
+	if (index >= 4) return FALSE;
+
+	static char* pszSection[] = { "Port1", "Port2", "Port3", "Port4" };
+	WritePrivateProfileString(pszSection[index], _T("Enable"), std::to_string(bEnable ? 1 : 0).c_str(), m_strFilepath);
+	return true;
+}
+
+BOOL CConfiguration::isCompareMapsBeforeProceeding()
+{
+	return GetPrivateProfileInt(_T("Master"), _T("CompareMapsBeforeProceeding"), 0, m_strFilepath);
+}
+
+BOOL CConfiguration::isJobMode()
+{
+	return GetPrivateProfileInt(_T("Master"), _T("JobMode"), 0, m_strFilepath);
+}
+
+void CConfiguration::setContinuousTransferCount(int round)
+{
+	WritePrivateProfileString(_T("Master"), _T("CTRound"),
+		std::to_string(round).c_str(), m_strFilepath);
+}
+
+int CConfiguration::getContinuousTransferCount()
+{
+	return GetPrivateProfileInt(_T("Master"), _T("CTRound"), 0, m_strFilepath);
+}
+

--
Gitblit v1.9.3