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

769 lines
16 KiB
C++
Raw Normal View History

// 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);
}