123456789101112131415161718192021222324252627282930313233343536373839 |
- #pragma once
- #include "ICircularController.h"
- namespace DIOS::Dev::Detail::MachineryECOM
- {
- struct RS232_PARAM;
- class TubeCircularController : public ICircularController
- {
- public:
- TubeCircularController();
- ~TubeCircularController();
- public:
- static std::string CLASSID();
- virtual void Initialize(const std::string &name) override;
- virtual void AttachServoDrive(IServoDrive *servodrive) override;
- virtual void SetPulseOneCircle(unsigned short pulseonecircle) override;
- virtual void SetPulseDutyCycle(float dutyCycle) override;
- virtual void OnCommunicationEstablished(ICommunicateEntity *communicate) override;
- virtual void StopRotation() override;
- virtual void Rotate(int direction, int steps, DWORD pwmperiod, float pulseDutyCycle = 0.0f) override;
- virtual void SetRotateOrientation(bool clockWise) override;
- virtual void SetServoStatus(int svostatus) override;
- protected:
- virtual void InitializeServo();
- private:
- void ActivePWMMode();
- void ServoOn(BOOL servoon);
- void DoWrite485(RS232_PARAM ¶m);
- private:
- ICommunicateEntity *m_communicate;
- int m_driveNumber;
- int m_pulseInOneCircle;
- float m_pulseDutyCycle;
- IServoDrive *m_servo;
- };
- }
|