WorkFlowManager.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #pragma once
  2. #include "IWorkflowManager.h"
  3. namespace DIOS::Dev::Detail::MachineryECOM
  4. {
  5. enum WORKFLOW_STATUS
  6. {
  7. WFS_NONE,
  8. WFS_SINGLE,
  9. WFS_TOMO,
  10. WFS_CALIBRATION,
  11. WFS_SELFTEST,
  12. WFS_PARKING,
  13. };
  14. class IExamHandler;
  15. class WorkFlowManager : public IWorkflowManager
  16. {
  17. public:
  18. WorkFlowManager();
  19. ~WorkFlowManager();
  20. public:
  21. static WorkFlowManager *Instance();
  22. public:
  23. virtual IExamHandler *GetCurrentWorkFlowHandler() override;
  24. virtual void EnterSystemReset() override;
  25. virtual void ExitSystemReset() override;
  26. virtual void EnterSystemResetSwing() override;
  27. virtual void ExitSystemResetSwing() override;
  28. virtual void EnterSystemResetCircular() override;
  29. virtual void ExitSystemResetCircular() override;
  30. virtual int ChangeExamMode(const std::string &examKey, const std::string &examType) override;
  31. virtual int ChangeToResetMode() override;
  32. virtual int ChangeWorkstation(const std::string& workstaion) override;
  33. virtual void SwitchScanning(DOF_MECH mech) override;
  34. BOOL IsCalibrating();
  35. void EnterCalibration();
  36. void ExitCalibration();
  37. BOOL IsSelfTesting();
  38. void EnterSelfTest();
  39. void ExitSelfTest();
  40. BOOL IsParking();
  41. void EnterParking();
  42. void ExitParking();
  43. private:
  44. IExamHandler *SaveContext();
  45. IExamHandler *RestoreContext();
  46. private:
  47. static WorkFlowManager *m_instance;
  48. IExamHandler *m_storedExamHandler;
  49. WORKFLOW_STATUS m_workFlowStatus;
  50. WORKFLOW_STATUS m_storedWorkFlowStatus;
  51. };
  52. }