📄 iotest.cpp
字号:
// IOTest.cpp : implementation file
//
#include "stdafx.h"
#include "DEMO.h"
#include "IOTest.h"
#include "CtrlCard.h"
extern CCtrlCard g_CtrlCard;
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define TESTTIMER 2001 //IO检测定时器
/////////////////////////////////////////////////////////////////////////////
// CIOTest dialog
CIOTest::CIOTest(CWnd* pParent /*=NULL*/)
: CDialog(CIOTest::IDD, pParent)
{
//{{AFX_DATA_INIT(CIOTest)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CIOTest::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CIOTest)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CIOTest, CDialog)
//{{AFX_MSG_MAP(CIOTest)
ON_WM_TIMER()
ON_BN_CLICKED(IDC_OUT_ALLOPEN, OnOutAllopen)
ON_BN_CLICKED(IDC_OUT_ALLCLOSE, OnOutAllclose)
ON_WM_DESTROY()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CIOTest message handlers
BOOL CIOTest::OnInitDialog()
{
CDialog::OnInitDialog();
SetTimer(TESTTIMER,100,NULL); //启动IO检测定时器
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
//***************信号输入**********************//
void CIOTest::CheckInput()
{
int nID[]={IDC_IN0,IDC_IN1,IDC_IN2,IDC_IN3,IDC_IN4,IDC_IN5,IDC_IN6,IDC_IN7,
IDC_IN8,IDC_IN9,IDC_IN10,IDC_IN11,IDC_IN12,IDC_IN13,IDC_IN14,IDC_IN15,
IDC_IN16,IDC_IN17,IDC_IN18,IDC_IN19,IDC_IN20,IDC_IN21,IDC_IN22,IDC_IN23,
IDC_IN24,IDC_IN25,IDC_IN26,IDC_IN27,IDC_IN28,IDC_IN29,IDC_IN30,IDC_IN31,
IDC_IN32,IDC_IN33,IDC_IN34,IDC_IN35,IDC_IN36,IDC_IN37,IDC_IN38,IDC_IN39};
CButton *btn;
int value;
for (int i=0; i<40; i++)
{
value=g_CtrlCard.Read_Input(i);
btn=(CButton*)GetDlgItem(nID[i]);
btn->SetCheck(value==0?1:0);
}
}
//******************信号输出***********************//
void CIOTest::CheckOutput()
{
int nID[]={IDC_OUT0,IDC_OUT1,IDC_OUT2,IDC_OUT3,IDC_OUT4,IDC_OUT5,IDC_OUT6,IDC_OUT7,
IDC_OUT8,IDC_OUT9,IDC_OUT10,IDC_OUT11,IDC_OUT12,IDC_OUT13,IDC_OUT14,IDC_OUT15};
CButton *btn;
for (int i=0; i<16; i++)
{
btn=(CButton*)GetDlgItem( nID[i]);
g_CtrlCard.Write_Output(i,btn->GetCheck());
}
}
//**************定时器****************//
void CIOTest::OnTimer(UINT nIDEvent)
{
CheckInput(); //检测输入信号
CheckOutput(); //检测输出信号
CDialog::OnTimer(nIDEvent);
}
//***************输出全开*******************//
void CIOTest::OnOutAllopen()
{
int nID[]={IDC_OUT0,IDC_OUT1,IDC_OUT2,IDC_OUT3,IDC_OUT4,IDC_OUT5,IDC_OUT6,IDC_OUT7,
IDC_OUT8,IDC_OUT9,IDC_OUT10,IDC_OUT11,IDC_OUT12,IDC_OUT13,IDC_OUT14,IDC_OUT15};
CButton *btn;
for (int i=0; i<16; i++)
{
btn=(CButton*)GetDlgItem( nID[i]);
btn->SetCheck(1);
g_CtrlCard.Write_Output(i,1);
}
}
//****************输出全关***************//
void CIOTest::OnOutAllclose()
{
int nID[]={IDC_OUT0,IDC_OUT1,IDC_OUT2,IDC_OUT3,IDC_OUT4,IDC_OUT5,IDC_OUT6,IDC_OUT7,
IDC_OUT8,IDC_OUT9,IDC_OUT10,IDC_OUT11,IDC_OUT12,IDC_OUT13,IDC_OUT14,IDC_OUT15};
CButton *btn;
for (int i=0; i<16; i++)
{
btn=(CButton*)GetDlgItem( nID[i]);
btn->SetCheck(0);
g_CtrlCard.Write_Output(i,0);
}
}
//**********退出IO检测***************//
void CIOTest::OnDestroy()
{
CDialog::OnDestroy();
OnOutAllclose(); //输出全关
KillTimer(TESTTIMER); //关闭IO检测定时器
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -