#pragma once #include "ILandmarkController.h" namespace DIOS::Dev::Detail::MachineryECOM { class ICommunicateEntity; class LandmarkController : public ILandmarkController { public: LandmarkController(); ~LandmarkController(); public: static std::string CLASSID(); virtual void Initialize(const std::string &name) override; virtual void OnCommunicationEstablished(ICommunicateEntity *communicate) override; virtual int ReadTubeAngleLowLandmarkStatus() override; virtual int ReadTubeAngleHighLandmarkStatus() override; virtual int ReadTubeHeightLowLandmarkStatus() override; virtual int ReadTubeHeightHighLandmarkStatus() override; virtual int ReadTubeHorizontalLeftLandmarkStatus() override; virtual int ReadTubeHorizontalRightLandmarkStatus() override; private: int DoReadLandmarkStatus(int interfaceid); private: ICommunicateEntity *m_communicate; }; }