|
|
|
@ -46,13 +46,13 @@ BEGIN_MESSAGE_MAP(DlgHawkvisCamera, CDialogEx)
|
|
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
|
|
|
|
#define WORK_TIMER1 1
|
|
|
|
|
#define WORK_TIME_DELAY1 200
|
|
|
|
|
#define WORK_TIME_DELAY1 50
|
|
|
|
|
|
|
|
|
|
DlgHawkvisCamera::DlgHawkvisCamera(CWnd* pParent /*=NULL*/)
|
|
|
|
|
: m_CurPic_Definition(0)
|
|
|
|
|
, m_CurTrackThreshold(0)
|
|
|
|
|
{
|
|
|
|
|
m_nExpore = (60000);
|
|
|
|
|
m_nExpore = (60000);
|
|
|
|
|
}
|
|
|
|
|
DlgHawkvisCamera::~DlgHawkvisCamera()
|
|
|
|
|
{
|
|
|
|
@ -61,8 +61,7 @@ void DlgHawkvisCamera::DoDataExchange(CDataExchange* pDX)
|
|
|
|
|
{
|
|
|
|
|
CDialogEx::DoDataExchange(pDX);
|
|
|
|
|
DDX_Control(pDX, IDC_ISP3000_LOGO_BTN, m_ISP3000LogoBtn);
|
|
|
|
|
DDX_Control(pDX, IDC_HAWKVISCTRLCTRL3, m_HawkvisCtrl1);
|
|
|
|
|
DDX_Control(pDX, IDC_HAWKVISCTRLCTRL4, m_HawkvisCtrl2);
|
|
|
|
|
DDX_Control(pDX, IDC_HAWKVISCTRLCTRL3, m_HawkvisCtrl);
|
|
|
|
|
|
|
|
|
|
DDX_Control(pDX, IDC_OPEN_CAM, m_OpenCamBtn);
|
|
|
|
|
DDX_Control(pDX, IDC_CLOSE_CAM, m_CloseCamBtn);
|
|
|
|
@ -82,276 +81,186 @@ void DlgHawkvisCamera::DoDataExchange(CDataExchange* pDX)
|
|
|
|
|
DDX_Control(pDX, IDC_TEST_CATCH_TEMP2, m_TestDefinitionBtn);
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
BOOL DlgHawkvisCamera::OnInitDialog()
|
|
|
|
|
{
|
|
|
|
|
gDlgHawkvisCamera = this;
|
|
|
|
|
CDialogEx::OnInitDialog();
|
|
|
|
|
m_ISP3000LogoBtn.SetUpColor(RGB_YELLOW);
|
|
|
|
|
|
|
|
|
|
m_OpenCamBtn.SetUpColor(RGB_GREEN);
|
|
|
|
|
m_CloseCamBtn.SetUpColor(RGB_GREEN);
|
|
|
|
|
|
|
|
|
|
m_ReadTempBtn.SetUpColor(RGB_GREEN1);
|
|
|
|
|
m_EditTempBtn.SetUpColor(RGB_GREEN1);
|
|
|
|
|
m_TestTempBtn.SetUpColor(RGB_GREEN1);
|
|
|
|
|
m_SaveTempBtn.SetUpColor(RGB_GREEN1);
|
|
|
|
|
CDialogEx::OnInitDialog();
|
|
|
|
|
m_ISP3000LogoBtn.SetUpColor(RGB_YELLOW);
|
|
|
|
|
|
|
|
|
|
m_OneFrameBtn.SetUpColor(RGB_PINK);
|
|
|
|
|
m_ContinueFrameBtn.SetUpColor(RGB_PINK);
|
|
|
|
|
m_OpenCamBtn.SetUpColor(RGB_GREEN);
|
|
|
|
|
m_CloseCamBtn.SetUpColor(RGB_GREEN);
|
|
|
|
|
|
|
|
|
|
m_ReadTempBtn.SetUpColor(RGB_GREEN1);
|
|
|
|
|
m_EditTempBtn.SetUpColor(RGB_GREEN1);
|
|
|
|
|
m_TestTempBtn.SetUpColor(RGB_GREEN1);
|
|
|
|
|
m_SaveTempBtn.SetUpColor(RGB_GREEN1);
|
|
|
|
|
|
|
|
|
|
m_OneFrameBtn.SetUpColor(RGB_PINK);
|
|
|
|
|
m_ContinueFrameBtn.SetUpColor(RGB_PINK);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Update();
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
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);
|
|
|
|
|
return TRUE;
|
|
|
|
|
((CButton*)GetDlgItem(IDC_CROSS_CHECK))->SetCheck(TRUE);
|
|
|
|
|
UpdateData(FALSE);
|
|
|
|
|
return TRUE;
|
|
|
|
|
}
|
|
|
|
|
//观察平台坐标的变化
|
|
|
|
|
void DlgHawkvisCamera::UpdateInfo()
|
|
|
|
|
{
|
|
|
|
|
//换文件时,自动换模板
|
|
|
|
|
if ((!gLogMgr->IsDebuging()) && gCameraHawkvis->GetCurShapeModelID() != m_ShapeModelID)
|
|
|
|
|
/*//换文件时,自动换模板
|
|
|
|
|
if (gCameraHawkvis->GetCurShapeModelID()!= m_ShapeModelID)
|
|
|
|
|
{
|
|
|
|
|
auto temp = m_pHawkvisCtrl;
|
|
|
|
|
m_ShapeModelID = gCameraHawkvis->GetCurShapeModelID();
|
|
|
|
|
m_pHawkvisCtrl = &m_HawkvisCtrl1;
|
|
|
|
|
OnBnClickedLoadCatchTemp();
|
|
|
|
|
Sleep(200);
|
|
|
|
|
m_pHawkvisCtrl = &m_HawkvisCtrl2;
|
|
|
|
|
OnBnClickedLoadCatchTemp();
|
|
|
|
|
|
|
|
|
|
m_pHawkvisCtrl = temp;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}*/
|
|
|
|
|
if (m_DlgCurCamIndex == gCameraHawkvis->GetCamIndex())
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
m_DlgCurCamIndex = gCameraHawkvis->GetCamIndex(); //系数立即刷新,避免重复进入
|
|
|
|
|
|
|
|
|
|
if (gCameraHawkvis->GetCamIndex() == 0)
|
|
|
|
|
{
|
|
|
|
|
m_pHawkvisCtrl = &m_HawkvisCtrl1;
|
|
|
|
|
((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(FALSE);
|
|
|
|
|
((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(TRUE);
|
|
|
|
|
}
|
|
|
|
|
OnBnClickedToCam1();
|
|
|
|
|
|
|
|
|
|
if (gCameraHawkvis->GetCamIndex() == 1)
|
|
|
|
|
{
|
|
|
|
|
m_pHawkvisCtrl = &m_HawkvisCtrl2;
|
|
|
|
|
((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);
|
|
|
|
|
((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(FALSE);
|
|
|
|
|
//OnBnClickedToCam2();
|
|
|
|
|
}
|
|
|
|
|
OnBnClickedToCam2();
|
|
|
|
|
|
|
|
|
|
UpdateData(FALSE);
|
|
|
|
|
}
|
|
|
|
|
UpdateData(FALSE);
|
|
|
|
|
}
|
|
|
|
|
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)
|
|
|
|
|
{
|
|
|
|
|
UpdateInfo();
|
|
|
|
|
//KillTimer(WORK_TIMER1);
|
|
|
|
|
}
|
|
|
|
|
CDialog::OnTimer(nIDEvent);
|
|
|
|
|
if(nIDEvent == WORK_TIMER1)
|
|
|
|
|
{
|
|
|
|
|
UpdateInfo();
|
|
|
|
|
//KillTimer(WORK_TIMER1);
|
|
|
|
|
}
|
|
|
|
|
CDialog::OnTimer(nIDEvent);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#if 1
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedOpenCam()
|
|
|
|
|
{
|
|
|
|
|
#ifdef __HAWKVIS_MINDVISION_CCD__
|
|
|
|
|
if (m_pHawkvisCtrl->MV_OpenCamera())
|
|
|
|
|
#else
|
|
|
|
|
if (m_HawkvisCtrl.HV_OpenCamera())
|
|
|
|
|
#endif
|
|
|
|
|
{
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : Open Cam ---->OK");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : Open Cam ---->ERR");
|
|
|
|
|
#ifdef __HAWKVIS_MINDVISION_CCD__
|
|
|
|
|
if(m_HawkvisCtrl.MV_OpenCamera())
|
|
|
|
|
#else
|
|
|
|
|
if(m_HawkvisCtrl.HV_OpenCamera())
|
|
|
|
|
#endif
|
|
|
|
|
{
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : Open Cam ---->OK");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : Open Cam ---->ERR");
|
|
|
|
|
}
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedCloseCam()
|
|
|
|
|
{
|
|
|
|
|
#ifdef __HAWKVIS_MINDVISION_CCD__
|
|
|
|
|
if (m_pHawkvisCtrl->MV_CloseCamera())
|
|
|
|
|
{
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : Close Cam OK");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : Close Cam Failed!");
|
|
|
|
|
}
|
|
|
|
|
#else
|
|
|
|
|
m_HawkvisCtrl.HV_CloseCamera();
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef __HAWKVIS_MINDVISION_CCD__
|
|
|
|
|
m_HawkvisCtrl.MV_CloseCamera();
|
|
|
|
|
#else
|
|
|
|
|
m_HawkvisCtrl.HV_CloseCamera();
|
|
|
|
|
#endif
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : Close Cam");
|
|
|
|
|
}
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedFrameOne()
|
|
|
|
|
{
|
|
|
|
|
m_pHawkvisCtrl->SetCrossShow(1, 30, 30, -1, -1, ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->GetCheck());
|
|
|
|
|
#ifdef __HAWKVIS_MINDVISION_CCD__
|
|
|
|
|
/*m_pHawkvisCtrl->MV_GetOneFrame();
|
|
|
|
|
Sleep(100);*/
|
|
|
|
|
if (m_pHawkvisCtrl->MV_GetOneFrame())
|
|
|
|
|
#else
|
|
|
|
|
if (m_HawkvisCtrl.HV_GetOneFrame())
|
|
|
|
|
#endif
|
|
|
|
|
{
|
|
|
|
|
//m_HawkvisCtrl.Rotate180();
|
|
|
|
|
m_pHawkvisCtrl->ZoomFitWindow();
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : FrameOne --OK");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : FrameOne --ERR");
|
|
|
|
|
}
|
|
|
|
|
m_HawkvisCtrl.SetCrossShow(1,30,30,-1,-1,FALSE);
|
|
|
|
|
#ifdef __HAWKVIS_MINDVISION_CCD__
|
|
|
|
|
if(m_HawkvisCtrl.MV_GetOneFrame())
|
|
|
|
|
#else
|
|
|
|
|
if(m_HawkvisCtrl.HV_GetOneFrame())
|
|
|
|
|
#endif
|
|
|
|
|
{
|
|
|
|
|
//m_HawkvisCtrl.Rotate180();
|
|
|
|
|
m_HawkvisCtrl.ZoomFitWindow();
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : FrameOne --OK");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : FrameOne --ERR");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedFrameContinue()
|
|
|
|
|
{
|
|
|
|
|
m_pHawkvisCtrl->SetCrossShow(1, 30, 30, -1, -1, ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->GetCheck());
|
|
|
|
|
#ifdef __HAWKVIS_MINDVISION_CCD__
|
|
|
|
|
if (m_pHawkvisCtrl->MV_GetContinueFrame())
|
|
|
|
|
#else
|
|
|
|
|
if (m_HawkvisCtrl.HV_GetContinueFrame())
|
|
|
|
|
#endif
|
|
|
|
|
{
|
|
|
|
|
m_pHawkvisCtrl->ZoomFitWindow();
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : FrameContinue --OK");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : FrameContinue --ERR");
|
|
|
|
|
}
|
|
|
|
|
m_HawkvisCtrl.SetCrossShow(1,30,30,-1,-1,((CButton*)GetDlgItem(IDC_CROSS_CHECK))->GetCheck());
|
|
|
|
|
#ifdef __HAWKVIS_MINDVISION_CCD__
|
|
|
|
|
if(m_HawkvisCtrl.MV_GetContinueFrame())
|
|
|
|
|
#else
|
|
|
|
|
if(m_HawkvisCtrl.HV_GetContinueFrame())
|
|
|
|
|
#endif
|
|
|
|
|
{
|
|
|
|
|
m_HawkvisCtrl.ZoomFitWindow();
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : FrameContinue --OK");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : FrameContinue --ERR");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedReadBmp()
|
|
|
|
|
{
|
|
|
|
|
m_pHawkvisCtrl->ReadImage();
|
|
|
|
|
m_HawkvisCtrl.ReadImage();
|
|
|
|
|
}
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedSaveBmp()
|
|
|
|
|
{
|
|
|
|
|
CFileMgr FileMgr;
|
|
|
|
|
CString path = FileMgr.GetWorkPath();
|
|
|
|
|
m_pHawkvisCtrl->WriteImage((LPCTSTR)path, "OutputImg");
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : SaveBmp");
|
|
|
|
|
CFileMgr FileMgr;
|
|
|
|
|
CString path = FileMgr.GetWorkPath();
|
|
|
|
|
m_HawkvisCtrl.WriteImage((LPCTSTR)path,"OutputImg");
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : SaveBmp");
|
|
|
|
|
}
|
|
|
|
|
//设置曝光值
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedSetExpore()
|
|
|
|
|
{
|
|
|
|
|
UpdateData(TRUE);
|
|
|
|
|
#ifdef __HAWKVIS_MINDVISION_CCD__
|
|
|
|
|
if (m_DlgCurCamIndex == 0)
|
|
|
|
|
{
|
|
|
|
|
gCameraHawkvis->m_nCam1Expore = m_nExpore;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
gCameraHawkvis->m_nCam2Expore = m_nExpore;
|
|
|
|
|
}
|
|
|
|
|
m_pHawkvisCtrl->MV_SetCameraExpTime(m_nExpore);
|
|
|
|
|
#else
|
|
|
|
|
m_HawkvisCtrl.HV_SetCameraExpTime(m_nExpore);
|
|
|
|
|
#endif
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : SetExpore");
|
|
|
|
|
OnBnClickedFrameOne();
|
|
|
|
|
UpdateData(TRUE);
|
|
|
|
|
#ifdef __HAWKVIS_MINDVISION_CCD__
|
|
|
|
|
if (m_DlgCurCamIndex==0)
|
|
|
|
|
{
|
|
|
|
|
gCameraHawkvis->m_nCam1Expore = m_nExpore;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
gCameraHawkvis->m_nCam2Expore = m_nExpore;
|
|
|
|
|
}
|
|
|
|
|
m_HawkvisCtrl.MV_SetCameraExpTime(m_nExpore);
|
|
|
|
|
#else
|
|
|
|
|
m_HawkvisCtrl.HV_SetCameraExpTime(m_nExpore);
|
|
|
|
|
#endif
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : SetExpore");
|
|
|
|
|
OnBnClickedFrameOne();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedZoomFull()
|
|
|
|
|
{
|
|
|
|
|
m_pHawkvisCtrl->ZoomFitWindow();
|
|
|
|
|
m_HawkvisCtrl.ZoomFitWindow();
|
|
|
|
|
}
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedHkZoomIn()
|
|
|
|
|
{
|
|
|
|
|
m_pHawkvisCtrl->ZoomIn();
|
|
|
|
|
m_HawkvisCtrl.ZoomIn();
|
|
|
|
|
}
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedHkZoomOut()
|
|
|
|
|
{
|
|
|
|
|
m_pHawkvisCtrl->ZoomOut();
|
|
|
|
|
m_HawkvisCtrl.ZoomOut();
|
|
|
|
|
}
|
|
|
|
|
#if 1
|
|
|
|
|
//编辑模板
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedCreatCatchTemp()
|
|
|
|
|
{
|
|
|
|
|
//调用控件接口,创建基于形状的模板,输入参数为模板ID号。控件最多支持创建100个模板,即模板号为0~99
|
|
|
|
|
// m_HawkvisCtrl.CreateShapeModel(0);
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
m_pHawkvisCtrl->CreateShapeModel(gCameraHawkvis->GetCurShapeModelID());
|
|
|
|
|
}
|
|
|
|
|
catch (...)
|
|
|
|
|
{
|
|
|
|
|
AfxMessageBox("编辑模板 异常!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//调用控件接口,创建基于形状的模板,输入参数为模板ID号。控件最多支持创建100个模板,即模板号为0~99
|
|
|
|
|
m_HawkvisCtrl.CreateShapeModel(0);
|
|
|
|
|
//m_HawkvisCtrl.CreateShapeModel(gCameraHawkvis->GetCurShapeModelID());
|
|
|
|
|
}
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedTestCatchTemp()
|
|
|
|
|
{
|
|
|
|
|
//清除之前绘制的圆
|
|
|
|
|
m_pHawkvisCtrl->ClearGraphicObject();
|
|
|
|
|
m_HawkvisCtrl.ClearGraphicObject();
|
|
|
|
|
//抓取一帧
|
|
|
|
|
#ifdef __HAWKVIS_MINDVISION_CCD__
|
|
|
|
|
if (!m_pHawkvisCtrl->MV_GetOneFrame())
|
|
|
|
|
if (!m_HawkvisCtrl.MV_GetOneFrame())
|
|
|
|
|
#else
|
|
|
|
|
if (!m_HawkvisCtrl->HV_GetOneFrame())
|
|
|
|
|
#endif
|
|
|
|
@ -380,15 +289,8 @@ void DlgHawkvisCamera::OnBnClickedTestCatchTemp()
|
|
|
|
|
VARIANT *v_pdbAngles = new VARIANT[1];
|
|
|
|
|
VARIANT *v_pdbScale = new VARIANT[1];
|
|
|
|
|
VARIANT *v_pdbSore = new VARIANT[1];
|
|
|
|
|
bool ret = false;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
ret = m_pHawkvisCtrl->FindShapeModel(gCameraHawkvis->GetCurShapeModelID(), v_pdbY, v_pdbX, v_pdbAngles, v_pdbScale, v_pdbSore, nCount);
|
|
|
|
|
}
|
|
|
|
|
catch (...)
|
|
|
|
|
{
|
|
|
|
|
ret = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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");
|
|
|
|
@ -429,109 +331,81 @@ void DlgHawkvisCamera::OnBnClickedTestCatchTemp()
|
|
|
|
|
str.Format("X: %0.3f, Y:%0.3f", pt.x, pt.y);
|
|
|
|
|
gLogMgr->WriteDebugLog(str);
|
|
|
|
|
#endif
|
|
|
|
|
//gCommonFlowMgr->CameraCatch();
|
|
|
|
|
//gCommonFlowMgr->CameraCatch();
|
|
|
|
|
}
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedLoadCatchTemp()
|
|
|
|
|
{
|
|
|
|
|
CFileMgr FileMgr;
|
|
|
|
|
CString path = FileMgr.GetWorkPath();
|
|
|
|
|
// auto b=m_HawkvisCtrl.LoadShapeModel((LPCTSTR)path);
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
auto b = m_pHawkvisCtrl->LoadShapeModelByID(0, (LPCTSTR)path);
|
|
|
|
|
CString str;
|
|
|
|
|
str.Format("Hawkvis : LoadatchTemp [%d]", gCameraHawkvis->GetCurShapeModelID());
|
|
|
|
|
|
|
|
|
|
if (b)
|
|
|
|
|
str += " 成功!";
|
|
|
|
|
else
|
|
|
|
|
str += " 失败!";
|
|
|
|
|
gLogMgr->WriteDebugLog(str);
|
|
|
|
|
}
|
|
|
|
|
catch (...)
|
|
|
|
|
{
|
|
|
|
|
AfxMessageBox("加载模板 异常!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//gLogMgr->WriteDebugLog("Hawkvis : LoadCatchTemp");
|
|
|
|
|
CFileMgr FileMgr;
|
|
|
|
|
CString path = FileMgr.GetWorkPath();
|
|
|
|
|
// auto b=m_HawkvisCtrl.LoadShapeModel((LPCTSTR)path);
|
|
|
|
|
auto b = m_HawkvisCtrl.LoadShapeModelByID(gCameraHawkvis->GetCurShapeModelID(), (LPCTSTR)path);
|
|
|
|
|
CString str;
|
|
|
|
|
str.Format("Hawkvis : LoadatchTemp [%d]", gCameraHawkvis->GetCurShapeModelID());
|
|
|
|
|
|
|
|
|
|
if (b)
|
|
|
|
|
str += " 成功!";
|
|
|
|
|
else
|
|
|
|
|
str += " 失败!";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gLogMgr->WriteDebugLog(str);
|
|
|
|
|
//gLogMgr->WriteDebugLog("Hawkvis : LoadCatchTemp");
|
|
|
|
|
}
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedSaveCatchTemp()
|
|
|
|
|
{
|
|
|
|
|
//SaveShapeMode 保存模板函数
|
|
|
|
|
//第一个参数,模板保存的路径
|
|
|
|
|
//第二个参数,模板保存的路径名长度
|
|
|
|
|
//SaveShapeMode 保存模板函数
|
|
|
|
|
//第一个参数,模板保存的路径
|
|
|
|
|
//第二个参数,模板保存的路径名长度
|
|
|
|
|
CFileMgr FileMgr;
|
|
|
|
|
CString path = FileMgr.GetWorkPath();
|
|
|
|
|
//auto b= m_HawkvisCtrl.SaveShapeModel((LPCTSTR)path);
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
auto b = m_pHawkvisCtrl->SaveShapeModelByID(gCameraHawkvis->GetCurShapeModelID(), (LPCTSTR)path);
|
|
|
|
|
CString str;
|
|
|
|
|
str.Format("Hawkvis : SaveCatchTemp [%d]", gCameraHawkvis->GetCurShapeModelID());
|
|
|
|
|
if (b)
|
|
|
|
|
str += " 成功!";
|
|
|
|
|
else
|
|
|
|
|
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("保存模板 异常!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
auto b = m_HawkvisCtrl.SaveShapeModelByID(gCameraHawkvis->GetCurShapeModelID(),(LPCTSTR)path);
|
|
|
|
|
CString str;
|
|
|
|
|
str.Format("Hawkvis : SaveCatchTemp [%d]", gCameraHawkvis->GetCurShapeModelID());
|
|
|
|
|
if (b)
|
|
|
|
|
str += " 成功!";
|
|
|
|
|
else
|
|
|
|
|
str += " 失败!";
|
|
|
|
|
gLogMgr->WriteDebugLog(str);
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedToCam1()
|
|
|
|
|
{
|
|
|
|
|
m_pHawkvisCtrl = &m_HawkvisCtrl1;
|
|
|
|
|
return;
|
|
|
|
|
/*try
|
|
|
|
|
{
|
|
|
|
|
m_pHawkvisCtrl->MV_CloseCamera();
|
|
|
|
|
if (m_pHawkvisCtrl->MV_SelectAdapterByIdx(0))
|
|
|
|
|
//提前刷新索引,避免重复进入
|
|
|
|
|
m_DlgCurCamIndex = 0;
|
|
|
|
|
gCameraHawkvis->SetCamIndex(0);
|
|
|
|
|
|
|
|
|
|
m_HawkvisCtrl.MV_CloseCamera();
|
|
|
|
|
if (m_HawkvisCtrl.MV_SelectAdapterByIdx(0))
|
|
|
|
|
{
|
|
|
|
|
if (m_pHawkvisCtrl->MV_OpenCamera())
|
|
|
|
|
{
|
|
|
|
|
OnBnClickedLoadCatchTemp();//读取模板
|
|
|
|
|
m_pHawkvisCtrl->MV_SetCameraExpTime(gCameraHawkvis->m_nCam1Expore);
|
|
|
|
|
if (m_HawkvisCtrl.MV_OpenCamera())
|
|
|
|
|
{
|
|
|
|
|
OnBnClickedLoadCatchTemp();//读取模板
|
|
|
|
|
m_HawkvisCtrl.MV_SetCameraExpTime(gCameraHawkvis->m_nCam1Expore);
|
|
|
|
|
m_nExpore = gCameraHawkvis->m_nCam1Expore;
|
|
|
|
|
//UpdateData(FALSE);
|
|
|
|
|
//OnBnClickedSetExpore();//设置曝光
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
m_pHawkvisCtrl->SetCrossShow(1, 30, 30, -1, -1, ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->GetCheck());
|
|
|
|
|
if (m_pHawkvisCtrl->MV_GetOneFrame())
|
|
|
|
|
|
|
|
|
|
m_HawkvisCtrl.SetCrossShow(1, 30, 30, -1, -1, ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->GetCheck());
|
|
|
|
|
if (m_HawkvisCtrl.MV_GetOneFrame())
|
|
|
|
|
{
|
|
|
|
|
m_pHawkvisCtrl->ZoomFitWindow();
|
|
|
|
|
m_HawkvisCtrl.ZoomFitWindow();
|
|
|
|
|
}
|
|
|
|
|
/ *else
|
|
|
|
|
{
|
|
|
|
|
static bool bfirst = true;
|
|
|
|
|
if (bfirst)
|
|
|
|
|
/*else
|
|
|
|
|
{
|
|
|
|
|
AfxMessageBox("相机1连续采集失败!");//报错一次
|
|
|
|
|
bfirst = false;
|
|
|
|
|
}
|
|
|
|
|
}* /
|
|
|
|
|
static bool bfirst = true;
|
|
|
|
|
if (bfirst)
|
|
|
|
|
{
|
|
|
|
|
AfxMessageBox("相机1连续采集失败!");//报错一次
|
|
|
|
|
bfirst = false;
|
|
|
|
|
}
|
|
|
|
|
}*/
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
@ -539,83 +413,63 @@ void DlgHawkvisCamera::OnBnClickedToCam1()
|
|
|
|
|
if (bfirst)
|
|
|
|
|
{
|
|
|
|
|
bfirst = false;
|
|
|
|
|
AfxMessageBox("打开相机1失败!");//报错一次
|
|
|
|
|
|
|
|
|
|
AfxMessageBox("打开相机1失败!");//报错一次
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
m_DlgCurCamIndex = 0;
|
|
|
|
|
gCameraHawkvis->SetCamIndex(0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(TRUE);
|
|
|
|
|
((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(FALSE);
|
|
|
|
|
gLogMgr->WriteDebugLog("Switch To Cam1");
|
|
|
|
|
}
|
|
|
|
|
catch (...)
|
|
|
|
|
{
|
|
|
|
|
AfxMessageBox("打开相机1 异常!");//报错一次
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedToCam2()
|
|
|
|
|
{
|
|
|
|
|
{ //提前刷新索引,避免重复进入
|
|
|
|
|
m_DlgCurCamIndex = 1;
|
|
|
|
|
gCameraHawkvis->SetCamIndex(1);
|
|
|
|
|
|
|
|
|
|
m_pHawkvisCtrl = &m_HawkvisCtrl2;
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
try
|
|
|
|
|
m_HawkvisCtrl.MV_CloseCamera();
|
|
|
|
|
if (m_HawkvisCtrl.MV_SelectAdapterByIdx(1))
|
|
|
|
|
{
|
|
|
|
|
m_pHawkvisCtrl->MV_CloseCamera();
|
|
|
|
|
if (m_pHawkvisCtrl->MV_SelectAdapterByIdx(1))
|
|
|
|
|
if (m_HawkvisCtrl.MV_OpenCamera())
|
|
|
|
|
{
|
|
|
|
|
if (m_pHawkvisCtrl->MV_OpenCamera())
|
|
|
|
|
{
|
|
|
|
|
OnBnClickedLoadCatchTemp();//读取模板
|
|
|
|
|
m_pHawkvisCtrl->MV_SetCameraExpTime(gCameraHawkvis->m_nCam2Expore);
|
|
|
|
|
m_nExpore = gCameraHawkvis->m_nCam2Expore;
|
|
|
|
|
//UpdateData(FALSE);
|
|
|
|
|
//OnBnClickedSetExpore();//设置曝光
|
|
|
|
|
}
|
|
|
|
|
m_pHawkvisCtrl->SetCrossShow(1, 30, 30, -1, -1, ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->GetCheck());
|
|
|
|
|
if (m_pHawkvisCtrl->MV_GetOneFrame())
|
|
|
|
|
{
|
|
|
|
|
m_pHawkvisCtrl->ZoomFitWindow();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
OnBnClickedLoadCatchTemp();//读取模板
|
|
|
|
|
m_HawkvisCtrl.MV_SetCameraExpTime(gCameraHawkvis->m_nCam2Expore);
|
|
|
|
|
m_nExpore = gCameraHawkvis->m_nCam2Expore;
|
|
|
|
|
//UpdateData(FALSE);
|
|
|
|
|
//OnBnClickedSetExpore();//设置曝光
|
|
|
|
|
}
|
|
|
|
|
m_HawkvisCtrl.SetCrossShow(1, 30, 30, -1, -1, ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->GetCheck());
|
|
|
|
|
if (m_HawkvisCtrl.MV_GetOneFrame())
|
|
|
|
|
{
|
|
|
|
|
static bool bfirst = true;
|
|
|
|
|
if (bfirst)
|
|
|
|
|
{
|
|
|
|
|
AfxMessageBox("打开相机2失败!");//报错一次
|
|
|
|
|
bfirst = false;
|
|
|
|
|
}
|
|
|
|
|
m_HawkvisCtrl.ZoomFitWindow();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
m_DlgCurCamIndex = 1;
|
|
|
|
|
gCameraHawkvis->SetCamIndex(1);
|
|
|
|
|
((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);
|
|
|
|
|
((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(FALSE);
|
|
|
|
|
gLogMgr->WriteDebugLog("Switch To Cam2");
|
|
|
|
|
}
|
|
|
|
|
catch (...)
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
AfxMessageBox("打开相机2 异常!");//报错一次
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
|
|
static bool bfirst = true;
|
|
|
|
|
if (bfirst)
|
|
|
|
|
{
|
|
|
|
|
AfxMessageBox("打开相机2失败!");//报错一次
|
|
|
|
|
bfirst = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);
|
|
|
|
|
((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(FALSE);
|
|
|
|
|
gLogMgr->WriteDebugLog("Switch To Cam2");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedTestDefinition()
|
|
|
|
|
{
|
|
|
|
|
#ifdef __HAWKVIS_MINDVISION_CCD__
|
|
|
|
|
if (m_pHawkvisCtrl->MV_GetOneFrame())
|
|
|
|
|
if (m_HawkvisCtrl.MV_GetOneFrame())
|
|
|
|
|
#else
|
|
|
|
|
if (m_HawkvisCtrl.HV_GetOneFrame())
|
|
|
|
|
#endif
|
|
|
|
|
{
|
|
|
|
|
m_pHawkvisCtrl->ZoomFitWindow();
|
|
|
|
|
m_HawkvisCtrl.ZoomFitWindow();
|
|
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : FrameOne --OK");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
@ -628,7 +482,7 @@ void DlgHawkvisCamera::OnBnClickedTestDefinition()
|
|
|
|
|
|
|
|
|
|
CFileMgr fg;
|
|
|
|
|
CString path = fg.GetWorkPath();
|
|
|
|
|
m_pHawkvisCtrl->WriteImage((LPCTSTR)path, "PicForDefinition");
|
|
|
|
|
m_HawkvisCtrl.WriteImage((LPCTSTR)path, "PicForDefinition");
|
|
|
|
|
Sleep(50);
|
|
|
|
|
path += "\\PicForDefinition.bmp";
|
|
|
|
|
Mat imageSource = imread((LPCTSTR)path);
|
|
|
|
@ -655,7 +509,7 @@ bool DlgHawkvisCamera::bCurPicDefinitionOK()
|
|
|
|
|
|
|
|
|
|
OnBnClickedTestDefinition();
|
|
|
|
|
|
|
|
|
|
if (m_CurTrackThreshold > 0.1)
|
|
|
|
|
if (m_CurTrackThreshold>0.1)
|
|
|
|
|
{
|
|
|
|
|
if (m_CurPic_Definition < m_CurTrackThreshold)
|
|
|
|
|
return false;
|
|
|
|
@ -673,6 +527,6 @@ void DlgHawkvisCamera::OnBnClickedSetThreshold()
|
|
|
|
|
return;
|
|
|
|
|
CString nameTail;
|
|
|
|
|
nameTail.Format("_T%d.def", m_DlgCurCamIndex);
|
|
|
|
|
CSmartArchive ar(FileName + nameTail, true);
|
|
|
|
|
CSmartArchive ar(FileName+ nameTail,true);
|
|
|
|
|
ar + m_CurTrackThreshold;
|
|
|
|
|
}
|
|
|
|
|