⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 debugdlg.cpp

📁 快速原型制造分层切片源代码,适用于高温合金.
💻 CPP
字号:
// DebugDlg.cpp : implementation file
//

#include "stdafx.h"
#include "SlsPrj.h"
#include "DebugDlg.h"

#include <conio.h>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDebugDlg dialog


CDebugDlg::CDebugDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CDebugDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDebugDlg)
	m_step = 50;
	//}}AFX_DATA_INIT

	m_curPosX = 0;
	m_curPosY = 0;
}


void CDebugDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDebugDlg)
	DDX_Text(pDX, IDC_STEP, m_step);
	DDV_MinMaxUInt(pDX, m_step, 0, 500);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDebugDlg, CDialog)
	//{{AFX_MSG_MAP(CDebugDlg)
	ON_BN_CLICKED(IDC_COVER_DOWN, OnCoverDown)
	ON_BN_CLICKED(IDC_COVER_UP, OnCoverUp)
	ON_BN_CLICKED(IDC_PAVE, OnPave)
	ON_BN_CLICKED(IDC_PLATFORM_DOWN, OnPlatformDown)
	ON_BN_CLICKED(IDC_PLATFORM_UP, OnPlatformUp)
	ON_BN_CLICKED(IDC_SEND_DOWN, OnSendDown)
	ON_BN_CLICKED(IDC_SEND_UP, OnSendUp)
	ON_BN_CLICKED(IDC_STOP, OnStop)
	ON_BN_CLICKED(IDC_ZERO, OnZero)
	ON_BN_CLICKED(IDC_LASER_OFF, OnLaserOff)
	ON_BN_CLICKED(IDC_LASER_ON, OnLaserOn)
	ON_BN_CLICKED(IDC_X_NEG_DIR, OnXNegDir)
	ON_BN_CLICKED(IDC_X_POS_DIR, OnXPosDir)
	ON_BN_CLICKED(IDC_Y_NEG_DIR, OnYNegDir)
	ON_BN_CLICKED(IDC_Y_POS_DIR, OnYPosDir)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDebugDlg message handlers

void CDebugDlg::OnCoverDown() 
{
	_asm
	{
		mov dx,	0x8320
		mov eax, 0x57	 //H轴下降	
		out dx, eax
	}
}

void CDebugDlg::OnCoverUp() 
{
	_asm
	{
		mov dx, 0x8320
		mov eax, 0x56	 //H轴上升	
		out dx, eax
	}
}

void CDebugDlg::OnPave() 
{
	_asm 
	{
		mov dx, 0x8300
		mov al, 8
		out dx, al
		mov al, 0x55
		inc dx
		out dx, al
	}
}

void CDebugDlg::OnPlatformDown() 
{
	_asm
	{
	    mov dx, 0x8320
		mov eax, 0x1080000
		out dx, eax
		mov dx, 0x8324
		in  eax, dx
	}
}

void CDebugDlg::OnPlatformUp() 
{
	_asm
	{
	    mov dx, 0x8320
		mov eax, 0x1880000
		out dx, eax
		mov dx, 0x8324
		in  eax, dx
	}
}

void CDebugDlg::OnSendDown() 
{
	_asm
	{
	    mov dx, 0x8320
		mov eax, 0x2080000
		out dx, eax
		mov dx, 0x8325
		in  eax, dx
	}
}

void CDebugDlg::OnSendUp() 
{
	_asm
	{
	    mov dx, 0x8320
		mov eax, 0x2880000
		out dx, eax
		mov dx, 0x8325
		in  eax, dx
	}
}

void CDebugDlg::OnStop() 
{
	_asm 
	{
		mov dx, 0x8321		//清指令
		mov al, 0x3
		out dx, al
	}
}

void CDebugDlg::OnZero() 
{
	CSlsApp* pSlsApp = ( CSlsApp* )AfxGetApp();
	pSlsApp->OnZero();
}

void CDebugDlg::OnOK() 
{
	CDialog::OnOK();
}

void CDebugDlg::OnLaserOff() 
{
	_asm
	{
		mov dx, 0x8320
		mov eax, 0x59		
		out  dx, eax
	}
}

void CDebugDlg::OnLaserOn() 
{
	_asm
	{
		mov dx, 0x8320
		mov eax, 0x58		
		out  dx, eax
	}
}

void CDebugDlg::OnXNegDir() 
{
	BOOL ret;
	ret = UpdateData();

	if(!ret)
	{
		AfxMessageBox("请正确设置步长!");
		return;
	}
	else
	{
		DWORD valX, valY;

		if(m_curPosX <= m_step)
		{
			AfxMessageBox("请缩短步距,以免压X轴负极限!");
			return;
		}
		else
		{
			m_curPosX -= m_step;

			valX = DWORD(m_curPosX * 500);
			valY = DWORD(m_curPosY * 500);

			//步进速度: 5m/min
			_outpd(0x8320,7);
			_outpd(0x8320,2500000); 

			//步进
			_outpd(0x8320,3);
			_outpd(0x8320,valX);
			_outpd(0x8320,valY);
		}
	}
}

void CDebugDlg::OnXPosDir() 
{
	BOOL ret;
	ret = UpdateData();

	if(!ret)
	{
		AfxMessageBox("请正确设置步长!");
		return;
	}
	else
	{
		DWORD valX, valY;

		m_curPosX += m_step;

		if(m_curPosX >= 400)
		{
			AfxMessageBox("请缩短步距,以免压X轴正极限!");
			return;
		}
		else
		{
			valX = DWORD(m_curPosX * 500);
			valY = DWORD(m_curPosY * 500);

			//步进速度: 5m/min
			_outpd(0x8320,7);
			_outpd(0x8320,2500000); 

			//步进
			_outpd(0x8320,3);
			_outpd(0x8320,valX);
			_outpd(0x8320,valY);
		}
	}
}

void CDebugDlg::OnYNegDir() 
{
	BOOL ret;
	ret = UpdateData();

	if(!ret)
	{
		AfxMessageBox("请正确设置步长!");
		return;
	}
	else
	{
		DWORD valX, valY;

		if(m_curPosY <= m_step)
		{
			AfxMessageBox("请缩短步距,以免压Y轴负极限!");
			return;
		}
		else
		{
			m_curPosY -= m_step;

			valX = DWORD(m_curPosX * 500);
			valY = DWORD(m_curPosY * 500);

			//步进速度: 5m/min
			_outpd(0x8320,7);
			_outpd(0x8320,2500000); 

			//步进
			_outpd(0x8320,3);
			_outpd(0x8320,valX);
			_outpd(0x8320,valY);
		}
	
	}
}

void CDebugDlg::OnYPosDir() 
{
	BOOL ret;
	ret = UpdateData();

	if(!ret)
	{
		AfxMessageBox("请正确设置步长!");
		return;
	}
	else
	{
		DWORD valX, valY;

		m_curPosY += m_step;

		if(m_curPosY >= 250)
		{
			AfxMessageBox("请缩短步距,以免压Y轴正极限!");
			return;
		}
		else
		{
			valX = DWORD(m_curPosX * 500);
			valY = DWORD(m_curPosY * 500);

			//步进速度: 5m/min
			_outpd(0x8320,7);
			_outpd(0x8320,2500000); 

			//步进
			_outpd(0x8320,3);
			_outpd(0x8320,valX);
			_outpd(0x8320,valY);
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -