TubeHeightController.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #pragma once
  2. #include "ITubeHeightController.h"
  3. namespace DiosCtrlBox
  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. private:
  30. ICommunicateEntity *m_communicate;
  31. int m_driveNumber;
  32. int m_pulseInOneCircle;
  33. float m_pulseDutyCycle;
  34. IServoDrive *m_servo;
  35. };
  36. }