You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
1.4 KiB
C++

#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]");
}