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

📄 test880dlg.cpp

📁 关于VC的一个测试程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// test880Dlg.cpp : implementation file
//

#include "stdafx.h"
#include "test880.h"
#include "test880Dlg.h"
#include "KPCI882.h"
#include "speed.h"
#include "songyun.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
 extern ULONG kh;

 extern UINT zh;
 extern UINT ms;
 extern UINT V;
extern unsigned short fx;
extern unsigned short  m_v_sv;
extern unsigned short m_v_a;
extern unsigned short m_v_v;
extern unsigned long m_v_p;
int m_timer;
int x4=0;
int x3=0;
int x2=0;
int x1=0;
int y4=0;
int y3=0;
int y2=0;
int y1=0;

extern outputx;
extern outputy;

int shuju[1000];
int Intvalue;
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// No message handlers
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTest880Dlg dialog

CTest880Dlg::CTest880Dlg(CWnd* pParent /*=NULL*/)
	: CDialog(CTest880Dlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTest880Dlg)
	m_mva = 0;
	m_mvsv = 0;
	m_mvv = 0;
	m_p = 0;
	m_rax = 0;
	m_ray = 0;
	m_rlx = 0;
	m_rly = 0;
	m_rvx = 0;
	m_rvy = 0;
	m_uxw = 0;
	m_dxw = 0;
	m_m = 1;
	m_bits = 0;
	m_readbyte = 0;
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CTest880Dlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTest880Dlg)
	DDX_Control(pDX, IDC_HLMT2, m_hlmt2);
	DDX_Control(pDX, IDC_HLMT1, m_hlmt1);
	DDX_Control(pDX, IDC_LMTMD1, m_lmtmd);
	DDX_Control(pDX, IDC_DY9, m_y9);
	DDX_Control(pDX, IDC_DY8, m_y8);
	DDX_Control(pDX, IDC_DY7, m_y7);
	DDX_Control(pDX, IDC_DY6, m_y6);
	DDX_Control(pDX, IDC_DY4, m_y4);
	DDX_Control(pDX, IDC_DY3, m_y3);
	DDX_Control(pDX, IDC_DY2, m_y2);
	DDX_Control(pDX, IDC_DY12, m_y12);
	DDX_Control(pDX, IDC_DY11, m_y11);
	DDX_Control(pDX, IDC_DY10, m_y10);
	DDX_Control(pDX, IDC_DY1, m_y1);
	DDX_Control(pDX, IDC_DX9, m_x9);
	DDX_Control(pDX, IDC_DX8, m_x8);
	DDX_Control(pDX, IDC_DX7, m_x7);
	DDX_Control(pDX, IDC_DX6, m_x6);
	DDX_Control(pDX, IDC_DX4, m_x4);
	DDX_Control(pDX, IDC_DX3, m_x3);
	DDX_Control(pDX, IDC_DX2, m_x2);
	DDX_Control(pDX, IDC_DX12, m_x12);
	DDX_Control(pDX, IDC_DX11, m_x11);
	DDX_Control(pDX, IDC_DX10, m_x10);
	DDX_Control(pDX, IDC_DSY6, m_dsy6);
	DDX_Control(pDX, IDC_DSY5, m_dsy5);
	DDX_Control(pDX, IDC_DSY4, m_dsy4);
	DDX_Control(pDX, IDC_DSY3, m_dsy3);
	DDX_Control(pDX, IDC_DSY2, m_dsy2);
	DDX_Control(pDX, IDC_DSY1, m_dsy1);
	DDX_Control(pDX, IDC_DSX6, m_dsx6);
	DDX_Control(pDX, IDC_DSX5, m_dsx5);
	DDX_Control(pDX, IDC_DSX4, m_dsx4);
	DDX_Control(pDX, IDC_DSX3, m_dsx3);
	DDX_Control(pDX, IDC_DSX2, m_dsx2);
	DDX_Control(pDX, IDC_DSX1, m_dsx1);
	DDX_Control(pDX, IDC_DX1, m_x1);
	DDX_Control(pDX, IDC_LD, m_ld);
	DDX_Control(pDX, IDC_MS, m_ms);
	DDX_Control(pDX, IDC_ZH, m_zh);
	DDX_Control(pDX, IDC_KH, m_kh);
	DDX_Text(pDX, IDC_MVA, m_mva);
	DDV_MinMaxLong(pDX, m_mva, 1, 8000);
	DDX_Text(pDX, IDC_MVSV, m_mvsv);
	DDV_MinMaxLong(pDX, m_mvsv, 1, 8000);
	DDX_Text(pDX, IDC_MVV, m_mvv);
	DDV_MinMaxLong(pDX, m_mvv, 1, 8000);
	DDX_Text(pDX, IDC_P, m_p);
	DDV_MinMaxLong(pDX, m_p, 0, 268435455);
	DDX_Text(pDX, IDC_RAX, m_rax);
	DDX_Text(pDX, IDC_RAY, m_ray);
	DDX_Text(pDX, IDC_RLX, m_rlx);
	DDX_Text(pDX, IDC_RLY, m_rly);
	DDX_Text(pDX, IDC_RVX, m_rvx);
	DDX_Text(pDX, IDC_RVY, m_rvy);
	DDX_Text(pDX, IDC_UXW, m_uxw);
	DDX_Text(pDX, IDC_DXW, m_dxw);
	DDX_Text(pDX, IDC_M, m_m);
	DDV_MinMaxInt(pDX, m_m, 1, 500);
	DDX_Text(pDX, IDC_BITS, m_bits);
	DDX_Text(pDX, IDC_READBYTE1, m_readbyte);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CTest880Dlg, CDialog)
	//{{AFX_MSG_MAP(CTest880Dlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_SC, OnSc)
	ON_BN_CLICKED(IDC_QD, OnQd)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	ON_BN_CLICKED(IDC_STATE, OnState)
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_TZH, OnTzh)
	ON_BN_CLICKED(IDC_QL, OnQl)
	ON_BN_CLICKED(IDC_DX1, OnDx1)
	ON_BN_CLICKED(IDC_DX2, OnDx2)
	ON_BN_CLICKED(IDC_DY1, OnDy1)
	ON_BN_CLICKED(IDC_DY2, OnDy2)
	ON_BN_CLICKED(IDC_XW, OnXw)
	ON_BN_CLICKED(IDC_EXIT, OnExit)
	ON_BN_CLICKED(IDC_JT, OnJt)
	ON_BN_CLICKED(IDC_QX, OnQx)
	ON_BN_CLICKED(IDC_SETM, OnSetm)
	ON_BN_CLICKED(IDC_AUTODEC, OnAutodec)
	ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
	ON_BN_CLICKED(IDC_READBYTE, OnReadbyte)
	ON_BN_CLICKED(IDC_DVOUT, OnDvout)
	ON_BN_CLICKED(IDC_STOPOUT, OnStopout)
	ON_BN_CLICKED(IDC_LVOUT, OnLvout)
	ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
	ON_BN_CLICKED(IDC_BUTTON6, OnButton6)
	ON_BN_CLICKED(IDC_BUTTON7, OnButton7)
	ON_BN_CLICKED(IDC_XIANWEIMOSHI, OnXianweimoshi)
	ON_BN_CLICKED(IDC_INTENABLECOMP, OnIntenablecomp)
	ON_BN_CLICKED(IDC_INTDISABLECOMP, OnIntdisablecomp)
	ON_BN_CLICKED(IDC_365INABLE, On365inable)
	ON_BN_CLICKED(IDC_365DISABLE, On365disable)
	ON_BN_CLICKED(IDC_ISR, OnIsr)
	ON_BN_CLICKED(IDC_INTPULSE, OnIntpulse)
	ON_BN_CLICKED(IDC_BUTTON8, OnButton8)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTest880Dlg message handlers

BOOL CTest880Dlg::OnInitDialog()
{
	m_mva=1000;
	m_mvsv=1000;
	m_mvv=1000;
	m_p=10000;
	m_rax=0;
	m_rvx=0;
	m_rlx=0;
	m_ray=0;
	m_rvy=0;
	m_rly=0;
	UpdateData(FALSE);
	CDialog::OnInitDialog();
		m_x1.LoadBitmaps(IDB_LOW);
	m_x2.LoadBitmaps(IDB_LOW);
	
	
	m_y1.LoadBitmaps(IDB_LOW);
	m_y2.LoadBitmaps(IDB_LOW);
	

	m_x3.LoadBitmaps(IDB_RED);
	m_x4.LoadBitmaps(IDB_RED);
	
	m_x6.LoadBitmaps(IDB_RED);
	m_x7.LoadBitmaps(IDB_RED);
	m_x8.LoadBitmaps(IDB_RED);
	m_x9.LoadBitmaps(IDB_RED);
	m_x10.LoadBitmaps(IDB_RED);
	m_x11.LoadBitmaps(IDB_RED);
	m_x12.LoadBitmaps(IDB_RED);
	m_y3.LoadBitmaps(IDB_RED);
	m_y4.LoadBitmaps(IDB_RED);

	m_y6.LoadBitmaps(IDB_RED);
	m_y7.LoadBitmaps(IDB_RED);
	m_y8.LoadBitmaps(IDB_RED);
	m_y9.LoadBitmaps(IDB_RED);
	m_y10.LoadBitmaps(IDB_RED);
	m_y11.LoadBitmaps(IDB_RED);
	m_y12.LoadBitmaps(IDB_RED);


	m_dsx1.LoadBitmaps(IDB_RED);
	m_dsx2.LoadBitmaps(IDB_RED);
	m_dsx3.LoadBitmaps(IDB_RED);
	m_dsx4.LoadBitmaps(IDB_RED);
	m_dsx5.LoadBitmaps(IDB_RED);
	m_dsx6.LoadBitmaps(IDB_RED);
	m_dsy1.LoadBitmaps(IDB_RED);
	m_dsy2.LoadBitmaps(IDB_RED);
	m_dsy3.LoadBitmaps(IDB_RED);
	m_dsy4.LoadBitmaps(IDB_RED);
	m_dsy5.LoadBitmaps(IDB_RED);
	m_dsy6.LoadBitmaps(IDB_RED);


	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon

InterruptSet(0);
Int_Enable_Comp(0,1);
Sleep(100);
	Int365_Disable(0);	

	
	// TODO: Add extra initialization here
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CTest880Dlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CTest880Dlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CTest880Dlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}



void CTest880Dlg::OnSc() 
{
UINT zh1=m_zh.GetCurSel();
::zh=zh1;
ms=m_ms.GetCurSel();
::ms=ms;   
switch(zh)
	{
		case 0:
			zh=4;
			PulseOutMode(kh,zh,ms);
        break;
		case 1:
			zh=1;
			PulseOutMode(kh,zh,ms);
		break;
		case 2:
			zh=2;
			PulseOutMode(kh,zh,ms);
		break;
		case 3:
			zh=3;
			PulseOutMode(kh,zh,ms);
		break;
		case 4:
			zh=5;
          PulseOutMode(kh,1,ms);
		  PulseOutMode(kh,2,ms);
		  PulseOutMode(kh,3,ms);
		  PulseOutMode(kh,4,ms);
		  break;
	}


}

void CTest880Dlg::OnQd() 
{
UINT fx1 = GetCheckedRadioButton(IDC_FXZ,IDC_FXF);
UINT ld=m_ld.GetCurSel();
switch(fx1)
{	
 case IDC_FXZ:
 ::fx=1;
 break;
 case IDC_FXF:
 ::fx=0;
 break;
}
UpdateData(true);
::m_v_sv=m_mvsv;
::m_v_a=m_mva;
::m_v_v=m_mvv;
::m_v_p=m_p;
 switch(ld)
{
case 0:
Move_DV(kh,zh,m_v_a,m_v_sv,m_v_v,fx,m_v_p);
break;
case 1:
Move_LV(kh,zh,m_v_a,m_v_sv,m_v_v,fx);
break;
}
}

void CTest880Dlg::OnButton1() 
{
	DecStop(kh,zh);
}

void CTest880Dlg::OnButton2() 
{
	Reset(kh);
}

void CTest880Dlg::OnState() 
{
m_timer=SetTimer(1,1,0);

}

void CTest880Dlg::OnTimer(UINT nIDEvent) 
{
	UpdateData(false);
m_rvx=ReadCV(kh,1);
m_rax=ReadCA(kh,1);
m_rlx=ReadLP(kh,1);
m_rvy=ReadCV(kh,2);
m_ray=ReadCA(kh,2);
m_rly=ReadLP(kh,2);


if(zh==1)
	{
		RendengX();
	}
	if(zh==2)
	{
		RendengY();
	}

	CDialog::OnTimer(nIDEvent);
}
void CTest880Dlg::RendengY()
  {
  	int GetRR11[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
  	int GetRR21[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
  	int GetRR41[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
  	unsigned short rr1,i,rr2,rr4;
 	int d15,flag;
  	
  	//通用输入状态
  
  	int getbit[4]={0};
  	for(i=1;i<3;i++)
  	{
  		getbit[i]=ReadBIT(kh,2,i);
  	}
  	if(getbit[1]==0)
  	{
  		m_y3.LoadBitmaps(IDB_GREEEN);
 		m_y3.RedrawWindow();
  	}
  	else
	{
  		m_y3.LoadBitmaps(IDB_RED);
  		m_y3.RedrawWindow();
  	}
	if(getbit[2]==0)
 	{
 		m_y4.LoadBitmaps(IDB_GREEEN);
 		m_y4.RedrawWindow();
 	}
 	else
 	{
		m_y4.LoadBitmaps(IDB_RED);
 		m_y4.RedrawWindow();
 	}
 	
 	//通用点动状态
 	GetRR5(kh,&rr4);
 	for(i=0;i<16; i++)
 	{
 		flag=(rr4>>i)&1;
 		if(flag==1)
 			GetRR41[i]=1;
		else
 			GetRR41[i]=0;
 	}
 	if(GetRR41[4]==0)
 	{
 		m_y6.LoadBitmaps(IDB_GREEEN);
 		m_y6.RedrawWindow();
 	}
	else
	{
 		m_y6.LoadBitmaps(IDB_RED);
 		m_y6.RedrawWindow();
 	}
 	if(GetRR41[5]==0)
 	{
 		m_y7.LoadBitmaps(IDB_GREEEN);
 		m_y7.RedrawWindow();
 	}
 	else
 	{
 		m_y7.LoadBitmaps(IDB_RED);
 		m_y7.RedrawWindow();
 	}
    
 	//读硬件限位
 	int getLMT=ReadLMT(kh,2);
     if(getLMT==1)
 	{
 		m_dsy1.LoadBitmaps(IDB_GREEEN);
 		m_dsy1.RedrawWindow();
 	}
 	 if(getLMT==2)
 	{
		m_dsy2.LoadBitmaps(IDB_GREEEN);
		m_dsy2.RedrawWindow();
 	}
 	 if(getLMT==0)
 	{
 		m_dsy1.LoadBitmaps(IDB_RED);
		m_dsy2.LoadBitmaps(IDB_RED);
 		m_dsy1.RedrawWindow();
 		m_dsy2.RedrawWindow();
 	}
 	 
	 //读紧急制动信号
 	 GetRR2(kh,2,&rr2);
 	for(i=0;i<16;i++)
	{
		flag=(rr2>>i)&1;
 		if(flag==1)
 			GetRR21[i]=1;
 		else
 			GetRR21[i]=0;
 	}
 	if(GetRR21[5]==1)
 	{
 		m_dsy5.LoadBitmaps(IDB_GREEEN);
 		m_dsy5.RedrawWindow();
 	}
 	else
 	{
 		m_dsy5.LoadBitmaps(IDB_RED);
 		m_dsy5.RedrawWindow();
 	}
 	//读报警信号
 	if(GetRR21[4]==1)
 	{
 		m_dsy6.LoadBitmaps(IDB_GREEEN);
 		m_dsy6.RedrawWindow();
 	}
 	else
 	{
		m_dsy6.LoadBitmaps(IDB_RED);
		m_dsy6.RedrawWindow();
 	}
 	//读软限位
 	if(GetRR21[0]==1)
 	{
 		m_dsy3.LoadBitmaps(IDB_GREEEN);
 		m_dsy3.RedrawWindow();
 	}
 	else
 	{
 		m_dsy3.LoadBitmaps(IDB_RED);
 		m_dsy3.RedrawWindow();
 	}
 	if(GetRR21[1]==1)
 	{
 		m_dsy4.LoadBitmaps(IDB_GREEEN);
		m_dsy4.RedrawWindow();
 	}
	else

⌨️ 快捷键说明

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