1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #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<std::string> &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;
- }
|