123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- #pragma once
- #include "IMachineryManager.h"
- #include "DiosBoardCtrlParams.h"
- namespace DIOS::Dev::Detail::MachineryECOM
- {
- class ISensorADController;
- class ISensorEncoderController;
- class ITubeAngleController;
- class ITubeHeightController;
- class IExposureController;
- class ILandmarkController;
- class ICollimatorController;
- class IOutputController;
- class ITubeHorizontalController;
- class MachineryManager : public IMachineryManager
- {
- public:
- MachineryManager();
- ~MachineryManager();
- public:
- static MachineryManager *Instance();
- public:
- virtual void Initialize(IMechnicalComponentFactory *factory) override;
- virtual void OnCommunicationEstablished(ICommunicateEntity *communicate) override;
- virtual void *Resove(const std::string &name) override;
- protected:
- void LoadMotorTubeAngleCommunicateInterfaceIDs();
- void LoadMotorTubeHeightCommunicateInterfaceIDs();
- void LoadMotorTubeHorizontalCommunicateInterfaceIDs();
- void LoadSensorADTubeAngleCommunicateInterfaceIDs();
- void LoadSensorEncoderTubeAngleCommunicateInterfaceIDs();
- void LoadSensorADTubeHeightCommunicateInterfaceIDs();
- void LoadSensorEncoderTubeHeightCommunicateInterfaceIDs();
- void LoadSensorADDetectorHeightCommunicateInterfaceIDs();
- void LoadSensorEncoderDetectorHeightCommunicateInterfaceIDs();
- void LoadSensorADTubeHorizontalCommunicateInterfaceIDs();
- void LoadSensorEncoderTubeHorizontalCommunicateInterfaceIDs();
- void LoadExposureCommunicateInterfaceIDs();
- void LoadLandmarkCommunicateInterfaceIDs();
- void LoadOutputSignalInterfaceIDs();
- void LoadSensorADDetectorHorizontalCommunicateInterfaceIDs();
- void LoadSensorEncoderDetectorHorizontalCommunicateInterfaceIDs();
- private:
- void CreateComponents();
- void DistributeServoDrive();
- void SetFilterTimeOnComponents();
- void SetupAutouploadOnComponents();
- void SetupTubeAngleLimition();
- void SetupExposureTrigger();
- void SetupTubeAD();
- void SetupMotorBrake();
- void SetAttribute(GPIO_DI_ID ID, GPIO_DI_PARAM param);
- void SetAutoUpload(GPIO_DI_ID ID, GPIO_DI_PARAM param);
- private:
- static MachineryManager *m_instance;
- ICommunicateEntity *m_communicate;
- IMechnicalComponentFactory *m_mechnicalFactory;
- ITubeAngleController *m_motorTubeAngle;
- ITubeHeightController *m_motorTubeHeight;
- ISensorADController *m_adTubeAngle;
- ISensorADController *m_adTubeHeight;
- ISensorADController *m_adDetectorHeight;
- ISensorEncoderController *m_encoderTubeAngle;
- ISensorEncoderController *m_encoderTubeHeight;
- ISensorEncoderController *m_encoderDetectorHeight;
- IExposureController *m_exposure;
- ILandmarkController *m_landmark;
- ICollimatorController *m_collimator;
- IOutputController* m_tubeLineMotionSwitch;
- //ITubeHorizontalController* m_motorTubeHorizontal;
- ITubeHeightController* m_motorTubeHorizontal;
- ISensorADController* m_adTubeHorizontal;
- ISensorEncoderController* m_encoderTubeHorizontal;
- ISensorADController* m_adDetectorHorizontal;
- };
- }
|