123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- #include "stdafx.h"
- #include "CArmWorkflowManager.h"
- #include "IExamHandler.h"
- #include "ExamHandlerManager.h"
- #include "..\\ExamHandlerNameDef.h"
- #include "PositionManager.h"
- using namespace DIOS::Dev::Detail::MachineryECOM;
- CArmWorkflowManager *CArmWorkflowManager::m_instance = nullptr;
- const std::string EXAMMODE_CBCT = "CBCT";
- CArmWorkflowManager::CArmWorkflowManager()
- {
- }
- CArmWorkflowManager::~CArmWorkflowManager()
- {
- }
- CArmWorkflowManager *CArmWorkflowManager::Instance()
- {
- if (m_instance == nullptr)
- {
- m_instance = new CArmWorkflowManager();
- }
- return m_instance;
- }
- int CArmWorkflowManager::ChangeExamMode(const std::string &examKey, const std::string &examType)
- {
- auto ret = EXM_ERROR;
- if (/*EXAMMODE_CBCT*/EXAMMODE_TOMO == examType || EXAMMODE_CBCT == examType)
- {
- if(gbusinessLog) gbusinessLog->Info("[SelectExamMode]->[{$}]", examKey.c_str());
- IExamHandler *handler = ExamHandlerManager::Instance()->ChangeCurrentHandler(CBCT_EXAMHANDLER);
- if (handler && handler->OnSelectExamMode(examKey.c_str()) >= RET_STATUS::RET_SUCCEED)
- {
- ret = EXM_TOMO;
- }
- }
- else
- {
- IExamHandler *handler = ExamHandlerManager::Instance()->ChangeCurrentHandler(CARM_GENERAL_EXAMHANDLER);
- if (handler && handler->OnSelectExamMode(examKey.c_str()) >= RET_STATUS::RET_SUCCEED)
- {
- ret = EXM_TOMO;
- }
- }
- return ret;
- }
- int CArmWorkflowManager::ChangeWorkstation(const std::string& workstaion)
- {
- return 0;
- }
- int CArmWorkflowManager::ChangeToResetMode()
- {
- IExamHandler *handler = ExamHandlerManager::Instance()->ChangeCurrentHandler(CARM_RESETHANDLER);
- if (handler)
- {
- handler->OnSelectExamMode("RESET");
- }
- return 0;
- }
- IExamHandler *CArmWorkflowManager::GetCurrentWorkFlowHandler()
- {
- auto handler = ExamHandlerManager::Instance()->GetCurrentHandler();
- //if (!PositionManager::Instance()->IsSystemReady())
- //{
- // handler = ExamHandlerManager::Instance()->GetHandler(CARM_RESETHANDLER);
- // if (handler)
- // {
- // handler->OnSelectExamMode("RESET");
- // return handler;
- // }
- //}
- return handler;
- }
- void CArmWorkflowManager::EnterSystemReset()
- {
- IExamHandler *handler = (IExamHandler *)ExamHandlerManager::Instance()->GetHandler(CARM_RESETHANDLER);
- if (handler)
- {
- handler->OnSelectExamMode("RESET");
- handler->OnReset(MECH_ALL);
- }
- }
- void CArmWorkflowManager::ExitSystemReset()
- {
- IExamHandler *handler = (IExamHandler *)ExamHandlerManager::Instance()->GetHandler(CARM_RESETHANDLER);
- if (handler)
- {
- handler->OnSelectExamMode("RESET");
- handler->OnStopMech();
- }
- }
- void CArmWorkflowManager::EnterSystemResetSwing()
- {
- IExamHandler *handler = (IExamHandler *)ExamHandlerManager::Instance()->GetHandler(CARM_RESETHANDLER);
- if (handler)
- {
- handler->OnSelectExamMode("RESET");
- handler->OnReset(TOMO_TUBE_ANGLE);
- }
- }
- void CArmWorkflowManager::ExitSystemResetSwing()
- {
- IExamHandler *handler = (IExamHandler *)ExamHandlerManager::Instance()->GetHandler(CARM_RESETHANDLER);
- if (handler)
- {
- handler->OnSelectExamMode("RESET");
- handler->OnStopMech();
- }
- }
- void CArmWorkflowManager::EnterSystemResetCircular()
- {
- IExamHandler *handler = (IExamHandler *)ExamHandlerManager::Instance()->GetHandler(CARM_RESETHANDLER);
- if (handler)
- {
- handler->OnSelectExamMode("RESET");
- handler->OnReset(TOMO_TUBE_HEIGHT);
- }
- }
- void CArmWorkflowManager::ExitSystemResetCircular()
- {
- IExamHandler *handler = (IExamHandler *)ExamHandlerManager::Instance()->GetHandler(CARM_RESETHANDLER);
- if (handler)
- {
- handler->OnSelectExamMode("RESET");
- handler->OnStopMech();
- }
- }
- void CArmWorkflowManager::SwitchScanning(DOF_MECH mech)
- {
- IExamHandler *handler = nullptr;
-
- handler = (IExamHandler *)ExamHandlerManager::Instance()->GetHandler(CARM_RESETHANDLER);
- if (handler)
- {
- handler->OnScanningSwitch(mech);
- }
- handler = (IExamHandler *)ExamHandlerManager::Instance()->GetHandler(CBCT_EXAMHANDLER);
- if (handler)
- {
- handler->OnScanningSwitch(mech);
- }
- handler = (IExamHandler *)ExamHandlerManager::Instance()->GetHandler(CARM_GENERAL_EXAMHANDLER);
- if (handler)
- {
- handler->OnScanningSwitch(mech);
- }
-
- }
|