123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- #pragma once
- #include "IPositionManager.h"
- namespace DIOS::Dev::Detail::MachineryECOM
- {
- class ITubeAngleController;
- class ITubeHeightController;
- class ISensorADController;
- class ISensorEncoderController;
- class ImplPositionManager : public IPositionManager
- {
- public:
- ImplPositionManager();
- ~ImplPositionManager();
- public:
- virtual void Initialize(IMachineryManager *machmanager) override;
- virtual float GetLandmarkPosition(DOF_MECH dof, LANDMARK_TYPE landmarkType) override;
- virtual float GetCurrentAbsolutePhysical(DOF_MECH dof) override;
- virtual float GetPhysicalPerMotorPulse(DOF_MECH dof) override;
- virtual float GetCurrentPhysical(DOF_MECH dof) override;
- virtual int GetCurrentSensorValue(DOF_MECH dof) override;
- virtual float ConvertSensorValue(const std::string &componentName, int sensorValue) override;
- virtual int ConvertPhysicsValue(const std::string &componentName, float physicsValue) override;
- virtual DWORD ConvertMotorStepValue(const std::string &componentName, float physicsOffset) override;
- virtual DWORD ConvertMotorSpeed(const std::string &componentName, float speed) override;
- virtual void ResetSystem() override;
- virtual BOOL IsSystemReady() override;
- virtual int IsTomoMotionLimitationStatus() override;
- virtual BOOL IsNeedCenterAdjust() override;
- virtual void SetNotifyLogicDevice(MachineryECOMDriver* logicdriver) override;
- virtual void NotifyAlignStatus(BOOL isAligned) override;
- virtual void NotifySystemIsReady() override;
- virtual void NotifySystemIsTomoMotionLimitation(int nLimitaionStatus) override;
- virtual void ResetSystem(const std::string& componentName) override;
- virtual BOOL IsSystemReady(const std::string& componentName) override;
- virtual void NotifySystemIsReady(const std::string& componentName) override;
- private:
- float GetTubeHeightLandmarkPosition(LANDMARK_TYPE landmarkType);
- float GetTubeAngleLandmarkPosition(LANDMARK_TYPE landmarkType);
- float GetCurrentAbsoluteTubeAngle();
- float GetCurrentAbsoluteTubeHeight();
- float GetTubeAnglePerPulse();
- float GetCurrentTubeHeight();
- float GetCurrentTubeAngle();
- float GetDetectorVerticalPos();
- float GetDetectorHorizontalPos();
- int GetCurrentTubeAngleSensorValue();
- int GetCurrentEncoderSensorValue(ISensorEncoderController *pSensorEncoder);
- int GetCurrentDetectorADSensorValue(ISensorADController *pSensorAD);
-
- DWORD DoConvertTubeHeightMotorPulse(float physicsoffset);
- DWORD DoConvertTubeHeightMotorSpeed(float speed);
- float DoConvertTubeHeightEncoder(int sensorvalue);
- float DoConvertTubeHeightAD(DWORD sensorvalue);
- int DoConvertTubeHeightToEncoder(float physics);
- DWORD DoConvertTubeAngleMotorPulse(float physicsoffset);
- DWORD DoConvertTubeAngleMotorSpeed(float speed);
- float DoConvertTubeAngleEncoder(int sensorvalue);
- float DoConvertTubeAngleAD(DWORD sensorvalue);
- int DoConvertTubeAngleToEncoder(float physics);
- DWORD DoConvertTubeHorizontalMotorPulse(float physicsoffset);
- DWORD DoConvertTubeHorizontalMotorSpeed(float speed);
- float DoConvertTubeHorizontalEncoder(int sensorvalue);
- float DoConvertTubeHorizontalAD(DWORD sensorvalue);
- int DoConvertTubeHorizontalToEncoder(float physics);
- float DoConvertDetectorHeightAD(int sensorvalue);
- DWORD DoConvertDetectorToAD(float physics);
- float DoConvertDetectorHorizontalAD(DWORD sensorvalue);
- DWORD DoConvertDetectorHorizontalToAD(float physics);
- DWORD DoConvertMotorPulse(float physicsoffset, float physicsinonecircle, DWORD pulseinonecircle);
- DWORD DoConvertSpeed(float speed, float physicsinonecircle, DWORD pulseinonecircle);
- float DoConvertEncoder(int encoder, float physicsinonecircle, float encoderinonecircle, float physicsAtOrigin);
- int DoConvertPhysicsToEncoder(float physics, float physicsinonecircle, float encoderinonecircle, float physicsAtOrigin);
- void DigitalTwinRecordConvertParams();
- float GetTubeHorizontalLandmarkPosition(LANDMARK_TYPE landmarkType);
- float GetCurrentAbsoluteTubeHorizontalPos();
- float GetCurrentTubeHorizontalPos();
- private:
- BOOL m_isSystemReady;
- int m_nTomoMotionLimitationStatus;//0:Õý³£ 1:¹ý¸ß 2:¹ýµÍ
- MachineryECOMDriver* m_notifyLogicDriver;
- IMachineryManager *m_machineryManager;
- ITubeAngleController *m_motorTubeAngle;
- ITubeHeightController *m_motorTubeHeight;
- ISensorADController *m_adTubeHeight;
- ISensorADController *m_adTubeAngle;
- ISensorADController *m_adDetectorHeight;
- ISensorEncoderController *m_encoderTubeAngle;
- ISensorEncoderController *m_encoderTubeHeight;
- ISensorADController* m_adTubeHorizontal;
- ISensorEncoderController* m_encoderTubeHorizontal;
- ISensorADController* m_adDetectorHorizontal;
- };
- }
|