#pragma once #include "ISensorEncoderController.h" namespace DIOS::Dev::Detail::MachineryECOM { class SensorEncoderController : public ISensorEncoderController { public: SensorEncoderController(); ~SensorEncoderController(); public: static std::string CLASSID(); public: virtual void Initialize(const std::string &name) override; virtual void OnCommunicationEstablished(ICommunicateEntity *communicate) override; virtual int GetCurrentEncoderValue() override; virtual void LoadAxisInterfaceID(int id_axis_a, int id_axis_b, int id_axis_z) override; virtual void BindABAxis() override; virtual void BindZAxis() override; virtual void UnBindZAxis() override; virtual void ActiveAutoNotifyWhenZClear(bool active) override; virtual void ActiveExposureTrigger(int triggerID) override; virtual void ActiveRotateTrigger(int triggerID) override; virtual void SetExposureTrigger(int encoderValue) override; virtual void SetRotateTrigger(int encoderValue) override; virtual void ClearTrigger() override; private: ICommunicateEntity *m_communicate; int m_id_axis_a; int m_id_axis_b; int m_id_axis_z; }; }