#include "stdafx.h" #include "PositionManager.h" using namespace DIOS::Dev::Detail::MachineryECOM; PositionManager *PositionManager::m_instance = nullptr; PositionManager::PositionManager() :m_implposManager(nullptr) { } PositionManager::~PositionManager() { if (m_implposManager) { delete m_implposManager; m_implposManager = nullptr; } } PositionManager *PositionManager::Instance() { if (m_instance == nullptr) { m_instance = new PositionManager(); } return m_instance; } void PositionManager::Attach(IPositionManager *impl) { m_implposManager = impl; } void PositionManager::Initialize(IMachineryManager *machmanager) { if (m_implposManager != nullptr) { m_implposManager->Initialize(machmanager); } } float PositionManager::GetLandmarkPosition(DOF_MECH dof, LANDMARK_TYPE landmarkType) { return m_implposManager->GetLandmarkPosition(dof, landmarkType); } float PositionManager::GetCurrentAbsolutePhysical(DOF_MECH dof) { return m_implposManager->GetCurrentAbsolutePhysical(dof); } float PositionManager::GetPhysicalPerMotorPulse(DOF_MECH dof) { return m_implposManager->GetPhysicalPerMotorPulse(dof); } float PositionManager::GetCurrentPhysical(DOF_MECH dof) { return m_implposManager->GetCurrentPhysical(dof); } int PositionManager::GetCurrentSensorValue(DOF_MECH dof) { return m_implposManager->GetCurrentSensorValue(dof); } void PositionManager::SetNotifyLogicDevice(MachineryECOMDriver* logicdriver) { m_implposManager->SetNotifyLogicDevice(logicdriver); } float PositionManager::ConvertSensorValue(const std::string &componentName, int sensorValue) { return m_implposManager->ConvertSensorValue(componentName, sensorValue); } int PositionManager::ConvertPhysicsValue(const std::string &componentName, float physicsValue) { return m_implposManager->ConvertPhysicsValue(componentName, physicsValue); } DWORD PositionManager::ConvertMotorStepValue(const std::string &componentName, float physicsOffset) { return m_implposManager->ConvertMotorStepValue(componentName, physicsOffset); } DWORD PositionManager::ConvertMotorSpeed(const std::string &componentName, float speed) { return m_implposManager->ConvertMotorSpeed(componentName, speed); } void PositionManager::ResetSystem() { m_implposManager->ResetSystem(); } BOOL PositionManager::IsSystemReady() { return m_implposManager->IsSystemReady(); } int PositionManager::IsTomoMotionLimitationStatus() { return m_implposManager->IsTomoMotionLimitationStatus(); } BOOL PositionManager::IsNeedCenterAdjust() { return m_implposManager->IsNeedCenterAdjust(); } void PositionManager::NotifyAlignStatus(BOOL isAligned) { return m_implposManager->NotifyAlignStatus(isAligned); } void PositionManager::NotifySystemIsReady() { return m_implposManager->NotifySystemIsReady(); } void PositionManager::NotifySystemIsTomoMotionLimitation(int nLimitaionStatus) { return m_implposManager->NotifySystemIsTomoMotionLimitation(nLimitaionStatus); } void PositionManager::ResetSystem(const std::string &componentName) { return m_implposManager->ResetSystem(componentName); } BOOL PositionManager::IsSystemReady(const std::string &componentName) { return m_implposManager->IsSystemReady(componentName); } void PositionManager::NotifySystemIsReady(const std::string &componentName) { return m_implposManager->NotifySystemIsReady(componentName); }