1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #pragma once
- #include "ITubeAngleController.h"
- #include "DiosBoardCtrlParams.h"
- namespace DIOS::Dev::Detail::MachineryECOM
- {
- struct RS232_PARAM;
- class TubeAngleController : public ITubeAngleController
- {
- public:
- TubeAngleController();
- ~TubeAngleController();
- public:
- static std::string CLASSID();
- public:
- 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 ClearSignal() override;
- virtual void AppendPWM(int steps, int period,float pulseDutyCycle = 0.0f) override;
- virtual void ClearServoDriveWarning() override;
- virtual void SetServoStatus(int svostatus) override;
- protected:
- virtual void InitializeServo();
- private:
- void ActivePWMMode();
- void ServoOn(BOOL servoon);
- void DoWrite485(RS232_PARAM ¶m);
- bool IsBrakeOpening();
- private:
- ICommunicateEntity *m_communicate;
- int m_driveNumber;
- float m_pulseDutyCycle;
- IServoDrive *m_servo;
- };
- }
|