ResetHandler.h 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #pragma once
  2. #include "IExamHandler.h"
  3. namespace DIOS::Dev::Detail::MachineryECOM
  4. {
  5. class ResetHandler : public IExamHandler
  6. {
  7. public:
  8. ResetHandler();
  9. ~ResetHandler();
  10. public:
  11. virtual void OnModelLoaded(IMotionModelManager *modelManager) override;
  12. virtual void OnCoordinatesLoaded(IPositionManager *coordinates) override;
  13. virtual RET_STATUS OnReset(DOF_MECH mech) override;
  14. virtual RET_STATUS OnCenterAdjust(DOF_MECH mech) override;
  15. virtual RET_STATUS OnSelectExamMode(const char *pExamKey) override;
  16. virtual RET_STATUS OnSetTechParamsInfo(ResDataObject &pParam) override;
  17. virtual RET_STATUS OnStopMech() override;
  18. virtual RET_STATUS OnStartMove(DOF_MECH mech, int nOrientation) override;
  19. virtual RET_STATUS OnStopMove(DOF_MECH mech) override;
  20. virtual void OnMotionEvent(const std::string &motionEventName) override;
  21. virtual void OnHandSwitchGearFirstPressed() override;
  22. virtual void OnHandSwitchGearFirstReleased() override;
  23. virtual void OnTubeAngleLowLimitPos() override;
  24. virtual void OnTubeAngleHighLimitPos() override;
  25. virtual void OnTubeHeightLowLimitPos() override;
  26. virtual void OnTubeHeightHighLimitPos() override;
  27. virtual void OnTubeAngleLeaveLowLimitPos()override;
  28. virtual void OnTubeAngleLeaveHighLimitPos()override;
  29. virtual void OnTubeHeightLeaveLowLimitPos()override;
  30. virtual void OnTubeHeightLeaveHighLimitPos()override;
  31. virtual void OnTubeAngleEncoderZPos() override;
  32. virtual void OnTubeHeightEncoderZPos() override;
  33. virtual void OnTubeHorizontalLeftLimitPos() override;
  34. virtual void OnTubeHorizontalRightLimitPos() override;
  35. virtual void OnTubeHorizontalLeaveLeftLimitPos() override;
  36. virtual void OnTubeHorizontalLeaveRightLimitPos() override;
  37. virtual void OnTubeHorizontalEncoderZPos() override;
  38. virtual void OnExit() override;
  39. private:
  40. void ChangeMotionModelStage(const std::string& stageName);
  41. void DoOnTubeAngleLandmarkPos();
  42. void DoOnTubHeightLandmarkPos();
  43. void DoStartReset();
  44. void OnMotionEventTubeAngleStop();
  45. void OnMotionEventTubeHeightStop();
  46. void OnMotionEventMotionStoped();
  47. void OnJudgeResetFinished();
  48. BOOL IsMovingEnable();
  49. void DoStartTubeHorizontalReset();
  50. void DoOnTubeHorizontalLandMarkPos();
  51. void OnMotionEventTubeHorizontalStop();
  52. void DoTubeAligntoDetector();
  53. private:
  54. BOOL m_modelLoaded;
  55. BOOL m_useTubeHeightLandmarkAD;
  56. BOOL m_useTubeAngleLandmarkAD;
  57. BOOL m_useTubeHorizontalLandmarkAD;
  58. BOOL m_useHandSwitchControlReset;
  59. BOOL m_bRestWorking;
  60. BOOL m_isResetting;
  61. BOOL m_bStopAtLowLimitPos;
  62. std::string m_currentWaitingTubeAngeStage;
  63. std::string m_currentWaitingTubeHeightStage;
  64. std::string m_currentWaitingTubeHorizontalStage;
  65. int m_ResetFinishedAxisCount;
  66. IPositionManager *m_postionManager;
  67. IMotionModelManager *m_modelManager;
  68. };
  69. }