#pragma once #include "IComponentController.h" namespace DIOS::Dev::Detail::MachineryECOM { const int INVALID_ENCODER_VALUE = -1; class ISensorEncoderController : public IComponentController { public: ISensorEncoderController(){} virtual ~ISensorEncoderController(){} public: virtual int GetCurrentEncoderValue() = 0; virtual void LoadAxisInterfaceID(int id_axis_a, int id_axis_b, int id_axis_z) = 0; virtual void BindABAxis() = 0; virtual void BindZAxis() = 0; virtual void UnBindZAxis() = 0; virtual void ActiveAutoNotifyWhenZClear(bool active) = 0; virtual void ActiveExposureTrigger(int triggerID) = 0; virtual void ActiveRotateTrigger(int triggerID) = 0; virtual void SetExposureTrigger(int encoderValue) = 0; virtual void SetRotateTrigger(int encoderValue) = 0; virtual void ClearTrigger() = 0; }; }