1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- #pragma once
- #include "ICBCTExamHandler.h"
- namespace DIOS::Dev::Detail::MachineryECOM
- {
- enum CBCT_LOGIC_GATE_CHANNEL
- {
- CBCTLG_CHANNEL_RESET,
- CBCTLG_CHANNEL_HANDSWITCH_READY = 0x001,
- CBCTLG_CHANNEL_MOTION_READY = 0x010,
- CBCTLG_CHANNEL_EXPOSURE_READY = 0x100,
- CBCTLG_CHANNEL_PERFORM_READY = 0x111,
- };
- class CBCTExamHandler : public ICBCTExamHandler
- {
- public:
- CBCTExamHandler();
- ~CBCTExamHandler();
- 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 void OnMotionEvent(const std::string &motionEventName) 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 OnScanningSwitch(DOF_MECH mech) override;
- virtual RET_STATUS OnFrameAcq() 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 OnGetExposurePositions(ResDataObject &resultAngle, ResDataObject &resultHeight) override;
- private:
- BOOL ParseTechnicalParams(ResDataObject ¶min, ResDataObject ¶mout);
- void NotifyTechParamsToDriver(ResDataObject &technics);
- void ChangeMotionModelStage(const std::string &stageName);
- void UpdateCBCTTriggerGate(CBCT_LOGIC_GATE_CHANNEL channel);
- void OnCBCTTriggerGateChanged(int gateStatus);
- void DoPerformCBCT();
- bool IsMovingEnable();
- private:
- HAND_SWITCH_STATUS m_handSwitchState;
- BOOL m_modelLoaded;
- IPositionManager *m_postionManager;
- IMotionModelManager *m_modelManager;
- int m_cbctPerformGate;
- DOF_MECH m_mechCBCT;
- };
- }
|