CarmImplPositionManager.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #pragma once
  2. #include "IPositionManager.h"
  3. namespace DIOS::Dev::Detail::MachineryECOM
  4. {
  5. class ISensorEncoderController;
  6. class CarmImplPositionManager : public IPositionManager
  7. {
  8. public:
  9. CarmImplPositionManager();
  10. ~CarmImplPositionManager();
  11. public:
  12. virtual void Initialize(IMachineryManager *machmanager) override;
  13. virtual float GetLandmarkPosition(DOF_MECH dof, LANDMARK_TYPE landmarkType) override;
  14. virtual float GetCurrentAbsolutePhysical(DOF_MECH dof) override;
  15. virtual float GetPhysicalPerMotorPulse(DOF_MECH dof) override;
  16. virtual float GetCurrentPhysical(DOF_MECH dof) override;
  17. virtual int GetCurrentSensorValue(DOF_MECH dof) override;
  18. virtual float ConvertSensorValue(const std::string &componentName, int sensorValue) override;
  19. virtual int ConvertPhysicsValue(const std::string &componentName, float physicsValue) override;
  20. virtual DWORD ConvertMotorStepValue(const std::string &componentName, float physicsOffset) override;
  21. virtual DWORD ConvertMotorSpeed(const std::string &componentName, float speed) override;
  22. virtual void ResetSystem() override;
  23. virtual BOOL IsSystemReady() override;
  24. virtual int IsTomoMotionLimitationStatus() override;
  25. virtual BOOL IsNeedCenterAdjust() override;
  26. virtual void SetNotifyLogicDevice(MachineryECOMDriver* logicdriver) override;
  27. virtual void NotifyAlignStatus(BOOL isAligned) override;
  28. virtual void NotifySystemIsReady() override;
  29. virtual void NotifySystemIsTomoMotionLimitation(int nLimitaionStatus) override;
  30. virtual void ResetSystem(const std::string &componentName) override;
  31. virtual BOOL IsSystemReady(const std::string &componentName) override;
  32. virtual void NotifySystemIsReady(const std::string &componentName) override;
  33. private:
  34. BOOL m_isSystemReady;
  35. MachineryECOMDriver* m_notifyLogicDriver;
  36. IMachineryManager *m_machineryManager;
  37. ISensorEncoderController *m_encoderCircular;
  38. ISensorEncoderController *m_encoderSwing;
  39. BOOL m_isSystemReadySwing;
  40. BOOL m_isSystemReadyCircular;
  41. };
  42. }