📄 dlgpcl730.cpp
字号:
// DlgPcl730.cpp : implementation file
//
#include "stdafx.h"
#include "CardTest.h"
#include "DlgPcl730.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgPcl730 dialog
CDlgPcl730::CDlgPcl730(CWnd* pParent /*=NULL*/)
: CDialog(CDlgPcl730::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgPcl730)
//}}AFX_DATA_INIT
m_bPcl730On = FALSE;
m_bTimerOn = FALSE;
m_nState = 0;
m_usState = 0;
}
void CDlgPcl730::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgPcl730)
DDX_Control(pDX, IDC_LED10, m_Led10);
DDX_Control(pDX, IDC_LED9, m_Led9);
DDX_Control(pDX, IDC_LED8, m_Led8);
DDX_Control(pDX, IDC_LED7, m_Led7);
DDX_Control(pDX, IDC_LED6, m_Led6);
DDX_Control(pDX, IDC_LED5, m_Led5);
DDX_Control(pDX, IDC_LED4, m_Led4);
DDX_Control(pDX, IDC_LED3, m_Led3);
DDX_Control(pDX, IDC_LED2, m_Led2);
DDX_Control(pDX, IDC_LED15, m_Led15);
DDX_Control(pDX, IDC_LED14, m_Led14);
DDX_Control(pDX, IDC_LED13, m_Led13);
DDX_Control(pDX, IDC_LED12, m_Led12);
DDX_Control(pDX, IDC_LED11, m_Led11);
DDX_Control(pDX, IDC_LED1, m_Led1);
DDX_Control(pDX, IDC_LED0, m_Led0);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgPcl730, CDialog)
//{{AFX_MSG_MAP(CDlgPcl730)
ON_WM_DESTROY()
ON_WM_TIMER()
//}}AFX_MSG_MAP
ON_MESSAGE(WM_DIGOUT,OnDigOut)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgPcl730 message handlers
BOOL CDlgPcl730::OnInitDialog()
{
CDialog::OnInitDialog();
m_Led0.LoadBitmaps(IDB_RBU,IDB_RBD,IDB_RBF,IDB_RBX);
m_Led1.LoadBitmaps(IDB_RBU,IDB_RBD,IDB_RBF,IDB_RBX);
m_Led2.LoadBitmaps(IDB_RBU,IDB_RBD,IDB_RBF,IDB_RBX);
m_Led3.LoadBitmaps(IDB_RBU,IDB_RBD,IDB_RBF,IDB_RBX);
m_Led4.LoadBitmaps(IDB_RBU,IDB_RBD,IDB_RBF,IDB_RBX);
m_Led5.LoadBitmaps(IDB_RBU,IDB_RBD,IDB_RBF,IDB_RBX);
m_Led6.LoadBitmaps(IDB_RBU,IDB_RBD,IDB_RBF,IDB_RBX);
m_Led7.LoadBitmaps(IDB_RBU,IDB_RBD,IDB_RBF,IDB_RBX);
m_Led8.LoadBitmaps(IDB_RBU,IDB_RBD,IDB_RBF,IDB_RBX);
m_Led9.LoadBitmaps(IDB_RBU,IDB_RBD,IDB_RBF,IDB_RBX);
m_Led10.LoadBitmaps(IDB_RBU,IDB_RBD,IDB_RBF,IDB_RBX);
m_Led11.LoadBitmaps(IDB_RBU,IDB_RBD,IDB_RBF,IDB_RBX);
m_Led12.LoadBitmaps(IDB_RBU,IDB_RBD,IDB_RBF,IDB_RBX);
m_Led13.LoadBitmaps(IDB_RBU,IDB_RBD,IDB_RBF,IDB_RBX);
m_Led14.LoadBitmaps(IDB_RBU,IDB_RBD,IDB_RBF,IDB_RBX);
m_Led15.LoadBitmaps(IDB_RBU,IDB_RBD,IDB_RBF,IDB_RBX);
OpenPcl730();
if(SetTimer(1, 200, NULL) == 1)
m_bTimerOn = TRUE;
else
m_bTimerOn = FALSE;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
int CDlgPcl730::DigBitIn(USHORT port, USHORT bit, USHORT state)
{
Pcl730.ptDioReadBit.port = port;
Pcl730.ptDioReadBit.bit = bit;
Pcl730.ptDioReadBit.state = (USHORT far *)&state;
if((Pcl730.ErrCde = Pcl730.DioReadBit(Pcl730.PCL730Handle,
(LPT_DioReadBit)&Pcl730.ptDioReadBit)) != SUCCESS)
{
Pcl730.ErrMessage(Pcl730.ErrCde,(LPSTR)Pcl730.szErrMsg);
ClosePcl730();
return 2; // 返回值为2表示开关量读入错误
}
else
return (int)state; // 返回读入的状态
}
int CDlgPcl730::DigBitOut(USHORT port, USHORT bit, USHORT state)
{
Pcl730.ptDioWriteBit.port = port;
Pcl730.ptDioWriteBit.bit = bit;
Pcl730.ptDioWriteBit.state = state;
if((Pcl730.ErrCde = Pcl730.DioWriteBit(Pcl730.PCL730Handle,
(LPT_DioWriteBit)&Pcl730.ptDioWriteBit)) != SUCCESS)
{
ClosePcl730();
return 0;
}
else
return 1;
}
void CDlgPcl730::ClosePcl730()
{
Pcl730.CloseDevice((LONG *)&Pcl730.PCL730Handle);
m_bPcl730On = FALSE;
}
void CDlgPcl730::OpenPcl730()
{
if((Pcl730.ErrCde=Pcl730.OpenDevice(PCL730,
(LONG *)&Pcl730.PCL730Handle)!=SUCCESS))
{
strcpy(Pcl730.szErrMsg,"PCL730 打开错误!");
AfxMessageBox((LPCSTR)Pcl730.szErrMsg,MB_OK,0);
m_bPcl730On = FALSE;
}
else
m_bPcl730On = TRUE;
}
void CDlgPcl730::InitPcl730()
{
if(m_bPcl730On == TRUE)
{
Pcl730.ptDioWritePortByte.port = 0;
Pcl730.ptDioWritePortByte.mask = 0xff;
Pcl730.ptDioWritePortByte.state = 0;
if ((Pcl730.ErrCde = Pcl730.DioWritePortByte(Pcl730.PCL730Handle,
(LPT_DioWritePortByte)&Pcl730.ptDioWritePortByte)) != SUCCESS)
{
Pcl730.ErrMessage(Pcl730.ErrCde,(LPSTR)Pcl730.szErrMsg);
ClosePcl730();
MessageBox((LPSTR)Pcl730.szErrMsg);
}
}
else
{
MessageBox("PCL730打开失败,初始化不成功!");
}
}
void CDlgPcl730::OnDigOut()
{
m_usState = (USHORT)m_Led0.GetBtnOn();
DigBitOut(0, 0, m_usState);
m_usState = (USHORT)m_Led1.GetBtnOn();
DigBitOut(0, 1, m_usState);
m_usState = (USHORT)m_Led2.GetBtnOn();
DigBitOut(0, 2, m_usState);
m_usState = (USHORT)m_Led3.GetBtnOn();
DigBitOut(0, 3, m_usState);
m_usState = (USHORT)m_Led4.GetBtnOn();
DigBitOut(0, 4, m_usState);
m_usState = (USHORT)m_Led5.GetBtnOn();
DigBitOut(0, 5, m_usState);
m_usState = (USHORT)m_Led6.GetBtnOn();
DigBitOut(0, 6, m_usState);
m_usState = (USHORT)m_Led7.GetBtnOn();
DigBitOut(0, 7, m_usState);
}
void CDlgPcl730::OnDestroy()
{
CDialog::OnDestroy();
if(m_bPcl730On == TRUE)
{
InitPcl730();
ClosePcl730();
}
else
{
OpenPcl730();
InitPcl730();
ClosePcl730();
}
}
void CDlgPcl730::OnTimer(UINT nIDEvent)
{
m_nState = DigBitIn(0, 0, m_usState);
if(m_nState == 1)
{
m_Led8.SetButtonState(BUTTON_ON);
m_Led8.EnableWindow(FALSE);
}
else
{
m_Led8.SetButtonState(BUTTON_OFF);
m_Led8.EnableWindow(FALSE);
}
m_nState = DigBitIn(0, 1, m_usState);
if(m_nState == 1)
{
m_Led9.SetButtonState(BUTTON_ON);
m_Led9.EnableWindow(FALSE);
}
else
{
m_Led9.SetButtonState(BUTTON_OFF);
m_Led9.EnableWindow(FALSE);
}
m_nState = DigBitIn(0, 2, m_usState);
if(m_nState == 1)
{
m_Led10.SetButtonState(BUTTON_ON);
m_Led10.EnableWindow(FALSE);
}
else
{
m_Led10.SetButtonState(BUTTON_OFF);
m_Led10.EnableWindow(FALSE);
}
m_nState = DigBitIn(0, 3, m_usState);
if(m_nState == 1)
{
m_Led11.SetButtonState(BUTTON_ON);
m_Led11.EnableWindow(FALSE);
}
else
{
m_Led11.SetButtonState(BUTTON_OFF);
m_Led11.EnableWindow(FALSE);
}
m_nState = DigBitIn(0, 4, m_usState);
if(m_nState == 1)
{
m_Led12.SetButtonState(BUTTON_ON);
m_Led12.EnableWindow(FALSE);
}
else
{
m_Led12.SetButtonState(BUTTON_OFF);
m_Led12.EnableWindow(FALSE);
}
m_nState = DigBitIn(0, 5, m_usState);
if(m_nState == 1)
{
m_Led13.SetButtonState(BUTTON_ON);
m_Led13.EnableWindow(FALSE);
}
else
{
m_Led13.SetButtonState(BUTTON_OFF);
m_Led13.EnableWindow(FALSE);
}
m_nState = DigBitIn(0, 6, m_usState);
if(m_nState == 1)
{
m_Led14.SetButtonState(BUTTON_ON);
m_Led14.EnableWindow(FALSE);
}
else
{
m_Led14.SetButtonState(BUTTON_OFF);
m_Led14.EnableWindow(FALSE);
}
m_nState = DigBitIn(0, 7, m_usState);
if(m_nState == 1)
{
m_Led15.SetButtonState(BUTTON_ON);
m_Led15.EnableWindow(FALSE);
}
else
{
m_Led15.SetButtonState(BUTTON_OFF);
m_Led15.EnableWindow(FALSE);
}
CDialog::OnTimer(nIDEvent);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -