#pragma once #include "IExamHandler.h" namespace DIOS::Dev::Detail::MachineryECOM { class NormalExamHandler : public IExamHandler { public: NormalExamHandler(); ~NormalExamHandler(); public: virtual void OnModelLoaded(IMotionModelManager *modelManager) override; virtual void OnCoordinatesLoaded(IPositionManager *coordinates) override; virtual RET_STATUS OnSelectExamMode(const char *pExamKey) override; virtual RET_STATUS OnSetTechParamsInfo(ResDataObject &pParam) override; virtual RET_STATUS OnStopMech() override; virtual RET_STATUS OnStartMove(DOF_MECH mech, int nOrientation) override; virtual RET_STATUS OnStopMove(DOF_MECH mech) override; virtual void OnMotionEvent(const std::string &motionEventName) override; virtual RET_STATUS OnFrameError() override; virtual RET_STATUS OnFrameRecover() override; virtual RET_STATUS OnSeqError() override; virtual void OnHandSwitchGearFirstPressed() override; virtual void OnHandSwitchGearFirstReleased() override; virtual void OnHandSwitchGearSecondPressed() override; virtual void OnHandSwitchGearSecondReleased() override; virtual RET_STATUS NormalExamHandler::OnWorkstationSwitch(const char* pWorkstation) override; virtual RET_STATUS OnCenterAdjust(DOF_MECH mech) override; private: void ChangeMotionModelStage(const std::string &stageName); BOOL ParseTechnicalParams(ResDataObject ¶mIn, ResDataObject ¶mOut); void TransferHandSwitchState(int status); BOOL IsMovingEnable(); private: HAND_SWITCH_STATUS m_handSwitchState; BOOL m_modelLoaded; IPositionManager *m_postionManager; IMotionModelManager *m_modelManager; BOOL m_bSendHandswitchStatusAfterCenterAdjust; }; }