切换相机时,加异常捕获

之前功能大致OK,分出改坐标系
bestlqiang 4 years ago
parent f99b24e10b
commit 480db65c12

@ -255,6 +255,8 @@ void DlgHawkvisCamera::OnBnClickedCreatCatchTemp()
//m_HawkvisCtrl.CreateShapeModel(gCameraHawkvis->GetCurShapeModelID()); //m_HawkvisCtrl.CreateShapeModel(gCameraHawkvis->GetCurShapeModelID());
} }
void DlgHawkvisCamera::OnBnClickedTestCatchTemp() void DlgHawkvisCamera::OnBnClickedTestCatchTemp()
{
try
{ {
//清除之前绘制的圆 //清除之前绘制的圆
m_HawkvisCtrl.ClearGraphicObject(); m_HawkvisCtrl.ClearGraphicObject();
@ -266,9 +268,6 @@ void DlgHawkvisCamera::OnBnClickedTestCatchTemp()
#endif #endif
{ {
CString str = _T("func : Hawkvis Get One Frame----->Error"); CString str = _T("func : Hawkvis Get One Frame----->Error");
//CExceptionMsg Msg;
//Msg.SetMsg(str);
//throw Msg;
gLogMgr->WriteDebugLog(str); gLogMgr->WriteDebugLog(str);
} }
Sleep(300);//等待数据结果输出到ocx 控件上 Sleep(300);//等待数据结果输出到ocx 控件上
@ -333,6 +332,11 @@ void DlgHawkvisCamera::OnBnClickedTestCatchTemp()
#endif #endif
//gCommonFlowMgr->CameraCatch(); //gCommonFlowMgr->CameraCatch();
} }
catch (...)
{
AfxMessageBox("模板匹配 异常!");
}
}
void DlgHawkvisCamera::OnBnClickedLoadCatchTemp() void DlgHawkvisCamera::OnBnClickedLoadCatchTemp()
{ {
CFileMgr FileMgr; CFileMgr FileMgr;
@ -380,6 +384,8 @@ void DlgHawkvisCamera::OnBnClickedToCam1()
m_DlgCurCamIndex = 0; m_DlgCurCamIndex = 0;
gCameraHawkvis->SetCamIndex(0); gCameraHawkvis->SetCamIndex(0);
try
{
m_HawkvisCtrl.MV_CloseCamera(); m_HawkvisCtrl.MV_CloseCamera();
if (m_HawkvisCtrl.MV_SelectAdapterByIdx(0)) if (m_HawkvisCtrl.MV_SelectAdapterByIdx(0))
{ {
@ -388,24 +394,12 @@ void DlgHawkvisCamera::OnBnClickedToCam1()
OnBnClickedLoadCatchTemp();//读取模板 OnBnClickedLoadCatchTemp();//读取模板
m_HawkvisCtrl.MV_SetCameraExpTime(gCameraHawkvis->m_nCam1Expore); m_HawkvisCtrl.MV_SetCameraExpTime(gCameraHawkvis->m_nCam1Expore);
m_nExpore = gCameraHawkvis->m_nCam1Expore; m_nExpore = gCameraHawkvis->m_nCam1Expore;
//UpdateData(FALSE);
//OnBnClickedSetExpore();//设置曝光
} }
m_HawkvisCtrl.SetCrossShow(1, 30, 30, -1, -1, ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->GetCheck()); m_HawkvisCtrl.SetCrossShow(1, 30, 30, -1, -1, ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->GetCheck());
if (m_HawkvisCtrl.MV_GetOneFrame()) if (m_HawkvisCtrl.MV_GetOneFrame())
{ {
m_HawkvisCtrl.ZoomFitWindow(); m_HawkvisCtrl.ZoomFitWindow();
} }
/*else
{
static bool bfirst = true;
if (bfirst)
{
AfxMessageBox("相机1连续采集失败!");//报错一次
bfirst = false;
}
}*/
} }
else else
{ {
@ -416,6 +410,11 @@ void DlgHawkvisCamera::OnBnClickedToCam1()
AfxMessageBox("打开相机1失败!");//报错一次 AfxMessageBox("打开相机1失败!");//报错一次
} }
} }
}
catch (...)
{
AfxMessageBox("切换至相机1发生异常!");
}
((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(TRUE); ((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(TRUE);
((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(FALSE); ((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(FALSE);
@ -428,6 +427,8 @@ void DlgHawkvisCamera::OnBnClickedToCam2()
m_DlgCurCamIndex = 1; m_DlgCurCamIndex = 1;
gCameraHawkvis->SetCamIndex(1); gCameraHawkvis->SetCamIndex(1);
try
{
m_HawkvisCtrl.MV_CloseCamera(); m_HawkvisCtrl.MV_CloseCamera();
if (m_HawkvisCtrl.MV_SelectAdapterByIdx(1)) if (m_HawkvisCtrl.MV_SelectAdapterByIdx(1))
{ {
@ -454,6 +455,11 @@ void DlgHawkvisCamera::OnBnClickedToCam2()
bfirst = false; bfirst = false;
} }
} }
}
catch (...)
{
AfxMessageBox("切换至相机2发生异常!");
}
((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE); ((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);
((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(FALSE); ((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(FALSE);

@ -213,9 +213,7 @@ int CLaiPuLaserApp::ExitInstance()
//TODO: 处理可能已添加的附加资源 //TODO: 处理可能已添加的附加资源
AfxOleTerm(FALSE); AfxOleTerm(FALSE);
gModuleDeviceMgr.OnExitApp(); gModuleDeviceMgr.OnExitApp();
auto ret=CWinAppEx::ExitInstance(); return CWinAppEx::ExitInstance();
quick_exit(ret);
return ret;
} }
// CLaiPuLaserApp 消息处理程序 // CLaiPuLaserApp 消息处理程序

@ -1165,16 +1165,16 @@ void CTrackWorkFlow::CatchMarkNewly()
///--------------------抓取治具1上料片的定位点--------------------/// ///--------------------抓取治具1上料片的定位点--------------------///
//将数据移动到当前product 的基准点上 //将数据移动到当前product 的基准点上
Dbxy BasePt(0,0); Dbxy BasePt(0,0);
Product.SetBasePt(BasePt); //Product.SetBasePt(BasePt);
//轨道2 要偏移基准点 //轨道2 要偏移基准点
if (m_TrackType == _ETrackType_Track_2) if (m_TrackType == _ETrackType_Track_2)
{ {
Dbxy Track2Offset = gProgram_SZ_XL->GetTrack2Offset(); Dbxy Track2Offset = gProgram_SZ_XL->GetTrack2Offset();
BasePt.x = Track2Offset.x; BasePt.x = Track2Offset.x;
BasePt.y = Track2Offset.y; BasePt.y = Track2Offset.y;
Product.SetBasePt(BasePt);//发给副机的需记录因为接收到Product2才移动数据
} }
Product.SetBasePt(BasePt);
/* //移动obj /* //移动obj
gProgramCutMgr->MoveObjData(BasePt); gProgramCutMgr->MoveObjData(BasePt);
//移动area //移动area

Loading…
Cancel
Save