CArmMachineryManager.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #pragma once
  2. #include "IMachineryManager.h"
  3. namespace DIOS::Dev::Detail::MachineryECOM
  4. {
  5. class ICircularController;
  6. class ISwingController;
  7. class IExposureController;
  8. class ICollimatorController;
  9. class ISensorEncoderController;
  10. class ILandmarkController;
  11. class IOutputController;
  12. class CArmMachineryManager : public IMachineryManager
  13. {
  14. public:
  15. CArmMachineryManager();
  16. ~CArmMachineryManager();
  17. public:
  18. static CArmMachineryManager *Instance();
  19. public:
  20. virtual void Initialize(IMechnicalComponentFactory *factory) override;
  21. virtual void OnCommunicationEstablished(ICommunicateEntity *communicate) override;
  22. virtual void *Resove(const std::string &name) override;
  23. private:
  24. void CreateComponents();
  25. void DistributeServoDrive();
  26. void LoadSwingCommunicateInterfaceIDs();
  27. void LoadCircularCommunicateInterfaceIDs();
  28. void LoadSwingEncoderCommunicateInterfaceIDs();
  29. void LoadCircularEncoderCommunicateInterfaceIDs();
  30. void LoadExposureCommunicateInterfaceIDs();
  31. void LoadLandmarkCommunicateInterfaceIDs();
  32. void LoadOutputSignalInterfaceIDs();
  33. void SetFilterTimeOnComponents();
  34. void SetupAutouploadOnComponents();
  35. void SetupPFSTrigger();
  36. private:
  37. static CArmMachineryManager *m_instance;
  38. ICommunicateEntity *m_communicate;
  39. IMechnicalComponentFactory *m_mechnicalFactory;
  40. ICircularController *m_cirular;
  41. ISwingController *m_swing;
  42. IExposureController *m_exposure;
  43. ICollimatorController *m_collimator;
  44. ISensorEncoderController *m_encoderCircular;
  45. ISensorEncoderController *m_encoderSwing;
  46. ILandmarkController *m_landmark;
  47. IOutputController* m_fluoroSwitch;
  48. };
  49. }