#pragma once #include "INaming.h" #include "INotifyEventListener.h" #include "IMotionModelHandler.h" namespace DiosCtrlBox { enum STATE_MACHINE_STATUS { SM_NONE = -1, SM_FRAMEPREP, SM_FRAMEREADY, SM_FRAMEACQ, SM_FRAMESTART, SM_FRAMEEND, SM_FRAMEPOST, SM_FRAMEERROR, SM_FRAMERECOVER, SM_SEQERROR, SM_SEQEND, }; enum HAND_SWITCH_STATUS { HS_NONE = -1, HS_GEAR_FIRST_PRESSED, HS_GEAR_FIRST_RELEASED, HS_GEAR_SECOND_PRESSED, HS_GEAR_SECOND_RELEASED, }; class IExamHandler : public INaming, public INotifyEventListener, public IMotionModelHandler { public: IExamHandler(); virtual ~IExamHandler(); public: virtual RET_STATUS OnSelectExamMode(const char *pExamKey) = 0; virtual RET_STATUS OnSetTechParamsInfo(ResDataObject PARAM_IN& pParam) = 0; virtual RET_STATUS OnReset(); virtual RET_STATUS OnStopMech(); virtual RET_STATUS OnStartMove(); virtual RET_STATUS OnStopMove(); virtual RET_STATUS OnFramePrep(); virtual RET_STATUS OnFrameReady(); virtual RET_STATUS OnFrameAcq(); virtual RET_STATUS OnFrameStart(); virtual RET_STATUS OnFrameEnd(); virtual RET_STATUS OnFramePost(); virtual RET_STATUS OnFrameError(); virtual RET_STATUS OnFrameRecover(); virtual RET_STATUS OnSeqError(); virtual RET_STATUS OnSeqEnd(); virtual RET_STATUS OnSetFrameRate(FLOAT frameRate); virtual void OnExit(); protected: STATE_MACHINE_STATUS m_stateMachineStatus; }; }