#include "stdafx.h" #include "CStep.h" namespace SERVO { CStep::CStep() { m_nID = 0; m_pCclink = nullptr; InitializeCriticalSection(&m_criticalSection); } CStep::~CStep() { DeleteCriticalSection(&m_criticalSection); } void CStep::setCcLink(CCCLinkIEControl* pCcLink) { m_pCclink = pCcLink; } void CStep::setEquipment(CEquipment* pEquipment) { m_pEquipment = pEquipment; } CEquipment* CStep::getEquipment() { return m_pEquipment; } void CStep::setID(int id) { m_nID = id; } int CStep::getID() { return m_nID; } void CStep::setName(const char* pszName) { m_strName = pszName; } std::string& CStep::getName() { return m_strName; } void CStep::getAttributeVector(CAttributeVector& attrubutes) { unsigned int weight = 1; attrubutes.clear(); attrubutes.addAttribute(new CAttribute("Network", std::to_string(m_station.nNetNo).c_str(), "", weight++)); attrubutes.addAttribute(new CAttribute("Station", std::to_string(m_station.nStNo).c_str(), "", weight++)); auto as = m_attributeVector.getAttributes(); for (auto item : as) { attrubutes.addAttribute(new CAttribute(item->getName().c_str(), item->getValue().c_str(), item->getDescription().c_str(), item->getWeight())); } } CAttributeVector& CStep::attributeVector() { return m_attributeVector; } void CStep::init() { } void CStep::term() { } void CStep::setProp(const char* pszKey, void* pValue) { m_mapProp[pszKey] = pValue; } void* CStep::getProp(const char* pszKey) { auto iter = m_mapProp.find(pszKey); if (iter == m_mapProp.end()) return nullptr; return iter->second; } void CStep::addAttribute(CAttribute* pAttribute) { // Ìí¼Óattributeʱ£¬ÒªÇ°É¾³ý´æÔÚµÄͬÃûµÄattribute m_attributeVector.addAttribute(pAttribute, TRUE); } void CStep::addAttributeVector(CAttributeVector& attributeVector) { // Ìí¼Óattributeʱ£¬ÒªÇ°É¾³ý´æÔÚµÄͬÃûµÄattribute std::vector& srcs = attributeVector.getAttributes(); auto it = srcs.begin(); while (it != srcs.end()) { BOOL bAdd = m_attributeVector.addAttribute((*it), TRUE); if (bAdd) { it = srcs.erase(it); } else { ++it; } } } void CStep::convertString(const char* pszBuffer, int size, std::string& strOut) { strOut.clear(); int nLength = 0; for (int i = 0; i < size; i++) { if (pszBuffer[i] == '\0') break; nLength++; } if (nLength > 0) { strOut = std::string(pszBuffer, nLength); } } }