123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #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<std::string, int> &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];
- }
|