📄 channelwave.cpp
字号:
// 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 + -