CBCTExamHandler.h 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #pragma once
  2. #include "ICBCTExamHandler.h"
  3. namespace DIOS::Dev::Detail::MachineryECOM
  4. {
  5. enum CBCT_LOGIC_GATE_CHANNEL
  6. {
  7. CBCTLG_CHANNEL_RESET,
  8. CBCTLG_CHANNEL_HANDSWITCH_READY = 0x001,
  9. CBCTLG_CHANNEL_MOTION_READY = 0x010,
  10. CBCTLG_CHANNEL_EXPOSURE_READY = 0x100,
  11. CBCTLG_CHANNEL_PERFORM_READY = 0x111,
  12. };
  13. class CBCTExamHandler : public ICBCTExamHandler
  14. {
  15. public:
  16. CBCTExamHandler();
  17. ~CBCTExamHandler();
  18. public:
  19. virtual void OnModelLoaded(IMotionModelManager *modelManager) override;
  20. virtual void OnCoordinatesLoaded(IPositionManager *coordinates) override;
  21. virtual RET_STATUS OnSelectExamMode(const char *pExamKey) override;
  22. virtual RET_STATUS OnSetTechParamsInfo(ResDataObject& pParam) override;
  23. virtual void OnMotionEvent(const std::string &motionEventName) override;
  24. virtual RET_STATUS OnStopMech() override;
  25. virtual RET_STATUS OnStartMove(DOF_MECH mech, int nOrientation) override;
  26. virtual RET_STATUS OnStopMove(DOF_MECH mech) override;
  27. virtual RET_STATUS OnScanningSwitch(DOF_MECH mech) override;
  28. virtual RET_STATUS OnFrameAcq() override;
  29. virtual RET_STATUS OnFramePrep() override;
  30. virtual RET_STATUS OnFrameError() override;
  31. virtual RET_STATUS OnFrameRecover() override;
  32. virtual RET_STATUS OnSeqError() override;
  33. virtual RET_STATUS OnSetFrameRate(FLOAT frameRate) override;
  34. virtual void OnHandSwitchGearFirstPressed() override;
  35. virtual void OnHandSwitchGearFirstReleased() override;
  36. virtual void OnHandSwitchGearSecondPressed() override;
  37. virtual void OnHandSwitchGearSecondReleased() override;
  38. virtual void OnPWMOffset(PWMOffsetPacket *pwmoff) override;
  39. virtual void OnXrayOn() override;
  40. virtual void OnXrayOff() override;
  41. virtual void OnTubeAngleEncoder(EncoderPacket *tubeangleEncoder) override;
  42. virtual void OnTubeHeightEncoder(EncoderPacket *tubeheightEncoder) override;
  43. virtual RET_STATUS OnGetExposurePositions(ResDataObject &resultAngle, ResDataObject &resultHeight) override;
  44. private:
  45. BOOL ParseTechnicalParams(ResDataObject &paramin, ResDataObject &paramout);
  46. void NotifyTechParamsToDriver(ResDataObject &technics);
  47. void ChangeMotionModelStage(const std::string &stageName);
  48. void UpdateCBCTTriggerGate(CBCT_LOGIC_GATE_CHANNEL channel);
  49. void OnCBCTTriggerGateChanged(int gateStatus);
  50. void DoPerformCBCT();
  51. bool IsMovingEnable();
  52. private:
  53. HAND_SWITCH_STATUS m_handSwitchState;
  54. BOOL m_modelLoaded;
  55. IPositionManager *m_postionManager;
  56. IMotionModelManager *m_modelManager;
  57. int m_cbctPerformGate;
  58. DOF_MECH m_mechCBCT;
  59. };
  60. }