LAPTOP-SNT8I5JK\Boounion
2025-09-19 334b16b4abb4cbe3d1d4e4f211efd6f4468ae09f
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,8 +43,36 @@
      if (_strcmpi("A20", pszFormat) == 0) {
         return SVFromat::A20;
      }
      if (_strcmpi("L", pszFormat) == 0) {
         return SVFromat::L;
      }
      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";
      }
      if (SVFromat::L == format) {
         return "L";
      }
      return "U1";
   }
   unsigned int CVariable::getVarialbleId()
@@ -65,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;
   }
}