123456789101112131415161718192021222324252627282930313233343536373839 |
- #pragma once
- #include "ISwingController.h"
- namespace DIOS::Dev::Detail::MachineryECOM
- {
- struct RS232_PARAM;
- class TubeSwingController : public ISwingController
- {
- public:
- TubeSwingController();
- ~TubeSwingController();
- 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 SetServoStatus(int svostatus) override;
- virtual void StopSwing() override;
- virtual void Swing(int direction, int steps, DWORD pwmperiod, float pulseDutyCycle = 0.0f) override;
- virtual void SetSwingOrientation(bool clockWise) 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;
- };
- }
|