From e8a27bb203fe2aff70390a5eca002d7438da9b0f Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期三, 22 十月 2025 14:24:34 +0800
Subject: [PATCH] Merge branch 'clh' into liuyang

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

diff --git a/SourceCode/Bond/Servo/Configuration.cpp b/SourceCode/Bond/Servo/Configuration.cpp
index b8529b6..a2434b1 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,89 @@
 		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::setPortType(unsigned int index, int type)
+{
+	if (index >= 4) return FALSE;
+	if (type < 1 || 7 < type) return FALSE;
+
+	static char* pszSection[] = { "Port1", "Port2", "Port3", "Port4" };
+	WritePrivateProfileString(pszSection[index], _T("Type"), std::to_string(type).c_str(), m_strFilepath);
+	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);
+}
+
+char* pszPortSection[] = { "Port1", "Port2", "Port3", "Port4" };
+int CConfiguration::getPortCassetteSnSeed(int port)
+{
+	ASSERT(1 <= port && port <= 4);
+	return GetPrivateProfileInt(pszPortSection[port-1], _T("CassetteSnSeed"), 0, m_strFilepath);
+}
+
+void CConfiguration::setPortCassetteSnSeed(int port, int seed)
+{
+	ASSERT(1 <= port && port <= 4);
+	WritePrivateProfileString(pszPortSection[port - 1], _T("CassetteSnSeed"),
+		std::to_string(seed).c_str(), m_strFilepath);
+}
+

--
Gitblit v1.9.3