123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #pragma once
- #include "ITomoExamHandler.h"
- namespace DIOS::Dev::Detail::MachineryECOM
- {
- class TomoMotionStage;
- class IMotionStageArgs;
- enum TOMO_LOGIC_GATE_CHANNEL
- {
- TLG_CHANNEL_RESET = 0x000,
- TLG_CHANNEL_HANDSWITCH_READY = 0x001,
- TLG_CHANNEL_MOTION_READY = 0x010,
- TLG_CHANNEL_EXPOSURE_READY = 0x100,
- TLG_CHANNEL_PERFORM_READY = 0x111,
- };
- class TomoExamHandler : public ITomoExamHandler
- {
- public:
- TomoExamHandler();
- ~TomoExamHandler();
- public:
- virtual void OnModelLoaded(IMotionModelManager *modelManager) override;
- virtual void OnCoordinatesLoaded(IPositionManager *coordinates) override;
- virtual void OnMotionEvent(const std::string &motionEventName) override;
- virtual RET_STATUS OnSelectExamMode(const char *pExamKey) override;
- virtual RET_STATUS OnSetTechParamsInfo(ResDataObject &pParam) override;
- virtual RET_STATUS OnFrameAcq() override;
- virtual RET_STATUS OnMoveMech(FLOAT pos) override;
- virtual RET_STATUS OnBlindRotateMech(FLOAT Angle) override;
- virtual RET_STATUS OnRotateMech(FLOAT Angle) override;
- virtual RET_STATUS OnActionMech(FLOAT Pos, FLOAT Angle) 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 RET_STATUS OnGetTomoResults(ResDataObject &resultAngle, ResDataObject &resultHeight) override;
- virtual RET_STATUS OnRecalculateTomoMotionParam() override;
- virtual RET_STATUS OnFramePrep() override;
- virtual RET_STATUS OnFrameError() override;
- virtual RET_STATUS OnFrameRecover() override;
- virtual RET_STATUS OnSeqError() override;
- virtual RET_STATUS OnSetFrameRate(FLOAT frameRate) override;
- virtual void OnHandSwitchGearFirstPressed() override;
- virtual void OnHandSwitchGearFirstReleased() override;
- virtual void OnHandSwitchGearSecondPressed() override;
- virtual void OnHandSwitchGearSecondReleased() override;
- virtual void OnPWMOffset(PWMOffsetPacket *pwmoff) override;
- virtual void OnXrayOn() override;
- virtual void OnXrayOff() override;
- virtual void OnTubeAngleEncoder(EncoderPacket *tubeangleEncoder) override;
- virtual void OnTubeHeightEncoder(EncoderPacket *tubeheightEncoder) override;
- virtual RET_STATUS OnWorkstationSwitch(const char* pWorkstation) override;
- private:
- void ChangeMotionModelStage(const std::string& stageName);
- BOOL ParseTechnicalParams(ResDataObject ¶mIn, ResDataObject ¶mOut);
- void NotifyTechParamsToDriver(ResDataObject &tomoTechnicals);
- void UpdateTomoTriggerGate(TOMO_LOGIC_GATE_CHANNEL channel);
- void OnTomoTriggerGateChanged(int gateStatus);
- void DoPerformTomo();
- BOOL IsMovingEnable();
- private:
- HAND_SWITCH_STATUS m_handSwitchState;
- BOOL m_modelLoaded;
- IPositionManager *m_postionManager;
- IMotionModelManager *m_modelManager;
- int m_tomoLogicGate;
- };
- }
|