相机改回用一个相机控件; 推料信号发出后,先强制等待10S再检测完成

之前功能大致OK,分出改坐标系
bestlqiang 5 years ago
parent a09f71010e
commit e8f25d5f3c

@ -147,7 +147,7 @@ void CCameraHawkvis::ExportPar(ofstream *pFile)
void CCameraHawkvis::Ini() void CCameraHawkvis::Ini()
{ {
//绑定霍克视觉的ocx 控件 //绑定霍克视觉的ocx 控件
m_HawkvisCtrl = (GetFrame()->m_DlgHawkvisCamera.m_pHawkvisCtrl); m_HawkvisCtrl = &(GetFrame()->m_DlgHawkvisCamera.m_HawkvisCtrl);
#if 0//def __HAWKVIS_MINDVISION_CCD__ #if 0//def __HAWKVIS_MINDVISION_CCD__
//相机镜像 //相机镜像
m_HawkvisCtrl->MV_SetReversal(0, m_bMirrorH);//水平方向 m_HawkvisCtrl->MV_SetReversal(0, m_bMirrorH);//水平方向
@ -173,14 +173,14 @@ bool CCameraHawkvis::CatchPoint(Dbxy &pt)
{ {
if (!m_bUse) if (!m_bUse)
return false; return false;
auto & m_HawkvisCtrl = (GetFrame()->m_DlgHawkvisCamera.m_pHawkvisCtrl); auto & m_HawkvisCtrl = (GetFrame()->m_DlgHawkvisCamera.m_HawkvisCtrl);
//清除之前绘制的圆 //清除之前绘制的圆
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");
@ -227,7 +227,7 @@ bool CCameraHawkvis::CatchPoint(Dbxy &pt)
bool ret = false; bool ret = false;
try try
{ {
ret = m_HawkvisCtrl->FindShapeModel(GetCurShapeModelID(), v_pdbY, v_pdbX, v_pdbAngles, v_pdbScale, v_pdbSore, nCount); ret = m_HawkvisCtrl.FindShapeModel(GetCurShapeModelID(), v_pdbY, v_pdbX, v_pdbAngles, v_pdbScale, v_pdbSore, nCount);
} }
catch (...) catch (...)
@ -278,8 +278,8 @@ bool CCameraHawkvis::CatchPoint(Dbxy &pt)
if (!IsDbxyZero(pt)) if (!IsDbxyZero(pt))
{ {
m_HawkvisCtrl->SetCrossShow(1, 30, 30, -1, -1, true); m_HawkvisCtrl.SetCrossShow(1, 30, 30, -1, -1, true);
m_HawkvisCtrl->ZoomFitWindow(); m_HawkvisCtrl.ZoomFitWindow();
} }
//m_HawkvisCtrl->MV_GetContinueFrame(); //m_HawkvisCtrl->MV_GetContinueFrame();
return true; return true;

@ -18,8 +18,11 @@ public:
bool SwitchCamera(long CamIndex); //根据相机索引 0、1 切换相机。由相机控件所在对话框Timmer检测当前索引切换相机跨线程直接切换会崩溃。 bool SwitchCamera(long CamIndex); //根据相机索引 0、1 切换相机。由相机控件所在对话框Timmer检测当前索引切换相机跨线程直接切换会崩溃。
void OpenTemp(); void OpenTemp();
unsigned char GetCurShapeModelID() { return m_CurShapeModelID; }; // unsigned char GetCurShapeModelID() { return m_CurShapeModelID; };
void SetCurShapeModelID(int ID) { m_CurShapeModelID=ID; }; // void SetCurShapeModelID(int ID) { m_CurShapeModelID=ID; };
unsigned char GetCurShapeModelID() { return 0; };
void SetCurShapeModelID(int ID) { m_CurShapeModelID = 0; };
public: public:
CHawkvisctrlctrl1 *m_HawkvisCtrl;//霍克视觉的ocx 控件 CHawkvisctrlctrl1 *m_HawkvisCtrl;//霍克视觉的ocx 控件

@ -45,8 +45,6 @@ bool CClientMgr::Connect2Server()
m_bOnline = true; m_bOnline = true;
} }
return true; return true;
} }

@ -479,7 +479,7 @@ void DlgCutDeviceCtrl::SetPar()
m_RotatoAdjust = gCommonFlowMgr->GetRotatoAdjust();//旋转调整 m_RotatoAdjust = gCommonFlowMgr->GetRotatoAdjust();//旋转调整
m_SizeAdjust = gCommonFlowMgr->GetAdjustSize(); m_SizeAdjust = gCommonFlowMgr->GetAdjustSize();
m_MarkAreaCutCount = gCommonFlowMgr->GetAreaCycleCnt();//循环次数 m_MarkAreaCutCount = gCommonFlowMgr->GetAreaCycleCnt();//循环次数
UpdateData(FALSE); //UpdateData(FALSE);
} }
//应用参数 //应用参数
void DlgCutDeviceCtrl::OnBnClickedSavePar() void DlgCutDeviceCtrl::OnBnClickedSavePar()

@ -46,7 +46,7 @@ BEGIN_MESSAGE_MAP(DlgHawkvisCamera, CDialogEx)
END_MESSAGE_MAP() END_MESSAGE_MAP()
#define WORK_TIMER1 1 #define WORK_TIMER1 1
#define WORK_TIME_DELAY1 200 #define WORK_TIME_DELAY1 50
DlgHawkvisCamera::DlgHawkvisCamera(CWnd* pParent /*=NULL*/) DlgHawkvisCamera::DlgHawkvisCamera(CWnd* pParent /*=NULL*/)
: m_CurPic_Definition(0) : m_CurPic_Definition(0)
@ -61,8 +61,7 @@ void DlgHawkvisCamera::DoDataExchange(CDataExchange* pDX)
{ {
CDialogEx::DoDataExchange(pDX); CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_ISP3000_LOGO_BTN, m_ISP3000LogoBtn); DDX_Control(pDX, IDC_ISP3000_LOGO_BTN, m_ISP3000LogoBtn);
DDX_Control(pDX, IDC_HAWKVISCTRLCTRL3, m_HawkvisCtrl1); DDX_Control(pDX, IDC_HAWKVISCTRLCTRL3, m_HawkvisCtrl);
DDX_Control(pDX, IDC_HAWKVISCTRLCTRL4, m_HawkvisCtrl2);
DDX_Control(pDX, IDC_OPEN_CAM, m_OpenCamBtn); DDX_Control(pDX, IDC_OPEN_CAM, m_OpenCamBtn);
DDX_Control(pDX, IDC_CLOSE_CAM, m_CloseCamBtn); DDX_Control(pDX, IDC_CLOSE_CAM, m_CloseCamBtn);
@ -82,10 +81,9 @@ 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()
{ {
@ -107,108 +105,36 @@ BOOL DlgHawkvisCamera::OnInitDialog()
Update(); Update();
try ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->SetCheck(TRUE);
{
if (m_HawkvisCtrl2.MV_SelectAdapterByIdx(1))
{
if (m_HawkvisCtrl2.MV_OpenCamera())
{
m_pHawkvisCtrl = &m_HawkvisCtrl2;
m_HawkvisCtrl2.MV_SetCameraExpTime(gCameraHawkvis->m_nCam2Expore);
}
else
{
AfxMessageBox("相机2 MV_OpenCamera 失败!");
}
m_HawkvisCtrl2.SetCrossShow(1, 30, 30, -1, -1, TRUE);
if (m_HawkvisCtrl2.MV_GetOneFrame())
{
m_HawkvisCtrl2.ZoomFitWindow();
}
else
{
AfxMessageBox("相机2 MV_GetOneFrame 失败!");
}
}
if (m_HawkvisCtrl1.MV_SelectAdapterByIdx(0))
{
if (m_HawkvisCtrl1.MV_OpenCamera())
{
m_pHawkvisCtrl = &m_HawkvisCtrl1;
m_HawkvisCtrl1.MV_SetCameraExpTime(gCameraHawkvis->m_nCam1Expore);
m_nExpore = gCameraHawkvis->m_nCam1Expore;
}
else
{
AfxMessageBox("相机1 MV_OpenCamera 失败!");
}
m_HawkvisCtrl1.SetCrossShow(1, 30, 30, -1, -1, TRUE);
if (m_HawkvisCtrl1.MV_GetOneFrame())
{
m_HawkvisCtrl1.ZoomFitWindow();
}
else
{
AfxMessageBox("相机1 MV_GetOneFrame 失败!");
}
}
}
catch (...)
{
AfxMessageBox("打开相机异常.");
}
UpdateData(FALSE); UpdateData(FALSE);
return TRUE; return TRUE;
} }
//观察平台坐标的变化 //观察平台坐标的变化
void DlgHawkvisCamera::UpdateInfo() void DlgHawkvisCamera::UpdateInfo()
{ {
//换文件时,自动换模板 /*//换文件时,自动换模板
if ((!gLogMgr->IsDebuging()) && gCameraHawkvis->GetCurShapeModelID() != m_ShapeModelID) if (gCameraHawkvis->GetCurShapeModelID()!= m_ShapeModelID)
{ {
auto temp = m_pHawkvisCtrl;
m_ShapeModelID = gCameraHawkvis->GetCurShapeModelID(); m_ShapeModelID = gCameraHawkvis->GetCurShapeModelID();
m_pHawkvisCtrl = &m_HawkvisCtrl1;
OnBnClickedLoadCatchTemp(); OnBnClickedLoadCatchTemp();
Sleep(200); }*/
m_pHawkvisCtrl = &m_HawkvisCtrl2;
OnBnClickedLoadCatchTemp();
m_pHawkvisCtrl = temp;
}
if (m_DlgCurCamIndex == gCameraHawkvis->GetCamIndex()) if (m_DlgCurCamIndex == gCameraHawkvis->GetCamIndex())
return; return;
m_DlgCurCamIndex = gCameraHawkvis->GetCamIndex(); //系数立即刷新,避免重复进入
if (gCameraHawkvis->GetCamIndex() == 0) if (gCameraHawkvis->GetCamIndex() == 0)
{ OnBnClickedToCam1();
m_pHawkvisCtrl = &m_HawkvisCtrl1;
((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(FALSE);
((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(TRUE);
}
if (gCameraHawkvis->GetCamIndex() == 1) if (gCameraHawkvis->GetCamIndex() == 1)
{ OnBnClickedToCam2();
m_pHawkvisCtrl = &m_HawkvisCtrl2;
((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);
((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(FALSE);
//OnBnClickedToCam2();
}
UpdateData(FALSE); UpdateData(FALSE);
} }
void DlgHawkvisCamera::Update() void DlgHawkvisCamera::Update()
{ {
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);
@ -219,11 +145,11 @@ void DlgHawkvisCamera::OnTimer(UINT nIDEvent)
#if 1 #if 1
void DlgHawkvisCamera::OnBnClickedOpenCam() void DlgHawkvisCamera::OnBnClickedOpenCam()
{ {
#ifdef __HAWKVIS_MINDVISION_CCD__ #ifdef __HAWKVIS_MINDVISION_CCD__
if (m_pHawkvisCtrl->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");
} }
@ -232,33 +158,24 @@ void DlgHawkvisCamera::OnBnClickedOpenCam()
} }
void DlgHawkvisCamera::OnBnClickedCloseCam() void DlgHawkvisCamera::OnBnClickedCloseCam()
{ {
#ifdef __HAWKVIS_MINDVISION_CCD__ #ifdef __HAWKVIS_MINDVISION_CCD__
if (m_pHawkvisCtrl->MV_CloseCamera()) m_HawkvisCtrl.MV_CloseCamera();
{ #else
gLogMgr->WriteDebugLog("Hawkvis : Close Cam OK");
}
else
{
gLogMgr->WriteDebugLog("Hawkvis : Close Cam Failed!");
}
#else
m_HawkvisCtrl.HV_CloseCamera(); m_HawkvisCtrl.HV_CloseCamera();
#endif #endif
gLogMgr->WriteDebugLog("Hawkvis : Close Cam");
} }
void DlgHawkvisCamera::OnBnClickedFrameOne() void DlgHawkvisCamera::OnBnClickedFrameOne()
{ {
m_pHawkvisCtrl->SetCrossShow(1, 30, 30, -1, -1, ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->GetCheck()); m_HawkvisCtrl.SetCrossShow(1,30,30,-1,-1,FALSE);
#ifdef __HAWKVIS_MINDVISION_CCD__ #ifdef __HAWKVIS_MINDVISION_CCD__
/*m_pHawkvisCtrl->MV_GetOneFrame(); if(m_HawkvisCtrl.MV_GetOneFrame())
Sleep(100);*/ #else
if (m_pHawkvisCtrl->MV_GetOneFrame()) if(m_HawkvisCtrl.HV_GetOneFrame())
#else #endif
if (m_HawkvisCtrl.HV_GetOneFrame())
#endif
{ {
//m_HawkvisCtrl.Rotate180(); //m_HawkvisCtrl.Rotate180();
m_pHawkvisCtrl->ZoomFitWindow(); m_HawkvisCtrl.ZoomFitWindow();
gLogMgr->WriteDebugLog("Hawkvis : FrameOne --OK"); gLogMgr->WriteDebugLog("Hawkvis : FrameOne --OK");
} }
else else
@ -268,14 +185,14 @@ Sleep(100);*/
} }
void DlgHawkvisCamera::OnBnClickedFrameContinue() void DlgHawkvisCamera::OnBnClickedFrameContinue()
{ {
m_pHawkvisCtrl->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_pHawkvisCtrl->MV_GetContinueFrame()) if(m_HawkvisCtrl.MV_GetContinueFrame())
#else #else
if (m_HawkvisCtrl.HV_GetContinueFrame()) if(m_HawkvisCtrl.HV_GetContinueFrame())
#endif #endif
{ {
m_pHawkvisCtrl->ZoomFitWindow(); m_HawkvisCtrl.ZoomFitWindow();
gLogMgr->WriteDebugLog("Hawkvis : FrameContinue --OK"); gLogMgr->WriteDebugLog("Hawkvis : FrameContinue --OK");
} }
else else
@ -285,21 +202,21 @@ void DlgHawkvisCamera::OnBnClickedFrameContinue()
} }
void DlgHawkvisCamera::OnBnClickedReadBmp() void DlgHawkvisCamera::OnBnClickedReadBmp()
{ {
m_pHawkvisCtrl->ReadImage(); m_HawkvisCtrl.ReadImage();
} }
void DlgHawkvisCamera::OnBnClickedSaveBmp() void DlgHawkvisCamera::OnBnClickedSaveBmp()
{ {
CFileMgr FileMgr; CFileMgr FileMgr;
CString path = FileMgr.GetWorkPath(); CString path = FileMgr.GetWorkPath();
m_pHawkvisCtrl->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;
} }
@ -307,10 +224,10 @@ void DlgHawkvisCamera::OnBnClickedSetExpore()
{ {
gCameraHawkvis->m_nCam2Expore = m_nExpore; gCameraHawkvis->m_nCam2Expore = m_nExpore;
} }
m_pHawkvisCtrl->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();
} }
@ -319,39 +236,31 @@ void DlgHawkvisCamera::OnBnClickedSetExpore()
void DlgHawkvisCamera::OnBnClickedZoomFull() void DlgHawkvisCamera::OnBnClickedZoomFull()
{ {
m_pHawkvisCtrl->ZoomFitWindow(); m_HawkvisCtrl.ZoomFitWindow();
} }
void DlgHawkvisCamera::OnBnClickedHkZoomIn() void DlgHawkvisCamera::OnBnClickedHkZoomIn()
{ {
m_pHawkvisCtrl->ZoomIn(); m_HawkvisCtrl.ZoomIn();
} }
void DlgHawkvisCamera::OnBnClickedHkZoomOut() void DlgHawkvisCamera::OnBnClickedHkZoomOut()
{ {
m_pHawkvisCtrl->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);
try //m_HawkvisCtrl.CreateShapeModel(gCameraHawkvis->GetCurShapeModelID());
{
m_pHawkvisCtrl->CreateShapeModel(gCameraHawkvis->GetCurShapeModelID());
}
catch (...)
{
AfxMessageBox("编辑模板 异常!");
}
} }
void DlgHawkvisCamera::OnBnClickedTestCatchTemp() void DlgHawkvisCamera::OnBnClickedTestCatchTemp()
{ {
//清除之前绘制的圆 //清除之前绘制的圆
m_pHawkvisCtrl->ClearGraphicObject(); m_HawkvisCtrl.ClearGraphicObject();
//抓取一帧 //抓取一帧
#ifdef __HAWKVIS_MINDVISION_CCD__ #ifdef __HAWKVIS_MINDVISION_CCD__
if (!m_pHawkvisCtrl->MV_GetOneFrame()) if (!m_HawkvisCtrl.MV_GetOneFrame())
#else #else
if (!m_HawkvisCtrl->HV_GetOneFrame()) if (!m_HawkvisCtrl->HV_GetOneFrame())
#endif #endif
@ -380,15 +289,8 @@ void DlgHawkvisCamera::OnBnClickedTestCatchTemp()
VARIANT *v_pdbAngles = new VARIANT[1]; VARIANT *v_pdbAngles = new VARIANT[1];
VARIANT *v_pdbScale = new VARIANT[1]; VARIANT *v_pdbScale = new VARIANT[1];
VARIANT *v_pdbSore = new VARIANT[1]; VARIANT *v_pdbSore = new VARIANT[1];
bool ret = false;
try bool ret = m_HawkvisCtrl.FindShapeModel(gCameraHawkvis->GetCurShapeModelID(), v_pdbY, v_pdbX, v_pdbAngles, v_pdbScale, v_pdbSore, nCount);
{
ret = m_pHawkvisCtrl->FindShapeModel(gCameraHawkvis->GetCurShapeModelID(), v_pdbY, v_pdbX, v_pdbAngles, v_pdbScale, v_pdbSore, nCount);
}
catch (...)
{
ret = false;
}
if (!ret)//2018-01-15 增加保护,否则下面可能会报错 if (!ret)//2018-01-15 增加保护,否则下面可能会报错
{ {
CString str = _T("func : Hawkvis Find Shape Model----->Error"); CString str = _T("func : Hawkvis Find Shape Model----->Error");
@ -436,9 +338,7 @@ 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);
try auto b = m_HawkvisCtrl.LoadShapeModelByID(gCameraHawkvis->GetCurShapeModelID(), (LPCTSTR)path);
{
auto b = m_pHawkvisCtrl->LoadShapeModelByID(0, (LPCTSTR)path);
CString str; CString str;
str.Format("Hawkvis : LoadatchTemp [%d]", gCameraHawkvis->GetCurShapeModelID()); str.Format("Hawkvis : LoadatchTemp [%d]", gCameraHawkvis->GetCurShapeModelID());
@ -446,13 +346,9 @@ void DlgHawkvisCamera::OnBnClickedLoadCatchTemp()
str += " 成功!"; str += " 成功!";
else else
str += " 失败!"; str += " 失败!";
gLogMgr->WriteDebugLog(str);
}
catch (...)
{
AfxMessageBox("加载模板 异常!");
}
gLogMgr->WriteDebugLog(str);
//gLogMgr->WriteDebugLog("Hawkvis : LoadCatchTemp"); //gLogMgr->WriteDebugLog("Hawkvis : LoadCatchTemp");
} }
void DlgHawkvisCamera::OnBnClickedSaveCatchTemp() void DlgHawkvisCamera::OnBnClickedSaveCatchTemp()
@ -463,9 +359,7 @@ void DlgHawkvisCamera::OnBnClickedSaveCatchTemp()
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);
try auto b = m_HawkvisCtrl.SaveShapeModelByID(gCameraHawkvis->GetCurShapeModelID(),(LPCTSTR)path);
{
auto b = m_pHawkvisCtrl->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)
@ -473,57 +367,37 @@ void DlgHawkvisCamera::OnBnClickedSaveCatchTemp()
else else
str += " 失败!"; str += " 失败!";
gLogMgr->WriteDebugLog(str); gLogMgr->WriteDebugLog(str);
if (m_pHawkvisCtrl == &m_HawkvisCtrl1)
{
m_pHawkvisCtrl = &m_HawkvisCtrl2;
Sleep(100);
OnBnClickedLoadCatchTemp();
m_pHawkvisCtrl = &m_HawkvisCtrl1;//恢复
}
else
{
m_pHawkvisCtrl = &m_HawkvisCtrl1;
Sleep(100);
OnBnClickedLoadCatchTemp();
m_pHawkvisCtrl = &m_HawkvisCtrl2;//恢复
}
}
catch (...)
{
AfxMessageBox("保存模板 异常!");
}
} }
#endif #endif
void DlgHawkvisCamera::OnBnClickedToCam1() void DlgHawkvisCamera::OnBnClickedToCam1()
{ {
m_pHawkvisCtrl = &m_HawkvisCtrl1; //提前刷新索引,避免重复进入
return; m_DlgCurCamIndex = 0;
/*try gCameraHawkvis->SetCamIndex(0);
{
m_pHawkvisCtrl->MV_CloseCamera(); m_HawkvisCtrl.MV_CloseCamera();
if (m_pHawkvisCtrl->MV_SelectAdapterByIdx(0)) if (m_HawkvisCtrl.MV_SelectAdapterByIdx(0))
{ {
if (m_pHawkvisCtrl->MV_OpenCamera()) if (m_HawkvisCtrl.MV_OpenCamera())
{ {
OnBnClickedLoadCatchTemp();//读取模板 OnBnClickedLoadCatchTemp();//读取模板
m_pHawkvisCtrl->MV_SetCameraExpTime(gCameraHawkvis->m_nCam1Expore); m_HawkvisCtrl.MV_SetCameraExpTime(gCameraHawkvis->m_nCam1Expore);
m_nExpore = gCameraHawkvis->m_nCam1Expore; m_nExpore = gCameraHawkvis->m_nCam1Expore;
//UpdateData(FALSE); //UpdateData(FALSE);
//OnBnClickedSetExpore();//设置曝光 //OnBnClickedSetExpore();//设置曝光
} }
m_pHawkvisCtrl->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_pHawkvisCtrl->MV_GetOneFrame()) if (m_HawkvisCtrl.MV_GetOneFrame())
{ {
m_pHawkvisCtrl->ZoomFitWindow(); m_HawkvisCtrl.ZoomFitWindow();
} }
/ *else /*else
{ {
static bool bfirst = true; static bool bfirst = true;
if (bfirst) if (bfirst)
@ -531,7 +405,7 @@ void DlgHawkvisCamera::OnBnClickedToCam1()
AfxMessageBox("相机1连续采集失败!");//报错一次 AfxMessageBox("相机1连续采集失败!");//报错一次
bfirst = false; bfirst = false;
} }
}* / }*/
} }
else else
{ {
@ -540,47 +414,35 @@ void DlgHawkvisCamera::OnBnClickedToCam1()
{ {
bfirst = false; bfirst = false;
AfxMessageBox("打开相机1失败!");//报错一次 AfxMessageBox("打开相机1失败!");//报错一次
} }
} }
m_DlgCurCamIndex = 0;
gCameraHawkvis->SetCamIndex(0);
((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");
}
catch (...)
{
AfxMessageBox("打开相机1 异常!");//报错一次
}*/
} }
void DlgHawkvisCamera::OnBnClickedToCam2() void DlgHawkvisCamera::OnBnClickedToCam2()
{ { //提前刷新索引,避免重复进入
m_DlgCurCamIndex = 1;
m_pHawkvisCtrl = &m_HawkvisCtrl2; gCameraHawkvis->SetCamIndex(1);
return;
/* m_HawkvisCtrl.MV_CloseCamera();
try if (m_HawkvisCtrl.MV_SelectAdapterByIdx(1))
{
m_pHawkvisCtrl->MV_CloseCamera();
if (m_pHawkvisCtrl->MV_SelectAdapterByIdx(1))
{ {
if (m_pHawkvisCtrl->MV_OpenCamera()) if (m_HawkvisCtrl.MV_OpenCamera())
{ {
OnBnClickedLoadCatchTemp();//读取模板 OnBnClickedLoadCatchTemp();//读取模板
m_pHawkvisCtrl->MV_SetCameraExpTime(gCameraHawkvis->m_nCam2Expore); m_HawkvisCtrl.MV_SetCameraExpTime(gCameraHawkvis->m_nCam2Expore);
m_nExpore = gCameraHawkvis->m_nCam2Expore; m_nExpore = gCameraHawkvis->m_nCam2Expore;
//UpdateData(FALSE); //UpdateData(FALSE);
//OnBnClickedSetExpore();//设置曝光 //OnBnClickedSetExpore();//设置曝光
} }
m_pHawkvisCtrl->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_pHawkvisCtrl->MV_GetOneFrame()) if (m_HawkvisCtrl.MV_GetOneFrame())
{ {
m_pHawkvisCtrl->ZoomFitWindow(); m_HawkvisCtrl.ZoomFitWindow();
} }
} }
else else
@ -593,29 +455,21 @@ void DlgHawkvisCamera::OnBnClickedToCam2()
} }
} }
m_DlgCurCamIndex = 1;
gCameraHawkvis->SetCamIndex(1);
((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");
}
catch (...)
{
AfxMessageBox("打开相机2 异常!");//报错一次
}*/
} }
void DlgHawkvisCamera::OnBnClickedTestDefinition() void DlgHawkvisCamera::OnBnClickedTestDefinition()
{ {
#ifdef __HAWKVIS_MINDVISION_CCD__ #ifdef __HAWKVIS_MINDVISION_CCD__
if (m_pHawkvisCtrl->MV_GetOneFrame()) if (m_HawkvisCtrl.MV_GetOneFrame())
#else #else
if (m_HawkvisCtrl.HV_GetOneFrame()) if (m_HawkvisCtrl.HV_GetOneFrame())
#endif #endif
{ {
m_pHawkvisCtrl->ZoomFitWindow(); m_HawkvisCtrl.ZoomFitWindow();
gLogMgr->WriteDebugLog("Hawkvis : FrameOne --OK"); gLogMgr->WriteDebugLog("Hawkvis : FrameOne --OK");
} }
else else
@ -628,7 +482,7 @@ void DlgHawkvisCamera::OnBnClickedTestDefinition()
CFileMgr fg; CFileMgr fg;
CString path = fg.GetWorkPath(); CString path = fg.GetWorkPath();
m_pHawkvisCtrl->WriteImage((LPCTSTR)path, "PicForDefinition"); m_HawkvisCtrl.WriteImage((LPCTSTR)path, "PicForDefinition");
Sleep(50); Sleep(50);
path += "\\PicForDefinition.bmp"; path += "\\PicForDefinition.bmp";
Mat imageSource = imread((LPCTSTR)path); Mat imageSource = imread((LPCTSTR)path);
@ -655,7 +509,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;
@ -673,6 +527,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;
} }

@ -22,9 +22,7 @@ private:
CMyBttom m_ISP3000LogoBtn;//log 按钮,没什么用处 CMyBttom m_ISP3000LogoBtn;//log 按钮,没什么用处
int m_nExpore;//曝光值0 ~ 2000000 int m_nExpore;//曝光值0 ~ 2000000
CHawkvisctrlctrl1* m_pHawkvisCtrl;//霍克视觉的控件指针 CHawkvisctrlctrl1 m_HawkvisCtrl;//霍克视觉的控件
CHawkvisctrlctrl1 m_HawkvisCtrl1;//霍克视觉的控件
CHawkvisctrlctrl1 m_HawkvisCtrl2;//霍克视觉的控件
int m_DlgCurCamIndex=-1; int m_DlgCurCamIndex=-1;
int m_ShapeModelID = -1; int m_ShapeModelID = -1;
@ -81,7 +79,6 @@ public:
float m_CurPic_Definition; float m_CurPic_Definition;
float m_CurTrackThreshold; float m_CurTrackThreshold;
}; };
extern DlgHawkvisCamera *gDlgHawkvisCamera; extern DlgHawkvisCamera *gDlgHawkvisCamera;

Binary file not shown.

Binary file not shown.

@ -215,8 +215,8 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
m_PaneHawkvisCamera.EnableDocking(CBRS_ALIGN_ANY); m_PaneHawkvisCamera.EnableDocking(CBRS_ALIGN_ANY);
DockPane(&m_PaneHawkvisCamera); DockPane(&m_PaneHawkvisCamera);
m_PaneCutDeviceCtrl.EnableDocking(CBRS_ALIGN_ANY); //m_PaneCutDeviceCtrl.EnableDocking(CBRS_ALIGN_ANY);
DockPane(&m_PaneCutDeviceCtrl); //DockPane(&m_PaneCutDeviceCtrl);
m_PaneSW_XL_Flow.EnableDocking(CBRS_ALIGN_ANY); m_PaneSW_XL_Flow.EnableDocking(CBRS_ALIGN_ANY);
DockPane(&m_PaneSW_XL_Flow); DockPane(&m_PaneSW_XL_Flow);
@ -391,14 +391,14 @@ BOOL CMainFrame::CreateDockingWindows()
} }
m_PaneHawkvisCamera.EnableDocking(CBRS_ALIGN_ANY); m_PaneHawkvisCamera.EnableDocking(CBRS_ALIGN_ANY);
m_PaneCutDeviceCtrl.SetDlg(&m_DlgCutDeviceCtrl); /* m_PaneCutDeviceCtrl.SetDlg(&m_DlgCutDeviceCtrl);
if (!m_PaneCutDeviceCtrl.Create(_T("设备控制"), this, CRect(0, 0, 100, 100), TRUE, m_DlgCutDeviceCtrl.GetIDD(), if (!m_PaneCutDeviceCtrl.Create(_T("设备控制"), this, CRect(0, 0, 100, 100), TRUE, m_DlgCutDeviceCtrl.GetIDD(),
WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI)) WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI))
{ {
TRACE0("未能创建Ctrl Btn/n"); TRACE0("未能创建Ctrl Btn/n");
return FALSE; return FALSE;
} }
m_PaneCutDeviceCtrl.EnableDocking(CBRS_ALIGN_ANY); m_PaneCutDeviceCtrl.EnableDocking(CBRS_ALIGN_ANY);*/
m_PaneSW_XL_Flow.SetDlg(&m_DlgSW_XL_Flow); m_PaneSW_XL_Flow.SetDlg(&m_DlgSW_XL_Flow);
if (!m_PaneSW_XL_Flow.Create(_T("流程控制"), this, CRect(0, 0, 100, 100), TRUE, m_DlgSW_XL_Flow.GetIDD(), if (!m_PaneSW_XL_Flow.Create(_T("流程控制"), this, CRect(0, 0, 100, 100), TRUE, m_DlgSW_XL_Flow.GetIDD(),

@ -110,8 +110,8 @@ public: //
DlgHawkvisCamera m_DlgHawkvisCamera; DlgHawkvisCamera m_DlgHawkvisCamera;
CPaneDialogTmp m_PaneHawkvisCamera; CPaneDialogTmp m_PaneHawkvisCamera;
DlgCutDeviceCtrl m_DlgCutDeviceCtrl; //DlgCutDeviceCtrl m_DlgCutDeviceCtrl;
CPaneDialogTmp m_PaneCutDeviceCtrl; //CPaneDialogTmp m_PaneCutDeviceCtrl;
CDlgSW_XL_Flow m_DlgSW_XL_Flow; CDlgSW_XL_Flow m_DlgSW_XL_Flow;

@ -42,7 +42,7 @@ CProductMgr::~CProductMgr(void)
void CProductMgr::Ini() void CProductMgr::Ini()
{ {
ResetProductVec(m_UseProductCnt); ResetProductVec(m_UseProductCnt);
GetFrame()->m_DlgCutDeviceCtrl.Update(); // GetFrame()->m_DlgCutDeviceCtrl.Update();
} }
void CProductMgr::ResetProductVec(int cnt) void CProductMgr::ResetProductVec(int cnt)
{ {

@ -34,7 +34,7 @@ CProgramCutMgr::~CProgramCutMgr(void)
} }
void CProgramCutMgr::Ini() void CProgramCutMgr::Ini()
{ {
GetFrame()->m_DlgCutDeviceCtrl.SetPar(); // GetFrame()->m_DlgCutDeviceCtrl.SetPar();
} }
#if 1 #if 1
//打开加工文件(bOpenDxf 为false 的时候可以不重新打开dxf) //打开加工文件(bOpenDxf 为false 的时候可以不重新打开dxf)

@ -54,6 +54,7 @@ UINT ReadPlcMsgThread(LPVOID pParam)
//执行一个步骤的线程(执行一次) //执行一个步骤的线程(执行一次)
UINT ExecuteStepThread(LPVOID pParam) UINT ExecuteStepThread(LPVOID pParam)
{ {
AfxSocketInit();
CTrackWorkFlow *WorkFlow = (CTrackWorkFlow *)pParam; CTrackWorkFlow *WorkFlow = (CTrackWorkFlow *)pParam;
WorkFlow->ExecuteCurStep(); WorkFlow->ExecuteCurStep();
return 0; return 0;
@ -702,17 +703,20 @@ bool CTrackWorkFlow::PushJigOut()
}*/ }*/
ETrackPlcCmd PlcCmd; ETrackPlcCmd PlcCmd;
PlcCmd = _ETrack_PlcCmd_Push_Jig_Out; PlcCmd = _ETrack_PlcCmd_Push_Jig_Out;
SendMsgToPlc(PlcCmd, false);
m_bPushJigOut = false; m_bPushJigOut = false;
SendMsgToPlc(PlcCmd, false);
//强制等待10秒再检测是否推出完成
Sleep(10000);
int CheckTimes = 450; int MaxCheckTimes = 300;
int cnt = 0; int cnt = 0;
while (!m_bPushJigOut&&(cnt<CheckTimes)) while ((!m_bPushJigOut) && (cnt < MaxCheckTimes));
{ {
Sleep(200); Sleep(200);
cnt++; cnt++;
} }
if (cnt == CheckTimes)
if (cnt == MaxCheckTimes)
{ {
gTrackWorkFlow1.RadAlamOnOff(true); gTrackWorkFlow1.RadAlamOnOff(true);
AfxMessageBox("推出治具超时!"); AfxMessageBox("推出治具超时!");

@ -202,7 +202,7 @@ void CWorkCmdInvoker::ExcuteAllCmdExt()
gProgressMgr.SetCurProgress(static_cast<int>(k),size); gProgressMgr.SetCurProgress(static_cast<int>(k),size);
#endif #endif
//设置时间 //设置时间
GetFrame()->m_DlgCutDeviceCtrl.Update(); //GetFrame()->m_DlgCutDeviceCtrl.Update();
} }
catch(CExceptionMsg &Msg) catch(CExceptionMsg &Msg)
{ {

Loading…
Cancel
Save