mrDarker
6 天以前 829fe6c6bc33d53fda9c31fd45a37e1df87befff
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);
}