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

📄 channelwave.cpp

📁 vc数据采集程序,有曲线现实和数据显示以及采集卡设置
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// channelWave.cpp : implementation file
//

#include "stdafx.h"
#include "HK_PCI812F_VC.h"
#include "channelWave.h"
#include "MODE.h"
#include "math.h"
#include "MainFrm.h"
#include "HK_PCI812F_VCDoc.h"
#include "Pointm.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
long int Rww;
int m_timer;
/////////////////////////////////////////////////////////////////////////////
// CchannelWave dialog
CchannelWave::CchannelWave(CWnd* pParent /*=NULL*/)
: CDialog(CchannelWave::IDD, pParent)
{
	//{{AFX_DATA_INIT(CchannelWave)
	m_che01 = FALSE;
	m_che02 = FALSE;
	m_che03 = FALSE;
	m_che04 = FALSE;
	m_che05 = FALSE;
	m_che06 = FALSE;
	m_che07 = FALSE;
	m_che08 = FALSE;
	m_che09 = FALSE;
	m_che10 = FALSE;
	m_che11 = FALSE;
	m_che13 = FALSE;
	m_che12 = FALSE;
	m_che14 = FALSE;
	m_che15 = FALSE;
	m_che16 = FALSE;
	m_RectMin = 0;
	m_RectMax = 4095;
	m_sf = 0;
	m_che17 = FALSE;
	m_che18 = FALSE;
	m_che19 = FALSE;
	m_che20 = FALSE;
	m_che21 = FALSE;
	m_che22 = FALSE;
	m_che23 = FALSE;
	m_che24 = FALSE;
	m_che25 = FALSE;
	m_che26 = FALSE;
	m_che27 = FALSE;
	m_che28 = FALSE;
	m_che29 = FALSE;
	m_che30 = FALSE;
	m_che31 = FALSE;
	m_che32 = FALSE;
	channel=1;
	m_left=0;
	pointm=320000;
	scal=FALSE;
	m_num = 0;
    IO_Handle=NULL;
	//}}AFX_DATA_INIT
	
}
void CchannelWave::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CchannelWave)
	DDX_Control(pDX, IDC_CHE32, m_Cche32);
	DDX_Control(pDX, IDC_CHE31, m_Cche31);
	DDX_Control(pDX, IDC_CHE30, m_Cche30);
	DDX_Control(pDX, IDC_CHE29, m_Cche29);
	DDX_Control(pDX, IDC_CHE28, m_Cche28);
	DDX_Control(pDX, IDC_CHE27, m_Cche27);
	DDX_Control(pDX, IDC_CHE26, m_Cche26);
	DDX_Control(pDX, IDC_CHE25, m_Cche25);
	DDX_Control(pDX, IDC_CHE24, m_Cche24);
	DDX_Control(pDX, IDC_CHE23, m_Cche23);
	DDX_Control(pDX, IDC_CHE22, m_Cche22);
	DDX_Control(pDX, IDC_CHE21, m_Cche21);
	DDX_Control(pDX, IDC_CHE20, m_Cche20);
	DDX_Control(pDX, IDC_CHE19, m_Cche19);
	DDX_Control(pDX, IDC_CHE18, m_Cche18);
	DDX_Control(pDX, IDC_CHE17, m_Cche17);
	DDX_Control(pDX, IDC_RECMIN, m_CRecMin);
	DDX_Control(pDX, IDC_RECMAX, m_CRecMax);
	DDX_Control(pDX, IDC_RECTMAP, m_CRectMap);
	DDX_Control(pDX, IDC_WAVEMAP, m_CWaveMap);
	DDX_Control(pDX, IDC_SCREENUP, m_CScrUp);
	DDX_Control(pDX, IDC_SCREENDOWN, m_CScrDown);
	DDX_Control(pDX, IDC_RESCREEN, m_CRescreen);
	DDX_Control(pDX, IDC_CHE16, m_Cche16);
	DDX_Control(pDX, IDC_CHE15, m_Cche15);
	DDX_Control(pDX, IDC_CHE14, m_Cche14);
	DDX_Control(pDX, IDC_CHE13, m_Cche13);
	DDX_Control(pDX, IDC_CHE12, m_Cche12);
	DDX_Control(pDX, IDC_CHE11, m_Cche11);
	DDX_Control(pDX, IDC_CHE10, m_Cche10);
	DDX_Control(pDX, IDC_CHE09, m_Cche09);
	DDX_Control(pDX, IDC_CHE08, m_Cche08);
	DDX_Control(pDX, IDC_CHE07, m_Cche07);
	DDX_Control(pDX, IDC_CHE06, m_Cche06);
	DDX_Control(pDX, IDC_CHE05, m_Cche05);
	DDX_Control(pDX, IDC_CHE04, m_Cche04);
	DDX_Control(pDX, IDC_CHE03, m_Cche03);
	DDX_Control(pDX, IDC_CHE02, m_Cche02);
	DDX_Control(pDX, IDC_CHE01, m_Cche01);
	DDX_Check(pDX, IDC_CHE01, m_che01);
	DDX_Check(pDX, IDC_CHE02, m_che02);
    DDX_Check(pDX, IDC_CHE03, m_che03);
	DDX_Check(pDX, IDC_CHE04, m_che04);
	DDX_Check(pDX, IDC_CHE05, m_che05);
	DDX_Check(pDX, IDC_CHE06, m_che06);
	DDX_Check(pDX, IDC_CHE07, m_che07);
	DDX_Check(pDX, IDC_CHE08, m_che08);
	DDX_Check(pDX, IDC_CHE09, m_che09);
	DDX_Check(pDX, IDC_CHE10, m_che10);
	DDX_Check(pDX, IDC_CHE11, m_che11);
	DDX_Check(pDX, IDC_CHE13, m_che13);
	DDX_Check(pDX, IDC_CHE12, m_che12);
	DDX_Check(pDX, IDC_CHE14, m_che14);
	DDX_Check(pDX, IDC_CHE15, m_che15);
	DDX_Check(pDX, IDC_CHE16, m_che16);
	DDX_Text(pDX, IDC_RECMIN, m_RectMin);
	DDV_MinMaxInt(pDX, m_RectMin, 0, 4095);
	DDX_Text(pDX, IDC_RECMAX, m_RectMax);
	DDV_MinMaxInt(pDX, m_RectMax, 0, 4095);
	DDX_Text(pDX, IDC_SF, m_sf);
	DDX_Check(pDX, IDC_CHE17, m_che17);
	DDX_Check(pDX, IDC_CHE18, m_che18);
	DDX_Check(pDX, IDC_CHE19, m_che19);
	DDX_Check(pDX, IDC_CHE20, m_che20);
	DDX_Check(pDX, IDC_CHE21, m_che21);
	DDX_Check(pDX, IDC_CHE22, m_che22);
	DDX_Check(pDX, IDC_CHE23, m_che23);
	DDX_Check(pDX, IDC_CHE24, m_che24);
	DDX_Check(pDX, IDC_CHE25, m_che25);
	DDX_Check(pDX, IDC_CHE26, m_che26);
	DDX_Check(pDX, IDC_CHE27, m_che27);
	DDX_Check(pDX, IDC_CHE28, m_che28);
	DDX_Check(pDX, IDC_CHE29, m_che29);
	DDX_Check(pDX, IDC_CHE30, m_che30);
	DDX_Check(pDX, IDC_CHE31, m_che31);
	DDX_Check(pDX, IDC_CHE32, m_che32);
	DDX_Text(pDX, IDC_NUM, m_num);
	//}}AFX_DATA_MAP
	
	
}


BEGIN_MESSAGE_MAP(CchannelWave, CDialog)
//{{AFX_MSG_MAP(CchannelWave)
ON_BN_CLICKED(IDC_MODEDE, OnModede)
ON_BN_CLICKED(IDC_RESCREEN, OnRescreen)
ON_BN_CLICKED(IDC_SCREENDOWN, OnScreendown)
ON_BN_CLICKED(IDC_SCREENUP, OnScreenup)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	ON_BN_CLICKED(IDC_StartAD, OnStartAD)
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_SOFTCONVERT, OnSoftconvert)
	ON_BN_CLICKED(IDC_WAIBU, OnWaibu)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
ON_WM_DRAWITEM()
	ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CchannelWave message handlers
BOOL CchannelWave::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
    DLL_Handle=NULL;
	CString m_dlldir;
	char *aaa;
	GetFullPathName("IODLL.DLL",256,m_dlldir.GetBuffer(256),&aaa);
	m_dlldir.Replace("\\","/");
    DLL_Handle=LoadLibrary(m_dlldir);//得到动态库的当前路径
    if (DLL_Handle!=NULL) 
	{
		HKP812F_Output=(HKP812F_OUTPUT)GetProcAddress(DLL_Handle,"HKP812F_Output");
		HKP812F_LocateAndOpen=(HKP812F_LOCATEANDOPEN *)::GetProcAddress(DLL_Handle,"HKP812F_LocateAndOpen");
		HKP812F_Close=(HKP812F_CLOSE)GetProcAddress(DLL_Handle,"HKP812F_Close");
		HKP812F_Input=(HKP812F_INPUT)GetProcAddress(DLL_Handle,"HKP812F_Input");
		
		HKP812F_ModeWrite=(HKP812F_MODEWRITE)GetProcAddress(DLL_Handle,"HKP812F_ModeWrite");
		HKP812F_TimerStop=(HKP812F_TIMERSTOP)GetProcAddress(DLL_Handle,"HKP812F_TimerStop");
		HKP812F_TimerStart=(HKP812F_TIMERSTART)GetProcAddress(DLL_Handle,"HKP812F_TimerStart");
		HKP812F_ChannelWrite=(HKP812F_CHANNELWRITE)GetProcAddress(DLL_Handle,"HKP812F_ChannelWrite");
		HKP812F_TimerWrite=(HKP812F_TIMERWRITE)GetProcAddress(DLL_Handle,"HKP812F_TimerWrite");
		HKP812F_FIFOCls=(HKP812F_FIFOCLS)GetProcAddress(DLL_Handle,"HKP812F_FIFOCls");
		
		HKP812F_SoftConvert=(HKP812F_SOFTCONVERT)GetProcAddress(DLL_Handle,"HKP812F_SoftConvert");
		HKP812F_ReadFIFO=(HKP812F_READFIFO)GetProcAddress(DLL_Handle,"HKP812F_ReadFIFO");
		HKP812F_Check_ReadFIFO=(HKP812F_CHECK_READFIFO)GetProcAddress(DLL_Handle,"HKP812F_Check_ReadFIFO");
		HKP812F_ReadStatus=(HKP812F_READSTATUS)GetProcAddress(DLL_Handle,"HKP812F_ReadStatus");
		HKP812F_HFCheck_ReadFIFO=(HKP812F_HFCHECK_READFIFO)GetProcAddress(DLL_Handle,"HKP812F_HFCheck_ReadFIFO");
		HKP812F_HFSFCheck_ReadFIFO=(HKP812F_HFCHECK_READFIFO)GetProcAddress(DLL_Handle,"HKP812F_HFSFCheck_ReadFIFO");
		HKP812F_CheckSF_ReadFIFO=(HKP812F_CHECK_READFIFO)GetProcAddress(DLL_Handle,"HKP812F_CheckSF_ReadFIFO");
	}
    
	// TODO: Add extra initialization here
   	Color[1]=RGB(51,0,0);
	Color[2]=RGB(255,255,0);
	Color[3]=RGB(0,0,51);
	Color[4]=RGB(255,0,255);
	Color[5]=RGB(51,0,51);
	Color[6]=RGB(0,0,255);
	Color[7]=RGB(51,51,51);
	Color[8]=RGB(102,0,0);
	Color[9]=RGB(0,255,0);
	Color[10]=RGB(0,0,102);
	Color[11]=RGB(102,0,102);
	Color[12]=RGB(255,0,0);
	Color[13]=RGB(0,102,102);
	Color[14]=RGB(102,102,102);
	Color[15]=RGB(153,0,0);
	Color[16]=RGB(0,153,0);
	Color[17]=RGB(0,0,153);
	Color[18]=RGB(102,0,153);
	Color[19]=RGB(102,153,0);
	Color[20]=RGB(0,153,153);
	Color[21]=RGB(10,153,32);
	Color[22]=RGB(200,0,0);
	Color[23]=RGB(0,200,0);
	Color[24]=RGB(0,0,200);
	Color[25]=RGB(200,0,200);
	Color[26]=RGB(0,200,200);
	Color[27]=RGB(200,75,100);
	Color[28]=RGB(255,0,0);
	Color[29]=RGB(0,255,0);
	Color[30]=RGB(0,0,255);
	Color[31]=RGB(255,0,255);
	Color[32]=RGB(255,255,0);

	ColorIDC[1]=IDC_CH01;
	ColorIDC[2]=IDC_CH02;
	ColorIDC[3]=IDC_CH03;
	ColorIDC[4]=IDC_CH04;
	ColorIDC[5]=IDC_CH05;
	ColorIDC[6]=IDC_CH06;
	ColorIDC[7]=IDC_CH07;
	ColorIDC[8]=IDC_CH08;
	ColorIDC[9]=IDC_CH09;
	ColorIDC[10]=IDC_CH10;
	ColorIDC[11]=IDC_CH11;
	ColorIDC[12]=IDC_CH12;
	ColorIDC[13]=IDC_CH13;
	ColorIDC[14]=IDC_CH14;
	ColorIDC[15]=IDC_CH15;
	ColorIDC[16]=IDC_CH16;
	ColorIDC[17]=IDC_CH17;
	ColorIDC[18]=IDC_CH18;
	ColorIDC[19]=IDC_CH19;
	ColorIDC[20]=IDC_CH20;
	ColorIDC[21]=IDC_CH21;
	ColorIDC[22]=IDC_CH22;
	ColorIDC[23]=IDC_CH23;
	ColorIDC[24]=IDC_CH24;
	ColorIDC[25]=IDC_CH25;
	ColorIDC[26]=IDC_CH26;
	ColorIDC[27]=IDC_CH27;
	ColorIDC[28]=IDC_CH28;
	ColorIDC[29]=IDC_CH29;
	ColorIDC[30]=IDC_CH30;
	ColorIDC[31]=IDC_CH31;
	ColorIDC[32]=IDC_CH32;

	ColorCheck[1]=&m_Cche01;
	ColorCheck[2]=&m_Cche02;
	ColorCheck[3]=&m_Cche03;
	ColorCheck[4]=&m_Cche04;
	ColorCheck[5]=&m_Cche05;
	ColorCheck[6]=&m_Cche06;
	ColorCheck[7]=&m_Cche07;
	ColorCheck[8]=&m_Cche08;
	ColorCheck[9]=&m_Cche09;
	ColorCheck[10]=&m_Cche10;
	ColorCheck[11]=&m_Cche11;
	ColorCheck[12]=&m_Cche12;
	ColorCheck[13]=&m_Cche13;
	ColorCheck[14]=&m_Cche14;
	ColorCheck[15]=&m_Cche15;
	ColorCheck[16]=&m_Cche16;
	ColorCheck[17]=&m_Cche17;
	ColorCheck[18]=&m_Cche18;
	ColorCheck[19]=&m_Cche19;
	ColorCheck[20]=&m_Cche20;
	ColorCheck[21]=&m_Cche21;
	ColorCheck[22]=&m_Cche22;
	ColorCheck[23]=&m_Cche23;
	ColorCheck[24]=&m_Cche24;
	ColorCheck[25]=&m_Cche25;
	ColorCheck[26]=&m_Cche26;
	ColorCheck[27]=&m_Cche27;
	ColorCheck[28]=&m_Cche28;
	ColorCheck[29]=&m_Cche29;
	ColorCheck[30]=&m_Cche30;
	ColorCheck[31]=&m_Cche31;
	ColorCheck[32]=&m_Cche32;

	ColorBCheck[1]=m_che01;
	ColorBCheck[2]=m_che02;
	ColorBCheck[3]=m_che03;
	ColorBCheck[4]=m_che04;
	ColorBCheck[5]=m_che05;
	ColorBCheck[6]=m_che06;
	ColorBCheck[7]=m_che07;
	ColorBCheck[8]=m_che08;
	ColorBCheck[9]=m_che09;
	ColorBCheck[10]=m_che10;
	ColorBCheck[11]=m_che11;
	ColorBCheck[12]=m_che12;
	ColorBCheck[13]=m_che13;
	ColorBCheck[14]=m_che14;
	ColorBCheck[15]=m_che15;
	ColorBCheck[16]=m_che16;
	ColorBCheck[17]=m_che17;
	ColorBCheck[18]=m_che18;
	ColorBCheck[19]=m_che19;
	ColorBCheck[20]=m_che20;
	ColorBCheck[21]=m_che21;
	ColorBCheck[22]=m_che22;
	ColorBCheck[23]=m_che23;
	ColorBCheck[24]=m_che24;
	ColorBCheck[25]=m_che25;
	ColorBCheck[26]=m_che26;
	ColorBCheck[27]=m_che27;
	ColorBCheck[28]=m_che28;
	ColorBCheck[29]=m_che29;
	ColorBCheck[30]=m_che30;
	ColorBCheck[31]=m_che31;
	ColorBCheck[32]=m_che32;
	
	for(int i=1;i<=32;i++)
	{
		ColorCheck[i]->EnableWindow(FALSE);
	}
	
	m_CRescreen.EnableWindow(FALSE);
	m_CScrDown.EnableWindow(FALSE);
	m_CScrUp.EnableWindow(FALSE);
	m_CRecMax.EnableWindow(FALSE);
	m_CRecMin.EnableWindow(FALSE);
	return TRUE;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
}

void CchannelWave::OnCancel() 
{
	if(IO_Handle!=NULL)
	   {
		   HKP812F_Close(IO_Handle);
	   }
	  
	// TODO: Add extra cleanup here
	CDialog::OnCancel();
}
void CchannelWave::Mypaint()
{
	UpdateData();
	if (scal==TRUE) 
	{
		for(int i=1;i<=channel;i++)
		{
			CWnd  *pWnd=GetDlgItem(ColorIDC[i]);
			CDC *pDC=pWnd->GetDC();
			CRect conRect;
			::GetClientRect(pWnd->m_hWnd,conRect);
			CBrush nbrush(Color[i]);
			CBrush* pobrush=pDC->SelectObject(&nbrush);
			pDC->Rectangle(conRect);
			pDC->SelectObject(pobrush);
			ColorCheck[i]->EnableWindow(TRUE);
			ReleaseDC(pDC);	
		}
		for(int m=channel+1;m<=32;m++)
		{
			CWnd  *pWnd=GetDlgItem(ColorIDC[m]);
			CDC *pDC=pWnd->GetDC();
			CRect conRect;
			::GetClientRect(pWnd->m_hWnd,conRect);
			CBrush nbrush(RGB(190,190,190));
			CBrush* pobrush=pDC->SelectObject(&nbrush);
			pDC->Rectangle(conRect);
			pDC->SelectObject(pobrush);
			ColorCheck[m]->EnableWindow(FALSE);
			ReleaseDC(pDC);
		}
	}
	else
	{
		
		for(int ii=1;ii<=32;ii++)
		{
			CWnd  *ppWnd=GetDlgItem(ColorIDC[ii]);
			CDC *pDC=ppWnd->GetDC();
			CRect cconRect;
			::GetClientRect(ppWnd->m_hWnd,cconRect);
			CBrush nnbrush(RGB(190,190,190));
			CBrush* ppobrush=pDC->SelectObject(&nnbrush);
			pDC->Rectangle(cconRect);
			pDC->SelectObject(ppobrush);
			ColorCheck[ii]->EnableWindow(FALSE);
			ReleaseDC(pDC);
			
		}
		
		
		ColorCheck[channel]->EnableWindow(TRUE);
		CWnd  *pqWnd=GetDlgItem(ColorIDC[channel]);
		CDC *pDC=pqWnd->GetDC();
		CRect cqonRect;
		::GetClientRect(pqWnd->m_hWnd,cqonRect);
		CBrush nqbrush(Color[channel]);
		CBrush* pqobrush=pDC->SelectObject(&nqbrush);
		pDC->Rectangle(cqonRect);
		pDC->SelectObject(pqobrush);
		ReleaseDC(pDC);
		
	}
	
	
	CWnd  *mWnd=GetDlgItem(IDC_WAVEMAP);
	CDC *pDC=mWnd->GetDC();
	
	
	
	CRect Rect;
	::GetClientRect(mWnd->m_hWnd,Rect);
	
	CBrush nbrush(RGB(255,255,255));
	CBrush* pobrush=pDC->SelectObject(&nbrush);
	pDC->Rectangle(Rect);
	pDC->SelectObject(pobrush);
	pDC->SetViewportOrg(0,Rect.bottom);	
	pDC->MoveTo(0,0);
	pDC->LineTo(700,0);
	pDC->SelectObject(pobrush);
	
	
	
	CPen NewBrush(PS_DOT,1,RGB(0,0,0));
	CPen* pOldBrush=pDC->SelectObject(&NewBrush);
	
	CString volt;
	
	for(int g=1;g<=10;g++)
	{
		pDC->MoveTo(0,-Rect.bottom*g/10);
		pDC->LineTo(Rect.right,-Rect.bottom*g/10);
		volt.Format("%d",4096*g/10);
		pDC->SetBkColor(GetSysColor(COLOR_MENU));
		
		pDC->TextOut(-33,-Rect.bottom*g/10,volt);
	}
	
	
	
	int k,num;
	CString numb;
	k=0;
	for(int j=0;j<=Rect.right;j++)
	{
		if (k<=Rect.right)
		{
			pDC->MoveTo(k,-Rect.bottom);
			pDC->LineTo(k,0);
			num=m_left+k;
			CBrush brush(RGB(192,192,192));
			//CBrush brush(GetSysColor(COLOR_MENU));
			CBrush* pobrush=pDC->SelectObject(&brush);
			pDC->Rectangle(k-10,15,730,0);
			//pDC->Rectangle(k-10,15,953,0);
			pDC->SelectObject(pobrush);
			numb.Format("%d",num);
			pDC->SetBkColor(GetSysColor(COLOR_MENU));
			pDC->TextOut(k-10,0,numb);
			k=k+100;
		}
	}
	pDC->SelectObject(pobrush);
	pDC->SelectObject(pOldBrush);
	ReleaseDC(pDC);
	Chart();

	//	delete pDC;
}

void CchannelWave::Chart()
{
	
	UpdateData();
	int scal,max,min;

⌨️ 快捷键说明

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