#include "stdafx.h" #include "ServoDriveManager.h" #include "IServoDrive.h" #include "IServoDriveFactory.h" #include "ConfigurerServoDrive.h" using namespace DIOS::Dev::Detail::MachineryECOM; ServoDriveManager *ServoDriveManager::m_instance = nullptr; ServoDriveManager::ServoDriveManager() { } ServoDriveManager::~ServoDriveManager() { } ServoDriveManager *ServoDriveManager::Instance() { if (m_instance == nullptr) { m_instance = new ServoDriveManager(); } return m_instance; } void ServoDriveManager::Initialize(IServoDriveFactory *factory,const std::vector &servoDriveNameList) { //根据配置装载伺服驱动类型 for (size_t i = 0; i < servoDriveNameList.size();++i) { auto servoName = servoDriveNameList[i]; auto sevoType = ConfigurerServoDrive::GetServoDriveType(servoName); auto sevoNumber = ConfigurerServoDrive::GetServoDriveNumber(servoName); if (sevoType != "") { auto servo = factory->Create(sevoType); if (servo) { servo->Initialize(sevoNumber); m_servoDrives[servoName] = servo; } } } } IServoDrive *ServoDriveManager::Resove(const std::string &servoDriveName) { if (m_servoDrives.find(servoDriveName) != m_servoDrives.end()) { return m_servoDrives[servoDriveName]; } return nullptr; }