#include "StdAfx.h" #include "WorkCmdCameraCatch.h" #include "ExceptionMsg.h" #include "Program_SZ_XL_TrackWorkFlow.h" CWorkCmdCameraCatch::CWorkCmdCameraCatch(CCamera &Camera) :m_Camera(Camera) { m_pResultVec = NULL;//结果容器 m_pProduct = NULL; m_bCatchMark3 = false;//是否抓取的是mark3 m_bAlam = true;//是否报警提示 } CWorkCmdCameraCatch::~CWorkCmdCameraCatch(void) { } //抓取定位点 bool CWorkCmdCameraCatch::Excute() { Dbxy pt;//结果点 if (gLogMgr->IsDebuging()) { if (m_pResultVec != NULL) { m_pResultVec->push_back(pt); } return true; } if(m_Camera.CatchPtToPlatformcoord(pt)==false) { //if(m_pProduct != NULL)//抓取失败直接报错 { if(m_bAlam) { gTrackWorkFlow1.RadAlamOnOff(true);//报警提示 } CString str = _T("定位点抓取失败!"); CExceptionMsg Msg; Msg.SetMsg(str); throw Msg; } } //设置实际定位点的值 if(m_pProduct != NULL) { if(m_bCatchMark3)//抓取的是mark3 { m_pProduct->SetRealMark3Pt(pt); } else { m_pProduct->SetRealMarkPt(pt); } } //顺便保存在容器中 if(m_pResultVec != NULL) { m_pResultVec->push_back(pt); } return true; } void CWorkCmdCameraCatch::WirteLog() { gLogMgr->WriteDebugLog("[WorkCmd][Camera 抓取mark]"); }