切换相机时,加异常捕获

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

@ -52,7 +52,7 @@ DlgHawkvisCamera::DlgHawkvisCamera(CWnd* pParent /*=NULL*/)
: m_CurPic_Definition(0) : m_CurPic_Definition(0)
, m_CurTrackThreshold(0) , m_CurTrackThreshold(0)
{ {
m_nExpore = (60000); m_nExpore = (60000);
} }
DlgHawkvisCamera::~DlgHawkvisCamera() DlgHawkvisCamera::~DlgHawkvisCamera()
{ {
@ -81,33 +81,33 @@ void DlgHawkvisCamera::DoDataExchange(CDataExchange* pDX)
DDX_Control(pDX, IDC_TEST_CATCH_TEMP2, m_TestDefinitionBtn); DDX_Control(pDX, IDC_TEST_CATCH_TEMP2, m_TestDefinitionBtn);
DDX_Control(pDX, IDC_TEST_CATCH_TEMP3, m_SetThresholdBtn); DDX_Control(pDX, IDC_TEST_CATCH_TEMP3, m_SetThresholdBtn);
DDX_Text(pDX, IDC_EDIT_SET_EXP2, m_CurTrackThreshold ); DDX_Text(pDX, IDC_EDIT_SET_EXP2, m_CurTrackThreshold);
DDX_Text(pDX, IDC_STATIC_CurValue, m_CurPic_Definition); DDX_Text(pDX, IDC_STATIC_CurValue, m_CurPic_Definition);
} }
BOOL DlgHawkvisCamera::OnInitDialog() BOOL DlgHawkvisCamera::OnInitDialog()
{ {
gDlgHawkvisCamera = this; gDlgHawkvisCamera = this;
CDialogEx::OnInitDialog(); CDialogEx::OnInitDialog();
m_ISP3000LogoBtn.SetUpColor(RGB_YELLOW); m_ISP3000LogoBtn.SetUpColor(RGB_YELLOW);
m_OpenCamBtn.SetUpColor(RGB_GREEN); m_OpenCamBtn.SetUpColor(RGB_GREEN);
m_CloseCamBtn.SetUpColor(RGB_GREEN); m_CloseCamBtn.SetUpColor(RGB_GREEN);
m_ReadTempBtn.SetUpColor(RGB_GREEN1); m_ReadTempBtn.SetUpColor(RGB_GREEN1);
m_EditTempBtn.SetUpColor(RGB_GREEN1); m_EditTempBtn.SetUpColor(RGB_GREEN1);
m_TestTempBtn.SetUpColor(RGB_GREEN1); m_TestTempBtn.SetUpColor(RGB_GREEN1);
m_SaveTempBtn.SetUpColor(RGB_GREEN1); m_SaveTempBtn.SetUpColor(RGB_GREEN1);
m_OneFrameBtn.SetUpColor(RGB_PINK); m_OneFrameBtn.SetUpColor(RGB_PINK);
m_ContinueFrameBtn.SetUpColor(RGB_PINK); m_ContinueFrameBtn.SetUpColor(RGB_PINK);
Fresh(); Fresh();
((CButton*)GetDlgItem(IDC_CROSS_CHECK))->SetCheck(TRUE); ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->SetCheck(TRUE);
UpdateData(FALSE); UpdateData(FALSE);
return TRUE; return TRUE;
} }
//观察平台坐标的变化 //观察平台坐标的变化
void DlgHawkvisCamera::UpdateInfo() void DlgHawkvisCamera::UpdateInfo()
@ -126,240 +126,244 @@ void DlgHawkvisCamera::UpdateInfo()
if (gCameraHawkvis->GetCamIndex() == 1) if (gCameraHawkvis->GetCamIndex() == 1)
OnBnClickedToCam2(); OnBnClickedToCam2();
UpdateData(FALSE); UpdateData(FALSE);
} }
void DlgHawkvisCamera::Fresh() void DlgHawkvisCamera::Fresh()
{ {
SetTimer(WORK_TIMER1,WORK_TIME_DELAY1,NULL);//用timer来更新否则会报错 SetTimer(WORK_TIMER1, WORK_TIME_DELAY1, NULL);//用timer来更新否则会报错
} }
void DlgHawkvisCamera::OnTimer(UINT nIDEvent) void DlgHawkvisCamera::OnTimer(UINT nIDEvent)
{ {
if(nIDEvent == WORK_TIMER1) if (nIDEvent == WORK_TIMER1)
{ {
UpdateInfo(); UpdateInfo();
//KillTimer(WORK_TIMER1); //KillTimer(WORK_TIMER1);
} }
CDialog::OnTimer(nIDEvent); CDialog::OnTimer(nIDEvent);
} }
#if 1 #if 1
void DlgHawkvisCamera::OnBnClickedOpenCam() void DlgHawkvisCamera::OnBnClickedOpenCam()
{ {
#ifdef __HAWKVIS_MINDVISION_CCD__ #ifdef __HAWKVIS_MINDVISION_CCD__
if(m_HawkvisCtrl.MV_OpenCamera()) if (m_HawkvisCtrl.MV_OpenCamera())
#else #else
if(m_HawkvisCtrl.HV_OpenCamera()) if (m_HawkvisCtrl.HV_OpenCamera())
#endif #endif
{ {
gLogMgr->WriteDebugLog("Hawkvis : Open Cam ---->OK"); gLogMgr->WriteDebugLog("Hawkvis : Open Cam ---->OK");
} }
else else
gLogMgr->WriteDebugLog("Hawkvis : Open Cam ---->ERR"); gLogMgr->WriteDebugLog("Hawkvis : Open Cam ---->ERR");
} }
void DlgHawkvisCamera::OnBnClickedCloseCam() void DlgHawkvisCamera::OnBnClickedCloseCam()
{ {
#ifdef __HAWKVIS_MINDVISION_CCD__ #ifdef __HAWKVIS_MINDVISION_CCD__
m_HawkvisCtrl.MV_CloseCamera(); m_HawkvisCtrl.MV_CloseCamera();
#else #else
m_HawkvisCtrl.HV_CloseCamera(); m_HawkvisCtrl.HV_CloseCamera();
#endif #endif
gLogMgr->WriteDebugLog("Hawkvis : Close Cam"); gLogMgr->WriteDebugLog("Hawkvis : Close Cam");
} }
void DlgHawkvisCamera::OnBnClickedFrameOne() void DlgHawkvisCamera::OnBnClickedFrameOne()
{ {
m_HawkvisCtrl.SetCrossShow(1,30,30,-1,-1,FALSE); m_HawkvisCtrl.SetCrossShow(1, 30, 30, -1, -1, FALSE);
#ifdef __HAWKVIS_MINDVISION_CCD__ #ifdef __HAWKVIS_MINDVISION_CCD__
if(m_HawkvisCtrl.MV_GetOneFrame()) if (m_HawkvisCtrl.MV_GetOneFrame())
#else #else
if(m_HawkvisCtrl.HV_GetOneFrame()) if (m_HawkvisCtrl.HV_GetOneFrame())
#endif #endif
{ {
//m_HawkvisCtrl.Rotate180(); //m_HawkvisCtrl.Rotate180();
m_HawkvisCtrl.ZoomFitWindow(); m_HawkvisCtrl.ZoomFitWindow();
gLogMgr->WriteDebugLog("Hawkvis : FrameOne --OK"); gLogMgr->WriteDebugLog("Hawkvis : FrameOne --OK");
} }
else else
{ {
gLogMgr->WriteDebugLog("Hawkvis : FrameOne --ERR"); gLogMgr->WriteDebugLog("Hawkvis : FrameOne --ERR");
} }
} }
void DlgHawkvisCamera::OnBnClickedFrameContinue() void DlgHawkvisCamera::OnBnClickedFrameContinue()
{ {
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());
#ifdef __HAWKVIS_MINDVISION_CCD__ #ifdef __HAWKVIS_MINDVISION_CCD__
if(m_HawkvisCtrl.MV_GetContinueFrame()) if (m_HawkvisCtrl.MV_GetContinueFrame())
#else #else
if(m_HawkvisCtrl.HV_GetContinueFrame()) if (m_HawkvisCtrl.HV_GetContinueFrame())
#endif #endif
{ {
m_HawkvisCtrl.ZoomFitWindow(); m_HawkvisCtrl.ZoomFitWindow();
gLogMgr->WriteDebugLog("Hawkvis : FrameContinue --OK"); gLogMgr->WriteDebugLog("Hawkvis : FrameContinue --OK");
} }
else else
{ {
gLogMgr->WriteDebugLog("Hawkvis : FrameContinue --ERR"); gLogMgr->WriteDebugLog("Hawkvis : FrameContinue --ERR");
} }
} }
void DlgHawkvisCamera::OnBnClickedReadBmp() void DlgHawkvisCamera::OnBnClickedReadBmp()
{ {
m_HawkvisCtrl.ReadImage(); m_HawkvisCtrl.ReadImage();
} }
void DlgHawkvisCamera::OnBnClickedSaveBmp() void DlgHawkvisCamera::OnBnClickedSaveBmp()
{ {
CFileMgr FileMgr; CFileMgr FileMgr;
CString path = FileMgr.GetWorkPath(); CString path = FileMgr.GetWorkPath();
m_HawkvisCtrl.WriteImage((LPCTSTR)path,"OutputImg"); m_HawkvisCtrl.WriteImage((LPCTSTR)path, "OutputImg");
gLogMgr->WriteDebugLog("Hawkvis : SaveBmp"); gLogMgr->WriteDebugLog("Hawkvis : SaveBmp");
} }
//设置曝光值 //设置曝光值
void DlgHawkvisCamera::OnBnClickedSetExpore() void DlgHawkvisCamera::OnBnClickedSetExpore()
{ {
UpdateData(TRUE); UpdateData(TRUE);
#ifdef __HAWKVIS_MINDVISION_CCD__ #ifdef __HAWKVIS_MINDVISION_CCD__
if (m_DlgCurCamIndex==0) if (m_DlgCurCamIndex == 0)
{ {
gCameraHawkvis->m_nCam1Expore = m_nExpore; gCameraHawkvis->m_nCam1Expore = m_nExpore;
} }
else else
{ {
gCameraHawkvis->m_nCam2Expore = m_nExpore; gCameraHawkvis->m_nCam2Expore = m_nExpore;
} }
m_HawkvisCtrl.MV_SetCameraExpTime(m_nExpore); m_HawkvisCtrl.MV_SetCameraExpTime(m_nExpore);
#else #else
m_HawkvisCtrl.HV_SetCameraExpTime(m_nExpore); m_HawkvisCtrl.HV_SetCameraExpTime(m_nExpore);
#endif #endif
gLogMgr->WriteDebugLog("Hawkvis : SetExpore"); gLogMgr->WriteDebugLog("Hawkvis : SetExpore");
OnBnClickedFrameOne(); OnBnClickedFrameOne();
} }
#endif #endif
void DlgHawkvisCamera::OnBnClickedZoomFull() void DlgHawkvisCamera::OnBnClickedZoomFull()
{ {
m_HawkvisCtrl.ZoomFitWindow(); m_HawkvisCtrl.ZoomFitWindow();
} }
void DlgHawkvisCamera::OnBnClickedHkZoomIn() void DlgHawkvisCamera::OnBnClickedHkZoomIn()
{ {
m_HawkvisCtrl.ZoomIn(); m_HawkvisCtrl.ZoomIn();
} }
void DlgHawkvisCamera::OnBnClickedHkZoomOut() void DlgHawkvisCamera::OnBnClickedHkZoomOut()
{ {
m_HawkvisCtrl.ZoomOut(); m_HawkvisCtrl.ZoomOut();
} }
#if 1 #if 1
//编辑模板 //编辑模板
void DlgHawkvisCamera::OnBnClickedCreatCatchTemp() void DlgHawkvisCamera::OnBnClickedCreatCatchTemp()
{ {
//调用控件接口创建基于形状的模板输入参数为模板ID号。控件最多支持创建100个模板即模板号为099 //调用控件接口创建基于形状的模板输入参数为模板ID号。控件最多支持创建100个模板即模板号为099
m_HawkvisCtrl.CreateShapeModel(0); m_HawkvisCtrl.CreateShapeModel(0);
//m_HawkvisCtrl.CreateShapeModel(gCameraHawkvis->GetCurShapeModelID()); //m_HawkvisCtrl.CreateShapeModel(gCameraHawkvis->GetCurShapeModelID());
} }
void DlgHawkvisCamera::OnBnClickedTestCatchTemp() void DlgHawkvisCamera::OnBnClickedTestCatchTemp()
{ {
//清除之前绘制的圆 try
m_HawkvisCtrl.ClearGraphicObject(); {
//抓取一帧 //清除之前绘制的圆
m_HawkvisCtrl.ClearGraphicObject();
//抓取一帧
#ifdef __HAWKVIS_MINDVISION_CCD__ #ifdef __HAWKVIS_MINDVISION_CCD__
if (!m_HawkvisCtrl.MV_GetOneFrame()) if (!m_HawkvisCtrl.MV_GetOneFrame())
#else #else
if (!m_HawkvisCtrl->HV_GetOneFrame()) if (!m_HawkvisCtrl->HV_GetOneFrame())
#endif #endif
{ {
CString str = _T("func : Hawkvis Get One Frame----->Error"); CString str = _T("func : Hawkvis Get One Frame----->Error");
//CExceptionMsg Msg; gLogMgr->WriteDebugLog(str);
//Msg.SetMsg(str); }
//throw Msg; Sleep(300);//等待数据结果输出到ocx 控件上
//模板查找
double pdbX[10], pdbY[10], pdbAngles[10], pdbScale[10], pdbSore[10];
long nCount[1] = { 1 };
//FindShapeMode 控件的模板查找函数。
//第一个参数金字塔层数取值范围15
//第二个参数,输出查找到的目标列坐标
//第三个参数,输出查找到的目标行坐标
//第四个参数,输出查找到的目标角度
//第五个参数,输出查找到的目标伸缩度
//第六个参数,输出查找到的目标分数
//第七个参数,输出查找到的目标个数
//第八个参数输入查找模板的ID号
VARIANT *v_pdbX = new VARIANT[1];
VARIANT *v_pdbY = new VARIANT[1];
VARIANT *v_pdbAngles = new VARIANT[1];
VARIANT *v_pdbScale = new VARIANT[1];
VARIANT *v_pdbSore = new VARIANT[1];
bool ret = m_HawkvisCtrl.FindShapeModel(gCameraHawkvis->GetCurShapeModelID(), v_pdbY, v_pdbX, v_pdbAngles, v_pdbScale, v_pdbSore, nCount);
if (!ret)//2018-01-15 增加保护,否则下面可能会报错
{
CString str = _T("func : Hawkvis Find Shape Model----->Error");
//CExceptionMsg Msg;
//Msg.SetMsg(str);
//throw Msg;
gLogMgr->WriteDebugLog(str);
return;
}
//pdbX
for (long index = 0; index < ::SafeArrayGetElemsize(v_pdbX->parray); ++index) {
::SafeArrayGetElement(v_pdbX->parray, &index, pdbX + index);
}
//pdbY
for (long index = 0; index < ::SafeArrayGetElemsize(v_pdbY->parray); ++index) {
::SafeArrayGetElement(v_pdbY->parray, &index, pdbY + index);
}
//pdbAngles
for (long index = 0; index < ::SafeArrayGetElemsize(v_pdbAngles->parray); ++index) {
::SafeArrayGetElement(v_pdbAngles->parray, &index, pdbAngles + index);
}
//pdbScale
for (long index = 0; index < ::SafeArrayGetElemsize(v_pdbScale->parray); ++index) {
::SafeArrayGetElement(v_pdbScale->parray, &index, pdbScale + index);
}
//pdbSore
for (long index = 0; index < ::SafeArrayGetElemsize(v_pdbSore->parray); ++index) {
::SafeArrayGetElement(v_pdbSore->parray, &index, pdbSore + index);
}
//显示查找到的模板的位置
#if 1
Dbxy pt;
CString str;
str.Format("X: %0.3f, Y:%0.f", pdbX[0], pdbY[0]);
pt.x = pdbX[0];
pt.y = pdbY[0];
str.Format("X: %0.3f, Y:%0.3f", pt.x, pt.y);
gLogMgr->WriteDebugLog(str); gLogMgr->WriteDebugLog(str);
#endif
//gCommonFlowMgr->CameraCatch();
} }
Sleep(300);//等待数据结果输出到ocx 控件上 catch (...)
//模板查找
double pdbX[10], pdbY[10], pdbAngles[10], pdbScale[10], pdbSore[10];
long nCount[1] = { 1 };
//FindShapeMode 控件的模板查找函数。
//第一个参数金字塔层数取值范围15
//第二个参数,输出查找到的目标列坐标
//第三个参数,输出查找到的目标行坐标
//第四个参数,输出查找到的目标角度
//第五个参数,输出查找到的目标伸缩度
//第六个参数,输出查找到的目标分数
//第七个参数,输出查找到的目标个数
//第八个参数输入查找模板的ID号
VARIANT *v_pdbX = new VARIANT[1];
VARIANT *v_pdbY = new VARIANT[1];
VARIANT *v_pdbAngles = new VARIANT[1];
VARIANT *v_pdbScale = new VARIANT[1];
VARIANT *v_pdbSore = new VARIANT[1];
bool ret = m_HawkvisCtrl.FindShapeModel(gCameraHawkvis->GetCurShapeModelID(), v_pdbY, v_pdbX, v_pdbAngles, v_pdbScale, v_pdbSore, nCount);
if (!ret)//2018-01-15 增加保护,否则下面可能会报错
{ {
CString str = _T("func : Hawkvis Find Shape Model----->Error"); AfxMessageBox("模板匹配 异常!");
//CExceptionMsg Msg;
//Msg.SetMsg(str);
//throw Msg;
gLogMgr->WriteDebugLog(str);
return;
}
//pdbX
for (long index = 0; index < ::SafeArrayGetElemsize(v_pdbX->parray); ++index) {
::SafeArrayGetElement(v_pdbX->parray, &index, pdbX + index);
}
//pdbY
for (long index = 0; index < ::SafeArrayGetElemsize(v_pdbY->parray); ++index) {
::SafeArrayGetElement(v_pdbY->parray, &index, pdbY + index);
}
//pdbAngles
for (long index = 0; index < ::SafeArrayGetElemsize(v_pdbAngles->parray); ++index) {
::SafeArrayGetElement(v_pdbAngles->parray, &index, pdbAngles + index);
}
//pdbScale
for (long index = 0; index < ::SafeArrayGetElemsize(v_pdbScale->parray); ++index) {
::SafeArrayGetElement(v_pdbScale->parray, &index, pdbScale + index);
} }
//pdbSore
for (long index = 0; index < ::SafeArrayGetElemsize(v_pdbSore->parray); ++index) {
::SafeArrayGetElement(v_pdbSore->parray, &index, pdbSore + index);
}
//显示查找到的模板的位置
#if 1
Dbxy pt;
CString str;
str.Format("X: %0.3f, Y:%0.f", pdbX[0], pdbY[0]);
pt.x = pdbX[0];
pt.y = pdbY[0];
str.Format("X: %0.3f, Y:%0.3f", pt.x, pt.y);
gLogMgr->WriteDebugLog(str);
#endif
//gCommonFlowMgr->CameraCatch();
} }
void DlgHawkvisCamera::OnBnClickedLoadCatchTemp() void DlgHawkvisCamera::OnBnClickedLoadCatchTemp()
{ {
CFileMgr FileMgr; CFileMgr FileMgr;
CString path = FileMgr.GetWorkPath(); CString path = FileMgr.GetWorkPath();
// auto b=m_HawkvisCtrl.LoadShapeModel((LPCTSTR)path); // auto b=m_HawkvisCtrl.LoadShapeModel((LPCTSTR)path);
auto b = m_HawkvisCtrl.LoadShapeModelByID(gCameraHawkvis->GetCurShapeModelID(), (LPCTSTR)path); auto b = m_HawkvisCtrl.LoadShapeModelByID(gCameraHawkvis->GetCurShapeModelID(), (LPCTSTR)path);
CString str; CString str;
str.Format("Hawkvis : LoadatchTemp [%d]", gCameraHawkvis->GetCurShapeModelID()); str.Format("Hawkvis : LoadatchTemp [%d]", gCameraHawkvis->GetCurShapeModelID());
if (b) if (b)
str += " 成功!"; str += " 成功!";
else else
str += " 失败!"; str += " 失败!";
gLogMgr->WriteDebugLog(str); gLogMgr->WriteDebugLog(str);
//gLogMgr->WriteDebugLog("Hawkvis : LoadCatchTemp"); //gLogMgr->WriteDebugLog("Hawkvis : LoadCatchTemp");
} }
void DlgHawkvisCamera::OnBnClickedSaveCatchTemp() void DlgHawkvisCamera::OnBnClickedSaveCatchTemp()
{ {
//SaveShapeMode 保存模板函数 //SaveShapeMode 保存模板函数
//第一个参数,模板保存的路径 //第一个参数,模板保存的路径
//第二个参数,模板保存的路径名长度 //第二个参数,模板保存的路径名长度
CFileMgr FileMgr; CFileMgr FileMgr;
CString path = FileMgr.GetWorkPath(); CString path = FileMgr.GetWorkPath();
//auto b= m_HawkvisCtrl.SaveShapeModel((LPCTSTR)path); //auto b= m_HawkvisCtrl.SaveShapeModel((LPCTSTR)path);
auto b = m_HawkvisCtrl.SaveShapeModelByID(gCameraHawkvis->GetCurShapeModelID(),(LPCTSTR)path); auto b = m_HawkvisCtrl.SaveShapeModelByID(gCameraHawkvis->GetCurShapeModelID(), (LPCTSTR)path);
CString str; CString str;
str.Format("Hawkvis : SaveCatchTemp [%d]", gCameraHawkvis->GetCurShapeModelID()); str.Format("Hawkvis : SaveCatchTemp [%d]", gCameraHawkvis->GetCurShapeModelID());
if (b) if (b)
@ -376,10 +380,12 @@ void DlgHawkvisCamera::OnBnClickedSaveCatchTemp()
void DlgHawkvisCamera::OnBnClickedToCam1() 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,18 +410,25 @@ 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);
gLogMgr->WriteDebugLog("Switch To Cam1"); gLogMgr->WriteDebugLog("Switch To Cam1");
} }
void DlgHawkvisCamera::OnBnClickedToCam2() 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,10 +455,15 @@ 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);
gLogMgr->WriteDebugLog("Switch To Cam2"); gLogMgr->WriteDebugLog("Switch To Cam2");
} }
@ -494,7 +500,7 @@ void DlgHawkvisCamera::OnBnClickedTestDefinition()
Sobel(imageSource, imageSobel, CV_16U, 1, 1); Sobel(imageSource, imageSobel, CV_16U, 1, 1);
m_CurPic_Definition = mean(imageSobel)[0]; m_CurPic_Definition = mean(imageSobel)[0];
PostMessage(WM_UPDATE_FALSE); PostMessage(WM_UPDATE_FALSE);
} }
bool DlgHawkvisCamera::bCurPicDefinitionOK() bool DlgHawkvisCamera::bCurPicDefinitionOK()
{ {
@ -509,7 +515,7 @@ bool DlgHawkvisCamera::bCurPicDefinitionOK()
OnBnClickedTestDefinition(); OnBnClickedTestDefinition();
if (m_CurTrackThreshold>0.1) if (m_CurTrackThreshold > 0.1)
{ {
if (m_CurPic_Definition < m_CurTrackThreshold) if (m_CurPic_Definition < m_CurTrackThreshold)
return false; return false;
@ -527,6 +533,6 @@ void DlgHawkvisCamera::OnBnClickedSetThreshold()
return; return;
CString nameTail; CString nameTail;
nameTail.Format("_T%d.def", m_DlgCurCamIndex); nameTail.Format("_T%d.def", m_DlgCurCamIndex);
CSmartArchive ar(FileName+ nameTail,true); CSmartArchive ar(FileName + nameTail, true);
ar + m_CurTrackThreshold; ar + m_CurTrackThreshold;
} }

@ -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