#include "stdafx.h" #include "MotionModelManager.h" #include "IMotionModel.h" #include "IMotionModelFactory.h" using namespace DIOS::Dev::Detail::MachineryECOM; MotionModelManager *MotionModelManager::m_instance = nullptr; MotionModelManager::MotionModelManager() { } MotionModelManager::~MotionModelManager() { } MotionModelManager *MotionModelManager::Instance() { if (m_instance == nullptr) { m_instance = new MotionModelManager(); } return m_instance; } void MotionModelManager::Initialize( IMotionModelFactory *factory, IMachineryManager *machineryManager, IPositionManager *coordinates, const std::map &modelList) { auto it = modelList.begin(); for (; it != modelList.end(); ++it) { auto model = factory->CreateModel((MOTION_MODEL_TYPE)it->second); if (model) { m_motionModels[it->first] = model; model->Initialize(machineryManager, coordinates); } } } IMotionModel *MotionModelManager::Resove(const std::string &name) { if (m_motionModels.find(name) == m_motionModels.end()) { return nullptr; } return m_motionModels[name]; }