TubeCircularController.h 1.2 KB

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