LandmarkController.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #include "stdafx.h"
  2. #include "LandmarkController.h"
  3. #include "ICommunicateEntity.h"
  4. using namespace DIOS::Dev::Detail::MachineryECOM;
  5. LandmarkController::LandmarkController()
  6. {
  7. }
  8. LandmarkController::~LandmarkController()
  9. {
  10. }
  11. std::string LandmarkController::CLASSID()
  12. {
  13. return "32087778-B64F-CB03-66D8-47F361473929";
  14. }
  15. void LandmarkController::Initialize(const std::string &name)
  16. {
  17. SetName(name);
  18. }
  19. void LandmarkController::OnCommunicationEstablished(ICommunicateEntity *communicate)
  20. {
  21. m_communicate = communicate;
  22. }
  23. int LandmarkController::ReadTubeAngleLowLandmarkStatus()
  24. {
  25. return DoReadLandmarkStatus(m_functionIds[ID_TUBE_ANGLE_LOW_LIMIT]);
  26. }
  27. int LandmarkController::ReadTubeAngleHighLandmarkStatus()
  28. {
  29. return DoReadLandmarkStatus(m_functionIds[ID_TUBE_ANGLE_HIGH_LIMIT]);
  30. }
  31. int LandmarkController::ReadTubeHeightLowLandmarkStatus()
  32. {
  33. return DoReadLandmarkStatus(m_functionIds[ID_TUBE_HEIGHT_LOW_LIMIT]);
  34. }
  35. int LandmarkController::ReadTubeHeightHighLandmarkStatus()
  36. {
  37. return DoReadLandmarkStatus(m_functionIds[ID_TUBE_HEIGHT_HIGH_LIMIT]);
  38. }
  39. int LandmarkController::ReadTubeHorizontalLeftLandmarkStatus()
  40. {
  41. return DoReadLandmarkStatus(m_functionIds[ID_TUBE_HORIZONTAL_LEFT_LIMIT]);
  42. }
  43. int LandmarkController::ReadTubeHorizontalRightLandmarkStatus()
  44. {
  45. return DoReadLandmarkStatus(m_functionIds[ID_TUBE_HORIZONTAL_RIGHT_LIMIT]);
  46. }
  47. int LandmarkController::DoReadLandmarkStatus(int interfaceid)
  48. {
  49. if (!m_communicate)
  50. {
  51. return 0;
  52. }
  53. GPIO_DI_PARAM params;
  54. params.input_mode = GIM_DIGITAL;
  55. params.active_level = 0x0;
  56. m_communicate->GPIO_DI_Ctrl(OP_READ, (GPIO_DI_ID)interfaceid, DI_ATTR_NONE, params);
  57. return params.active_level;
  58. }