SSPC-Tester/Driver/急停报警相关资料/PCI2312 Samples/VC/Advanced/DIOView.cpp

769 lines
16 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// IOView.cpp : implementation file
//
#include "stdafx.h"
#include "Sys.h"
#include "DIOView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
int OldIn=-1;
HANDLE gl_hDevice;
HANDLE hEventInt;
/////////////////////////////////////////////////////////////////////////////
// CDIOView
IMPLEMENT_DYNCREATE(CDIOView, CFormView)
CDIOView::CDIOView()
: CFormView(CDIOView::IDD)
{
//{{AFX_DATA_INIT(CDIOView)
m_bDO0 = FALSE;
m_bDO1 = FALSE;
m_bDO10 = FALSE;
m_bDO11 = FALSE;
m_bDO12 = FALSE;
m_bDO13 = FALSE;
m_bDO14 = FALSE;
m_bDO15 = FALSE;
m_bDO2 = FALSE;
m_bDO3 = FALSE;
m_bDO4 = FALSE;
m_bDO5 = FALSE;
m_bDO6 = FALSE;
m_bDO7 = FALSE;
m_bDO8 = FALSE;
m_bDO9 = FALSE;
//}}AFX_DATA_INIT
bCreateDevice = FALSE;
}
CDIOView::~CDIOView()
{
}
void CDIOView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDIOView)
DDX_Control(pDX, IDC_CHECK_DI9, m_Button_In9);
DDX_Control(pDX, IDC_CHECK_DI8, m_Button_In8);
DDX_Control(pDX, IDC_CHECK_DI7, m_Button_In7);
DDX_Control(pDX, IDC_CHECK_DI6, m_Button_In6);
DDX_Control(pDX, IDC_STATIC_OutIntCount, m_Static_OutIntCount);
DDX_Control(pDX, IDC_STATIC_InIntCount, m_Static_InIntCount);
DDX_Control(pDX, IDC_BUTTON_ReleaseDeviceInt, m_Button_ReleaseDeviceInt);
DDX_Control(pDX, IDC_BUTTON_InitDeviceInt, m_Button_InitDeviceInt);
DDX_Control(pDX, IDC_CHECK_DI5, m_Button_In5);
DDX_Control(pDX, IDC_CHECK_DI4, m_Button_In4);
DDX_Control(pDX, IDC_CHECK_DI3, m_Button_In3);
DDX_Control(pDX, IDC_CHECK_DI2, m_Button_In2);
DDX_Control(pDX, IDC_CHECK_DI15, m_Button_In15);
DDX_Control(pDX, IDC_CHECK_DI14, m_Button_In14);
DDX_Control(pDX, IDC_CHECK_DI13, m_Button_In13);
DDX_Control(pDX, IDC_CHECK_DI12, m_Button_In12);
DDX_Control(pDX, IDC_CHECK_DI11, m_Button_In11);
DDX_Control(pDX, IDC_CHECK_DI10, m_Button_In10);
DDX_Control(pDX, IDC_CHECK_DI1, m_Button_In1);
DDX_Control(pDX, IDC_CHECK_DI0, m_Button_In0);
DDX_Control(pDX, IDC_CHECK_DO9, m_Check_DO9);
DDX_Control(pDX, IDC_CHECK_DO8, m_Check_DO8);
DDX_Control(pDX, IDC_CHECK_DO7, m_Check_DO7);
DDX_Control(pDX, IDC_CHECK_DO6, m_Check_DO6);
DDX_Control(pDX, IDC_CHECK_DO5, m_Check_DO5);
DDX_Control(pDX, IDC_CHECK_DO4, m_Check_DO4);
DDX_Control(pDX, IDC_CHECK_DO3, m_Check_DO3);
DDX_Control(pDX, IDC_CHECK_DO2, m_Check_DO2);
DDX_Control(pDX, IDC_CHECK_DO15, m_Check_DO15);
DDX_Control(pDX, IDC_CHECK_DO14, m_Check_DO14);
DDX_Control(pDX, IDC_CHECK_DO13, m_Check_DO13);
DDX_Control(pDX, IDC_CHECK_DO12, m_Check_DO12);
DDX_Control(pDX, IDC_CHECK_DO11, m_Check_DO11);
DDX_Control(pDX, IDC_CHECK_DO10, m_Check_DO10);
DDX_Control(pDX, IDC_CHECK_DO1, m_Check_DO1);
DDX_Control(pDX, IDC_CHECK_DO0, m_Check_DO0);
DDX_Check(pDX, IDC_CHECK_DO0, m_bDO0);
DDX_Check(pDX, IDC_CHECK_DO1, m_bDO1);
DDX_Check(pDX, IDC_CHECK_DO10, m_bDO10);
DDX_Check(pDX, IDC_CHECK_DO11, m_bDO11);
DDX_Check(pDX, IDC_CHECK_DO12, m_bDO12);
DDX_Check(pDX, IDC_CHECK_DO13, m_bDO13);
DDX_Check(pDX, IDC_CHECK_DO14, m_bDO14);
DDX_Check(pDX, IDC_CHECK_DO15, m_bDO15);
DDX_Check(pDX, IDC_CHECK_DO2, m_bDO2);
DDX_Check(pDX, IDC_CHECK_DO3, m_bDO3);
DDX_Check(pDX, IDC_CHECK_DO4, m_bDO4);
DDX_Check(pDX, IDC_CHECK_DO5, m_bDO5);
DDX_Check(pDX, IDC_CHECK_DO6, m_bDO6);
DDX_Check(pDX, IDC_CHECK_DO7, m_bDO7);
DDX_Check(pDX, IDC_CHECK_DO8, m_bDO8);
DDX_Check(pDX, IDC_CHECK_DO9, m_bDO9);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDIOView, CFormView)
//{{AFX_MSG_MAP(CDIOView)
ON_BN_CLICKED(IDC_CHECK_DO0, OnCheckDo0)
ON_BN_CLICKED(IDC_CHECK_DO1, OnCheckDo1)
ON_BN_CLICKED(IDC_CHECK_DO2, OnCheckDo2)
ON_BN_CLICKED(IDC_CHECK_DO3, OnCheckDo3)
ON_BN_CLICKED(IDC_CHECK_DO4, OnCheckDo4)
ON_BN_CLICKED(IDC_CHECK_DO5, OnCheckDo5)
ON_BN_CLICKED(IDC_CHECK_DO6, OnCheckDo6)
ON_BN_CLICKED(IDC_CHECK_DO7, OnCheckDo7)
ON_BN_CLICKED(IDC_CHECK_DO8, OnCheckDo8)
ON_BN_CLICKED(IDC_CHECK_DO9, OnCheckDo9)
ON_BN_CLICKED(IDC_CHECK_DO10, OnCheckDo10)
ON_BN_CLICKED(IDC_CHECK_DO11, OnCheckDo11)
ON_BN_CLICKED(IDC_CHECK_DO12, OnCheckDo12)
ON_BN_CLICKED(IDC_CHECK_DO13, OnCheckDo13)
ON_BN_CLICKED(IDC_CHECK_DO14, OnCheckDo14)
ON_BN_CLICKED(IDC_CHECK_DO15, OnCheckDo15)
ON_WM_TIMER()
ON_WM_DESTROY()
ON_COMMAND(IDM_ListDevice, OnListDevice)
ON_BN_CLICKED(IDC_BUTTON_InitDeviceInt, OnBUTTONInitDeviceInt)
ON_BN_CLICKED(IDC_BUTTON_ReleaseDeviceInt, OnBUTTONReleaseDeviceInt)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDIOView diagnostics
#ifdef _DEBUG
void CDIOView::AssertValid() const
{
CFormView::AssertValid();
}
void CDIOView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CDIOView message handlers
void CDIOView::SetSwitchStatus(void)
{
if(!bCreateDevice) return;
BYTE bDISts[32];
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
if(!PCI2312_GetDeviceDI(gl_hDevice,bDISts))
{
MessageBox(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>...");
return;
}
if(bDISts[0]) // <20><>
{
m_Button_In0.SetState(TRUE);
m_Button_In0.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 (<28><>)");
m_Button_In0.SetCheck(1);
}
else
{ // <20><>
m_Button_In0.SetState(FALSE);
m_Button_In0.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 (<28><>)");
m_Button_In0.SetCheck(0);
}
if(bDISts[1]) // <20><>
{
m_Button_In1.SetState(TRUE);
m_Button_In1.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1 (<28><>)");
m_Button_In1.SetCheck(1);
}
else
{ // <20><>
m_Button_In1.SetState(FALSE);
m_Button_In1.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1 (<28><>)");
m_Button_In1.SetCheck(0);
}
if(bDISts[2]) // <20><>
{
m_Button_In2.SetState(TRUE);
m_Button_In2.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>2 (<28><>)");
m_Button_In2.SetCheck(1);
}
else
{ // <20><>
m_Button_In2.SetState(FALSE);
m_Button_In2.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>2 (<28><>)");
m_Button_In2.SetCheck(0);
}
if(bDISts[3]) // <20><>
{
m_Button_In3.SetState(TRUE);
m_Button_In3.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 (<28><>)");
m_Button_In3.SetCheck(1);
}
else
{ // <20><>
m_Button_In3.SetState(FALSE);
m_Button_In3.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 (<28><>)");
m_Button_In3.SetCheck(0);
}
if(bDISts[4]) // <20><>
{
m_Button_In4.SetState(TRUE);
m_Button_In4.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>4 (<28><>)");
m_Button_In4.SetCheck(1);
}
else
{ // <20><>
m_Button_In4.SetState(FALSE);
m_Button_In4.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>4 (<28><>)");
m_Button_In4.SetCheck(0);
}
if(bDISts[5]) // <20><>
{
m_Button_In5.SetState(TRUE);
m_Button_In5.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>5 (<28><>)");
m_Button_In5.SetCheck(1);
}
else
{ // <20><>
m_Button_In5.SetState(FALSE);
m_Button_In5.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>5 (<28><>)");
m_Button_In5.SetCheck(0);
}
if(bDISts[6]) // <20><>
{
m_Button_In6.SetState(TRUE);
m_Button_In6.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>6 (<28><>)");
m_Button_In6.SetCheck(1);
}
else
{ // <20><>
m_Button_In6.SetState(FALSE);
m_Button_In6.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>6 (<28><>)");
m_Button_In6.SetCheck(0);
}
if(bDISts[7]) // <20><>
{
m_Button_In7.SetState(TRUE);
m_Button_In7.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>7 (<28><>)");
m_Button_In7.SetCheck(1);
}
else
{ // <20><>
m_Button_In7.SetState(FALSE);
m_Button_In7.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>7 (<28><>)");
m_Button_In7.SetCheck(0);
}
if(bDISts[8]) // <20><>
{
m_Button_In8.SetState(TRUE);
m_Button_In8.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>8 (<28><>)");
m_Button_In8.SetCheck(1);
}
else
{ // <20><>
m_Button_In8.SetState(FALSE);
m_Button_In8.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>8 (<28><>)");
m_Button_In8.SetCheck(0);
}
if(bDISts[9]) // <20><>
{
m_Button_In9.SetState(TRUE);
m_Button_In9.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>9 (<28><>)");
m_Button_In9.SetCheck(1);
}
else
{ // <20><>
m_Button_In9.SetState(FALSE);
m_Button_In9.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>9 (<28><>)");
m_Button_In9.SetCheck(0);
}
if(bDISts[10]) // <20><>
{
m_Button_In10.SetState(TRUE);
m_Button_In10.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>10 (<28><>)");
m_Button_In10.SetCheck(1);
}
else
{ // <20><>
m_Button_In10.SetState(FALSE);
m_Button_In10.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>10 (<28><>)");
m_Button_In10.SetCheck(0);
}
if(bDISts[11]) // <20><>
{
m_Button_In11.SetState(TRUE);
m_Button_In11.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>11 (<28><>)");
m_Button_In11.SetCheck(1);
}
else
{ // <20><>
m_Button_In11.SetState(FALSE);
m_Button_In11.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>11 (<28><>)");
m_Button_In11.SetCheck(0);
}
if(bDISts[12]) // <20><>
{
m_Button_In12.SetState(TRUE);
m_Button_In12.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>12 (<28><>)");
m_Button_In12.SetCheck(1);
}
else
{ // <20><>
m_Button_In12.SetState(FALSE);
m_Button_In12.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>12 (<28><>)");
m_Button_In12.SetCheck(0);
}
if(bDISts[13]) // <20><>
{
m_Button_In13.SetState(TRUE);
m_Button_In13.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>13 (<28><>)");
m_Button_In13.SetCheck(1);
}
else
{ // <20><>
m_Button_In13.SetState(FALSE);
m_Button_In13.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>13 (<28><>)");
m_Button_In13.SetCheck(0);
}
if(bDISts[14]) // <20><>
{
m_Button_In14.SetState(TRUE);
m_Button_In14.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>14 (<28><>)");
m_Button_In14.SetCheck(1);
}
else
{ // <20><>
m_Button_In14.SetState(FALSE);
m_Button_In14.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>14 (<28><>)");
m_Button_In14.SetCheck(0);
}
if(bDISts[15]) // <20><>
{
m_Button_In15.SetState(TRUE);
m_Button_In15.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>15 (<28><>)");
m_Button_In15.SetCheck(1);
}
else
{ // <20><>
m_Button_In15.SetState(FALSE);
m_Button_In15.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>15 (<28><>)");
m_Button_In15.SetCheck(0);
}
}
void CDIOView::OnTimer(UINT_PTR nIDEvent)
{
// TODO: Add your message handler code here and/or call default
SetSwitchStatus();
CFormView::OnTimer(nIDEvent);
}
void CDIOView::SetSwitchOut(void)
{
if(!bCreateDevice) return;
BYTE bDOSts[32];
bDOSts[0]=m_bDO0; bDOSts[8]=m_bDO8;
bDOSts[1]=m_bDO1; bDOSts[9]=m_bDO9;
bDOSts[2]=m_bDO2; bDOSts[10]=m_bDO10;
bDOSts[3]=m_bDO3; bDOSts[11]=m_bDO11;
bDOSts[4]=m_bDO4; bDOSts[12]=m_bDO12;
bDOSts[5]=m_bDO5; bDOSts[13]=m_bDO13;
bDOSts[6]=m_bDO6; bDOSts[14]=m_bDO14;
bDOSts[7]=m_bDO7; bDOSts[15]=m_bDO15;
Flag =true;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
PCI2312_SetDeviceDO( gl_hDevice, bDOSts);
}
void CDIOView::OnCheckDo0()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bDO0)
{
m_Check_DO0.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 (<28><>)");
}
else
{
m_Check_DO0.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 (<28><>)");
}
SetSwitchOut();
}
void CDIOView::OnCheckDo1()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bDO1)
{
m_Check_DO1.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1 (<28><>)");
}
else
{
m_Check_DO1.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1 (<28><>)");
}
SetSwitchOut();
}
void CDIOView::OnCheckDo2()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bDO2)
{
m_Check_DO2.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>2 (<28><>)");
}
else
{
m_Check_DO2.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>2 (<28><>)");
}
SetSwitchOut();
}
void CDIOView::OnCheckDo3()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bDO3)
{
m_Check_DO3.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 (<28><>)");
}
else
{
m_Check_DO3.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 (<28><>)");
}
SetSwitchOut();
}
void CDIOView::OnCheckDo4()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bDO4)
{
m_Check_DO4.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>4 (<28><>)");
}
else
{
m_Check_DO4.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>4 (<28><>)");
}
SetSwitchOut();
}
void CDIOView::OnCheckDo5()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bDO5)
{
m_Check_DO5.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>5 (<28><>)");
}
else
{
m_Check_DO5.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>5 (<28><>)");
}
SetSwitchOut();
}
void CDIOView::OnCheckDo6()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bDO6)
{
m_Check_DO6.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>6 (<28><>)");
}
else
{
m_Check_DO6.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>6 (<28><>)");
}
SetSwitchOut();
}
void CDIOView::OnCheckDo7()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bDO7)
{
m_Check_DO7.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>7 (<28><>)");
}
else
{
m_Check_DO7.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>7 (<28><>)");
}
SetSwitchOut();
}
void CDIOView::OnCheckDo8()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bDO8)
{
m_Check_DO8.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>8 (<28><>)");
}
else
{
m_Check_DO8.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>8 (<28><>)");
}
SetSwitchOut();
}
void CDIOView::OnCheckDo9()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bDO9)
{
m_Check_DO9.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>9 (<28><>)");
}
else
{
m_Check_DO9.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>9 (<28><>)");
}
SetSwitchOut();
}
void CDIOView::OnCheckDo10()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bDO10)
{
m_Check_DO10.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>10 (<28><>)");
}
else
{
m_Check_DO10.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>10 (<28><>)");
}
SetSwitchOut();
}
void CDIOView::OnCheckDo11()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bDO11)
{
m_Check_DO11.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>11 (<28><>)");
}
else
{
m_Check_DO11.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>11 (<28><>)");
}
SetSwitchOut();
}
void CDIOView::OnCheckDo12()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bDO12)
{
m_Check_DO12.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>12 (<28><>)");
}
else
{
m_Check_DO12.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>12 (<28><>)");
}
SetSwitchOut();
}
void CDIOView::OnCheckDo13()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bDO13)
{
m_Check_DO13.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>13 (<28><>)");
}
else
{
m_Check_DO13.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>13 (<28><>)");
}
SetSwitchOut();
}
void CDIOView::OnCheckDo14()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bDO14)
{
m_Check_DO14.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>14 (<28><>)");
}
else
{
m_Check_DO14.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>14 (<28><>)");
}
SetSwitchOut();
}
void CDIOView::OnCheckDo15()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bDO15)
{
m_Check_DO15.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>15 (<28><>)");
}
else
{
m_Check_DO15.SetWindowText(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>15 (<28><>)");
}
SetSwitchOut();
}
void CDIOView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
CSysApp *pApp=(CSysApp *)AfxGetApp();
DeviceID = pApp->m_CurrentDeviceID; // ȡ<>õ<EFBFBD>ǰӦ<C7B0>ó<EFBFBD><C3B3><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>豸ID<49><44>
m_Button_InitDeviceInt.EnableWindow(TRUE);
m_Button_ReleaseDeviceInt.EnableWindow(FALSE);
gl_hDevice = pApp->m_hDevice; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
if(gl_hDevice==INVALID_HANDLE_VALUE)
{
bCreateDevice = FALSE;
return;
}
bCreateDevice = TRUE;
Flag = true;
SetTimer(1, 250, NULL); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
}
void CDIOView::OnDestroy()
{
CFormView::OnDestroy();
// TODO: Add your message handler code here
if(bCreateDevice)
PCI2312_ReleaseDevice(gl_hDevice); // <20>ͷ<EFBFBD><CDB7><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
}
void CDIOView::OnListDevice()
{
// TODO: Add your command handler code here
PCI2312_ListDeviceDlg(gl_hDevice);
}
BOOL bWaitInt=FALSE;
LONG InIntCount=0, OutIntCount=0;
UINT ProccessDataThread(PVOID pPara) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>
{
CDIOView* pView = (CDIOView*)pPara;
CString str;
InIntCount=0; OutIntCount=0;
while(bWaitInt)
{
do{
if(!bWaitInt) goto ExitThread;
}while(WaitForSingleObject (hEventInt, 100)!=WAIT_OBJECT_0);
if(!bWaitInt) goto ExitThread;
InIntCount = PCI2312_GetDeviceIntCount(gl_hDevice); // ȡ<><C8A1><EFBFBD>жϳ<D0B6><CFB3><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
str.Format(L"%d", InIntCount);
pView->m_Static_InIntCount.SetWindowText(str);
OutIntCount++;
str.Format(L"%d", OutIntCount);
pView->m_Static_OutIntCount.SetWindowText(str);
}
ExitThread:
return TRUE;
}
void CDIOView::OnBUTTONInitDeviceInt()
{
// TODO: Add your control notification handler code here
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>
m_pThreadInt=AfxBeginThread(ProccessDataThread,this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
m_pThreadInt->m_bAutoDelete=false;
hEventInt = PCI2312_CreateSystemEvent();
if(!PCI2312_InitDeviceInt(gl_hDevice, hEventInt))
return;
m_Button_InitDeviceInt.EnableWindow(FALSE);
m_Button_ReleaseDeviceInt.EnableWindow(TRUE);
m_Static_InIntCount.SetWindowText(L"0");
m_Static_OutIntCount.SetWindowText(L"0");
bWaitInt = TRUE;
m_pThreadInt->ResumeThread();
}
void CDIOView::OnBUTTONReleaseDeviceInt()
{
// TODO: Add your control notification handler code here
bWaitInt = FALSE;
SetEvent(hEventInt);
if(!PCI2312_ReleaseDeviceInt(gl_hDevice))
return;
PCI2312_ReleaseSystemEvent(hEventInt);
m_Button_InitDeviceInt.EnableWindow(TRUE);
m_Button_ReleaseDeviceInt.EnableWindow(FALSE);
}