TubeHeightController.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. #include "ITubeHeightController.h"
  3. namespace DIOS::Dev::Detail::MachineryECOM
  4. {
  5. struct RS232_PARAM;
  6. class TubeHeightController : public ITubeHeightController
  7. {
  8. public:
  9. TubeHeightController();
  10. ~TubeHeightController();
  11. public:
  12. static std::string CLASSID();
  13. public:
  14. virtual void Initialize(const std::string &name) override;
  15. virtual void AttachServoDrive(IServoDrive *servodrive) override;
  16. virtual void SetPulseOneCircle(unsigned short pulseonecircle) override;
  17. virtual void SetPulseDutyCycle(float dutyCycle) override;
  18. virtual void OnCommunicationEstablished(ICommunicateEntity *communicate) override;
  19. virtual void StopMove() override;
  20. virtual void Move(int direction, int steps, int pwmperiod, float pulseDutyCycle = 0.0f) override;
  21. virtual void SetServoStatus(int svostatus) override;
  22. protected:
  23. virtual void InitializeServo();
  24. private:
  25. void DoWrite485(RS232_PARAM &param);
  26. void ServoOn(BOOL servoon);
  27. void SetDirection(int direction);
  28. void ClearServoDriveWarning();
  29. bool IsBrakeOpening();
  30. private:
  31. ICommunicateEntity *m_communicate;
  32. int m_driveNumber;
  33. int m_pulseInOneCircle;
  34. float m_pulseDutyCycle;
  35. IServoDrive *m_servo;
  36. };
  37. }