// KeyVisionSetDlg.cpp : ʵÏÖÎļþ
|
//
|
|
#include "stdafx.h"
|
#include "BlVisionPro.h"
|
#include "KeyVisionSetDlg.h"
|
#include "afxdialogex.h"
|
#include "ScanSetDlg.h"
|
#include "SoftVisionApp.h"
|
#include "FileRecipe.h"
|
#include "VisionBufferPro.h"
|
|
// CKeyVisionSetDlg ¶Ô»°¿ò
|
|
IMPLEMENT_DYNAMIC(CKeyVisionSetDlg, CDialogEx)
|
|
CKeyVisionSetDlg::CKeyVisionSetDlg(CWnd* pParent /*=NULL*/)
|
: CDialogEx(IDD_DIALOG1, pParent)
|
, m_strPassword(_T(""))
|
{
|
|
}
|
|
CKeyVisionSetDlg::~CKeyVisionSetDlg()
|
{
|
}
|
|
void CKeyVisionSetDlg::DoDataExchange(CDataExchange* pDX)
|
{
|
CDialogEx::DoDataExchange(pDX);
|
|
DDX_Control(pDX, IDC_CHECK_VISION_DISPLAY, m_btnVisionDisplay);
|
|
DDX_Control(pDX, IDC_CHECK_VISION_TOP_USE, m_btnVisionUse[0]);
|
DDX_Control(pDX, IDC_CHECK_VISION_TOP_USE2, m_btnVisionUse[1]);
|
DDX_Control(pDX, IDC_CHECK_VISION_TOP_USE3, m_btnVisionUse[2]);
|
DDX_Control(pDX, IDC_CHECK_VISION_TOP_USE4, m_btnVisionUse[3]);
|
DDX_Control(pDX, IDC_CHECK_VISION_TOP_USE5, m_btnVisionUse[4]);
|
DDX_Control(pDX, IDC_CHECK_VISION_TOP_USE6, m_btnVisionUse[5]);
|
DDX_Control(pDX, IDC_CHECK_VISION_TOP_USE7, m_btnVisionUse[6]);
|
DDX_Control(pDX, IDC_CHECK_VISION_TOP_USE8, m_btnVisionUse[7]);
|
|
DDX_Control(pDX, IDC_CHECK_LOC_TOP_USE, m_btnLocUse[0]);
|
DDX_Control(pDX, IDC_CHECK_LOC_TOP_USE2, m_btnLocUse[1]);
|
DDX_Control(pDX, IDC_CHECK_LOC_TOP_USE3, m_btnLocUse[2]);
|
DDX_Control(pDX, IDC_CHECK_LOC_TOP_USE4, m_btnLocUse[3]);
|
DDX_Control(pDX, IDC_CHECK_LOC_TOP_USE5, m_btnLocUse[4]);
|
DDX_Control(pDX, IDC_CHECK_LOC_TOP_USE6, m_btnLocUse[5]);
|
DDX_Control(pDX, IDC_CHECK_LOC_TOP_USE7, m_btnLocUse[6]);
|
DDX_Control(pDX, IDC_CHECK_LOC_TOP_USE8, m_btnLocUse[7]);
|
|
DDX_Control(pDX, IDC_CHECK_DIST_TOP_USE, m_btnDistUse[0]);
|
DDX_Control(pDX, IDC_CHECK_DIST_TOP_USE2, m_btnDistUse[1]);
|
DDX_Control(pDX, IDC_CHECK_DIST_TOP_USE3, m_btnDistUse[2]);
|
DDX_Control(pDX, IDC_CHECK_DIST_TOP_USE4, m_btnDistUse[3]);
|
DDX_Control(pDX, IDC_CHECK_DIST_TOP_USE5, m_btnDistUse[4]);
|
DDX_Control(pDX, IDC_CHECK_DIST_TOP_USE6, m_btnDistUse[5]);
|
DDX_Control(pDX, IDC_CHECK_DIST_TOP_USE7, m_btnDistUse[6]);
|
DDX_Control(pDX, IDC_CHECK_DIST_TOP_USE8, m_btnDistUse[7]);
|
DDX_Control(pDX, IDC_CHECK_DIST_TOP_USE9, m_btnDistUse[8]);
|
|
DDX_Control(pDX, IDC_CHECK_RCUT_TOP_USE, m_btnRcutUse[0]);
|
DDX_Control(pDX, IDC_CHECK_RCUT_TOP_USE2, m_btnRcutUse[1]);
|
DDX_Control(pDX, IDC_CHECK_RCUT_TOP_USE3, m_btnRcutUse[2]);
|
DDX_Control(pDX, IDC_CHECK_RCUT_TOP_USE4, m_btnRcutUse[3]);
|
DDX_Control(pDX, IDC_CHECK_RCUT_TOP_USE5, m_btnRcutUse[4]);
|
DDX_Control(pDX, IDC_CHECK_RCUT_TOP_USE6, m_btnRcutUse[5]);
|
DDX_Control(pDX, IDC_CHECK_RCUT_TOP_USE7, m_btnRcutUse[6]);
|
DDX_Control(pDX, IDC_CHECK_RCUT_TOP_USE8, m_btnRcutUse[7]);
|
DDX_Control(pDX, IDC_CHECK_RCUT_TOP_USE9, m_btnRcutUse[8]);
|
|
DDX_Control(pDX, IDC_CHECK_GRIND_TOP_USE, m_btnGrindUse[0]);
|
DDX_Control(pDX, IDC_CHECK_GRIND_TOP_USE2, m_btnGrindUse[1]);
|
DDX_Control(pDX, IDC_CHECK_GRIND_TOP_USE3, m_btnGrindUse[2]);
|
DDX_Control(pDX, IDC_CHECK_GRIND_TOP_USE4, m_btnGrindUse[3]);
|
DDX_Control(pDX, IDC_CHECK_GRIND_TOP_USE5, m_btnGrindUse[4]);
|
DDX_Control(pDX, IDC_CHECK_GRIND_TOP_USE6, m_btnGrindUse[5]);
|
DDX_Control(pDX, IDC_CHECK_GRIND_TOP_USE7, m_btnGrindUse[6]);
|
DDX_Control(pDX, IDC_CHECK_GRIND_TOP_USE8, m_btnGrindUse[7]);
|
DDX_Control(pDX, IDC_CHECK_GRIND_TOP_USE9, m_btnGrindUse[8]);
|
|
DDX_Control(pDX, IDC_CHECK_CUT_TOP_USE, m_btnCutUse[0]);
|
DDX_Control(pDX, IDC_CHECK_CUT_TOP_USE2, m_btnCutUse[1]);
|
DDX_Control(pDX, IDC_CHECK_CUT_TOP_USE3, m_btnCutUse[2]);
|
DDX_Control(pDX, IDC_CHECK_CUT_TOP_USE4, m_btnCutUse[3]);
|
DDX_Control(pDX, IDC_CHECK_CUT_TOP_USE5, m_btnCutUse[4]);
|
DDX_Control(pDX, IDC_CHECK_CUT_TOP_USE6, m_btnCutUse[5]);
|
DDX_Control(pDX, IDC_CHECK_CUT_TOP_USE7, m_btnCutUse[6]);
|
DDX_Control(pDX, IDC_CHECK_CUT_TOP_USE8, m_btnCutUse[7]);
|
DDX_Control(pDX, IDC_CHECK_CUT_TOP_USE9, m_btnCutUse[8]);
|
|
DDX_Control(pDX, IDC_CHECK_THRES_TOP_USE, m_btnThresUse[0]);
|
DDX_Control(pDX, IDC_CHECK_THRES_TOP_USE2, m_btnThresUse[1]);
|
DDX_Control(pDX, IDC_CHECK_THRES_TOP_USE3, m_btnThresUse[2]);
|
DDX_Control(pDX, IDC_CHECK_THRES_TOP_USE4, m_btnThresUse[3]);
|
DDX_Control(pDX, IDC_CHECK_THRES_TOP_USE5, m_btnThresUse[4]);
|
DDX_Control(pDX, IDC_CHECK_THRES_TOP_USE6, m_btnThresUse[5]);
|
DDX_Control(pDX, IDC_CHECK_THRES_TOP_USE7, m_btnThresUse[6]);
|
DDX_Control(pDX, IDC_CHECK_THRES_TOP_USE8, m_btnThresUse[7]);
|
DDX_Control(pDX, IDC_CHECK_THRES_TOP_USE9, m_btnThresUse[8]);
|
|
DDX_Control(pDX, IDC_CHECK_HOLE_TOP_USE, m_btnHoleUse[0]);
|
DDX_Control(pDX, IDC_CHECK_HOLE_TOP_USE2, m_btnHoleUse[1]);
|
DDX_Control(pDX, IDC_CHECK_HOLE_TOP_USE3, m_btnHoleUse[2]);
|
DDX_Control(pDX, IDC_CHECK_HOLE_TOP_USE4, m_btnHoleUse[3]);
|
DDX_Control(pDX, IDC_CHECK_HOLE_TOP_USE5, m_btnHoleUse[4]);
|
DDX_Control(pDX, IDC_CHECK_HOLE_TOP_USE6, m_btnHoleUse[5]);
|
DDX_Control(pDX, IDC_CHECK_HOLE_TOP_USE7, m_btnHoleUse[6]);
|
DDX_Control(pDX, IDC_CHECK_HOLE_TOP_USE8, m_btnHoleUse[7]);
|
DDX_Control(pDX, IDC_CHECK_HOLE_TOP_USE9, m_btnHoleUse[8]);
|
|
DDX_Control(pDX, IDC_CHECK_DEBUG_TOOL_KEY, m_btnDebugKey[0]);
|
DDX_Control(pDX, IDC_CHECK_DEBUG_KEY, m_btnDebugKey[1]);
|
DDX_Control(pDX, IDC_CHECK_DEBUG_KEY2, m_btnDebugKey[2]);
|
DDX_Control(pDX, IDC_CHECK_DEBUG_KEY3, m_btnDebugKey[3]);
|
DDX_Control(pDX, IDC_CHECK_DEBUG_KEY4, m_btnDebugKey[4]);
|
DDX_Control(pDX, IDC_CHECK_DEBUG_KEY5, m_btnDebugKey[5]);
|
DDX_Control(pDX, IDC_CHECK_DEBUG_KEY6, m_btnDebugKey[6]);
|
|
DDX_Text(pDX, IDC_EDIT_PWD_KEY, m_strPassword);
|
}
|
|
|
BEGIN_MESSAGE_MAP(CKeyVisionSetDlg, CDialogEx)
|
ON_WM_CLOSE()
|
ON_BN_CLICKED(IDC_BUTTON_SAVE_RECIPE, &CKeyVisionSetDlg::OnBnClickedButtonSaveRecipe)
|
ON_BN_CLICKED(IDC_BUTTON_LOAD_RECIPE, &CKeyVisionSetDlg::OnBnClickedButtonLoadRecipe)
|
ON_BN_CLICKED(IDC_BUTTON_PROCESS_KEY, &CKeyVisionSetDlg::OnBnClickedButtonProcessKey)
|
ON_BN_CLICKED(IDC_CHECK_DEBUG_TOOL_KEY, &CKeyVisionSetDlg::OnBnClickedCheckDebugToolKey)
|
ON_BN_CLICKED(IDC_BUTTON_DEBUG_MODE_KEY, &CKeyVisionSetDlg::OnBnClickedButtonDebugModeKey)
|
END_MESSAGE_MAP()
|
|
|
// CKeyVisionSetDlg ÏûÏ¢´¦Àí³ÌÐò
|
|
|
BOOL CKeyVisionSetDlg::OnInitDialog()
|
{
|
CDialogEx::OnInitDialog();
|
|
// TODO: ÔÚ´ËÌí¼Ó¶îÍâµÄ³õʼ»¯
|
LockBtn(TRUE);
|
|
ShowUiParams();
|
|
this->SetWindowPos(&CWnd::wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
// Òì³£: OCX ÊôÐÔÒ³Ó¦·µ»Ø FALSE
|
}
|
|
void CKeyVisionSetDlg::ShowUiParams(void) {
|
/* code */
|
CVisionRecipe* pInstance = CVisionRecipe::getInstance();
|
if (NULL == pInstance) return;
|
|
VisionDisplayInfo infDisplay = pInstance->getVisionDisplay();
|
m_btnVisionDisplay.SetCheck(infDisplay.isVisionDisplay);
|
m_btnDistUse[8].SetCheck(infDisplay.isDistDisplay);
|
m_btnRcutUse[8].SetCheck(infDisplay.isRcutDisplay);
|
m_btnGrindUse[8].SetCheck(infDisplay.isGrindDisplay);
|
m_btnCutUse[8].SetCheck(infDisplay.isCutDisplay);
|
m_btnThresUse[8].SetCheck(infDisplay.isThresDisplay);
|
m_btnHoleUse[8].SetCheck(infDisplay.isHoleDisplay);
|
|
for (int i = 0; i < 8; i++) {
|
VisionUseInfo inf = pInstance->getVisionUse((DimensionDir)i);
|
m_btnVisionUse[i].SetCheck(inf.isVisionUse);
|
m_btnLocUse[i].SetCheck(inf.isLocUse);
|
m_btnDistUse[i].SetCheck(inf.isDistUse);
|
m_btnRcutUse[i].SetCheck(inf.isRcutUse);
|
m_btnGrindUse[i].SetCheck(inf.isGrindUse);
|
m_btnCutUse[i].SetCheck(inf.isCutUse);
|
m_btnThresUse[i].SetCheck(inf.isThresUse);
|
m_btnHoleUse[i].SetCheck(inf.isHoleUse);
|
}
|
|
KeyDebugInfo info = CVisionRecipe::getInstance()->getKeyInfo();
|
m_btnDebugKey[0].SetCheck(info.isDebugTool);
|
m_btnDebugKey[1].SetCheck(info.isInspectKey);
|
m_btnDebugKey[2].SetCheck(info.isLocKey);
|
m_btnDebugKey[3].SetCheck(info.isGrindKey);
|
m_btnDebugKey[4].SetCheck(info.isDistKey);
|
m_btnDebugKey[5].SetCheck(info.isCutLineKey);
|
m_btnDebugKey[6].SetCheck(info.isRcutKey);
|
|
LockBtn(!m_btnDebugKey[0].GetCheck());
|
}
|
|
|
void CKeyVisionSetDlg::OnClose()
|
{
|
// TODO: ÔÚ´ËÌí¼ÓÏûÏ¢´¦Àí³ÌÐò´úÂëºÍ/»òµ÷ÓÃĬÈÏÖµ
|
SaveUiParam();
|
|
CDialogEx::OnClose();
|
}
|
|
void CKeyVisionSetDlg::SaveUiParam(void) {
|
/* code */
|
CVisionRecipe* pInstance = CVisionRecipe::getInstance();
|
if (NULL == pInstance) return;
|
|
VisionDisplayInfo infDisplay;
|
infDisplay.isVisionDisplay = (1 == m_btnVisionDisplay.GetCheck());
|
infDisplay.isDistDisplay = (1 == m_btnDistUse[8].GetCheck());
|
infDisplay.isRcutDisplay = (1 == m_btnRcutUse[8].GetCheck());
|
infDisplay.isGrindDisplay = (1 == m_btnGrindUse[8].GetCheck());
|
infDisplay.isCutDisplay = (1 == m_btnCutUse[8].GetCheck());
|
infDisplay.isThresDisplay = (1 == m_btnThresUse[8].GetCheck());
|
infDisplay.isHoleDisplay = (1 == m_btnHoleUse[8].GetCheck());
|
pInstance->setVisionDisplay(infDisplay);
|
|
for (int i = 0; i < 8; i++) {
|
VisionUseInfo inf;
|
inf.isVisionUse = (1 == m_btnVisionUse[i].GetCheck());
|
inf.isLocUse = (1 == m_btnLocUse[i].GetCheck());
|
inf.isDistUse = (1 == m_btnDistUse[i].GetCheck());
|
inf.isRcutUse = (1 == m_btnRcutUse[i].GetCheck());
|
inf.isGrindUse = (1 == m_btnGrindUse[i].GetCheck());
|
inf.isCutUse = (1 == m_btnCutUse[i].GetCheck());
|
inf.isThresUse = (1 == m_btnThresUse[i].GetCheck());
|
inf.isHoleUse = (1 == m_btnHoleUse[i].GetCheck());
|
pInstance->setVisionUse(inf, (DimensionDir)i);
|
}
|
|
KeyDebugInfo info = CVisionRecipe::getInstance()->getKeyInfo();
|
info.isDebugTool = (1 == m_btnDebugKey[0].GetCheck());
|
info.isInspectKey = (1 == m_btnDebugKey[1].GetCheck());
|
info.isLocKey = (1 == m_btnDebugKey[2].GetCheck());
|
info.isGrindKey = (1 == m_btnDebugKey[3].GetCheck());
|
info.isDistKey = (1 == m_btnDebugKey[4].GetCheck());
|
info.isCutLineKey = (1 == m_btnDebugKey[5].GetCheck());
|
info.isRcutKey = (1 == m_btnDebugKey[6].GetCheck());
|
pInstance->setKeyInfo(info);
|
|
pInstance->saveVisionConfig();
|
}
|
|
|
BOOL CKeyVisionSetDlg::PreTranslateMessage(MSG* pMsg)
|
{
|
// TODO: ÔÚ´ËÌí¼ÓרÓôúÂëºÍ/»òµ÷ÓûùÀà
|
if (pMsg->message == WM_KEYDOWN) {
|
if ((pMsg->wParam == VK_RETURN) || (pMsg->wParam == VK_ESCAPE)) {
|
return TRUE;
|
}
|
}
|
|
return CDialogEx::PreTranslateMessage(pMsg);
|
}
|
|
void CKeyVisionSetDlg::OnBnClickedButtonSaveRecipe()
|
{
|
// TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
|
//std::string filePath = "E:\\EI Workspace\\Recipe\\Test\\";
|
//CVisionRecipe::getInstance()->setWorkDir(filePath.c_str());
|
//std::string strName = "Test";
|
//CVisionRecipe::getInstance()->setVisionName(strName.c_str());
|
CVisionRecipe::getInstance()->save();
|
}
|
|
|
void CKeyVisionSetDlg::OnBnClickedButtonLoadRecipe()
|
{
|
// TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
|
//std::string filePath = "E:\\EI Workspace\\Recipe\\Test\\";
|
//CVisionRecipe::getInstance()->setWorkDir(filePath.c_str());
|
//std::string strName = "Test";
|
//CVisionRecipe::getInstance()->setVisionName(strName.c_str());
|
CVisionRecipe::getInstance()->open();
|
}
|
|
|
void CKeyVisionSetDlg::OnBnClickedButtonProcessKey()
|
{
|
// TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
|
for (int i = 0; i < 1000; i++) {
|
Log_GetDebug()->TraceInfo("Start Save Recipe %d: %d", i, __LINE__);
|
{
|
//std::string filePath = "E:\\EI Workspace\\Recipe\\Test\\";
|
//CVisionRecipe::getInstance()->setWorkDir(filePath.c_str());
|
//std::string strName = "Test";
|
//CVisionRecipe::getInstance()->setVisionName(strName.c_str());
|
CVisionRecipe::getInstance()->save();
|
}
|
Log_GetDebug()->TraceInfo("End Save Recipe %d: %d", i, __LINE__);
|
Sleep(1000);
|
|
Log_GetDebug()->TraceInfo("Start Load Recipe %d: %d", i, __LINE__);
|
{
|
//std::string filePath = "E:\\EI Workspace\\Recipe\\Test\\";
|
//CVisionRecipe::getInstance()->setWorkDir(filePath.c_str());
|
//std::string strName = "Test";
|
//CVisionRecipe::getInstance()->setVisionName(strName.c_str());
|
CVisionRecipe::getInstance()->open();
|
}
|
Log_GetDebug()->TraceInfo("Start End Recipe %d: %d", i, __LINE__);
|
Sleep(1000);
|
|
Log_GetDebug()->TraceInfo("Start Vision Inspect %d: %d", i, __LINE__);
|
for (int i = 0; i < 8; i++) {
|
NgInfo ngInf[NG_INF_NUM];
|
CSoftVisionApp::getInstance()->Execute(i, ngInf);
|
}
|
Log_GetDebug()->TraceInfo("End Vision Inspect %d: %d", i, __LINE__);
|
Sleep(1000);
|
}
|
}
|
|
|
void CKeyVisionSetDlg::OnBnClickedCheckDebugToolKey()
|
{
|
// TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
|
UpdateData(TRUE);
|
SaveUiParam();
|
|
LockBtn(!m_btnDebugKey[0].GetCheck());
|
}
|
|
void CKeyVisionSetDlg::LockBtn(BOOL isLock) {
|
/* code */
|
if (isLock) {
|
for (int i = 1; i < 7; i++) {
|
m_btnDebugKey[i].ShowWindow(SW_HIDE);
|
}
|
GetDlgItem(IDC_BUTTON_SAVE_RECIPE)->ShowWindow(SW_HIDE);
|
GetDlgItem(IDC_BUTTON_LOAD_RECIPE)->ShowWindow(SW_HIDE);
|
GetDlgItem(IDC_BUTTON_PROCESS_KEY)->ShowWindow(SW_HIDE);
|
GetDlgItem(IDC_STATIC_DEBUG_GROUND)->ShowWindow(SW_HIDE);
|
|
}
|
else {
|
for (int i = 1; i < 7; i++) {
|
m_btnDebugKey[i].ShowWindow(SW_SHOW);
|
}
|
GetDlgItem(IDC_BUTTON_SAVE_RECIPE)->ShowWindow(SW_SHOW);
|
GetDlgItem(IDC_BUTTON_LOAD_RECIPE)->ShowWindow(SW_SHOW);
|
GetDlgItem(IDC_BUTTON_PROCESS_KEY)->ShowWindow(SW_SHOW);
|
GetDlgItem(IDC_STATIC_DEBUG_GROUND)->ShowWindow(SW_SHOW);
|
}
|
}
|
|
|
void CKeyVisionSetDlg::OnBnClickedButtonDebugModeKey()
|
{
|
// TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
|
UpdateData(TRUE);
|
if (m_strPassword != _T("31415926535")) {
|
GetDlgItem(IDC_CHECK_DEBUG_TOOL_KEY)->ShowWindow(SW_HIDE);
|
return;
|
}
|
|
GetDlgItem(IDC_CHECK_DEBUG_TOOL_KEY)->ShowWindow(SW_SHOW);
|
}
|