123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300 |
- #include "stdafx.h"
- #include "GeneralExamHandler.h"
- #include "ConfigurerMotion.h"
- #include "IMotionModelManager.h"
- #include "IPositionManager.h"
- #include "IMotionModel.h"
- #include "CArmGeneralMotionStageArgs.h"
- #include "MotionStages.h"
- using namespace DIOS::Dev::Detail::MachineryECOM;
- GeneralExamHandler::GeneralExamHandler():
- m_modelLoaded(FALSE),
- m_modelManager(nullptr),
- m_positionManager(nullptr)
- {
- }
- GeneralExamHandler::~GeneralExamHandler()
- {
- }
- void GeneralExamHandler::OnModelLoaded(IMotionModelManager *modelManager)
- {
- m_modelManager = modelManager;
- }
- void GeneralExamHandler::OnCoordinatesLoaded(IPositionManager *coordinates)
- {
- m_positionManager = coordinates;
- }
- RET_STATUS GeneralExamHandler::OnSelectExamMode(const char *pExamKey)
- {
- if (!m_modelLoaded)
- {
- auto model = m_modelManager->Resove(MOTION_MODLE_CARM_GENERAL);
- if (model)
- {
- ResDataObject mechparms;
- if (ConfigurerMotion::GetMachineryConfigs(mechparms))
- {
- model->LoadMachineryParams(mechparms);
- }
- }
- m_modelLoaded = TRUE;
- }
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS GeneralExamHandler::OnSetTechParamsInfo(ResDataObject& pParam)
- {
- return RET_STATUS::RET_SUCCEED;
- }
- void GeneralExamHandler::OnMotionEvent(const std::string &motionEventName)
- {
- }
- RET_STATUS GeneralExamHandler::OnStopMech()
- {
- auto model = m_modelManager->Resove(MOTION_MODLE_CARM_GENERAL);
- if (!model)
- {
- return RET_STATUS::RET_SUCCEED;
- }
- model->ChangeStage(CARM_GENERAL_STOP_MECH_MOVING);
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS GeneralExamHandler::OnTubeSwing(ResDataObject& ParamIn)
- {
- int direction = 1;
- int steps = 0;
- auto model = m_modelManager->Resove(MOTION_MODLE_CARM_GENERAL);
- if (!model)
- {
- return RET_STATUS::RET_FAILED;
- }
- auto modelArgs = (CArmGeneralMotionStageArgs *)model->GetStageArgs();
- if (ParamIn.GetFirstOf("Orientation") >= 0
- && ParamIn.GetFirstOf("StepNumber") >= 0)
- {
- auto positive = ConfigurerMotion::GetTubeRotateAxisPositiveDirection() > 0 ? 1 : -1;
- auto ori = atoi(ParamIn["Orientation"]) > 0 ? positive : (-1 * positive);
- modelArgs->TubeSwingDirection = ori;
- if (ParamIn.GetFirstOf("AsPhysical") >= 0)
- {
- modelArgs->TubeSwingPhysical = (float)atof(ParamIn["StepNumber"]);
- model->ChangeStage(CARM_GENERAL_MOVE_TUBE_SWING_AS_PHYSICAL);
- }
- else
- {
- modelArgs->TubeSwingStep = atoi(ParamIn["StepNumber"]);
- model->ChangeStage(CARM_GENERAL_MOVE_TUBE_SWING);
- }
- }
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS GeneralExamHandler::OnTubeCircular(ResDataObject& ParamIn)
- {
- int direction = 1;
- int steps = 0;
- auto model = m_modelManager->Resove(MOTION_MODLE_CARM_GENERAL);
- if (!model)
- {
- return RET_STATUS::RET_FAILED;
- }
- auto modelArgs = (CArmGeneralMotionStageArgs *)model->GetStageArgs();
- if (ParamIn.GetFirstOf("Orientation") >= 0
- && ParamIn.GetFirstOf("StepNumber") >= 0)
- {
- auto positive = ConfigurerMotion::GetTubeHeightAxisPositiveDirection() > 0 ? 1 : -1;
- auto ori = atoi(ParamIn["Orientation"]) > 0 ? positive : (-1 * positive);
- modelArgs->TubeCircularMoveDirection = ori;
- if (ParamIn.GetFirstOf("AsPhysical") >= 0)
- {
- modelArgs->TubeCircularMovePhysical = (float)atof(ParamIn["StepNumber"]);
- model->ChangeStage(CARM_GENERAL_MOVE_TUBE_CIRCULAR_AS_PHYSICAL);
- }
- else
- {
- modelArgs->TubeCircularMoveStep = atoi(ParamIn["StepNumber"]);
- model->ChangeStage(CARM_GENERAL_MOVE_TUBE_CIRCULAR);
- }
- }
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS GeneralExamHandler::OnGetTubeCircularEncoder(ResDataObject& Paramout)
- {
- auto model = m_modelManager->Resove(MOTION_MODLE_CARM_GENERAL);
- if (!model)
- {
- return RET_STATUS::RET_FAILED;
- }
- model->ChangeStage(CARM_GENERAL_GET_TUBE_CIRCULAR_ENCODER);
- auto modelArgs = (CArmGeneralMotionStageArgs *)model->GetStageArgs();
- Paramout.add("EncoderTubeHeight", modelArgs->TubeCircularEncoder);
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS GeneralExamHandler::OnGetTubeSwingEncoder(ResDataObject& Paramout)
- {
- auto model = m_modelManager->Resove(MOTION_MODLE_CARM_GENERAL);
- if (!model)
- {
- return RET_STATUS::RET_FAILED;
- }
- model->ChangeStage(CARM_GENERAL_GET_TUBE_SWING_ENCODER);
- auto modelArgs = (CArmGeneralMotionStageArgs *)model->GetStageArgs();
- Paramout.add("EncoderTubeAngle", modelArgs->TubeSwingEncoder);
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS GeneralExamHandler::OnActiveTubeSwingZAxis()
- {
- auto model = m_modelManager->Resove(MOTION_MODLE_CARM_GENERAL);
- if (!model)
- {
- return RET_STATUS::RET_FAILED;
- }
- model->ChangeStage(CARM_GENERAL_ACTIVE_TUBE_SWING_Z_AXIS);
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS GeneralExamHandler::OnCancleTubeSwingZAxis()
- {
- auto model = m_modelManager->Resove(MOTION_MODLE_CARM_GENERAL);
- if (!model)
- {
- return RET_STATUS::RET_FAILED;
- }
- model->ChangeStage(CARM_GENERAL_CANCLE_TUBE_SWING_Z_AXIS);
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS GeneralExamHandler::OnActiveTubeCircularZAxis()
- {
- auto model = m_modelManager->Resove(MOTION_MODLE_CARM_GENERAL);
- if (!model)
- {
- return RET_STATUS::RET_FAILED;
- }
- model->ChangeStage(CARM_GENERAL_ACTIVE_TUBE_CIRCULAR_Z_AXIS);
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS GeneralExamHandler::OnCancleTubeCircularZAxis()
- {
- auto model = m_modelManager->Resove(MOTION_MODLE_CARM_GENERAL);
- if (!model)
- {
- return RET_STATUS::RET_FAILED;
- }
- model->ChangeStage(CARM_GENERAL_CANCLE_TUBE_CIRCULAR_Z_AXIS);
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS GeneralExamHandler::OnStartMove(DOF_MECH mech, int nOrientation)
- {
- auto model = m_modelManager->Resove(MOTION_MODLE_CARM_GENERAL);
- if (!model)
- {
- return RET_STATUS::RET_FAILED;
- }
- auto modelArgs = (CArmGeneralMotionStageArgs *)model->GetStageArgs();
-
- if (mech == TOMO_TUBE_HEIGHT)
- {
- modelArgs->TubeCircularMoveDirection = nOrientation;
- modelArgs->TubeCircularMoveStep = -1;
- if(gbusinessLog) gbusinessLog->Info("[GeneralExamHandler][OnStartMove]->[Enter][TOMO_TUBE_HEIGHT][Org: {$:d}]", modelArgs->TubeSwingDirection);
- model->ChangeStage(CARM_GENERAL_MOVE_TUBE_CIRCULAR);
- }
- else if (mech == TOMO_TUBE_ANGLE)
- {
- modelArgs->TubeSwingDirection = nOrientation;
- modelArgs->TubeSwingStep = -1;
- if(gbusinessLog) gbusinessLog->Info("[GeneralExamHandler][OnStartMove]->[Enter][TOMO_TUBE_ANGLE][Org: {$:d}]", modelArgs->TubeSwingDirection);
- model->ChangeStage(CARM_GENERAL_MOVE_TUBE_SWING);
- }
- if(gbusinessLog) gbusinessLog->Info("[GeneralExamHandler][OnStartMove]->[Leave]");
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS GeneralExamHandler::OnStopMove(DOF_MECH mech)
- {
- if(gbusinessLog) gbusinessLog->Info("[GeneralExamHandler][OnStopMove]->[Enter]");
- auto model = m_modelManager->Resove(MOTION_MODLE_CARM_GENERAL);
- if (!model)
- {
- return RET_STATUS::RET_FAILED;
- }
- model->ChangeStage(CARM_GENERAL_STOP_MECH_MOVING);
- if(gbusinessLog) gbusinessLog->Info("[GeneralExamHandler][OnStopMove]->[Leave]");
- return RET_STATUS::RET_SUCCEED;
- }
- void GeneralExamHandler::OnHandSwitchGearFirstPressed()
- {
- auto model = m_modelManager->Resove(MOTION_MODLE_CARM_GENERAL);
- if (!model)
- {
- return ;
- }
- model->ChangeStage(CARM_GENERAL_START_EXPOSURE);
- }
- void GeneralExamHandler::OnHandSwitchGearFirstReleased()
- {
- auto model = m_modelManager->Resove(MOTION_MODLE_CARM_GENERAL);
- if (!model)
- {
- return ;
- }
- model->ChangeStage(CARM_GENERAL_STOP_EXPOSURE);
- }
|