#include "stdafx.h" #include "CVariable.h" namespace SERVO { CVariable::CVariable() { m_nVarialbeId = 0; m_format = SVFromat::U1; m_nValue = 0; } CVariable::CVariable(const char* pszId, const char* pszName, const char* pszFormat, const char* pszRemark) { m_nVarialbeId = atoi(pszId); m_strName = pszName; m_format = toFormat(pszFormat); m_strRemark = pszRemark; TRACE("CVariable .....%d,%s,%d,%s\n", m_nVarialbeId, m_strName.c_str(), m_format, m_strRemark.c_str()); } CVariable::~CVariable() { } SVFromat CVariable::toFormat(const char* pszFormat) { if (_strcmpi("U1", pszFormat) == 0) { return SVFromat::U1; } if (_strcmpi("U2", pszFormat) == 0) { return SVFromat::U2; } if (_strcmpi("I2", pszFormat) == 0) { return SVFromat::I2; } if (_strcmpi("A50", pszFormat) == 0) { return SVFromat::A50; } if (_strcmpi("A20", pszFormat) == 0) { return SVFromat::A20; } 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; } std::string& CVariable::getName() { return m_strName; } SVFromat CVariable::getFormat() { return m_format; } std::string& CVariable::getRemark() { 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; } }