#include "stdafx.h" #include "LandmarkController.h" #include "ICommunicateEntity.h" using namespace DIOS::Dev::Detail::MachineryECOM; LandmarkController::LandmarkController() { } LandmarkController::~LandmarkController() { } std::string LandmarkController::CLASSID() { return "32087778-B64F-CB03-66D8-47F361473929"; } void LandmarkController::Initialize(const std::string &name) { SetName(name); } void LandmarkController::OnCommunicationEstablished(ICommunicateEntity *communicate) { m_communicate = communicate; } int LandmarkController::ReadTubeAngleLowLandmarkStatus() { return DoReadLandmarkStatus(m_functionIds[ID_TUBE_ANGLE_LOW_LIMIT]); } int LandmarkController::ReadTubeAngleHighLandmarkStatus() { return DoReadLandmarkStatus(m_functionIds[ID_TUBE_ANGLE_HIGH_LIMIT]); } int LandmarkController::ReadTubeHeightLowLandmarkStatus() { return DoReadLandmarkStatus(m_functionIds[ID_TUBE_HEIGHT_LOW_LIMIT]); } int LandmarkController::ReadTubeHeightHighLandmarkStatus() { return DoReadLandmarkStatus(m_functionIds[ID_TUBE_HEIGHT_HIGH_LIMIT]); } int LandmarkController::ReadTubeHorizontalLeftLandmarkStatus() { return DoReadLandmarkStatus(m_functionIds[ID_TUBE_HORIZONTAL_LEFT_LIMIT]); } int LandmarkController::ReadTubeHorizontalRightLandmarkStatus() { return DoReadLandmarkStatus(m_functionIds[ID_TUBE_HORIZONTAL_RIGHT_LIMIT]); } int LandmarkController::DoReadLandmarkStatus(int interfaceid) { if (!m_communicate) { return 0; } GPIO_DI_PARAM params; params.input_mode = GIM_DIGITAL; params.active_level = 0x0; m_communicate->GPIO_DI_Ctrl(OP_READ, (GPIO_DI_ID)interfaceid, DI_ATTR_NONE, params); return params.active_level; }